北京时间 11 月 14 日 23:36,黑客对 Value DeFi 协议进行闪电贷攻击,损失将近 740 万美金的 DAI。黑客在偷走代币后还留言“do you really know flashloan?”来挑衅开发团队。
1 个小时后,Value DeFi 官方发推确认:MultiStables vault 遭到了一次复杂的攻击,净损失达 600 万美元。目前正在进行事后分析,并正在探索如何减轻对用户的影响。
CoinGecko 行情显示,其 VALUE 代币自零时开始下跌,最低触及 1.87 美元,最高跌幅达 31.75%,此后稍有回升,现报价 2 美元。Value DeFi 当前锁仓总额 3280 万美元。
coingecko.com
本次事件与此前的 Harvest 攻击事件逻辑相似,PeckShield派盾对该事件进行分析认为,本次攻击得逞的原因在于,项目代码在使用基于 AMM 算法的价格预言机上存在漏洞。
根据 PeckShield 分析,我们基于发起攻击的交易(0x46a03488247425f845e444b9c10b52ba3c14927c687d38287c0faddc7471150a)来进行分析。攻击者的恶意攻击合约为(0x675BD0A0b03096c5ead734cFa00C7620538C7C6F)。
步骤1:通过 Aave 闪电贷获得 8 万个 ETH(以 460 美元计约合 3680 万美金)。
步骤2:在 UniswapV2 闪电贷获得 1.16 亿枚 DAI(空手套白狼)。接下来,0x675B 恶意合约会执行如下内容。
步骤3: 将步骤 1 获得的 8 万枚 ETH 在 UniswapV2 上换成 3,100 万枚 USDT。
步骤4: 在 Vault DeFi 上存入 2,500 万枚 DAI 并获得池子铸造的 2,490 万 pooltokens。此时 Vault DeFi 协议会铸造出 2,495.6 万枚新 3crv 代币。
步骤5:在 Curve 上将 9,000 万枚 DAI 换成 9,028 万枚 USDC。这一步会影响 Curve 上 3pool (也即 DAI/USDC/USDT)池子的平衡,进而抬升 USDC 的价格。
步骤6:在 Curve 上将 3,100 万枚 USDT 换成 1,733 万枚 USDC,此时可以看到 USDC 兑换价格已经有很大的偏差,完成这一步后,会进一步提升 Curve 上 3pool 池子中 USDC 的价格。
步骤7:在 Value DeFi 上销毁之前铸造的 2,490 万枚 pooltokens,这部分 pooltokens 又赎回了 3,308 万枚 3crv(算算可以知道比起铸造多了 812.4 万枚,这是由于 DAI 便宜了,所以赎回的 3crv 变多了)。
接下来,黑客在 Curve 再度反向操作,大约赚得 86 万 DAI;
步骤8:将 1,733 万枚 USDC 在 Curve 上换回 3,094 万枚 USDT。
步骤9:将 9,028 万枚 USDC 在 Curve 上换回 9,092 万枚 DAI。
步骤10:销毁 3pool 中的 3,308 万枚 3crv 来赎回 3,311 万枚 DAI,相比于存款时的代币数量,整整多了 815.4 万 DAI。
最后是剩余步骤:返还 Aave 的闪电贷和 UniswapV2 上步骤 2 中的代币。
这次攻击之后,黑客返回给 Value DeFi 开发者(0x7Be4D5A99c903C437EC77A20CB6d0688cBB73c7f) 200 万枚 DAI,自己则保留了 540 万枚 DAI。
根据 PeckShield 监测,这次攻击中被盗取的资金现在被存放在钱包 0xa773603b139Ae1c52D05b35796DF3Ee76D8a9A2F 中。Odaily星球日报将继续跟进事态发展。
原创文章,转载/内容合作/寻求报道请联系 report@odaily.com;未经授权严禁转载,违规转载法律必究。