1. 首页
  2. 金融科技

一文简析 Euler Finance 1.95 亿美元黑客事件

2023年3月13日,Euler Finance资金池遭遇闪电贷攻击,预计损失总计约1.95亿美元。这一数字也是2023年迄今为止Web3领域所有其他安全事件资产损失总额的两倍以上。

根据Euler Finance对自己描述,该平台是“以太坊上的一个允许用户借出和借入几乎任何加密货币资产的非托管协议”。

造成该攻击的原因主要是Euler Pool合约中的`donateToReserve`存在漏洞。由于该功能缺乏对调用者仓位健康度的检查,用户可以通过自主放弃一部分杠杆存款,使自身仓位失衡,从而使用Euler特色的清算规则清算自己的仓位而获利。

攻击者利用闪电贷借来的资产,首先通过Euler借贷协议中独特的`mintdonateToReserves'功能创建了一个高杠杆且资不抵债的状况。随后攻击者在同一笔交易以清算者的身份清算自己创建的资不抵债的仓位“免费”获得大量衍生eToken。最后通过提款耗尽资金池,并在多个Euler Pools反复实施攻击,以耗尽所有资金池。

下面是对某一资金池的攻击流程,还有其他四个具有相同漏洞的资金池也被攻击了。

攻击流程

①攻击者从AAVE闪电贷到3000万 DAI。

②攻击者通过eDAI合约向Euler存入2000万 DAI,并收到2000万 eDAI。在攻击者存入2000万DAI之前,Euler池中的DAI余额为890万。

③调用`eDAI.mint()`。该特定的`mint`功能是Eule Financer独有的,可允许用户反复借款和还款。这是一种创建借贷循环的方法,其结果是带杠杆的借贷仓位。

④调用`mint`后,收到2亿 dDAI和1.95.6亿 eDAI。(注:dTokens代表债务代币,eTokens代表抵押股权)。

⑤调用 "repay",将eDAI池中的1000万DAI偿还给Euler,这就将1000万dDAI销毁了。随后再次调用 "mint",为攻击合约创造另一个2亿dDAI和1.956亿eDAI形式的借贷仓位。此时攻击者的仓位为: 3.9 亿 dDAI 和 4亿 eDAI。

⑥调用`donateToReserves`(该存在漏洞的函数于2022年7月被引入),将1亿eDAI转给Euler。由于没有对这一行为的抵押状况进行适当的检查,"donate" 后的攻击者成为了"违规者"(非健康负债水平的地址), 其风险调整后负债远超过了的抵押品价值,因此可以对其进行清算。此时攻击者的仓位为: 3.9 亿 dDAI 和 3亿 eDAI。

⑦攻击者部署的清算人合约开始清算“违规者”。Euler Finance清算逻辑中一个特色功能是当被清算人的借贷仓位极其不健康时,清算人员可以在此过程中获得最高20%的“折扣”。

⑧通过清算,清算人获得了2.59亿dDAI的“债务”,获得3.1 eDAI的“资产”。清算过程中转让的债务总额比资产低得多。清算人获得了价值近4500万的eDAI资产。

- 星际资讯

免责声明:投资有风险,入市须谨慎。本资讯不作为投资建议。

下一篇:谁能在竞争激烈的 Layer2 赛道脱颖而出?
« 上一篇
上一篇:一文读懂新上线的「ERC-4337」:不再需要助记词,Web3 大规模采用要来了?
下一篇 »

相关推荐