Definition
An oracle is a mechanism that supplies information to a blockchain application from outside the application's directly verifiable state. A lending contract, for example, may need an asset price to determine collateral requirements or liquidations. The blockchain can verify that an oracle update followed specified authorization rules, but that does not automatically prove the reported information reflects reality. Oracle designs differ in their data sources, aggregation methods, update schedules, incentives, and handling of unavailable or inconsistent values. A single price from a thinly traded market can be especially vulnerable to manipulation, while multiple sources still require careful assumptions. Oracles can also communicate results between systems or trigger external actions. The important distinction is between deterministic contract execution and the quality of the input driving that execution. A contract can operate exactly as written and still produce harmful outcomes when its oracle data is wrong.
Source references
References accompanying this glossary entry:
Educational reference, not financial advice. See our financial disclaimer and editorial policy.