In this track: Smart contract security foundations
advanced · 4 MIN READ

Oracle manipulation basics

A quoted value is only as robust as its source and update rules.

LET’S PICTURE IT

A shop should not price every asset from one tiny trade at a nearby stall.

SEE IT FOR YOURSELF
Receive, check and share across independent nodesStep 1 / 4
Receive, check and share across independent nodesIncoming dataCandidate instructionNot yet trustedNode AReceives the messageApplies local checksEach participant has a local view of incoming informationNode A checksAuthorizationProtocol validityValid candidateEligible for next stepsNot a finality promiseApplication safety is a different claim from protocol validityNode AShares checked dataNode BChecks for itselfNode CChecks for itselfNode ARules checked✓Node BRules checked✓Node CRules checked✓Agreement on history adds the consensus mechanism

A node receives a proposed transaction or block-related message. Receipt is not the same as accepting its claims.

Animated local teaching model. No wallet, RPC or live blockchain data. Some labels and hashes are abbreviated for readability.

Identify the exact source

An oracle can report a market value, reserve ratio or external fact. Determine how that value is produced, updated and authenticated.

Trace influence paths

If a protocol reads a thin market’s instantaneous ratio, an actor may influence the observed price through trades. The relevant cost and duration depend on the design.

Check freshness and units

Even an authenticated feed can be stale or expressed with unexpected decimals. Validate the fields, timing and bounds required by the application.

Test adversarial states

Use local scenarios with changed prices, delayed updates and extreme values. Document the residual trust and failure behavior rather than treating an oracle address as a complete safety argument.

Reason about the scenario

source → update process → reported value
application checks → units, freshness, bounds

Review who can influence each stage.

Pseudocode or a simplified scenario for local reasoning. This is not a production contract or a completed security review.

QUICK CHECK · NO PRESSURE

Does an authenticated price automatically guarantee freshness?

Your progress stays in this browser.
Keep exploring the original referenceSolidity documentation ↗

Original explanations by EtherTools. Examples are educational and source-linked; this site is independent of the Ethereum Foundation. Our approach.