What Is An Oracle?
Executable distributed code contracts on blockchain networks require data verification from sources in the physical world.
In antiquity, an oracle was a person – often a priest or priestess – who offered advice or gave prophecies to people who sought guidance. Oracles were regarded as sacred beings who were connected to the gods.
In the context of blockchain technology, oracles fulfill a similar function. Oracles are bastions of truth.
Many people in the cryptocurrency community discuss blockchains as though they are living, breathing organisms. For now, that is not the case. Although blockchains provide a collectively agreed upon database, they must draw their information from a trusted data source in the physical world.
With this in mind, the best way to ensure accuracy is to consult multiple independent oracles. This is a bit similar to the authentication process for launching a nuclear weapon. While the commander in chief has the authority to order a nuclear strike, the senior officer in the Pentagon war room must verify the president’s identity. Thereafter, a chain of command processes the code to unlock missiles prior to launch.
In the example of launch crews, only two out of five teams must turn their keys simultaneously to fire the missiles.
Likewise, in the blockchain, N-of-M oracles must reach a consensus to sign off on a transaction. Instituting a multiple-oracle protocol reduces the possibility of corruption. A bad actor would need to compromise many data sources in order to jeopardize the veracity of the relevant information. It’s possible to design an incentive structure that encourages the oracles to remain truthful, especially in multiple iteration games.
In practice, an oracle might provide information like prices for a prediction market. Reuters could be considered an oracle for financial data.
Essentially, an oracle connects a user to a data source and (sometimes) verifies that the results of the user’s query are correct. An oracle’s reputation is dependent upon continuously providing reliable information.
Eric Larchevêque, CEO of Ledger, defines an oracle as a trusted entity that signs a claim about the state of the world.
Oracles fall into two major categories: software oracles and hardware oracles.
Software oracles can attest to the origin of a piece of information (i.e. gather temperature data from a reliable weather website). In this instance, the oracle cryptographically confirms that the data came from the trusted weather report. Here, the oracle does not pass judgment on the accuracy of the information. Software oracles may also provide consensus by drawing from multiple sources.
Hardware oracles must verify tangible measurements or parameters that cannot be easily confirmed. These instruments might be targets for tampering. The example provided by Larchevêque is speedometer monitoring by automobile insurance companies. Safe drivers could receive insurance rebates while speed demons may incur additional fees. Fast drivers might be tempted to compromise the monitoring system, so cryptographically secure transmission of the speed measurements and anti-tampering features are necessary.
Fundamentally, an oracle must deliver truth to the blockchain, so that executable distributed code contracts can function purposefully.