What Is a Blockchain Oracle? Ethereum Explained

A blockchain oracle is an application that sources, verifies and transmits external, or off-chain, information to smart contracts on a blockchain. Ethereum documentation uses oracles to explain how contracts can work with information that is not already on the chain.

Why oracles are needed

Ethereum smart contracts cannot, by default, access information stored outside the blockchain network. An oracle makes external information available on-chain so that nodes can use the same recorded data when computing state changes.

Correctness and availability are different

Ethereum distinguishes the correctness of oracle data from its availability. Correctness includes whether data comes from the intended source and remains unaltered. Availability concerns whether the data can be obtained when it is requested.

Putting data on-chain does not by itself prove that the external information was correct, nor does it guarantee that future data will always be available. Oracle designs can differ in their sources, trust models, architecture and direction of information flow.

In short

An oracle connects external information with a smart contract. It expands what the contract can use, while leaving separate questions about data correctness and availability.

Sources

Leave a comment