一、事件概览
北京时间2021年2月27日,舆情监测到,DeFi知名项目Yeld.finance官方发出通告,表示该项目的DAI池遭受到闪电贷攻击,原文链接如下:
https://yeldf.medium.com/the-yeld-dai-earn-vault-has-been-hacked-93f27d475b1b?
成都链安安全团队第一时间介入响应,对原文中所提及的交易
(0x57b378f8d20d3945ab40cd62aa24063f375bcfc5693c2e788dc193ffa1a5cc3a)进行分析。经分析后发现,该笔交易为Yeld.finance项目自身的策略机制而导致的资金转移,与闪电贷攻击无关。闪电贷攻击表示不背这个锅。
过去24小时全网爆仓8385.16万美元:金色财经报道,数字货币全网合约爆仓数据显示,过去24小时全网爆仓8385.16万美元。其中比特币爆仓2380.73万美元,以太坊爆仓1292.43万美元。[2023/2/20 12:16:55]
二、事件分析
△图1?交易信息
如图1所示,该笔交易是名为0xf0f225e0的用户,调用了0xe780cab7ca8014543f194fc431e6bf7dc5c16762合约的deposit函数。经确认,0xef80cab7合约正是项目方的DAI池。该笔交易一共产生了6笔代币转移,分别用T1到T6表示。那么,这些代币转移究竟是什么操作导致的呢?下面通过代码进行分析:
数字艺术家FEWOCiOUSNFT作品在佳士得拍得216万美元:7月1日,数字艺术家FEWOCiOUS的5个NFT作品在佳士得拍卖行一场拍卖中以216万美元的价格售出。据悉,这组名为《Hello,i'M Victor(FEWOCiOUS) and This Is My Life》的作品,灵感来自这位18岁艺术家年轻时在一个虐待家庭中长大的经历。[2021/7/2 0:21:14]
△图2?deposit函数源代码
很明显,第538行代码,产生导致了序号为T1的代币转移,将token转移到yDAI合约。这是一笔普通的代币转账,表示用户存入了9,377DAI到yDAI合约。
Filecoin网络目前总质押量约为8116万枚FIL:据IPFS100报道,Filfox浏览器数据显示,Filecoin网络当前区块高度为833403,全网有效算力为6.231EiB,总质押量约为8116万枚FIL,活跃矿工数为2444个,每区块奖励为25.3670FIL,近24小时产出量为363599FIL,24小时平均挖矿收益为0.0560FIL/TiB,目前FIL流通量为132776355FIL。目前有效算力排名前三的分别为:f0127595(时空云)以118.07PiB暂居第一,f0135467(RRM-雅典娜)以106.34PiB位居第二,f0142720(RRM-雅典娜)以103.76PiB位居第三。[2021/6/10 23:27:29]
第541-553行代码,是yDAI合约用于计算用户存入的DAI应返回给用户多少yDAI,并在第554行进行铸币,对应序号为T2的代币转账,表示yDAI合约向用户铸了9,306yDAI。
NFT-HERO总生成NFT卡牌数突破40000,NFT交易笔数突破16万:据HECO火币生态链上数据,NFT-HERO上线3周时间,NFT卡牌总生成数突破4万,NFT卡牌交易笔数突破16万,NFT交易板块总交易额近100万美金,NFT-HERO治理通证SH(Super Hero)24小时交易额超过65万美金。根据Heco区块浏览器数据统计,NFT-HERO的NFT生成总量以及NFT交易笔数均为HECO链上排名第一。
2月4日由橡树资本与NFTHero联合举办的NFT卡牌空投抽奖活动圆满结束。本次活动历时4天,共计参与人数9529人。
NFT-HERO是HECO原生的GameFi项目,以区块链方式孵化ip以及为之赋能。用户通过开启盲盒的方式收集各种NFT,获得该项目的治理代币SH(Super Hero)。项目内已上线NFT交易市场和创新的双挖矿池。
2月4日至2月9日期间,NFT-HERO参加HECO红包周活动,将送出655枚NFT盲盒卡包,内含1500枚SH通证,总值20000美金。[2021/2/4 18:54:59]
然后进入第555行的rebalance函数,分析该函数的逻辑。
△图3?rebalance函数源码
△图4?recommend函数
第732行代码会计算newProvider,该函数会调用recommend函数(如图4所示),recommend函数会调用IEarnAPRWithPool合约查询4个Defi项目DYDX,COMPOUND,AAVE,FULCRUM中,年利率(APR)最高的项目,查询结果如图5所示:
△图5?recommend查询结果
其中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在该事件中充当了一个“良心商家”的角色,并不是以往闪电贷攻击中的帮凶。
三、安全建议
尽管本次事件经成都链安安全团队分析后被判断为虚假一场,但在这里还是有必要提醒各项目方,依然需要在日常的安全防护工作中,对闪电贷攻击加以预警和防范。
同时,作为致力于区块链生态安全建设的成都链安也在此建议,项目方的安全预警机制和安全加固工作切不可等闲视之。寻求第三方安全公司的力量,搭建覆盖全生命周期的一站式安全解决方案方为万全之策。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。