Why oracles are needed
Smart contracts can only read on-chain state. They can’t call an external API, read a weather feed, or know the current price of BTC on Coinbase. For any contract that needs real-world data — a lending protocol setting liquidation prices, a perp DEX marking positions, a prediction market resolving bets — an oracle supplies that data.
The oracle is a smart contract the dApp trusts. The oracle operator is responsible for pushing accurate external data on-chain. The dApp reads from the oracle’s contract.
Oracle designs
- Push oracles (Chainlink classic) — off-chain nodes aggregate prices from multiple data sources and push updates on-chain when price drift exceeds a threshold. Latency: seconds to minutes. Gas cost paid per update.
- Pull oracles (Pyth) — price data is signed off-chain; the user’s transaction includes a signed oracle update at execution time. Lower gas overhead per chain, enables high-frequency updates.
- Computed oracles (UMA) — optimistic mechanism where anyone can propose a value; challenged values are resolved via a voting process. Slower but suitable for non-numeric data.
- DEX TWAP oracles — use an on-chain AMM’s historical price as a truth source. Cheap but manipulable via flash loans over short windows.
Scale and usage
Chainlink alone secures >$14T in cumulative transaction value. Pyth, live since 2021, now covers 400+ price feeds and pushes updates every 400ms. Most major lending protocols (Aave, Compound, Morpho) use Chainlink for price feeds; high-frequency perp DEXs (Hyperliquid, dYdX) lean on Pyth.
Risks and considerations
Oracles are a dominant attack surface:
- Manipulation — flash-loan attacks pushing DEX prices to feed into a TWAP oracle, exploited lending protocols for $100M+ across multiple incidents (Mango Markets, Cream, bZx).
- Stale data — if an oracle fails to update during a fast move, contracts act on old prices. Stale feeds triggered under-liquidation of positions during the FTX crash.
- Operator fraud — a compromised oracle node can publish false data. Chainlink’s decentralized-oracle-network mitigates this by requiring median of multiple independent operators.
- Reporting delay — during crashes, price moves can outpace oracle update intervals. Protocols defend with heartbeats and deviation triggers.
For protocol designers, oracle choice is a core security decision: which feeds, what aggregation, what heartbeat. For users, the practical implications are indirect — stick to protocols that use established oracles (Chainlink, Pyth) with proven incident history, and avoid those that rely on single-source or on-chain-only TWAP feeds for critical pricing.