Cointime

扫码下载App
iOS & Android

爆料全文:Curve被曝存在预言机操纵漏洞

媒体

撰文:Daniel Von Fange

编译:angelilu,Foresight News

昨日,独立研究员 Daniel Von Fange 在 X 平台发文披露 Curve 存在预言机操纵风险,并且该风险在攻击时很难被检测出。预言机操纵行为会导致预言机报告关于外部事件或真实世界的错误数据,使接入预言机的协议也面临操纵风险。Daniel Von Fange 表示已经通知可能受影响的相关团队。

Curve 创始人 Michael Egorov 在社群中对该问题进行了回复,称「该风险可能存在于旧版本的池子,crvusd 中不使用旧版本的池,也不建议使用预言机。」还言论确认了 Daniel Von Fange 披露的风险确实存在。

但 Curve 贡献者 fiddy 对于这名独立研究者未经讨论就公开发布这些信息的方式表示不满,并发布澄清,称 Daniel Von Fange 披露的漏洞此前他们已经私下讨论过,但其认为攻击者为了提高精度而增加 Gas 费成本较高,外部审计也将这一点归类为低影响。并且该研究员披露的这个漏洞与 Curve 较旧的 cryptoswap 算法有关,该算法使用了 last_price 价格,但较新的 cryptoswap-ng 实现使用 AMM 状态价格,可解决此类问题。除此之外,yAuditDAO 确实发现了一些预言机的错误,目前正在修复中,没有人使用这些预言机,且这些稳定币交易池中的 LP(流动性提供者)不受影响。

但已经有团队根据其披露的风险开始对协议进行调整,增强安全性。Yearn Finance 开发者 @storming0x 也对 Daniel Von Fange 披露的风险做出回应,称「Yearn 合约不受影响,除了一个使用了 Chainlink 的冗余机制来减轻潜在攻击路径的合约。出于谨慎考虑,Yearn 开发团队决定重新部署新版本。」

以下为 Daniel Von Fange 披露 Curve 预言机价格操纵风险的全文:

过去两周,我深入研究了 Curve 的价格预言机,发现了一些极其异常的行为。

这些预言机的运作方式并非如你所想,它们比预期更容易被操纵,并且在正常情况下也可能出错。

简要概述:在大多数池中,攻击者只需在一个区块,就能将 Curve 的价格预言机操纵至高出正常价格 10 倍至 500 倍。并且这种操纵可以被隐藏起来,以至于查看池子时根本无法发现其被操纵的迹象。

Curve 池子数量居多,目前还没有人能准确统计出不同池子代码库的数量。

我所写的内容可能适用于某些特定池子,也可能不适用。不同的池子有不同的漏洞。或许有些池子没有任何漏洞。

Curve 团队在接收报告、讨论时表现出色,并在几分钟内确认了 CrvUSD 不受这些问题影响。

我还检查了主网上大约 100 个使用 Curve 价格预言机的合约,并酌情通知了相关团队。

该漏洞的一个关键问题是,当价格不接近 1:1 或者手续费较高时,last_price 可能被错误计算。

首先,手续费没有包含在 last_price 计算中,这使得它使用的数字与实际交易或池子余额的数字不同。

EMA 价格预言机受 last_price 驱动。当 last_price 出错时,价格预言机将开始朝错误的目标价格移动。

在正常交易中,我见过价格预言机定位的价格比池中的实际当前价格偏离超过百分之一。最坏情况可能会更糟(图表中的标准化化价格)。

根据池子的不同,这种漂移误差可能高于或低于实际价格。

最大的问题是,在操纵期间,last_price 误差可能比实际操纵的价格高出一个数量级,使池预言机被有效操纵的可能性提高大大提高。

哪怕是一笔极小的交易,也能纠正最后价格 / 预言机价格中的偏差,导致了一些荒谬情况。

