织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 比特币 > 比特币资讯

全方位分析DeFi项目Yearn Finance闪电贷攻击事件

时间:2021-02-06 09:23来源:未知 作者:admin 点击:
一、事件概览 北京时间2021年2月5日,【链必安-区块链安全态势感知平台(Beosin-OSINT)】舆情监测到,DeFi知名项目Yearn Finance发生闪电贷攻击事件。 简言之,本次攻击事件的具体手法为

一、事件概览

北京时间2021年2月5日,【链必安-区块链安全态势感知平台(Beosin-OSINT)】舆情监测到,DeFi知名项目Yearn Finance发生闪电贷攻击事件。

简言之,本次攻击事件的具体手法为攻击者利用闪电贷借取巨额资金,而后进行循环套利。根据成都链安(Beosin)安全团队的响应和分析,本次攻击事件的合约为yValut+Curve Pool。

二、事件分析

1.攻击者在yVault合约中存入DAI,并调用earn触发yValut向流动性池使用DAI添加流动性,如下图所示:

上图红框显示,在进行铸币时,需要读取合约中的DAI余量,但因为策略合约中的DAI已经抵押至curve合约进行盈利,所以要计算DAI代币的量,只能通过价值换算,计算出所持有的Curve代币能够兑换的DAI的量。

2.攻击者利用借来的资金向流动性池使用USDT添加流动性,获得Curve代币,如下图所示:

这里值得注意的是,攻击者向池中注入的是单一的USDT,因为池子的特性,我们知道,当一种代币的含量上升,其相对价格也就下降。

3.攻击者取出yValut合约中存入的DAI,如下图所示:

根据#2可知,此时的池子中因为USDT的含量增加,所以DAI的相对价格是上升的,这也就导致攻击者所持有的Curve代币兑换出的DAI相对下降,池子中将会余留少量DAI。

4.攻击者指定与添加流动性时相等的USDT数量,进行流动性移除,注意这里因为#3时将一部分DAI取走,所以USDT的相对#2时价格下降,所以这里将余下一部分Curve代币.

不断进行上述循环,这使得攻击者消耗DAI进而获取Curve代币。

经过多次循环之后,攻击者套取了大量的Curve代币,而将DAI代币打入了Curve合约中。在整个攻击流程结束时,攻击者使用Curve代币,兑换出DAI/USDC。

这次兑换,因为不是USDT的兑换,即使此时的DAI相对攻击前含量较高,也会按照同等比例进行兑换,也就是攻击者打入Curve池子中多出的DAI代币,也会分发给攻击者。

这里,我们再来看攻击者在进行攻击时的第一步操作,如下图所示:

攻击者利用闪电贷向池子中添加了巨量的流动性,这就导致这些多出的DAI,最终将会大部分分给攻击者。

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容