Randomness Oracle
Pronunciation: RAN-dum-nus OR-uh-kul
Definition
A randomness oracle supplies smart contracts with random values using a verifiable proof, threshold process, commit-reveal scheme, or trusted service. Security properties are separate: the value should be unpredictable before commitment, unbiased, unique to the request, and available despite withholding attempts. Reusing block data or a public seed without protection can let validators or users influence outcomes. Applications must bind randomness to the consumer, chain, request identifier, and purpose.
Overview
A randomness oracle addresses the difficulty of generating unpredictable values inside deterministic smart contracts. A consumer submits a request, the oracle produces an output, and a callback or transaction delivers it with evidence the contract can verify. Security properties are separate: the value should be unpredictable before commitment, unbiased, unique to the request, and available despite withholding attempts. Reusing block data or a public seed without protection can let validators or users influence outcomes.
Applications must bind randomness to the consumer, chain, request identifier, and purpose. They should verify callbacks, prevent replay, and define timeout or retry behavior. A verifiable proof confirms generation under the oracle’s construction, while economic fairness still depends on how the application uses the result. Operational records should retain the exact report, block reference, source configuration, and rule that consumed it. This distinction is essential when a technically valid oracle message produces an economically incorrect payment, liquidation, or release decision.
A report can be validly published on-chain while still being stale, mis-scaled, or unsuitable for the decision that consumes it. Randomness Oracle should specify the reported value or event, authorized sources, aggregation method, update trigger, timestamp, decimals, and validity conditions.
The trust model includes data providers, node operators, signers, transmitters, contracts, governance, and any emergency controls. Multiple reporters do not create independence when they rely on the same exchange, API, infrastructure provider, or market methodology. Operational takeaway: Randomness oracles must provide unpredictable, unbiased, request-bound, and live outputs, not merely values that look statistically random. A randomness oracle supplies smart contracts with random values using a verifiable proof, threshold process, commit-reveal scheme, or trusted service.
Key Takeaway
Randomness oracles must provide unpredictable, unbiased, request-bound, and live outputs, not merely values that look statistically random.
Sources
- Ethereum Foundation Documentation: Smart Contracts — Ethereum Foundation (2026-07-30)
- Ethereum Documentation: Oracles — Ethereum Foundation (2026-07-30)
- Chainlink Documentation — Chainlink (2026-07-30)