由于大幅价格波动和 last_price 计算错误的叠加效应,攻击者可以在下一个区块中操纵 EMA 价格预言机,且不需要耗费巨大成本在数十个区块中维持高价来对抗套利者。

理论上,攻击者可以控制两个连续区块的挖掘,这对于实现这一操作是必需的。攻击者需要有足够的资本进行这种价格攻击,但许多过去的攻击者手中都有数千万美元的资金。

加下来,让我们来谈谈常见的防御 Curve 价格预言机操纵的策略,以及它们的效果。

Curve v1 池子有四个数字可以用来尝试检测操纵,实际价格、价格预言机、last_price 和 EMA 价格。不幸的是,一次操纵之后,对操纵 price_oracle 价格的单笔交易可以将所有这些重置为相同的数字。

Curve v2 池子的 price_scale 比价格预言机更难操纵。它的变化速度更慢,需要实际的交易费用成本才能移动。如果这个快速价格预言机和慢速 price_scale 匹配,那么情况就稳定了,对吗?

不!核心攻击问题是使三个数字,实际价格、快速预言机和慢速规模对齐。实际价格很容易控制,因为它可以立即被操纵。那么问题就变成了在其他两者之间设计一个交点。

攻击者将价格短暂抬高,然后在下一个区块恢复正常,并等待几个区块进行攻击,直到下降的价格预言机遇到上升的 price_scale。实际价格只需在一个区块中被维持在高位,就足以扰乱预言机,而 price_scale 则会跟随。

许多预言机使用上限,将它们从 Curve 预言机价格中使用的价格限制在为 1:1 的最高值。这很好,并且排除了愚蠢的高值。但请注意,如果资产实际脱钩,攻击者可以低价购买资产,然后通过操纵使其看起来重新挂钩。

协议有时会设定一个最低限度,如果 Curve 价格预言机的响应低于挂钩的一定百分比,就会忽略它。但如果在资产真正脱钩时忽略价格,那就会失去拥有价格预言机的全部目的。

另一种常见策略是将另一个 AMM 系统的价格混合进来。这在很大程度上取决于其他池子的质量和操纵特性。如果它的流动性较低、更易于操纵,那么就没有达到目的。

糟糕 + 糟糕=糟糕。

用于稳定币 / 稳定币交易对的新型 Curve 池内部限制了 last_price 到 1:1 值的 2 倍。这可以阻止一次区块攻击,因为 last_price 不能被推到愚蠢高的值,从而使 EMA 超载。

但如果错误资产合法脱钩,那就错了。

如果你想使用 Curve 池来定价抵押资产,你可能不应该这样做。

新型池子通常有更高的攻击成本。如果被操纵的池对市场影响较小(可能只是为了保护收益分配),并且针对池模拟的攻击成本很高,那么就可以选择使用。

最后,作者建议这对使用的池子进行实际攻击模拟,不要基于假设或理论来预判价格预言机的行为,而应该在实际使用的池上进行详细的模拟测试。通过模拟操纵攻击,可以更好地了解池子在不同情况下的表现。

下图是过去 90 天 Curve 预言机使用量增加的图表:

有些 Curve 池子拥有表现出色的价格预言机,我无法让它们表现出任何奇怪的行为,它们完全符合良好表现的 EMA 所应有的预期。但仍需要去检查……

评论

所有评论

