What Is an Oracle?
An “oracle” sends data from the outside world, such as the daily temperature or the number of votes a political candidate received, to a blockchain such as Ethereum. A smart contract on the blockchain can then use the data, typically to make a decision about whether to dispense money and to whom.
Here’s a more concrete example: Farmers sometimes purchase agricultural derivatives, which provide insurance in case drought wipes out her crops. If the weather doesn’t go the farmer’s way one season, the derivative will pay her a lump sum to make up for the losses.
An oracle helps an Ethereum smart contract perform this sequence of tasks automatically. Smart contracts are tools made possible by blockchains such as Ethereum, which execute the terms of a relationship only if the correct conditions are met. Ethereum also happens to support the world’s second-largest cryptocurrency by market cap, ether.
For example, at the end of a season, a weather oracle described above might inform the smart contract that it rained only 10 days or less this season. It sends this information directly to the smart contract, which then knows it is supposed to pay the farmer.
Conversely, if the season sees more than enough rain, the weather oracle will inform the smart contract, and the farmer will not be paid.
What are the problems with oracles?
The defining quality of a blockchain like Ethereum is that it’s able to run smart contracts. Once programmed, the smart contract is fully controlled by the blockchain; no entity needs to be trusted to execute the rules, and no middleman can prevent the transaction from taking place, assuming the conditions for the smart contract are met. The contract simply does what it’s programmed to do.
However, an oracle is a data feed run by an entity; in the above example, it’s a weather oracle. Blockchains like Ethereum were created to move away from third parties, yet an oracle is one.
Trusting a data source can lead to issues. The owner of an oracle’s data feed, for example, could post inaccurate data in order to sway smart contracts in favor of the data feed owner. Alternatively, someone could hack the data feed to sway the data in their favor.
Smart contracts that are not dependent on oracles don’t have this problem.
That said, researchers are exploring various ways to mitigate this issue and create oracles that are more decentralized or otherwise protected against bad actors. One such area of research is for oracle computers to use Trusted Execution Environments (TEEs), special areas of hardware with extra security, making them difficult to tamper with.
What applications use oracles?
Many Ethereum applications use oracles. Prediction market Augur, for instance, lets participants bet on what will happen in the future. For example, participants could have bet “yes” or “no” on the question: “Will Joe Biden win the 2024 election?” Augur would use data from oracles to figure out whether or not Biden won, thus settling the bet.
Other platforms, such as Chainlink, make oracles a central part of their platforms, and have explored various ways to make oracles resistant to false information.