Announcing MetaCoin—The Governance-Minimized Decentralized Stablecoin

Have a look at their code & their downtime & then be horrified. They are doing their best :upside_down_face:

I’ll spare the lecture on establishing Observability and Controllability of the system, and building a Robust Controller that will govern such uncertainty within the system (especially if you’re not allowing tweaking of the PID loop gains), but I will say that it will be important to model this mechanic in order to ultimately get it right and ensure no errant feedback loops are created that affect the stability of the system from the reliance of fiat-backed coins (which I agree might be a good methodology if leveraged well). My main point here is that PID control is liable to be extremely unstable when dealing with something as uncertain as an economic system of this magnitude, but thankfully there are solid areas of research in Control Theory that will be better suited to this type of system.

Tools like cadCAD are being built for this purpose, which are open source modeling tools that can be used to design such a system effectively and collaboratively in the open. What makes this really nice is that we have tons of data available from the Dai system that we can leverage to prove our designs in practice. I applaud this effort, if only it helps reinforce the nature of the problem with Dai, and creates a second stablecoin system that’s maximally censorship-resistant and safe from potential governance risk attack vectors.

Also, let’s build it with Vyper :kissing_smiling_eyes::ok_hand::heart::snake:

5 Likes

A thought on possibly diversifying the initial distribution further might be to offer some shares to people who have donated to Ethereum causes on Gitcoin.

Though I do not know how this could/should be accounted for in the distribution model, and could have implications for how early governance may / may not work.

2 Likes

@ricburton I’m familiar with these and am not horrified. Could you elaborate on what you think the problem is?

@ameensol Synthetix, Loopring, and Aave are all using Chainlink oracles ATM (see here).

Synthetix is either using Chainlink right now or in the process of integrating it into their system. The problem with introducing externalities is that there is no way around this problem. By using basket of centralized stablecoins on Uniswap as your price feed, you are effectively using the custodians of those stablecoins as your oracle network.

It’s also worth noting that Chainlink is not its own blockchain, the LINK token itself resides on Ethereum but the oracles themselves are independent and run software that communicates with smart contracts on Ethereum. In any case, I’m not trying to shill the project or the token, just pointing that they have a very well thought out system that mitigates the problem as much as possible. I think it’s worth looking into how it works to see if it’s more censorship resistant than simply trusting companies holding dollars in US banks.

1 Like

META Inflation Rewards

Incentivizing Uniswap pool liquidity is a high priority (especially considering the reliance), but using inflation to this extent initially as the method to achieve this will likely have pretty brutal effects on the META price – Using SNX as the example, there’s still yet to be any SNX unlocked from the incentivization pool - this starts in March, note SNX price was $0.05 at that point last year, it’s now $1, my guess is there’s a large number of people who didn’t expect SNX to appreciate so much when they first locked their SNX - As this SNX is unlocked there’s going to be a continuous stream of SNX likely pointed towards the market.

Another thing worth noting here is that SNX recently announced the smoothing of their inflation schedule - Imo a good call rather than cliffing the inflation.

My take would be rather than a 40,20,10 schedule, simplicity wins and there’s just some consistent inflation given to liquidity providers, or perhaps just a less steep cliff – Mainly just to not flood the market with liquidity provider tokens. Assuming some vesting/holding of Blood & Sweat META holders, the majority of tokens entering the market would be from inflation @ 40% in the first year.

Liquidity Incentives

  • Splitting fees between META holders and COIN/ETH liquidity providers instead of all fees going to META holders

    • Splitting the 10% spread between DSR & stability fee across the META burn and liquidity provider reward might just end up being such a small piece of the pie it may not be worth. One solution to this would be low inflation goes to liquidity providers & burning META with all fees – At some point of scale, it makes sense that fees scale better than inflation, eventually with 100,000 liquidity providers the inflation is hardly necessary, while the fee still is burning a large value of META.
  • Adding inflation to META and directing it to COIN/ETH liquidity providers

    • Agree inflation is a useful tool – There’s also been a shitload of token projects introduce huge inflation with no real point.
      • Imo a low inflation, going directly to liquidity providers makes the most sense - (META is being burned consistently through the fee, META is being rewarded constantly for providing liquidity).

Voting Rights

Multi-weighted governance is fucking interesting – I wonder when looking @ the already low asf MKR voter turnout – If these other groups (COIN minters/holders/liqduity provdiers) would actually increase this – I guess with MetaCoin, votes are only really about pushing a Happy ending, so more voters = more chance of a instant happy ending ococuring.

Happy Ending

Would it be possible to push ETH rather than redeem? Would make the ending happier lel.

Initial META Distribution

