怎样在币安交易加密货币?一起入群交流,欢迎联系微信:BTCair

Harvest Finance 详解黑客套利 2400 万美元过程:除了闪电贷还有无常损失

币圈资讯 btcwbo 719℃ 0评论

Harvest 称,闪电贷只是这次攻击的一环,具体还涉及到 DeFi 无常损失。Harvest 发布悬赏,并请求黑客归还剩余的资金。

原文标题:《Harvest 官方详解被黑客套利 2400 万美元的过程,闪电贷只是其中一环
撰文:Harvest Finance
编译:洒脱喜

10 月 26 日,黑客利用闪电贷从 DeFi 协议 Harvest 的金库中盗走了 2400 万美元资金,而根据 Harvest 官方的分析报告显示,闪电贷只是这次攻击的一环,具体还涉及到了 DeFi 协议的无常损失问题,尽管攻击者事后归还了大约 250 万美元的资金,但 Harvest 用户面临的损失依旧超过了 2000 万美元(具体约为 3380 万美元),对此,Harvest 官方发出了悬赏,并请求黑客归还剩余的资金。

Harvest Finance 详解黑客套利 2400 万美元过程:除了闪电贷还有无常损失

概要

  • 我们对这一工程错误负责,并确保此类事件在未来得到缓解;
  • 为受影响的用户制定补救计划是我们在未来一周的首要任务;
  • 我们谦卑地请求攻击者将资金退还给部署者,以便可以将它们分配给受影响的用户;

发生了什么?

UTC 时间 10 月 26 日 2:53:31,一名攻击者从 Harvest Finance 的 USDC 和 USDT 金库中窃取了资金。攻击者利用了影响 Curve.fi Y 池中个人资产的套利和无常损失进行了攻击,而 Curve.fi Y 池正是 Harvest 金库投资的地方。协议的以下机制允许执行此类攻击:

  1. Harvest 的投资策略计算投资于基础实时协议资产的实时价值。金库使用资产的价值来计算将要发给资金存放用户的股份数量。当用户从金库中取出资金时,它们还使用资产的价值来计算用户退出时应收到的支出。
  2. 一些金库(包括 USDC 和 USDT)中的资产存放在底层 DeFi 协议的共享池中(例如 Curve.fi 的 Y 池)。这些资产池中的资产会受到无常损失、套利和滑点等市场影响。因此,它们的价值可通过大量的市场交易来操纵。

攻击者反复利用 Curve.fi Y 池中 USDC 和 USDT 的无常损失影响。他们利用被操纵的资产价值将资金存入 Harvest 的金库,以一个对其有益的价格获得金库股份,然后以正常的价格退出金库,从而产生利润。以下是这次攻击事件的跟踪链:

  1. 攻击者的钱包地址是 0xf224ab004461540778a914ea397c589b677e27b,其部署了一个合约 0xc6028a9fa486f52efd2b95b949ac630d287ce0af,通过该合约,他们于 UTC 时间 2020 年 10 月 26 日 02:53:31 执行了攻击。而进行攻击的 10 ETH 是通过 0x4b7b9e387a79289720a0226f695913d1d11dbdc681b7218a432136cc089363c4 这笔 Tornado 交易来隐藏来源的。
  2. 攻击本身在 0x35f8d2f572fceaac9288e5d462117850ef2694786992a8c3f6d02612277b0877 这笔交易中发起。
  3. 攻击者从 Uniswap 获得大量 USDT (18,308,555.417594)以及 USDC (50,000,000),以注入攻击合约中。
  4. 该合约通过 Y 池的互换交易将 17,222,012.640506 USDT 兑换成了 USDC。互换的影响是,由于其它资产发生了无常损失,Y 池内的 USDC 价值较高。这个智能合约获得的金额大致相当于 17,216,703.208672 USDC;
  5. 攻击者将 49,977,468.555526 USDC 存入 Harvest 的 USDC 金库,以每股 0.97126080216 USDC 的价格接收 51,456,280.788906 fUSDC。在攻击之前,每股 fUSDC 的价格为 0.980007 USDC,因此攻击者将股份价值降低了大约 1%。Harvest 策略内部的套利检查没有超过 3% 的阈值,因此没有还原这笔交易。
  6. 攻击者通过 Y 池将 17239234.653146 USDC 兑换回 USDT,结果是,由于无常损失效应的恢复,因此在 Y 池中获得了 USDC 的原始较低值。攻击者从而收回了 17,230,747.185604 USDT。
  7. 攻击者从 Harvest 的 USDC 金库中提币,用所有 fUSDC 的股份交换回了 50596877.367825 USDC。由于 Y 池内的 USDC 值下降,每股 fUSDC 的价格为 0.98329837664 USDC。USDC 完全由 Harvest 的 USDC 金库支付,完全不与 Y 池交互。如此进行一次,攻击者的净利润(不包括闪电贷费用)就是 619408.812299 USDC,而攻击者在同一笔交易中重复了几次该过程。
  8. 在 4 分钟内针对 USDC 金库执行了 17 笔攻击交易后,攻击者以类似的方式对 USDT 金库重复该过程,从交易 0x0fc6d2ca064fc841bc9b1c1fad1fbb97bcea5c9a1b2b66ef837f1227e06519a6 开始。 他们在另外 3 分钟内完成了 13 笔针对 USDT 金库的攻击交易。
  9. 在 UTC 时间 2020 年 10 月 26 日 03:01:48 ,攻击者将 13,000,000 USDC 和 11,000,000 USDT 从攻击合约中转移至地址 0x3811765a53c3188c24d412daec3f60faad5f119b
  10. 攻击者随后又在 0x25119cd54a4562aa427d9770af383512f9cb5e8e4d17232ad96b69dc293a3510 这笔交易中将部分资金转移回 Harvest 部署者地址,涉及 1761898.396474 USDC 和 718,914.048541 USDT。

