美文网首页
火星人许子敬:黑客是怎么攻破Harvest Finance?

火星人许子敬:黑客是怎么攻破Harvest Finance?

作者: 币圈王多鱼 | 来源:发表于2020-10-30 15:24 被阅读0次

    今年以来,DeFi崛起,新项目层出不穷,流动性挖矿吸引了大批投资者进场。与此同时,DeFi项目现阶段的技术难以兼顾去中心化本质和安全性、稳定性,很多项目为了赶上风口,带着合约漏洞就匆忙上场,潜在风险还是很高的。

    10月 26 日,黑客利用闪贷从 DeFi 协议 Harvest Finance的金库中盗走了 2400 万美元资金,尽管黑客事后归还了大约 250 万美元的资金,但 Harvest 用户面临的损失依旧超过了 2000 万美元。对此,Harvest团队发推称承认编程漏洞属于团队责任,称将按照快照将退还的部分资金返还给用户,剩余被盗资金的赔偿计划还在研究中。同时请求黑客退还资金。

    随后Harvest Finance悬赏10万美元追踪黑客,后来28日增加到40万美元,今天将赏金提高到100万美元,目前,未有所获,先不论Harvest Finance最终是否能追踪到黑客及用户补偿计划。今晚我们来看看黑客是怎么攻破Harvest Finance的。

    整个攻击过程持续了7分钟,简要此攻击过程如下:

    1. 黑客通过Tornado.cash转入 20ETH 作为后续攻击手续费

    2. 黑客通过UniswapV2闪电贷借出巨额 USDC 与 USDT

    3. 黑客先通过Curve的 exchange_underlying 函数将 USDT 换成 USDC,此时 Curve yUSDC 池中的 investedUnderlyingBalance 将相对应的变小

    4.随后黑客通过Harvest的 deposit 将巨额 USDC 充值进 Vault 中,充值的同时Harvest 的 Vault 将铸出 fUSDC,而铸出的数量计算方式如下:

    amount.mul(totalSupply).div(underlyingBalanceWithInvestment);

    计算方式中的underlyingBalanceWithInvestment一部分取的是 Curve 中的 investedUnderlyingBalance 值,由于 Curve 中 investedUnderlyingBalance 的变化将导致 Vault 铸出更多的 fUSDC

    5.之后再通过 Curve 把 USDC 换成 USDT 将失衡的价格拉回正常

    6.最后只需要把 fUSDC 归还给 Vault 即可获得比充值时更多的 USDC

    7.随后黑客开始重复此过程持续获利

    受此次安全事件影响,Harvest平台代币FARM币价暴跌50%,截至发稿达112美金。

    未来对于Harvest Finance我想应该从一下几方面着手:

    [if !supportLists]1. [endif]实施存款承诺与披露机制

    [if !supportLists]2. [endif]加强对策略中的现有存款套利检查配置

    [if !supportLists]3. [endif]基础资产提现

    [if !supportLists]4. [endif]使用预言机来决定资产价格

    相关文章

      网友评论

          本文标题:火星人许子敬:黑客是怎么攻破Harvest Finance?

          本文链接:https://www.haomeiwen.com/subject/ensdvktx.html