作者: 币安app官方 日期:2024-10-13 10:21
作者 | Leno
12 月 2 日, 知名协议 Badger DAO 发生了一起 DEFI 安全事故,用户总损失约为 2100 BTC 和 151 ETH,约 1.2 亿美元,是今年被盗金额最高的安全事故之一。
其实 DEFI 安全事故早已屡见不鲜,仅仅在今年,Cream Finance 就受到两次攻击,最近的一次是 10 月 27 日,损失约 1.3 亿美金。首次是 8 月 30 日损失约 1800 万美元。
在 90 天的时间里连续两次遭受闪电dai攻击,让其生态系统的脆弱性暴露了出来,黑客们搅乱的浑水里,让从业者重新把目光放在了安全性上。
更为严重的是其弱点屡屡被暴露,包括 NFT 市场和 Gamefi 市场,都将会因其安全性受到质疑而发展停滞。我们并不擅长技术分析,但可以通过对比历次黑客攻击从逻辑层面尝试解读 DEFI 平台目前面临的安全困局。
在了解闪电dai攻击之前,我们先要了解什么是闪电dai。
在闪电dai中,出借者和借代者之间的一切协议和风险都由平台控制,借代的发生和效率远高于普通银行借代方式,省去了很多资产审查和资质审查环节,因其便捷程度所以被称之为闪电dai。
在区块链领域,去中心化金融作为中心化金融在区块链中的映射,其生态系统大量套用了现实中的银行管理体系,借代和质押规则等大多与中心化金融的规则体系一致。
只不过中心化的金融体系是由中心化机构制定的规则来执行,有可能出现失误,而 DEFI 的金融规则的执行均交由智能合约。分布式的结构和完全由智能合约掌控的资产安全性促进了该领域的发展速度。
2021 年初至今,DEFI 生态系统已经快速发展到了千亿美元级别,随着质押池和用户资金量的指数级增长,于是也自然出现了DEFI闪电dai形式。
闪电dai作为其金融的一种创新型模式,可以实现与互联网闪电dai一样的借代速度和快捷体验,可以实现无抵押借代,但要求在同一个区块内还款,否则成交将回滚无效。
于是,在闪电dai的模式之下,大多数从业者体验到了无需任何努力和付出的情况下,就能在该平台中秒变“富豪”,利用庞大的资金量和高频交易挖掘市场收益的感觉。同时,也有大量早期从事闪电dai的用户获得了巨额的财富。
但是,闪电dai其中的利益也被黑客们看在了眼里。恶意攻击其协议的诱因变的越来越大,以至于出现了更多的黑客,以牺牲普通用户的资产为代价,通过反复测试,利用协议漏洞盗取闪电dai质押池内资金的事件。
那么,黑客究竟是如何进行闪电dai攻击的呢?
一般认为,闪电攻击通常利用闪电dai协议和平台漏洞,通过技术手段绕过回滚机制,进行套利或操纵价格,进而通过影响市场价格牟利。
我们通常认为,黑客一般都有两个目的.一种是为了窃取对方系统中的资料(包括数字资产和其他资料),另一种是为了纯粹的技术炫耀,通过攻破对方的防御系统来彰显自己的技术实力。
然而,DEFI 领域内的闪电攻击却并不像是一个真正的黑客行为,他既不通过暴力破解(其实分布式结构的系统少量黑客几乎无法破解),也不去寻找系统的漏洞彰显实力。
从原理上说,DEFI 领域的闪电攻击通常不像是黑客的手法,使用更多的是利用金融和资金杠杆,以极低的成本撬动市场,在多个协议间进行价格操纵的金融手段。
因此,闪电攻击的目的一般较为明确,并非是黑客为了显示直接的技术有多么厉害的无意识攻击,而其目的就是大量的数字资产。从这方面说,与其说进行 DEFI 闪电攻击的是“黑客”,倒不如说这些人是深谙数字资产交易规则的资金巨鳄。
除了上述通过技术手段和金融手段操纵市场进行牟利,致使用户产生直接的资产损失之外,DEFI 闪电攻击也会通过操纵治理架构,通过闪电dai攻击获取大量生态选票,以更低的成本变更平台的治理规则,从而让规则无限契合自己的利益,以此来达到牟利的目的。
从资金操纵和治理架构操纵这两点来说,DEFI 平台一旦被闪电dai攻击成功,没有中心化进行干预的 DEFI 智能合约就成了印钞机,黑客可以通过严格遵守合约机制的智能合约源源不断地从平台中“套出”资金。
为了便于理解,我们可以参考今年以来的历次闪电dai攻击事件,从中找出攻击者的切入点,同时也能看出 DEFI 闪电dai模式最薄弱的部分在何处!
1、2021 年 5 月 30 日,BSC 链上结合多策略收益优化的 AMM 协议 Belt Finance 遭到闪电dai攻击。
此次攻击源于攻击者通过重复买入卖出 BUSD,利用bEllipsisBUSD策略余额计算中的漏洞操纵 beltBUSD 的价格进行获利。(请注意,此次事件中的攻击者最终操纵的是 BELTbusd 的价格,并非去掌控用户和流动池中的资金。)
攻击方式如下:
第一步:攻击者首先从PancakeSwap中借出 8 笔闪电dai。其中的 1000 万BUSD存入了bEllipsisBUSD协议中;
第二步:将 1.87 亿 BUSD 存入bVenusBUSD策略,再通过 Ellipsis 合约将 1.9 亿 BUSD 兑换为 1.69 亿 USDT;
这是关键的一步,在此次事件中,攻击者累计进行7次提——换——充的操作,这种重复的操作并不会让攻击者获利,但如此巨量的资金流动对 beltBUSD 的价格产生影响。
当 beltBUS 的价格产生影响之后,其实就已经相当于攻击者操纵了该数字资产的价格,然后攻击者利用bEllipsis合约余额计算中的漏洞,在进行新一次的提——换——充的时候就能够产生余额。也就是说,至此,利润产生了!
当利润产生之后,攻击者通过 Nerve (Anyswap)跨链桥将所获资产分批次转换为 ETH,然后扬长而去。
2、2021 年 6 月 23 日, ElevenFinance 中与 Nerve 相关的机枪池遭到闪电dai攻击。
此次攻击者攻击的方向是 Eleven Finance 的 Emergencyburn 计算余额错误,且未执行销毁机制。
攻击方式如下:
第一步,攻击者从PancakeSwap中借出 BUSD,并将其中一部分BUSD 兑换成 NRV;这一步是正常的操作,任何人都可以完成。
第二步,攻击者将 Nerve 和 BUSD 在PancakeSwap中添加流动性,获得 LP token;
第三步,攻击者将 LP token 放入 Eleven Finance 中与 Nerve 相关的机枪池获得nrvbusd LP token;
通过反复的兑换充提,当攻击者提取 Pancake LP token 时,ElevenNeverSellVault中的Emergencyburn函数本应销毁11 nrvbusd LP token 换回 Pancake LP token,但Emergencyburn并未执行 burn (销毁)这个动作。
攻击者很快发现了这个漏洞,并加以利用。
随后该攻击者又创建了 0x01ea 合约,借出 30.9 BTCB;0xc0ef 合约借出 285.66 ETH 以及 0x87E9 借出两笔闪电dai 2,411,889.87 BUSD 和 7,693 BUSD 进行攻击。最终获利近 460 万美元后扬长而去。
3、Cream Finance 发生的这次攻击。10 月 27 日,Cream Finance 被黑客通过在两个地址(A、B)之间反复利用「闪电dai」借出和借入资金以利用一个定价漏洞。
攻击方式如下:
第一步:攻击者用A地址从MakerDAO闪电dai获得了价值 5 亿美元的代稳定币,并将其yPool铸造yUSD,然后将yUSD存入 Yearn 的yUSD策略。
攻击者用 5 亿美元的代铸造出了 5 亿美元的crYUSD,请注意,第一步并不存在任何问题,只是一个数额巨大的兑换。
第二步:通过地址 B,攻击者从 AAVE 闪电dai获取了价值 20 亿美元的ETH,以用作CREAM 的抵押品。这允许其再借入约 5 亿美元的yUSD,再次存入以铸造crYUSD。
第三步:攻击者开始在两个账户间进行存入和借出的循环,直到账户 A 拥有约 15 亿美元的crYUSD和约 5 亿美元的yUSDVault。
在反复循环的操作中,yUSDVault 的价格被这种操作撬动,并产生了波动,本来并无利润的兑换、铸造开始产生了利润。
攻击完成后,攻击者携带 1.3 亿美元的 BTC 和 ETH 扬长而去。
通过以上三个闪电dai攻击,相信可以大致总结出一个 DEFI 闪电dai平台真正的安全隐患所在了。
仍然要说的是,DEFI 平台的资产安全是可靠的,请注意,这里说的资产安全是用户的资产安全。在 DEFI 的质押和成交过程中,用户的资金完全由智能合约管理,并不通过中心化的团队或资管平台。因此,平台从用户资金的安全性上,是没有问题的。
然而,这种安全是脆弱的。因为一切交易都需要策略的帮助,所以一个平台内往往要兼容很多个协议。协议与协议之间逻辑就有可能产生冲突。这种协议冲突在一般的用户使用过程中是完全没有问题的,一般用户手中的资金也无法引起市场的波动。
但是,当攻击者利用手中巨额的资金进行价格操纵时,由于没有中心化的团队进行管理,这种波动只能任其发生。而由价格波动造成的兑换“余额”就因此产生了。
每个Token 的余额产生是相当小的,但当这种余额被放大到数亿乃至数十亿美元的资金量时,就形成了较大的利润。
当攻击者利用协议逻辑的冲突和价格操纵完成利润提取时,因波动造成的“虚假”利润就会形成一个资金空洞,最终这些空洞将由所有的用户和平台共同买单,因此,DEFI 闪电dai的安全性又是脆弱的。
在Cream Finance 被攻击之后,业内普遍的看法是由于开发团队急于扩大市场,因此兼容了过多的协议,这种毫无顾忌的兼容正是发生连续攻击闪电dai攻击的真正原因。更多人则看到的是,DEFI 闪电dai暴露出的风险将在今后严重阻碍行业发展进程。
Cream Finance 被攻击,行业不应仅看到最终的损失由谁来买单,用户的信心如何挽回。更应该看到的是,坚固的底层建筑很可能并不能决定上层的稳固程度。
协议漏洞(确切地说是协议设计时就已经存在的漏洞)到底是开发者刻意留下的“后门”,还是被行业巨鳄们盯上的“韭菜地”其实才是用户更加担忧的。
另外,闪电协议究竟如何在设计之初就规避短时间内的价格波动对协议本身造成的影响,或者说如何规避大规模资金恶意对市场和单个 Token 价格的波动仍需要进一步探讨。
无论如何,行业发展不能因噎废食,但也要知道亡羊补牢。当协议逻辑漏洞被价格操纵放大,带给行业的损失将是巨大的。现在的行业已经解决了基础安全问题,是时候对上层建筑进行加固和重新定义了。