I think the idea is to give more importance to stablecoins that have more volume vs. ones that have lower volume and are easier to manipulate price-wise
Cool idea Ameen–will be following this w interest.
The fees seem a little wonky though. If you charge a 10% interest rate to coin minters and offer a 9% interest rate to COIN holders, the amount left over for fees will be greater than the 10% fee you specified (unless everyone that mints coins then puts them in the holding contract). Unless, maybe you’re thinking of not having a savings contract and just airdropping the 9% interest rate somehow?
To be honest, I was handwaiving and hadn’t considered it in detail. This is an excellent point, thanks! I guess I don’t really understand why the CHAI-like functionality can’t be built-in. I’ll think about it more.
Really like this concept - agreed that the best way to think about it is not as a replacement for / competitor to Dai, but rather as an “experiment” designed to probe the degree to which governance requirements can be reduced.
While minimizing the role of governance does not unequivocally result in maximizing decentralization (of course there is a strong correlation, but the two concepts are often entirely conflated with one another), it does have other palpable benefits - it’s comparatively simple, avoids many dangerous attack vectors, makes it easier to build on top of since you can count on it staying as-is, and also tends to “level the playing field” somewhat. Maybe most significantly, it can help sidestep the issue of low voter participation.
So, what really interests me is whether it would be possible to push just a little further with this, and “finish the job” - i.e., can governance be eliminated completely? Really just spitballing initial thoughts on this, but to address the two proposed topics subject to votes by governance:
- Adding / removing stablecoins: Let’s assume that sourcing VWAP data is workable, either from Uniswap V2 or from another AMM / DEX. In that event, imagine that anyone can add a new stablecoin by simply proving that
f(priceHistory, volume, totalSupply, tokenDistribution, ...)was sufficient to make it a contender, or conversely that it no longer met the required parameters and could be removed. Cooking up appropriate parameters and weights at the onset would of course be the hardest part… but then again, a few may get it right if a thousand MetaCoins bloom
- Triggering a “Happy Ending” could also be accomplished via programmatic means under certain conditions, like if the pool of underlying stablecoins got too thin or if the PID somehow ended up in an unacceptable state. That being said, what if you did away with the idea of global settlement entirely and replaced it with ongoing settlement - call it a “Happy Beginning” - where COIN can be redeemed for ETH at some conservative discount at any point?
Assuming there’s merit to either of these proposals, the obvious next question is whether META is still necessary. Who would want to hold a governance token if it’s not going to be used for voting? Well, given the point on low participation earlier, seems like the answer is that a lot of people would still want to hold it. Even without governance, META would provide the clever, inflation-driven liquidity provider bootstrap - it just becomes a bet that buy-and-burn going forward will offset it.
I’d love to hear if there’s something obvious I’m missing here, but at the end of the day there’s just a real purity to being able to eliminate governance entirely, decentralization be damned. That alone makes it worth exploring how MetaCoin or something similar could fully “close the loop” - it’s already very close to doing so!
Last parting thought on this topic - think about why Sai is now (eventually) headed toward global settlement. At this point, it’s because MKR holders may not want to have to continue to maintain it now that Dai’s on the scene. A stablecoin that doesn’t need to be maintained at all would live and die solely by the demand for the stablecoin, the supply of collateral, and the continued existence of a few keeper bots. Of course, better hope the thing doesn’t have a show-stopper bug or need to be upgraded… but once again, the immediate goal (from my perspective) is building a template for continued experimentation!
I like it. I’ve been thinking of something along these lines ever since Maker went all in on MCD. I don’t have anywhere near enough time to actually work it though, so it’s nice to see it worked out here. A couple of issues I can think of:
Others have pointed out oracle issues, which are real but at some level unavoidable. I would want to think along the direction of trying to make the oracles as slow and as time delayed as possible to maximize the time members have to act against oracle based manipulation or attacks. I do not have a good intuitive understanding of the type of attacks that can be made against a slow oracle (so long as the oracle eventually moves through the full set of prices in order), I suspect that this is an underdeveloped area of research you might want to look into. It might be possible to delay the oracle by weeks or more and still have a resilient system.
One of the major oversights of the DSR is the fact that the interest rate (as far as I know) cannot be negative. Although a negative interest rate might seem counter - intuitive it actually is quite reasonable in this system, since the collateral is quite volatile and is prone to large and swift price drops. In the situation of a large expected price decrease, the stablecoin (DAI/COIN) can see heavy buying pressure (as a safe asset) at the same time that CDP holders/ depositors what to burn the stablecoin and cover their longs to prevent loses. In this situation, the market clearing interest rate to hold COIN at $1 (and not break upward) might be significantly negative to cover the expected losses of ETH holders in the system (eg. COIN holders paying for the safety of the stablecoin). The post doesn’t mention if interest rates can be negative, but I think it’s important to keep this scenario in mind and not assume the interest rate must be positive in all cases.
The CDP/DAI style of system has exactly two sets of players that are precisely opposed to each other (they take the opposite side of the trade), the CDP holders and the DAI holders. It is impossible for one set of to profit without the other taking a loss. The MakerDAO system makes a third party in the form of governance token holders, but I feel that this might not actually be necessary. If CDP and DAI holders are equally organized (a big assumption) then I don’t see why a third party is necessary at all. All disputes can be handled fairly between the CDP and DAI holders (the worst that can happen is deadlock, and a mechanism such as an ice age that make both sides lose can force a resolution). This might not be possible in practice, and I see you use the governance token profits in useful ways in your design; but philosophically I think that the simplest solution does away with the governance token entirely and has the system self-governing between its willing participants.
Finally, I think all token voting projects need to think about making it easy for holders to delegate their votes. Having to vote on every proposal is very time consuming and annoying and this causes voter turnout to be very low. If voters could delegate their votes to an intermediary delegate who shares their views and votes in their stead, this could increase effective participation significantly. Of course mechanism must be created to prevent delegate exit scams, but between having a time delay on voting (so if the delegate votes ‘wrongly’ the voters can take their vote back before it goes through) and some kind of deposit to punish bad behavior I think this problem is very solvable and could make voting more legitimate and robust.
Great stuff, really fun getting to break maker back down into components and open up discussion (with monetary incentives!!). Some comments/questions…
- It is VERY uniswap heavy which seems like a concentration of risk. If that is part of the point (go down with the decentralized ship if so) then all good but I think having added incentives to keep liquidity up across the board is important
- A major reason for the success of the sETH/ETH pool is because there is no opportunity cost loss on price movement. This makes the added incnetive “pure profit”. This would not be the case with COIN/ETH
- Like others have mentioned people dont really like to vote. Having some built in delegation mechanism could be useful (yes i know that has its own problems). This seems like one of the biggest opportunities to explore a new design space and maybe find a new novel approach. Giving vote stake to all participants does make sense to me.
- Will there be a COIN supply cap like there is for DAI? I think there should be something ties to relative liquidity in uniswap (for COIN/ETH but also underlying stablecoin markets)
- Liquidation threshold, liquidation penalty - will these operate similarly to maker?
- The META tokenomics is interesting. MKR begs the question of the value of a governance token. And honestly the more centralized something is the more value a governance token has (as long as the value of the system grows) but only up until a point. With limited voting power (not that many decisions to be made) why should I want to hold this token? If it is to help insure some level of decentralization and that “my voice is heard” then its kinda like running a bitcoin node which we have seen people will do with no direct incentive. The options presented are good for consideration, it would be great to build a set of behaviors that we want to incentivize and work from there. It needs to have value if it is to be used to incentivize liquidity providers and other participants in the network. Value comes from desire to hold, so how do we get there? Exciting stuff!
Something interesting that I only just considered:
There current supply of DAI is around $100M. There is about $5M of DAI liquidity on Uniswap, and I would guess the total liquidity on all exchanges is around $10M-$20M. Since for COIN the Uniswap liquidity pool is the price feed, it seems sensible for MetaCoin to enforce that 10-20% of each CDP is used for providing COIN/ETH liquidity on Uniswap.
I think at least some % is required regardless just to solve the bootstrapping problem of “what is the price feed at time 0 when we want to use uniswap as the price feed?”
Thanks for the great project - MakerDAO needs an alternative because that system has flaws (risks) - some of them may not be fixable without rewriting the system.
I think that the DSR as implemented in MakerDAO today is awkward because it is not baked in but acts as a separate contract. I know that they probably made the right decision to have it separate at the launch of MCD, but now it is not clear why we use DAI instead of CHAI and when we are supposed to move DSR-DAI to DAI and vice versa. I think that COIN must have the “savings rate” baked in somehow.
There is a question of negative rates and losing money by holding COIN but I think that’s the risk that we must accept.
I’m not very familiar with Chainlink, but I think it is a good decision to rely only on Uniswap for the price feed. The problem is that there are really only 2 relevant stablecoins on Uniswap: USDT (probably fractional reserve and possibly moving to other blockchains) and USDC. Should we include DAI?
I’d like to see this system supporting EUR and other fiat currencies as soon as the centralized versions are liquid/popular enough. It would be nice to have that in mind when naming the (USD) coin and coding some functions.
I don’t think MakerDAO’s SF changes are responsible for maintaining the peg for most of the time so we shouldn’t copy their actions to build the PID. The peg fluctuated because of ETH price/FOMO factor, speculator sentiment and even BTC price. The direction of MakerDAO SF changes might have been OK for most of the time, but the amount/speed was questionable.
I agree. What would happen with the COIN price if the system determines that ETH/USD is $1050 and in reality it is $1000 because USDT lost its peg temporarily?
I have been pondering different stablecoin ideas for over two years and I totally agree with your concern regarding MCD.
IMHO mechanism simplicity is key, so that governance can be eliminated (along with its token) and the system can function autonomously and maximally decentralized.
Before I propose an idea along those lines, I want to make a clarification. To me, MKR holders (not CDP owners) are the minters, as they back Dai with an overcollateralized amount of MKR. But they only mint Dai if and when there is a borrower wanting to open a CDP (overcollateralized in turn with ETH, BAT, etc.)
With that clarification made, here’s an idea for a stablecoin minting system:
Participating ETH holders deposit ETH in the system.
For every 2 ETH deposited in the system, the system mints 1 ETH worth of stablecoin (=200% collateralization ratio).
Conversely, for every 2 ETH withdrawn from the system, the system burns 1 ETH worth of stablecoin.
The system lends its pool of stablecoin to overcollateralized borrowers through a decentralized and autonomous (forked?) version of Compound, letting the market set interest rates based on supply and demand.
The system also creates a Uniswap market for ETH/stablecoin, but once created, lets other market members supply the necessary liquidity and maintain the peg. (Angel investors may be necessary to jumpstart the Uniswap pool with enough liquidity, but DeFiZap may help ETH bulls keep their ETH exposure).
In order to maintain the system’s collateralization ratio, if the ETH/stablecoin price goes up, more stablecoin is minted and placed in the lending pool. And if the price goes down, some stablecoin is withdrawn from the lending pool and burned.
All profits from lending the stablecoin are distributed among participating ETH depositors. An overabundance of ETH depositors will result in an oversupply of stablecoin. This will lower the interest rates and the system’s profits, driving ETH depositors away from the system, reducing the stablecoin’s supply, and pushing interest rates and profits higher once again. A scarcity of ETH depositors relative to stablecoin demand will have the opposite, but equally self-balancing, effect.
Stablecoin holders who want to earn interest can do so by joining the lending pool. Others may choose to join the Uniswap pool.
Would this system work? What would be the optimum collateralization ratio? Would the system’s profits be high enough to attract ETH depositors? Would the system survive large drops in the ETH/stablecoin price? How resilient would it be under attack from malicious financial actors?
I don’t know.
So I would put up 2 ETH to open a CDP and take out say 250 COIN (so 200% collateralized). Would extra COIN then be minted and added to the uniswap pool with some of my ETH collateral? Interesting idea but that opens up the COIN holder to new price risk as the mix of COIN/ETH will be different when they eventually close the CDP compared to when it was opened. I think most would want to get the ETH they put in back if they follow the rules.
The extraction pushing them closer to liquidation and mass drops in liquidity for uniswap during times when the price of ETH is dropping are also concerns. It does FEEL like something useful should be able to be done with the excess collateral to incentivize liquidity pooling. It adds a little risk but the ETH could be deployed into yield earning protocols and the interest earned flows to liquidity providers.
Thanks for this interesting proposal Ameen. Back in 2016 I co-authored the “Target Rate Feedback Mechanism” post mentioned by Nikolai and more recently I’ve been thinking about other aspects of the Maker architecture that could be improved upon.
The main issue I see besides the points you already raised (centralization, vulnerability of other collaterals etc.) is that minting MKR tokens to bail out the system in the event of a black swan event might not be effective.
Maker resembles a lot an insurance business: MKR holders bear the risk of bailing out the system in case ETH crashes too fast. In exchange for that, MKR token holders are compensated with MKR burned with fees collected (the spread between stability fee and DSR). The main problem with this design is that the value of the asset supposed to bail out the system (MKR) is VERY correlated with the performance of the system itself.
If Maker faces a black swan event it’s possible (if not likely) that MKR also depreciates so much that the system becomes unable to bail out the bad debt. This is known as the death spiral, not at all a new critique to Maker (see here). It’s like insuring a house against fire or natural disasters with other houses nearby as insurance reserve: obviously a bad idea.
The solution: an insurance fund with assets as uncorrelated to the system as possible. This can easily be done with a bonding curve where Meta tokens are issued in exchange for collateral that will be sold in the event of bailouts. Meta tokens accrue value through buy & burn as fees are collected, just like in the current Maker system.
As usual in bonding curves, early adopters/insurers are rewarded with more Meta tokens per amount of collateral they contribute. More collateral is expected to be accumulated as the system generates more Coin tokens, since this means more fees are collected: i.e a higher NPV of future fees per Meta token.
IMO there are two options for reserve/collateral assets:
Only ETH: this has the advantage of simplicity and using the robustness ETH has as the protocol level asset. The disadvantage is that ETH is the same asset held as collateral in the CDPs (100% correlated). It would still serve as an extra buffer to dampen a black swan event as the CDPs go one by one under 100% collateralization ratio.
A basket of assets as uncorrelated to the system as possible: this has the great advantage of being more robust in case the whole system goes down in the event ETH crashes. Using for example tBTC and other uncorrelated synthetics would greatly increase the probability that burning uncorrelated reserve collateral is enough to bail out bad debt. The disadvantage would be the overhead in managing the basket of these different assets. Balancer offers a great solution for that (disclosure: I’m CEO & co-founder at Balancer Labs) as it self-balances any desired basket of assets (see Bonding Surfaces). Still, some level of governance would be required to define what assets should be in this basket.
Happy to discuss this in person at ETHdenver with anyone interested!
Hey, i was attempting (and i think failing at) responding to ameens response to my earlier post. your model is interesting, abstracting the minting from the lending. i see the value in that. my initial concern would be around the response time and frequency for the minting/burning of the stable token as the price of ETH changes. also there would need to be a mechanism for handling if eth drops and people dont immediately close their lending positions and the system has no tokens to burn.
Sorry about that. I saw your response was directed at Ameen. But the 200% collateral comment got me confused. Apologies.
Regarding the proposed system, I have exactly the same concerns as you.
Possible solution: Since there’s excess reserves, a part of them could be used to hedge the system’s position.
Also, let’s imagine that the system allows for elasticity in its reserves collateral ratio (RCR), instead of actively working to maintain a certain level. What would be the result?
If the RCR drops, ETH depositors receive a higher profit, which attracts new ETH deposits, thus rebalancing the RCR.
If the RCR rises, ETH depositors receive a lower profit, which may drive away some ETH depositors, thus rebalancing the RCR.
Therefore, an elastic RCR may allow the system to find its optimum RCR level via supply and demand.
But what if a drop in RCR is faster than ETH depositors’ reaction time? Or if ETH depositors lose faith in the system’s ability to rebalance itself after it falls beyond a certain threshold (i.e. a bank run)?
Then maybe the solution is having both a hedge (to instill faith in the system) and a limited RCR elasticity, especially on the downside or beyond a certain level. Of course, this adds complexity to the system.
Another problem is that, as stablecoin holders join the lending pool, the increased supply of stablecoin may reduce interest rates (and the system’s profits), unless demand increases accordingly. In a way, this effect is similar to the recent addition of Dai savings rate in Maker.
Ultimately, the big unknown here is: what would ETH holders consider a good return from this system (before and after Eth2.0)? Because that’s what will determine the optimum RCR level; the lower the acceptable return, the higher the RCR; and the higher the RCR, the safer the system is. But I’m afraid that the answer can only be found empirically.
Why are people still using trusted price feeds when the oracle problem was already solved?
Hi Ameen, super ingenious idea!!
Only question that I have is “is non-modifiable PID made based on past Maker history legitimate to use in long term given Maker system has been maintained in immature DeFi