推荐阅读

  • BTC跌破71000美元

    Cointime 报道,行情显示,BTC跌破71000美元,现报70989.94美元,24小时涨幅达到4.15%,行情波动较大,请做好风险控制。

  • 以太坊基金会:拟出售 5000 枚 ETH 用于资助研发、拨款和捐赠

    Cointime 报道,4月8日,以太坊基金会在 X 平台发文表示,今日将通过 CoWSwap 的 TWAP 功能将 5000 枚 ETH 兑换为稳定币,作为持续资助研发、拨款和捐赠工作的一部分。

  • 伊朗将向过境霍尔木兹海峡船只收取费用,可用数字货币支付

    Cointime 报道,据市场消息,伊朗石油、天然气和石化产品出口商联盟发言人哈米德·侯赛尼周三表示,在为期两周的停火期间,伊朗将要求船只支付通行费才能通过霍尔木兹海峡,所有货物都可以通行,但每艘船的通关手续都需要时间���每艘油轮必须先通过电子邮件发送货物详情,才能被告知费用,可以用包括比特币在内的数字货币支付。

  • Polygon Labs正在洽谈融资1亿美元以支持旗下支付业务

    Cointime 报道,据知情人士透露,区块链开发商Polygon Labs正在与投资者进行早期洽谈,计划筹集至多 1 亿美元资金,用于构建新的稳定币支付业务。Polygon是预测市场Polymarket和其他加密平台的基础区块链,此次融资洽谈正值加密货币市场低迷之际,对于Polygon而言,拓展新业务将有助于其摆脱停滞不前的加密货币市场,实现业务多元化。

  • BTC突破72000美元

    Cointime 报道,行情显示,BTC突破72000美元,现报72003.73美元,24小时涨幅达到5.37%,行情波动较大,请做好风险控制。

  • 特朗普:将与伊朗讨论关税和制裁事宜 铀浓缩将被禁止

    Cointime 报道,4月8日讯,特朗普发文表示,美国将与伊朗密切合作,我们已经确定伊朗经历了一次将极具成效的政权更迭!铀浓缩活动将被禁止,美国将与伊朗合作,挖掘并移除所有深埋地下的核“尘埃”(由B-2轰炸机投掷)。现在以及一直以来,这些区域都处于极其严格的卫星监控之下(太空部队负责监控)。自攻击之日起,所有东西都未被触动。我们正在并将继续与伊朗讨论关税和制裁减免事宜。15点内容中的许多项已经达成一致。

  • 特朗普:如果同伊朗谈判不顺,美方将能轻易恢复对伊朗的军事行动

    Cointime 报道,美国总统特朗普8日表示,如果美国同伊朗谈判不顺,美方将能轻易恢复对伊朗的军事行动。(新华社)

  • 美国现货以太坊ETF昨日净流出6461万美元

    Cointime 报道,4月8日,据Trader T监测,美国现货以太坊ETF昨日净流出6461万美元。

  • 伊朗公布通过巴基斯坦提交给美方的十点计划核心内容

    Cointime 报道,4月8日,伊朗最高国家安全委员会当地时间8日凌晨发表声明,称根据最高领袖的建议和最高国家安全委员会批准,接受巴基斯坦提出的停火提议。声明称,伊朗在此次战争中的几乎所有目标都已实现,敌人“遭受历史性的和彻底的失败”,伊方将“继续斗争直至其取得的伟大成果得到巩固,在地区内建立新的安全和政治格局”,并决定在伊斯兰堡举行谈判以确定细节,“在最多15天内通过政治谈判巩固胜利成果”。声明还表示,伊朗拒绝了敌方提出的所有计划并制定了一项十点计划,通过巴基斯坦提交给美国方面。该计划强调了以下几个基本要点: 与伊朗武装部队协调,控制通过霍尔木兹海峡的通行;结束对“抵抗轴心”所有成员的战争,终结以色列政权的侵略;美国作战部队从该地区所有基地和部署点撤出;在霍尔木兹海峡建立安全过境议定书,确保伊朗享有主导地位;根据评估结果全额赔偿伊朗的损失;解除所有一级和二级制裁以及安理会有关决议;释放所有被冻结在海外的伊朗资产和财产;最后,所有这些事项都应在具有约束力的安理会决议中予以批准。(央视)

  • BTC突破72000美元

    Cointime 报道,行情显示,BTC突破72000美元,现报72044.71美元,24小时涨幅达到5.01%,行情波动较大,请做好风险控制。