http://www.7klian.com

首发|WarpFinance闪电贷进攻事件阐明

首发|WarpFinance闪电贷打击事件阐发

一张100元纸币,可以做的工作很是多,买早餐,买菜,炒股,旅游,折纸飞机甚至是当壁纸贴到墙上。

成果太多,反而衍生出了各类百般的差异形式的钱。

好比说存放在银行卡里的数字,存放在诸如付出宝一类应用中的数字,存放在股票基金里的数字,或是借单上的一句话。

闪电贷作为新型金融产物,被认为是金融规模区块链应用的一大跳跃式进步。

闪电贷将借贷部门属于钱的形式成果“剥离”而出,资金可以险些不受阻碍的从一个协议流向另一个协议,从一类资产流向另一类资产,这大大提高了单一成果的效率。

然而对付用户的便利也使得它往往有空可钻,黑客利用起来的确可以称得上是“一本万利”甚至是“无本万利”。

2020年,闪电贷进攻频发,成为安详变乱中的“新常态”。

北京时间12月17日上午,CertiK安详技能团队收到闪电贷进攻预警,发明一笔针对Warp Finance项目标闪电贷进攻。

CertiK安详技能团队当即展开阐明,现将技能细节阐明如下:

1. 通过闪电贷,进攻者从uniswap和dydx处共借得5笔贷款,每笔借出的WETH和DAI数目如下:

表一: 进攻流程中闪电贷借出的代币种类和数目

2. 进攻者将借贷所得代币放入uniswap的WETH-DAI活动性池中,锻造获得约94349个活动性证明LP代币,然后将所有的这些LP代币通过挪用图一中位于0x13db1cb418573f4c3a2ea36486f0e421bc0d2427地点WarpVaultLP智能合约中provideCollateral()函数存入到Warp Finance的Vault中。

首发|WarpFinance闪电贷打击事件阐发

图一:WarpVaultLP智能合约中provideCollateral()函数

3.?当进攻者在WarpVaultlp合约中存入LP作为collateral之后,挪用位于0xBa539B9a5C2d412Cb10e5770435f362094f9541c地点处的WarpControl智能合约中的borrowSC函数来从warp项目中借出USDC,如图二所示。

首发|WarpFinance闪电贷打击事件阐发

图二:WarpControl智能合约中的borrowSC()函数

图二中1582行中的getBorrowLimit()函数会通过挪用同一合约中的getTotalAvailableCollateralValue(),来间接挪用oracle的getUnderlyingPrice()函数来获恰当前进攻者存入的collateral的价值,

首发|WarpFinance闪电贷打击事件阐发

图三:WarpControl智能合约中挪用的价值预言机地点

通过查察价值预言机oracle地点的值, 可以发明WarpControl智能合约挪用了位于0x4A224CD0517f08B26608a2f73bF390b01a6618c8地点的UniswapLPOracleFactory智能合约作为计较质押资产的价值预言机oracle。

通过挪用oracle个中的getUnderlyingPrice()函数来计较价值,getUnderlyingPrice()函数如图三所示。

首发|WarpFinance闪电贷打击事件阐发

图四:UniswapLPOracleFactory智能合约中getUnderlyingPrice()函数

getUnderlyingPrice()函数在1390和1394行执行了图5中的consult()函数并在1404行执行了图6中的_calculatePriceOfLP函数来计较价值。

个中输入_calculatePriceOfLP函数的参数priceAsset1和priceAsset2来自consult函数。

首发|WarpFinance闪电贷打击事件阐发

图五:UniswapLPOracleFactory智能合约中consult()函数

首发|WarpFinance闪电贷打击事件阐发

图六:UniswapLPOracleFactory智能合约中_calculatePriceOfLP()函数

从以上两图中可以看出,进攻者质押的collateral可以借出的usdc数目可能价值的计较公式为:

(token0的价值 * token0的数目 + token1的价值 * token1的数目) / 当前条约中LP代币的供应量

可是由于(token0的价值 * token0的数目 + token1的价值 * token1的数目) 这一部门无法正确计较出当前uniswap中对付token0-token1代币对LP的总共锁订价值,因此计较出的进攻者存入的collateral可以借得的USDC的数目比正常环境多。

操作Warp Finance项目利用的oracle计较质押的LP代币资产价值错误的裂痕,最终进攻者从Warp finance项目中赢利约1462枚ETH代币,总代价约95万美元。

另外,进攻者还mint了代价约莫600万美元的DAI-ETH LP share,尚有约100万美元的赢利流入了uniswap和sushiswap的LP中。

总体来看,在本次进攻中,Warp finance 蒙受的损失约莫为770万美元。

值得一提的是,Warp Finance 提到他们可以或许recover约莫550万美元的损失,并将recover的资金用于赔偿用户。

首发|WarpFinance闪电贷打击事件阐发

来历:https://twitter.com/warpfinance/status/1339751977836789767

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读