Harvest Finance 在评估了这次攻击并重构攻击过程后,立即从共享池中取出了所有资金,这包括 DAI、USDC、USDT、TUSD、WBTC 以及 renBTC。这些资金目前都在金库中,不再受到市场操纵的影响。这次攻击并没有涉及 DAI、TUSD、WBTC 以及 renBTC,这些金库的存储用户也没有受到影响。

攻击发生后,USDC 金库的股份价格从 0.980007 下跌至 0.834953 USDC,而 USDT 金库的股份价格则从 0.978874 跌至 0.844812 USDT,两者分别下跌了 13.8% 和 13.7%。用户损失的价值大约为 3380 万美元,相当于攻击前协议中锁定总价值的 3.2%。

与攻击有关的事务日志可观察攻击者的地址 0xf224ab004461540778a914ea397c589b677e27b

下一步

Harvest Finance 协议有一个定期的每周计划表,它需要保持所有农民的持续收益。根据 2020 年 10 月 27 日的排放计划,Harvest Finance 团队宣布铸造 19637.46 枚 FARM 代币。而社区要求的,原定于 10 月 27 日发布的智能合约改进计划将被推迟,以便在攻击背景下再次评估其安全性。金库中使用共享池的资金,将继续从策略中提取,直到此类攻击的缓解措施到位(见下一节)。这些措施,以及为受影响的用户提供补救的基础设施,将是团队下一个开发重点。我们对这一工程错误负责,并确保此类事件在未来得到缓解。

未来可能的缓解措施

Harvest Finance 团队致力于评估可能的缓解策略,并在即将发布的版本中实施这些策略以及任何必要的用户体验更改。我们将利用新金库的可升级特性,以及基于时间锁(timelock)的投资策略替换,并在发布前很好地与社区沟通缓解策略。

