DeFi项目Yeld.finance称该项目的DAI池遭受到闪电贷攻击,但成都链安分析称,该笔交易为Yeld.finance项目自身的策略机制而导致的资金转移,与闪电贷攻击无关。
事件概览
北京时间2021年2月27日,舆情监测到,DeFi知名项目Yeld.finance官方发出通告,表示该项目的DAI池遭受到闪电贷攻击,原文链接如下:
https://yeldf.medium.com/the-yeld-dai-earn-vault-has-been-hacked-93f27d475b1b
成都链安安全团队第一时间介入响应,对原文中所提及的交易
(0x57b378f8d20d3945ab40cd62aa24063f375bcfc5693c2e788dc193ffa1a5cc3a)进行分析。经分析后发现,该笔交易为Yeld.finance项目自身的策略机制而导致的资金转移,与闪电贷攻击无关。闪电贷攻击表示不背这个锅。
Wsj.eth以16 ETH价格成交:金色财经报道,据以太坊域名服务交易数据显示,wsj.eth已经以16 ETH的价格成交,约合 20,985.44 美元。据悉,买家是一个“0xC10c7a”开头的新钱包地址,目前尚无法确定该买家是否是《华尔街日报》。[2022/9/24 7:17:41]
事件分析**
图1交易信息
如图1所示,该笔交易是名为0xf0f225e0的用户,调用了0xe780cab7ca8014543f194fc431e6bf7dc5c16762合约的deposit函数。经确认,0xef80cab7合约正是项目方的DAI池。该笔交易一共产生了6笔代币转移,分别用T1到T6表示。那么,这些代币转移究竟是什么操作导致的呢?下面通过代码进行分析:
BTC合约多空持仓人数比1.16 合约持仓总量为19亿美元:截至1月29日10:30,根据OKEx交易大数据,BTC合约多空持仓人数比为1.16,市场做多人数占据优势;季度合约基差在700美元上方,永续合约资金费率为负,交割及永续合约持仓总量为19亿美元,总体上多军占优;BTC交割及永续合约精英持仓方面,做多账户比为51%占据优势,精英账户多头持仓26.74%,精英账户多头占优,继续关注大户持仓变化。从期权合约数据来看,看涨/看跌主动买入量比为0.32,看涨/看跌主动卖出量比为0.98,主动看涨看跌卖出量占据优势。[2021/1/29 14:18:36]
闪电网络客户端c-lightning发布0.8.2版本,移除0.16 BTC付款限额:金色财经消息,Blockstream的闪电网络客户端c-lightning团队发布了0.8.2版本更新,主要体现在三个方面:Keysend付款、更大的支付通道和新的后端API。在Lightning Labs团队发布Keysend功能之后,c-lightning紧随其后为该功能提供了支持,Keysend 付款允许节点在不生成收款码的情况下完成收款。该版本支持大通道支付,这意味着0.16个BTC的付款额度限制被移除了。另外,在该版本中后端bcli API向插件开发者开放,c-lightning节点可以有更多的区块链数据源的选项。[2020/5/18]
图2deposit函数源代码
很明显,第538行代码,产生导致了序号为T1的代币转移,将token转移到yDAI合约。这是一笔普通的代币转账,表示用户存入了9,377DAI到yDAI合约。
动态 | Kusama测试网已有16 个节点被 Slash 惩罚:Polkadot 先行测试网络 Kusama 已在 11 月 4 日开放 100 个验证者节点名额,但是目前已经上线的验证者节点中已经有 16 个节点被 Slash 惩罚,惩罚几率约 10% 。在 PolkaDot 网络中,Slash 惩罚发生后,系统将从验证人的质押金中以及所有投票给该验证人的提名人的质押金额中扣除相应 DOT。[2019/11/4]
第541-553行代码,是yDAI合约用于计算用户存入的DAI应返回给用户多少yDAI,并在第554行进行铸币,对应序号为T2的代币转账,表示yDAI合约向用户铸了9,306yDAI。
然后进入第555行的rebalance函数,分析该函数的逻辑。
行情 | 今日恐慌指数为16 为极度恐惧等级:据Alternative消息,今日恐慌指数为16,较昨日20下降4,恐慌程度有所上升,现为极度恐惧等级。[2018/6/30]
图3rebalance函数源码
图4recommend函数
第732行代码会计算newProvider,该函数会调用recommend函数(如图4所示),recommend函数会调用IEarnAPRWithPool合约查询4个Defi项目DYDX,COMPOUND,AAVE,FULCRUM中,年利率(APR)最高的项目,查询结果如图5所示:
图5recommend查询结果
其中dYdX池的APR最高,newProvider被设置为dYdX池。当前池为AAVE池,进入736行的if代码块,调用内部函数_withdrawAll。
图6_withdrawAll函数源代码
第778行代码将会提出AAVE池中的所有DAI,产生了序号为T3-T5的代币转移,具体代码可参考AAVE(0xfC1E690f61EFd961294b3e1Ce3313fBD8aa4f85d)合约redeem函数相关代码,此处不再详述。
最后是第741行代码,将从AAVE中提出的16.6余万枚DAI存入dYdX合约,产生了序号为T6的代币转移,即将16.6万枚DAI存入dYdX池。
整个交易就此结束,可以看到,这次所谓的「闪电贷攻击」只是「虚惊一场」。用户只是单纯的存入了一笔DAI,然后刚好触发了Yeld.finance项目的策略机制,并不是所谓的「闪电贷攻击」,可谓是闹了场「乌龙事件」。
值得注意的是,dYdX在该事件中充当了一个「良心商家」的角色,并不是以往闪电贷攻击中的帮凶。
安全建议
尽管本次事件经成都链安安全团队分析后被判断为虚假一场,但在这里还是有必要提醒各项目方,依然需要在日常的安全防护工作中,对闪电贷攻击加以预警和防范。
同时,作为致力于区块链生态安全建设的成都链安也在此建议,项目方的安全预警机制和安全加固工作切不可等闲视之。寻求第三方安全公司的力量,搭建覆盖全生命周期的一站式安全解决方案方为万全之策。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。