2026年3月10日,34名Aave用户醒来后发现,他们的wstETH头寸已被清算——并非因为市场崩盘,也并非因为他们过度加杠杆,而是因为Aave自身的预言机将他们的抵押品价格低估了2.85%。此次事件造成的总损失约为2600万美元的错误清算,10,938枚wstETH被没收,第三方清算机器人从中提取了499枚ETH。
这并非一次攻击。没有黑客参与其中。问题出在协议自身的预言机配置错误——而这可能比任何黑客攻击都更令人担忧。
什么是CAPO?它为何存在?
Aave的相关资产价格预言机(CAPO)是一种针对应以可预测比率相互交易的资产所设置的保护机制。对于wstETH(封装质押ETH)而言,其对ETH的兑换率会随着质押奖励的累积而缓慢且可预测地上升——每年大约增长3%至4%。
CAPO限制了该兑换率变动的最大速度,以防范预言机操纵攻击。其逻辑很简单:
maxExchangeRate = snapshotRatio × (1 + maxYearlyGrowthPercent)^(timeSinceSnapshot / SECONDS_PER_YEAR)
如果报告的兑换率超过maxExchangeRate,CAPO就会将其限制在该上限值。这样可以防止攻击者通过闪电式操纵Lido预言机来虚增wstETH的价格,并以此借入资金。
想法很好,但实现却致命。
根本原因:快照不同步
该漏洞存在于两个系统之间的缝隙中:
链下组件
一个算法会定期更新snapshotRatio——即CAPO公式中使用的基准兑换率。该算法本意是将此值设为7天前的兑换率,从而提供一个稳定的历史锚点。
链上约束
智能合约强制执行了一项硬性限制:snapshotRatio每3天最多只能上涨3%。这是为了防止参数发生剧烈变化而设置的安全上限。
冲突发生
当链下系统试图将快照比率一次性向前推进7天的增长量时,链上约束只允许部分更新。然而,snapshotTimestamp却被更新为反映完整的7天调整。
结果:CAPO公式使用了一个旧的比率和一个新的时间戳,计算出的maxExchangeRate比实际市场汇率低了2.85%。
// 本应发生的情况:
snapshotRatio = 1.228 // 当前准确的汇率
snapshotTimestamp = now - 7天
// 实际发生的情况:
snapshotRatio = 1.1939 // 仅部分更新(受链上限值约束)
snapshotTimestamp = now - 7天 // 但时间戳已完全跳转
// CAPO计算:
maxRate = 1.1939 × (1.0325)^(7/365) = ~1.194
// 实际市场汇率:1.228
// 预言机报告值:1.194(低估2.85%)
清算连锁反应
Aave V3的效率模式(E-Mode)允许用户在使用相关资产时获得更高的杠杆率。在E-Mode中,wstETH/ETH头寸的贷款价值比(LTV)可超过90%——这意味着即使价格出现微小偏差,也会触发清算。
当wstETH突然被“估值”比实际低了2.85%时:
- 34个账户跌破了清算阈值
- 清算机器人(MEV搜索者)立即以折扣价没收了抵押品
- 10,938枚wstETH(约合2600万美元)在几分钟内被清算
- 清算者赚取了约499枚ETH作为奖励和
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。