可能的修复技术包括以下这些选项:

  1. 实现存款的提交和显示机制。这将消除在单笔交易中执行存款和取款的能力,因此,基于闪电贷的攻击就变为不可行了。就用户而言,这意味着在存款期间,他们的代币将在一次交易中转移到 Harvest。用户随后会在另一笔交易中 claim 他们的股份,最好是在不同的区块中。这将构成用户体验的变化,并可能导致更高,但仍可接受的 gas 成本。
  2. 一个更严格的配置现有存款 arb 的检查策略。当前的阈值设置为 3%,因此不足以保护金库免受此类攻击。一个更严格的阈值可能使这种攻击在经济上不可行,然而,在自然无常损失效应的情况下,它可能会限制存款,周日的事件超过了 7 分钟,这表明,这一措施不够有效,因此应被视为对其他措施的补充。
  3. 基础资产的提取。当用户存入使用共享池(如 Y 池)的金库时,他们会有效地将其单个资产交换为池资产(如 yCurve)。如果用户只提取基础资产,他们就可以根据当前的市场状况将其交易为资产组合。如果市场受到操纵,交易也会受到这种操纵,这将阻止攻击实体产生利润。从普通用户的角度来看,提出 yCRV 之后可以在单独的交易中转换为稳定币。虽然这需要进行 UX 方面的改变,但它可能有利于协议。而这种方法的缺点是,它将金库提取机制与当前正在使用的策略绑定在一起:如果一个策略切换到另一个不使用共享基础池的策略,或者使用不同的池,则提取所产生的资产也会发生变化。
  4. 使用预言机来确定资产价格。虽然一个近似的资产价格可有效地从外部预言机(由 Chainlink 或 Maker 提供)中确定,但是它与实际股份价格的联系非常松散。如果底层 DeFi 协议内的资产价值与预言机报价不同,金库将面临自由套利和闪电贷攻击。这不是 Harvest 的解决方案,但是,在系统设计和可能的缓解策略中,我们将考虑使用预言机。

针对丢失 USDC 和 USDT 资金用户的补救方法

  1. 通过快照和 MerkleDistributor 分发攻击者已退还的资金,我们与帮助创建这些工具的开发人员联系,并致力于构建可为受影响的用户提供补救措施的基础架构。分配资金是当务之急,一旦工具被构建出来后,我们将会发布更多关于资金分发的细节信息。
  2. 其他补救方法将在治理中进行分析和表决。

攻击者信息和赏金

  1. 攻击者使用了新生成的以太坊地址 0xf224ab004461540778a914ea397c589b677e27bb 来执行这次攻击;
  2. Tornado 交易
    0x4b7b9e387a79289720a0226f695913d1d11dbdc681b7218a432136cc089363c4
  3. 攻击在 0x35F8D2F572FCEAAC9288E5D46211780EF2694786992A8C3F6D02612277B0877 这笔交易发起;

攻击者通过 REN 协议将比特币传输到以下地址:

  • 1Paykw4s2WX4SaVjDrQkwSiJr16AiANhiM
  • 1HLG86DDEzAxAGmEzxr1SUfPCWcnWA6bMm
  • 14stnrgMFNR4LesqQRUdo5n1VUx9xdAMeg
  • 18w2Bm2cCsbLjWQU9BcnjzK8ErmzozrVa3
  • 1FS2t2eAjmjaNmADN6SMHYo7G4XGpX1osS
  • 1NdAJ89k1qpRMpZLwuYGQ7VnM45xD2NJXa
  • 1CLHhshrusvT4XADWA29R2H4ndsSUamEWn

然后,攻击者将几笔交易发送到已知的 Binance 存款地址:

https://blockstream.info/tx/7777569f003193ae59dbc5afbbf8bfbf3ac6c8ce8a8ec2b8707de14ddc3329a6
https://blockstream.info/tx/9fcc273f2d50fc5824b8fd0bbe832831d02e7fe04bcc09d143e787455c602195

我们向第一个帮助我们找回资金的个人或团队提供 10 万美元的赏金。如果是在接下来的 36 小时内完成退还,则赏金为 40 万美元。请不要在这个过程中人肉搜索攻击者,我们强烈建议将所有努力集中在确保用户资金成功返还给部署人员上。

关有关闪电贷攻击者的信息:攻击者已经证明了他们的观点。如果他们能将资金返还给用户,社会各界将不胜感激,将资金返还给受影响的用户是重点。

我们犯了一个工程错误,我们承认了。成千上万的人遭到了附带损害,因此我们谦卑地请求攻击者将资金退还给部署者,然后将资金全部分配给用户。

来源链接:medium.com

转载请注明:比特币区块链时代 » Harvest Finance 详解黑客套利 2400 万美元过程:除了闪电贷还有无常损失

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址