Optimistic Oracles for real world events
The key problem with bridging real world assets to DeFi is the bridge. To enunciate it boils down to 2 key problems:
- How do you determine an event has happened in the real world, and then trigger some conditions associated with a smart contract based on that?
- How do you conduct enforcement in the real world in a seamless manner if a default occurs?
Till date we have focused on the second aspect, which arguably is the more difficult bit.
However the first issue of how do you read real world events is also a difficult one.
Sure Oracles exist that can read stock prices etc. But often times the conditions associated with a real world project are more nuanced than that.
For instance when you are dealing with a real world property development project, the loan is often made in tranches. A Quantity Surveyor goes and inspects and determines if the conditions associated with the next tranche release are met or not.
In other scenarios the conditions tend to be a bit more fuzzier, especially if it is a niche asset. Oracles from standardized service providers may not even exist in such scenarios.
For instance an Oracle price feed may exist for real estate in San Fransisco. But the price of a specific house while close to the median, can deviate quite a bit. Houses are the classical example of a Non fungible asset. They conform to a class but one house is not the same as other. And prices within a specific class can deviate based on the quality of fixtures, layouts, streets, internal developments and so on.
Doing a specialised price feed for each of these would become an overkill.
A solution for non fungible real world assets can be created by using an “Optimistic” process.
A liquidator can liquidate a loan and claim the underlying collateral by claiming that either the underlying collateral has fallen in value or the repayments have piled to such an extent that the loan now needs to be liquidated.
The piling of repayments is an objective matter and can be easily validated in a mathematical manner and would typically be beyond contestation.
However the valuation of the asset can and is generally a subjective matter.
In such an event if the borrower disagrees with the liquidation, he can invoke a dispute with the Oracle service which would work very similar to UMA Data Verification Mechanism.
UMA relies on the principle of Cost of Corruption > Profit from Corruption.
A community vote would then be invoked to determine if the liquidation was valid. The community being comprised of human actors would be able to handle fuzzy grey areas and come up with a subjective assessment about what the valuation should be.
Below I am largely paraphrasing Vitalik Buterin with some adaptations.
One common response to suggestions to use any form of human intervention is the idea that this solution goes back to “trusting people”, and so is a betrayal of the values of the blockchain and cryptocurrency industry. While I understand why one may think this at first glance, I would argue that this criticism stems from a fundamental misunderstanding of what crypto should be about.
A well designed human intervention mechanism is not betrayal, but rather an expression, of “crypto values”
The goal of crypto was never to remove the need for all trust. Rather, the goal of crypto is to give people access to cryptographic and economic building blocks that give people more choice in whom to trust, and furthermore allow people to build more constrained forms of trust: giving someone the power to do some things on your behalf without giving them the power to do everything.