Stablecoin Oracle Discussion

I had a quick question that I thought might be worth discussing concerning USD stablecoin oracles.

It is starting to look like after the end of this week we will have 3 different stablecoins Vault types that will be used for DAI collateral. All of which have liquidations turned off and have a fixed asset price of $1.

I’m curious how turning liquidations on for these assets is going to work in the future or if we are ever going to do that. I suppose one question to answer regarding this is what a proper stablecoin oracle even looks like.

Usually, oracles quote the price of the asset vs the USD in order to maintain a relationship to PEG. I am curious how much this makes sense for USD stablecoins. Most of these stablecoins have the option to be redeemed for $1 no matter what the current market rates are, so how much should we care about the current market price of the individual stablecoin? Would it make more sense for us to use a Stablecoin:DAI oracle for the purposes of vault liquidations. My guess there is no, because I don’t think it would offer much in the way of an arbitrage opportunity. Maybe it would make some sense to create some sort of stablecoin index that is quoted against USD and use that oracle for all of the stablecoin assets?

I don’t know that I have any good ideas necessarily for how a USD stablecoin oracle might work, but figure it would be worthwhile to throw out the discussion and see if others have any thoughts.

So what do you think should we use? Fixed $1 prices forever? Should we have an oracle comparing how they trade vs DAI? Just use the USD trading price on secondary markets? In general, how will this work going forward?

I would love to hear anyone’s thoughts regarding the above.

3 Likes

You’re right overall, however, the cost of redemption in an external environment is not what should be considered here.

You want to consider the cost of an autonomous liquidation (i.e the system being able to execute on its own if needed).

For that reason, I think it’s clutch to have oracles here. Arguably more important than any other asset. If this is overlooked, you’ll wind up with a mega mega exploit opportunity. Safety first :slight_smile:

If I’m not making sense (which is usually the case, haha :laughing: ) think of it this way.

Imagine “on-chain” being it’s own environment. Pricing is different on-chain compared to centralized opportunities. Similar to how you may have price differences between different geographies due to environmental factors (regulation, capital controls, etc…) This is why if I’m in the middle of Africa, and trying to buy bitcoin, I would not be expected to get Coinbase rates for my trade. I’d get the market rate and perhaps using the Coinbase rate as a reference rate at best. Best real world example here is 2017 “kim-chi premium” --> Article https://www.investopedia.com/terms/k/kimchi-premium.asp

1 Like

So just to make sure we are clear: your position is that we need a Stablecoin:USD oracle that would represent the individual stablecoins value within our local market? Local market being “on-chain” in this instance.

Yeah, I think so :slight_smile:

I think even if we keep stablecoins pegged to $1 usd we should at least turn on liquidations for when vault holders go below the collateralization ratio.

Yeah i think i kind of overstated the problem here as it pertains to liquidations. The fixed price is just a potential problem to be considered, and it definitely makes sense to turn on liquidations just to make sure the collateral is liquidated as the vault accrues fees.

1 Like

Great question and something I’ve thought about extensively. Rather than any single reason, I think a multitude of factors come into play that make it attractive to have a constant Oracle rather than a dynamic price for fiat-backed stablecoins.

The user story behind using fiat backed stablecoins to generate Dai is market-makers and auction-keepers trying to get liquidity. The lower collateralization ratio of fiat-backed stablecoins is an example of this, as it allows more leverage (more Dai generation). To a certain extent there is a third class of user that speculates on the Dai peg dropping when the peg is above $1. These are all behaviors we want to encourage.

  1. It ensures auctions participants are well capitalized (leading to more competitive auction prices).
  2. It ensures market-makers can get on-demand Dai inventory leading to less peg volatility.
  3. It ensures speculators can push the price of the peg down when Dai is trading above $1.

One way to encourage the above mentioned participants is to reduce risk. Using a fixed price Oracle that means liquidations can only be triggered by stability fees and time-delayed governance actions is a very powerful assurance.

