Blockchain adoption has been increasing at a staggering speed, but information within the blockchain world (known as “on-chain data”) still lacks seamless integration with information in the real world (known as “off-chain data”).
There are many reasons we might want to use real-world data within blockchain:
- Insurance: was there a drought last month? was a certain protocol hacked yesterday?
- Financial Markets: what is the current price of $AAPL stock?
- Betting: who won the sports game last night?
- Supply Chains: where are my goods? when were they packaged?
- Governance: what were the voter tallies for each choice?
Calculations are another massive use case. Machine learning calculations would not be feasible on-chain given the gas fees associated with so many calculations. Instead, performing calculations off-chain and then reliably bringing the results on-chain is crucial for any firm doing data-intensive work (hint: many firms).
These are only a small fraction of potential use cases, and Smart Contracts limited to on-chain data would only be able to do a fraction of what’s possible. Off-chain data and calculations are important for scaling in a cost-efficient and privacy-preserving manner. Additionally, blockchain as a whole will evolve in unpredictable ways and so will the need for data to move between on-chain and off-chain both quickly and securely.
Currently, price-feed Oracles such as Chainlink are optimized for singular, repeatable values such as financial prices (note: Chainlink does more than just price feed oracles). However, in the future, on-chain data and off-chain data will become increasingly intertwined and there’s a strong need for a more generalized version of an oracle, whereby any type of “truth” can be confirmed.
That’s where optimistic oracles come into play.
An Optimistic Oracle consists of pseudonymous actors who relay truths onto blockchains out of economic interest.
So various parties are economically incentivized to broadcasts truths onto blockchains, specifically for arbitrary data, meaning all forms of data rather than just price-feeds.
UMA Protocol is the leader in this space and I’ll be focusing on their ecosystem, which consists of the following parties:
- A Requestor: someone who wants any type of answer (=“is this person’s insurance claim valid?”)
- A Proposer: someone who provides an answer (“yes, it is valid”). The Proposer must post a bond, which they lose should their answer be determined incorrect based on a dispute created by a Disputer.
- Disputers: those that disagree with an answer provided by a Proposer (“no, it was not valid as their insurance policy expired the day before”). The Disputer must also post a bond, which they lose should the Proposer’s response be considered truthful.
The term “optimistic” is based on the fact that the Proposer’s answer is considered as correct, in the absence of any dispute. However, there’s a period of time in which a party may disagree with the response and launch a dispute. This party, known as a Disputer, would commence a resolution process which is known Data Verification Mechanism (DVM).
In the DVM workflow, UMA token holders vote independently on what they consider the truth, and votes are aggregated to determine the outcome. Either the Proposer or the Disputer is considered correct, and the loser of the outcome loses their posted Bond.
Example: One of UMA’s clients is Sherlock, a decentralized protocol offering DeFi exploit insurance. Sherlock begins with their own committee vote on a claim, but uses UMA’s optimistic oracle as the second method in the evaluation of a claim should escalation be required.
It’s important to explicitly acknowledge that there is a trust assumption that at least 1 honest disputer exists, who will disagree with an incorrect Proposer response. That being said, disputes tend to be rare due to economic incentives (it costs more to be malicious than to be honest). In order to have a malicious response be executed, one would have to overtake 51% of UMA tokens in order to decide the DVM’s outcome.
Optimistic Oracles vs. Price Feed Oracles
Price Feed Oracles stream prices on-chain but generally without any recourse or error protection. An excellent paper summarizes numerous Price Feed Oracle exploits, and offers time delays as viable solution. For example, a time-delay of 15 minutes may enable truthful parties to detect oracle manipulation. These time delays can be valid solutions at times, but may not be sufficient during volatile periods, or when a rapid price change is warranted.
Another paper builds upon this time-delay idea to suggest using reputation for security. This could entail using only oracles with strong reputations, or having oracles post collateral, similar to how UMA Proposers and Disputers must post bonds.
The below graph shows a quick look at price oracles and basically shows that data gets aggregated from various sources, which then get queried by Chainlink Nodes, and aggregated in turn for an answer that’s considered reliable. While Chainlink also operates in areas outside of price feed data, the below graph reflects that aspect of their business.
In contrast, optimistic oracles may not only be used for price-feed data, but also for a much broader class of “truths” that may be desired. Thus far, they’ve also been subject to less exploits than price feed oracles, but they’re also more nascent.
DeFi is only in its infancy, and we can expect that the amount of use-cases for Oracles will only grow in the future with many being unrelated to solely price-feed data, which holds promise for optimistic oracles.
Optimistic oracles provide a more broad and flexible solution that can use any arbitrary type of data that’s requested. The disadvantage is that there may be delays, due to the period in which a Disputer may launch a dispute based on the answer given by a Provider.
There’s already a big need for off-chain data to come on-chain, in a safe and reliable manner. While price feed data is already a common implementation of existing oracle solutions, in the future there will be an increasing need for truthful answers for use-cases beyond just price data.
UMA Protocol is the leader in optimistic oracles, and has a Requestor who may seek any given answer. A Proposer provides an answer that’s considered truthful, but may be disputed within a given time frame. In this case, a process known as DVM commences in which UMA token holders aggregate independent votes to see who is correct.
In the future, there is hope for a generalized framework whereby optimistic oracles can power all sorts of contracting agreements. Should there be a way to get any type of truth or data on-chain, it will be a new mechanism for writing smart contracts that have real-world input.