Skip to content

Latest commit

 

History

History
39 lines (28 loc) · 2.38 KB

0x303-I3-Oracle.md

File metadata and controls

39 lines (28 loc) · 2.38 KB

I3: Oracle

Control Objective

If a project integrates with external Oracle smart contracts, it is necessary to approach them with limited trust and check that they do not introduce unexpected behavior into our system.

Ensure that a verified contract satisfies the following high-level requirements:

  • Contract follows a tested and stable Oracle standard,
  • The values transferred are additionally verified,
  • Vulnerabilities identified in various Oracle implementations have been taken into account during implementation.

Category “I3” lists requirements related to the Oracle smart contract as one of the components with which the project integrates.

Security Verification Requirements

# Description
I3.1 Verify that, when using Uniswap TWAP as a price oracle, the period is long enough to make its manipulation unprofitable for the attacker (compared to the funds at potential risk).
I3.2 Verify that Oracle data is up-to-date.
I3.3 Verify that no spot oracle is used (e.g. spot price from Uniswap pool).
I3.4 Verify that, when using Uniswap V3 TWAP as price oracle, liquidity is high enough and is distributed widely across most of the price range.
I3.5 Verify that, the use a decentralized off-chain oracles unsusceptible to on-chain price manipulation attacks (e.g. Chainlink) is considered for low liquidity asset, ideally combining it with on-chain oracles to detect malicious values.
I3.6 Verify that the value you are using has had enough time to be reported as invalid and has not been.

References

For more information, see also:

Smart contract audit

Request an audit of your project by SCSVS authors. Contact a specialist.