跳至主要內容

Value DeFi:600万美元的闪电贷攻击

tokenview大约 2 分钟

Value DeFi:600万美元的闪电贷攻击

Value Defi 合约在铸币过程中将合约资产转换成 3CRV 时依赖 Curve DAI/USDC/USDT 池 中 USDC/3CRV的价格,导致攻击者可以通过操控 Curve DAI/USDC/USDT 池 中 USDC/3CRV 的价格来操控 mVUSD/3CRV 的价值,从而获利。

具体过程如下:

查看交易详情open in new window

synthetix遭攻击的交易详情
synthetix遭攻击的交易详情

1.攻击者从 Aave 借出 80000 个 ETH,为攻击做准备;

2.攻击者使用 80000 个 ETH 在 Uniswap DAI-ETHopen in new window 池中用闪电贷借出大量的 DAI 和 在 Uniswap ETH-USDTopen in new window 兑换出大量的 USDT;

3.用户调用 ValueMultiVaultBank 合约 的 deposit 合约使用第 2 步中小部分的 DAI 进行充值,ValueMultiVaultBank 合约中一共有 3 种资产,分别是 3CRV、bCRV、和 cCRV。ValueMultiVaultBank 合约在铸币的时候会将合约中的 bCRV, cCRV 转换成以 3CRV 进行计价,转化的途径为 bCRV/cCRV -> USDC -> 3CRV。其中 USDC -> 3CRV 使用的是 DAI/USDC/USD 池中 USDC/3CRV 的价格。转换完成后,Value Defi 合约根据合约中总的 3CRV 的价值和攻击者充值的 DAI 数量计算 mVUSD 铸币的数量;

  1. 攻击者在 Curve DAI/USDC/USDT 池先使用第二步中剩余的大部分 DAI 和 USDT 兑换 USDC,拉高 DAI/USDC/USDT 池中的 USDC/3CRV 的价格;

  2. 攻击者在 ValueMultiVaultBank 合约中发起 3CRV 提现,此时 ValueMultiVaultBank 合约和第 3 步一样,会先将合约中的 bCRV, cCRV 转换成以 3CRV 计价,由于在第 4 步中,USDC/3CRV 的价格已经被拉高,导致换算的过程中,ValueMultiVaultBank 合约中的 bCRV, cCRV 能换算成更多的 3CRV,也就是说使用同等份额的 mVUSD 可以换取更多的 3CRV;

  3. 拿到 3CRV 后,攻击者到 Curve 的 DAI/USDC/USDT 池中使用 3CRV 换回 DAI,并在 Uniswap 中兑换回 ETH,然后归还 Aave 的闪电贷。

使用Tokenview Defi浏览器open in new window查看流动性挖矿DeFi列表

上次编辑于: