- Source: blockchain-security-auditor.md (The Agency Specialized, smart contract security audit agent) - Entities: The-DAO-2016, Euler-Finance, Nomad-Bridge, Curve-Finance - Concepts: Reentrancy, Oracle-Manipulation - Updated: index.md (消除了source missing标记), overview.md, log.md
3.2 KiB
3.2 KiB
title, type, tags, sources, last_updated
| title | type | tags | sources | last_updated | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Oracle Manipulation | concept |
|
|
2026-04-25 |
中文定义
预言机操纵(Oracle Manipulation):攻击者利用 DeFi 协议对价格预言机输入的信任,通过在单笔交易内(通常借助闪电贷)操纵市场价格,从而在借贷、清算、DEX 交易等场景中获取非法收益的攻击类型。
问题描述
许多 DeFi 协议依赖链上价格预言机(直接从 AMM 池获取价格)来计算抵押品价值、清算阈值、交易价格等关键参数。由于 AMM 的"即时价格"可以被单笔交易内的操作所操纵,攻击者可以在无需长期持仓的情况下:
- 在操纵价格时执行借贷/清算获取超额资产
- 在价格恢复后平仓获利
操纵模式
1. AMM 即时价格操纵(Spot Price Manipulation)
// 有漏洞的代码:使用 AMM 即时储备计算价格
(uint112 reserve0, uint112 reserve1,) = pair.getReserves();
uint256 price = (uint256(reserve1) * 1e18) / reserve0;
// 攻击者:在同一笔交易中先Swap大量代币改变储备,再执行借贷
攻击步骤:
- Flash Loan 借入资产 A
- 在 DEX 中用资产 A 兑换资产 B(推动 B 的价格)
- 操纵后的价格被借贷协议读取,攻击者以虚高抵押品价值借款
- 归还 Flash Loan
- 偿还部分借款,保留利润
2. 时间加权平均价格(TWAP)操纵
Uniswap V3 的 TWAP 预言机理论上比即时价格更安全,但仍可在以下条件下被操纵:
- 操纵成本 < 攻击收益
- 资金池流动性不足(攻击成本低)
- TWAP 时间窗口过短
3. Chainlink 聚合价格操纵
Chainlink 的去中心化价格源在极端市场条件下(如流动性枯竭)可能出现价格偏差:
- 预言机更新延迟
- 小币种流动性不足导致聚合价格失真
- Chainlink 的
staleness检查缺失或配置不当
防御机制
TWAP(Time-Weighted Average Price)
// Uniswap V3 的 TWAP:使用历史时间加权平均而非即时价格
(uint256 price, ) = OracleLibrary.getQuoteAtTick(
currentTick,
1000000, // 1 AMM token
token0,
token1
);
Chainlink 预言机 + 合法性验证
(, int256 price, , uint256 updatedAt, ) = priceFeed.latestRoundData();
require(price > 0, "Invalid price");
require(updatedAt > block.timestamp - MAX_STALENESS, "Stale price");
require(answeredInRound >= roundId, "Incomplete round");
Chainlink Off-Chain 监控
设置价格异常波动告警,在 TWAP 偏离超过阈值时暂停协议。
关键案例
- Euler-Finance:donate-to-reserves 攻击结合了预言机操纵(虽然主要是内部会计逻辑漏洞)
- blockchain-security-auditor 的 Source Page 示例代码:展示了完整的有漏洞的借贷合约和修复方案
关联概念
- Flash-Loan-Attack:预言机操纵几乎总是借助闪电贷实现(单笔交易内完成借贷和操纵)
- Reentrancy:两者常被组合使用(操纵价格 + 重入执行操作)
- Uniswap V2 / V3:主要 AMM 平台,也是大多数预言机操纵攻击的目标