This is as interesting as fuck. Basically, building a new, functional airdrop - Using ETH bled for a distribution needs a whole article written about it – InterDAO airdrops incoming.
Mechanics around Metacoin setup spending & Blood/Sweat distribution is interesting too.

To confirm how the bleed mechanics work (breaking down what I think you mean with “This favors those who have bled the most, instead of basing the distribution on current shares which could have been recently purchased.”)
If I joined MetaCartel DAO with 10 ETH at 1:1 ETH:SHARE and the ETH:SHARE value is now 0.77 – I’ve lost 2.3 ETH, meaning I’m up x% META distribution.

If I had joined Metacartel last week with 10 ETH, when the share value was at 0.77 in the time to now, the share value hasn’t changed, I’ve lost no ETH, I get no META distribution?

Overall, 11/10, MetaCoin Incoming :call_me_hand:

1 Like

I am very weary about any DeFi project relying solely on DEXs for price data, as we’ve seen with the recent Kyber vulnerability, it is fairly trivial to manipulate prices in the short term. To mitigate this you could use the volume weighted price as you said, but then you wouldn’t be getting real time price data which can a serious issue when using volatile cryptos as collateral as prices can move very very quickly. This could adversely affect the liquidation process and in the worst case scenario could lead to a system that is undercollateralized.

Using stablecoins as a proxy for USD for price feeds is extremely dangerous. When using DAI/sUSD markets you’re relying on a small group of oracles (smaller than what chainlink currently offers) and when using USDC/USDT/GUSD/BUSD/TUSD markets you’re relying on a centralized institution. Both kinds of stablecoins can’t guarantee that the peg will hold, and thus it shouldn’t be assumed that’s it’s the same as the USD exchange rate. Even using multiple stablecoins won’t help as many stablecoins suffer from the same systemic issue.

Additionally by relying on just DEXs for price data, you’re not getting a market-wide view of the price/liquidity, only a small subsection that is not nearly as liquid as its centralized counterparts. To get the most accurate price data you need to aggregate from all available exchanges (DEXs and CEXs), and so you will always need an external oracle network when fetching accurate price data. Oracles will end up becoming the attack vector, so they will need to be security-hardened by having the same properties as blockchains: namely decentralization and no single point of failure. Decentralization (of both the oracle nodes and the data sources) assure the reliability and tamper-proofness of the price feed data that ultimately determines the actions a smart contracts makes.

I’m not saying Chainlink is the perfect solution (many improvements are still to come) or solves the oracle problem (not really possible), but their system has proven to be by far the most robust, time-tested decentralized oracle solution that is being used in production today by multiple DeFi projects with zero issues observed.

Also I’m really not sure what @ricburton means by downtime? I’d like to know more about what you mean by that, I haven’t seen any downtime in oracle networks that are used in production.

1 Like

I think not having the most accurate pricing data is sort of OK. We would be consciously making the trade off to not have price oracles in the design and instead favor the DEX provided volume weighted average of the selected fiat-backed stablecoins. Uniswap v2 will have moving-averages built-in.

Maybe someone else can fork MetaCoin and build a stablecoin that uses ChainLink oracles, and we can see how the market expresses its preference.

Uniswap V2 oracles are generally designed around time weighting (TWAP) not volume weighting (VWAP) so might need to rework this a bit.

Also, manipulation resistance scales with both liquidity and the time over which you are averaging across - so worth discussing the amount of recency needed here.

Overall I’m a huge fan of maximizing automation + minimizing governance approach so happy to discuss Uniswap oracles anytime

Keep in mind that centralized stablecoins can be frozen at any time, regardless of whether they’re being used in a trustless decentralized exchange or not. If your oracle system depends on the exchange of these permissioned ERC20s, then MetaCoin is not maximally trustless. That’s more of an issue than price accuracy imo, especially as it increases in marketcap and draws more scrutiny from governments.

3 Likes

Also it doesn’t have moving averages built directly in, it stores additional data that makes external moving averages significantly better / more reliable / more efficient / more manipulation resistant.

To add onto that, if you decided to mitigate this issue by only using permissionless stablecoins for your price data then you would be relying on basically just the ETH-DAI pair, and at that point Metacoin wouldn’t be any more resilient than DAI itself

Jeez you Link shills don’t give up. Go build your own stablecoin using ChainLink :slight_smile:.

This is OK. The bet is that they all won’t blow up at the same time, and if they do, that the governance can trigger a happy ending.

1 Like

So is it impossible to get volume-weighted averages? Am I shit-out-of-luck here?

Maybe? I think you can make a pretty good oracle from a basket of stablecoins on V2 using TWAPs

Is there a reason it needs to be volume weighted and not time weighted?

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 :grin:
  • 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!

2 Likes

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

1 Like