时间:2023-07-30|浏览:209
上一篇文章简单介绍了5月份币安智能链遭受了11次DeFi安全事故,并列出了币安智能链上的无损挖矿项目排行榜,该榜单综合考虑了收益和安全性。
今天我们将继续解读币安智能链上PancakeBunny遭受的攻击。
5月20日,币安智能链上的DeFi协议PancakeBunny遭受了黑客的闪电贷攻击。这个备受关注的项目也无法幸免于灰色5月的破坏,Bunny代币的价格暴跌,短时间内跌幅高达97%。
那么黑客是如何攻击的呢?根据零时科技给出的攻击简述:
一、攻击者通过闪电贷借出约232万枚BNB,并从ForTube闪电贷借出296万枚USDT。然后用7744枚BNB和296万枚USDT,添加到BNB-USDT流动性中,获得大约14万枚LP代币。
二、攻击者将借来的232万枚BNB在PancakeSwap兑换为382万枚USDT。由于V1池已被放弃,资金储备很低,大量的BNB代币进入池子,导致BNB的价格急剧下降,攻击者可以控制价格。
三、攻击者通过调用VaultFlipToFlip合约中的getReward方法,将之前抵押过的资金转换出来。具体流程如下:
1. 从BNB-USDT池子中取出296万枚USDT和7744枚BNB。 2. 将296万枚USDT换成231万枚BNB。 3. 将其中一半的115万枚BNB换成17万枚Bunny。 4. 将剩余的115万枚BNB转入BNB-Bunny池子中,获得对应的LP代币。 5. 将之前取出的7744枚BNB按1:1的比例添加到BNB-Bunny池子中,增加流动性。 6. 将获得的所有LP代币添加到PancakeSwap,最终获得697万枚Bunny代币。
四、攻击者利用合约中铸币计算的缺陷,将获得的697万枚Bunny代币转换成BNB和USDT,并将其中69万枚Bunny转入自己的钱包。
五、最后,攻击者还回了借出的资金,并将剩余的11万枚BNB转入自己的钱包。
攻击的关键在于WBNB-BUNNYLP价格计算存在缺陷,而BunnyMinterV2合约铸币数量依赖于这个价格计算方式,从而导致攻击者操纵了WBNB-BUNNY池子的价格,获取了大量的铸币。
Bunny团队已经公布了补偿方案,大致包括发行新代币pBUNNY,发放给攻击前持有BUNNY的用户,并重新开放机枪池,调整BUNNY的产出;同时开设一个pBUNNY池子,将所有收益都给这个池子,包括机枪池的挖矿收益、团队的BUNNY分配以及追回的资金等;在90天后,pBUNNY可以按一定比例换回BUNNY。
这次攻击对Bunny的价值和用户的信任度造成了毁灭性的打击。我们需要重视项目团队的可信度,不要忽视审计报告,了解报告中审计的内容,对自己的财务负责。同时,DeFi领域作为区块链中重要的一环,项目方也需要及时更新合约代码,拥有可靠的预言机,确保安全可靠的金融环境。