So lets change context to liquidations. Liquidations are a function of the Maker Protocol trying to protect itself from falling asset prices so the protocol doesn’t have to cover those losses (stability fees and MKR dilution). Fiat-backed stablecoins have unique guarantees compared to normal collateral types in that they have redeemability for fiat from the issuing entities.

So lets set up a few different scenarios and see how they play out. I’ll use fiat-backed stablecoins and USDC here interchangably but these arguments all apply to PAXUSD and TUSD as well.

Scenario 1:
Crypto assets start mooning. Everyone wants to get on the rocket, Coinbase and Binance are crashing due to the huge influx traders. Prices of stablecoins tank, as traders are willing to pay a 10% premium to get out of their stable assets and into the mooning crypto assets. Let’s say both USDC and DAI temporarily hit $0.90. If we had a dynamic price Oracle we would see a bunch of USDC liquidations. But why is this a good thing? What has changed about USDC? Is it really worth $0.90 if it can be redeemed for $1. Is there an expectation that the fiat-backed stablecoins should return to their $1 peg? I think having a constant Oracle is actually a great defensive mechanism in this scenario in that it inhibits liquidations that don’t need to happen.

Scenario #2:
The issuer of the fiat-backed stablecoin pulls a Tether and starts printing unbacked stablecoins OR removes some or all of the existing deposits backing the current stablecoin supply. As the market becomes aware of this, the price of the fiat-backed stablecoin starts to crater. “The money is all gone, these tokens are worthless, dump it. take anything you can get for it!”. You start to see very quickly that fiat-backed stablecoin prices are really just binary. They’re either backed and thus redeemable or they’re not backed and thus worthless. In the later case the Maker Protocol would be forced to liquidate almost every USDC Vault position and would be unlikely to recoup much. For the sake of arguments let’s say protocol obtains and average price of $0.20 per USDC. In terms of magnitude this is almost the same as a total loss.

What happens next? Well legal proceedings would start against the custodian for fraud. It may take a long time for these legal proceedings to play out. But ultimately depositors are a type of creditor that would get a cut of the payout (if any). Unlike the crypto world, there is a whole web of legal infrastructure to claw back stolen funds / recompensate creditors. My argument is that the protocol will have a better game-theoretic outcome by not liquidating the fiat-backed stablecoin and instead maintaining the legal claim on the underlying than it is try to dump the tokens and relinquish that legal claim. In other words, the expected value of the legal claim is greater than the difference in price between liquidating the fiat-backed stablecoin immediately and liquidating the fiat-backed stablecoin at a later date. One thing I want to emphasize here is that the benefit of the static Oracle over the dynamic Oracle in this scenario is that it gives the Maker Protocol more flexibility. Governance could still decide they don’t like the odds of the legal case or don’t want to wait for it to resolve and initiate governance action to liquidate the USDC at the fmv in batched amounts (perhaps even find OTC buyers and create auctions with price floors of the agreed amount). It’s a more controlled way of adminstering liquidations that leverages the unique properties of fiat-backed stablecoins.

I think even if we keep stablecoins pegged to $1 usd we should at least turn on liquidations for when vault holders go below the collateralization ratio.

Completely agree, there’s no reason not to turn on liquidations due to stability fees.

2 Likes

Great post thanks for sharing your thoughts.

I certainly think the points you made here about “Mooning” non-stable assets and the bit about arbitrage opportunities when DAI is trading above peg are big positives for the fixed value oracle.

I did want to touch on this a bit though:

isn’t there a whole host of problems that might arise from this though?

A few things I can think of:

  • any settlement is going to be paid out in USD which the protocol has no way to hold
  • not a lawyer but not sure if a piece of software like the protocol would even have a legal claim to any settlement
  • what would we even do with the money when we got it? Buy DAI and burn it? Buy MKR and burn that?
  • How would emergency shutdown work during this period?
  • Couldn’t this lead to situations where DAI is undercollateralized?
  • Wouldn’t there be several system values such as the sin that would be invalidated during this period?

Furthermore, I wanted to touch on how you see this working in practice? We mention that Governance could still decide they don’t like the odds of the legal case and could trigger liquidations. What exactly would governance be doing here? Raising the LR for these vaults until all of them are liquidated?