Blockchain oracle
From Wikipedia, the free encyclopedia
A blockchain oracle is a third-party service for smart contracts. Oracles provide trusted information based on the outside-world sources to the on-blockchain smart contracts. An oracle typically encapsulates the real-world complexity outside of the blockchain. This provides different engineering advantages, chiefly that critical errors and potential points of failure are easier to mitigate off-chain than on-chain.[1]
For example, in a contract to automatically purchase bitcoins at a predetermined price, the fulfillment condition is based on the current exchange rate for the bitcoin; an off-chain oracle can constantly monitor the price to provide the triggering condition to the contract.[2]
Kustov and Selanteva list the following types of oracles:[2]
- a program, external to the blockchain that can provide, for example, sports results for betting or traffic camera information for ticketing the offenders;
- a unit oracle that is built-in into a physical sensor (for example, the same traffic camera);
- an entry oracle executes the code that is actually stored on-chain and provides the result (say, the bitcoin price matching the condition) as an input to the contract;
- an exit oracle handles the results of the smart contract (for example, paying a fee) by manipulating a real-world device (say, opening a door). Its code can also be stored on-chain;
- an oracle agreement is an aggregator of many oracles to determine the condition when the real-world oracles disagree.