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]
Examples
editKustov 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 he door). It 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.
Concerns
editIf an oracle relies on a single source of truth (centralized), that can lead to issues: the data source can be hacked in a man-in-the-middle attack, or altered by its owner, in order to sway smart contracts. Decentralized oracles (consensus oracles) increase the reliability of the information provided to smart contracts by querying multiple data sources, thus distributing trust between participants. However, this does not achieve trustlessness, since oracles are not part of the main blockchain consensus, and thus not part of the security mechanisms of public blockchains.[3]
References
edit- ^ Kustov & Selanteva 2022, p. 86.
- ^ a b Kustov & Selanteva 2022, p. 87.
- ^ "A systematic literature review of blockchain-based applications: Current status, classification and open issues". ScienceDirect. March 2019. Retrieved 4 April 2024.
Sources
edit- Kustov, Vladimir Nikolaevich; Selanteva, Ekaterina Sergeevna (2022). "Mutual Recognition Mechanism Based on DVCS Oracle in the Blockchain Platform". Utilizing Blockchain Technologies in Manufacturing and Logistics Management. Advances in Business Information Systems and Analytics. IGI Global. ISBN 978-1-7998-8699-0. Retrieved 2024-04-16.