Announcing MetaCoin—The Governance-Minimized Decentralized Stablecoin

If we’re using centralized stablecoins on uniswap to establish the price of Eth, we’re effectively using a system of oracles and trusting that centralized stablecoin custodians are not engaging in fractional reserve banking. Why not use a system like Chainlink which uses a federated network of oracles? Each oracle has a reputation score and has to stake collateral so that if it reports inaccurate data or experiences a drop in availability it gets slashed. Each oracle can average the price from multiple price aggregators like coinmarketcap which itself aggregates price feeds from multiple exchanges, making collusion difficult.

2 Likes

You might be interested to learn that a PID controller for the interest rate was part of the original specification, under the name “Target Rate Feedback Mechanism”, and that code for this already exists.

You may also be interested in this simulation of the TRFM demonstrating the basic mechanism written by Fernando Martinelli et al (who are now working on Balancer Labs, which is a sort of generalized Uniswap).

There are a few nuances related to the “target price” and “target rate” in the papers above. In particular, the original design for Dai did not have it pegged to 1 USD or any other asset - this was instead called the “external reference asset” in which the target price was denominated. TRFM adjusts both “target rate” and “target price”, which makes the ‘stablecoin’ act more like a dampened index of the basket of collateral assets. A fixed target-price was supposed to be a stopgap measure until the collateral portfolio became diverse enough such that this floating target price would be relatively stable.

4 Likes

Thanks Nikolai! Your work is an inspiration for all of this. I’ll check out those links!

Is there a system you can point to using Chainlink federated Oracles in production today? If so, how much $$$ does it secure? I’m extremely hesitant to introduce external dependencies that have their own governance as the theme of this design is moving away from that.

Why doesn’t Chainlink build their own stablecoin and use their own oracles?

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