BurgerSwap 和 JulSwap 闪电贷攻击启示录 你真的懂 Uniswap 吗? 2021 年 BSC 链的推行将去中心化金融(DeFi)推向另一个热潮,DeFi 协议的总锁仓值一度冲击 1,300 亿美元,整个币圈为之疯狂,各式 DeFi 协议如雨后春笋般冒出来,但随着比特币价格的大跌和频繁发生的安全事件,DeFi 协议的锁仓量开始呈现下降的趋势。
早期,BSC 提供的固定且较以太坊低的交易费,以及对开发者友好的操作系统,吸引了一批 DeFi 协议迁移到新链上来,同时,也吸引了一批将自己定位为 Uniswap 挑战者的 AMM。当然,从目前的状况来看,它们还只是简单的分叉者。
5 月 28 日, BSC 链上首个自主治理 AMM BurgerSwap 和 DEX 协议 JulSwap 接连遭到闪电贷攻击。值得注意的是,BurgerSwap 和 JulSwap 的代码都是 Fork Uniswap 的,但似乎它们并没有完全理解 Uniswap 背后的逻辑。
如果没有完全理解 Uniswap 背后的数学,那为什么要去模仿呢?为了快速得到资本的青睐?还是害怕错过热点带来的流量?我们无法阻止模仿行为的发生,但我们很快看到了结果:BurgerSwap 损失 700 万美元,$JULB 短时下跌逾 95% 以上。
PeckShield「派盾」安全人员快速定位到 BurgerSwap 遭到闪电贷攻击的原因是攻击者利用重入攻击,在智能合约正常启动第二次存入之前,调用 _update()函数,先兑换了 45,453 BURGER。
PeckShield「派盾」简述攻击过程:
第一步,攻击者从 PancakeSwap WBNB-BUSDT 池中借出 6,047.13 WBNB 闪电贷;
第二步,在 BurgerSwap 中,调用函数 DemaxPlatform.swapExactTokensForTokens() 将 6,029 WBNB 兑换为 92,677 BURGER;
第三步,在 BurgerSwap 平台创造假币 BURGER-Fake LP,并增发 100 枚假币和 45,316.6 BURGER;
第四步,将 100 枚假币兑换为 45,316.6 WBNB;
第五步,在此步骤中攻击者通过重入攻击来攻击合约,做了另一笔兑换,将 45,453 BURGER 兑换为 4,478.6 WBNB;
攻击者从上述两步中,共计获得 8,800 WBNB。接着,攻击者将 493 WBNB 在 BurgerSwap 中兑换为 108,700 BURGER,并返还闪电贷完成攻击。
“优秀者模仿 , 伟大者剽窃。”
对于目前的 BurgerSwap 和 JulSwap,甚至其他 Fork Uniswap 的协议来说,谈及超越 Uniswap 还为时过早。
DeFi 领域是区块链领域中发展的重要一环,但是目前处于 DeFi 协议超发的时代,随着时间的推移,大浪淘沙,那些注重安全、爱护自己羽毛的 DeFi 协议才能存活下来。
PeckShield「派盾」提示 Fork Uniswap 的 DeFi 协议务必自查代码,排除类似漏洞,或寻求专业代码审计攻击的帮助,毕竟,Attacker is watching you!