A New DeFi Design to Minimize Oracle Usage
Today we are announcing a DeFi contract design for:
- Priceless — no on-chain price feed!
- Multi-sponsor — pooled risk!
- Synthetic tokens — ERC-20 tokens that can track anything.
We believe that oracles are the single biggest problem facing DeFi today. Problems with oracles have been made clearly visible by recent events: the bZx flash loan attack, SNX oracle front running, and Maker’s Black Thursday. We believe DeFi can be made safer and more secure by minimizing oracle usage. We call this “priceless” contract design.
“Priceless” contracts are designed with mechanisms to incentivize counterparties to properly collateralize their positions without requiring any on-chain price feed. These mechanisms include a liquidation and dispute process that allows counterparties to be rewarded for identifying improperly collateralized positions. Unless a position is liquidated, it is assumed to be solvent (properly collateralized). Oracles are only used when a liquidation is disputed — which is designed to be rare.
One analogy for this design pattern is the traditional legal contract. If Alice and Bob write a contract under US law they (hopefully) enter into that contract without any intention to end up in litigation. Provided that Alice and Bob both think the other person followed rules of the contract, they will never use the court system. Priceless contract design applies similar principles by reframing the “oracle” as a type of court system: oracles should only be used as a backstop to resolve disputes that cannot be handled by mechanisms codified in the contracts themselves.
Synthetic tokens are collateral-backed tokens whose value fluctuates depending on the tokens’ reference index. They are created by depositing collateral into a smart contract and minting tokens backed by that collateral. One example of a synthetic token is USStocks, an ERC-20 token launched last year to track the value of the S&P500.
Up until now, synthetic token designs have required the smart contract to know the value of the collateral at all times, as reported by an on-chain price feed. “Priceless” synthetic tokens differ because they do not require an on-chain price feed to indicate whether the contract is properly collateralized. Instead, they have a liquidation mechanism that allows anyone to liquidate an undercollateralized position.
In this design, liquidators can choose to liquidate positions based on their own off-chain view of the reference index for the token, which informs their view on whether the position is properly collateralized. Positions that have not been liquidated are assumed to be properly collateralized.
Liquidators are kept honest by disputers who are rewarded for catching invalid liquidations. Only when a liquidation is disputed is an oracle needed. If the price returned by the oracle implies that the disputer was correct, the disputer is rewarded with a penalty charged to the liquidator; conversely if the disputer was incorrect, the disputer forfeits a bond to the liquidator.
This system of incentives functions to minimize oracle usage while keeping the entire system correctly collateralized.
Right now, on testnet, you can use the tutorial to deploy your own token to track anything. Some ideas include:
- Real world assets (e.g. USD, local currencies, gold, oil, SP500)
- Cross-chain cryptoassets
- Bitcoin/altcoin dominance trackers
- Tokens to track total collateral locked in DeFi projects (like Uniswap or Compound)
- Tokens for non-tradeable indices (like Poopcoins to track poop sighting in SF)
- Or join our #tokenideas channel in Slack for more ideas