作者: Jonas@Foresight Ventures
在加密行业的黑暗森林里,Defi已成为黑客的提款机,今年迄今损失总金额已超过 30 亿美元。一是因为Defi平台持有大量资金,攻击成功的回报很高。二是因为大多数Defi协议代码都是开源,更易受到网络安全威胁。三是因为Defi通常生态互连,放大攻击的便利性。Token Terminal报告显示,Defi大约50%的漏洞发生在跨链桥上,其次为借贷,交易所和机枪池。
发生时间 | 项目 | 类型 | 损失金额 | 原因 |
---|---|---|---|---|
22年10月 | Mango | DEX | 1.1亿美元 | 价格操纵 |
22年10月 | Binance Bridge | 跨链 | 1亿美元 | 合约漏洞 |
22年8月 | Nomad Bridge | 跨链 | 1.9亿美元 | 合约漏洞 |
22年6月 | Harmony Bridge | 跨链 | 1亿美元 | 私钥泄漏 |
22年4月 | Beanstalk | 稳定币 | 8000万美元 | 闪电贷投票 |
22年3月 | Ronin Network | 侧链 | 5.5亿美元 | 私钥泄漏 |
22年1月 | Wormhole | 跨链 | 3.3亿美元 | 合约漏洞 |
22年1月 | Qubit Bridge | 跨链 | 8000万美元 | 合约漏洞 |
21年12月 | Vulcan Forged | 链游 | 1.4亿美元 | 私钥泄漏 |
21年12月 | Badger DAO | 跨链 | 1.2亿美元 | 合约漏洞 |
21年12月 | Grim Finance | 机枪池 | 3000万美元 | 合约漏洞 |
21年11月 | bZx | 借贷 | 5500万美元 | 私钥泄漏 |
21年11月 | MonoX Finance | 自动做市商 | 3100万美元 | 合约漏洞 |
21年10月 | Compound | 借贷 | 1.5亿美元 | 合约漏洞 |
21年10月 | Cream Finance | 借贷 | 1.3亿美元 | 价格操纵 |
21年9月 | Vee Finance | 借贷 | 3500万美元 | 预言机操纵 |
21年8月 | Poly Network | 跨链 | 6.1亿美元 | 合约漏洞 |
21年5月 | PancakeBunny | 机枪池 | 4500万美元 | 价格操纵 |
21年3月 | Meerkat Finance | 借贷 | 3100万美元 | 合约漏洞 |
对Defi的经济模型攻击更有研究价值,特别是一些机制在极端情况下的走向,很有利于我们理解代币经济学。某种意义上,如果黑客通过钓鱼、撞库等社会工程学手段来盗取资产,算是不义之财。而类似地通过Defi的规则来套利,就堪称明火执仗地赚钱,手段高明但无可置喙。
币价操纵,通过合约变现
价格操纵是Defi中最早和最常见的漏洞。而随着链上衍生品兴起,攻击的盈亏比变得很高。
案例1:MANGO
22年10月Solana链去中心化合约平台Mango遭遇攻击。
成功要素:山寨币合约仓位没有限制
攻击流程:
a)建仓:攻击者首先向Mango交易平台A、B 地址分别各转入500万美元。而后黑客通过A地址在Mango上利用合约做空代币MANGO;同时在B地址上做多MANGO。多空双开的原因在于,虽然Mango平台对山寨币合约仓位没有限制,但是深度较差,如果不和自己作对手盘,仓位就很难开到这么高。
b)操纵价格:攻击者使用更多资金购买MANGO代币,在10分钟内将其价格从2美分升至91美分。因为MANGO是一种流动性低的代币,这使得攻击者能够快速操纵价格。
c)变现:此时攻击者的多头仓位收益为4.2亿美元,再利用账户净资产从Mango平台进行借贷,好在流动性不足最终只借出1.1亿美元。
案例2:GMX
22年9月Arbitum链去中心化合约平台GMX遭遇攻击。
成功要素:0滑点机制,攻击成本低
攻击流程:
a)建仓:攻击者在GMX上反复开大量代币AVAX多头和空头的头寸。
b)操纵价格:由于GMX是0滑点,因此预言机的喂价约等于执行价,但是GMX上的大额头寸会影响到其它交易所的AVAX/USD价格,然后预言机才反应过来并喂价给GMX。0滑点意味着攻击者在任何时刻都拥有无限流动性。举个极端例子,如果在GMX上做多10亿美金的AVAX,照理说这么大的资金量会拉高实际交易的价格,但GMX的机制是0滑点,所以还是按照预言机的喂价来开仓。但这个体量的交易会拉高其它交易所AVAX的价格,假设涨了20%,预言机才会把最新的价格反馈到GMX上,此时就可以按AVAX涨了20%的价格来平仓,并把赚到的AVAX提取到其它交易所卖出。
c) 变现:此时攻击者平仓盈利,攻击者赚到的AVAX,就是GLP持有者亏损的AVAX。
利用预言机错误,通过抵押借贷变现
这类攻击执行起来非常复杂,但其模式类似,即依赖价格喂价的系统会临时操纵喂价以扭曲协议的内部核算。然后将资金以优惠的利率进行存入,然后在将预言机重置为正常值后立即以另一种货币或同一种货币提走。
案例3:ANKR
22年12月Bsc链借贷协议Helio遭遇攻击。
成功要素:预言机喂价不及时
攻击流程:
a)预言机错误:Bsc链质押项目Ankr被黑客直接利用合约漏洞,凭空铸造10万亿个aBNBc,导致aBNBc价格几近归零。而借贷协议Helio预言机喂价是采用6小时平均加时权重的设置。
b)建仓:攻击者使用10个BNB买了Ankr超发的18万个aBNBc,之后将aBNBc交换为Hello的hBNB。
c)抵押借贷:攻击者以hBNB为抵押品在Helio中进行借贷,借贷出1644万稳定币HAY。
d)变现:攻击者将稳定币HAY交换成BNB和USDC等约1500万美元等值资产,进行提现。
案例4:XVS
22年5月Bsc链借贷协议Venus遭遇攻击。
成功要素:预言机喂价不及时
攻击流程:
a)预言机错误:LUNA增发崩盘时,Chainlink对LUNA的价格反馈达到价格下限,被以 0.107美元价格暂停。但Bsc链上借贷协议Venus的LUNA市场却在继续运行,喂价正是来自Chainlink。当LUNA价格约为0.01美元时,团队才暂停协议。
b)建仓:套利者从二级市场大量增发后的LUNA,并提到Bsc链。
c)抵押借贷变现:套利者在Venus上以LUNA为抵押品进行借贷,借贷出约1400万美元等值资产,进行提现。
案例5:BZRX
20年5月Bsc链借贷协议bZx遭遇攻击。
成功要素:预言机价格来源单一
攻击流程:
a) 建仓:首先攻击者通过闪电贷从去中心化合约平台DYDX借出1万个ETH,使用其中5500个ETH在借贷平台Compound借出112个WBTC。
b)预言机错误:bZx是保证金交易协议,用户可以抵押一种币作为保证金,在杠杆借出另一种币,这两个币的浮动汇率,bZx需要预言机来喂价,并单一依赖Uniswap上价格。攻击者使用1300个ETH到bZx上开了5倍ETH空单(即使用其中5637个ETH兑换WBTC),由于Uniswap池子可兑换的WBTC有限,WBTC价格被拉高至正常值的3倍。
c)变现:攻击者再把从Compound借到的112个WBTC卖出,共获利36万美元。
预言机操纵始终是Defi攻击的重灾区,相似案例还有Vee Finance、 Harvest Finance、Value Defi、Warp Finance等等、此处就不一一列举了。
做空Defi杠杆,导致死亡螺旋
熊市中流动性逐渐匮乏,非主流资产价格深度不足、波动变大。大规模做空可能是由Defi杠杆清算和资本做空共同推动的。
案例6:LUNA
22年5月Terra链的稳定币UST遭遇攻击。
成功要素:资金盘在熊市遇到流动性挤兑
攻击流程:
a)建仓:攻击者认为LUNA-UST机制无法长期维持。Terra通过Anchor给出的高收益率是一种引流的策略,吸引用户更多使用UST。但是20%的收益率是不可持续的。当利率水平从20%下降至 7-12%之间,会有价值约90亿美元的LUNA离开,但是由于LUNA/UST的流动性并不够好,估计约有50亿美元的UST会遭遇退出困境。如果想让50亿美元的 UST兑换成LUNA并安全离开市场,可能需要400亿美元的LUNA市值,而当时LUNA的最大市值才不过 400 亿美元。似乎Terra方面已经耗尽了储备,没钱维持UST的稳定,或者是放弃了维持 UST 的稳定。因此观察是否还可持续的窗口,是Curve上的UST Pool是否出现不平衡的情况。因此当Terra从Curve移除1.5亿美元流动性,为4pool做准备时,较小的流动性池规模意味着UST出售对价格的影响比平时更大。攻击者开始抛售价值2.85亿美元的UST,令稳定币开始脱锚。
坊间传言攻击者Alameda在UST崩溃前从Voyager借了9位数的BTC,砸盘做空BTC以阻击Terra储备金。同时Genesis Trading向Alameda提供10亿美元UST,为针对UST脱锚的攻击提供了子弹。
b)杠杆循环清算:
UST是算法稳定币,使用简单的铸造和销毁机制来保持稳定性。要铸造UST,必须销毁等价值的LUNA;同样用户也可以通过销毁UST来兑换等值的LUNA。随着UST的下跌,假设的死亡螺旋成为现实,投资者以越来越低的价格销毁UST换取LUNA,从而使未偿还的LUNA供应过度膨胀。事实上,LUNA 的供应量在短短几天内就从不到3.5亿枚增加到6.5万亿枚以上。
同时UST在Abracadabra遭到大规模清算。去年 11 月,Abracadabra为UST启动了Degenbox 策略,用户抵押UST借贷MIM,通过循环抵押可以极大提高收益率。只要UST维持在 1 美元,这个策略基本上是无风险的,然而一旦UST脱钩,用户的抵押品价值降低面临被清算的风险。UST价格到 0.97 会爆一批,低于0.9能爆掉50%以上用这个策略的人。循环往复,UST价格越低,爆仓的人越多。
案例7:CRV
22年11月以太坊链去中心化稳定币交易平台Curve遭遇攻击。
成功要素:借贷协议可抵押长尾资产
攻击流程:
a)建仓:Curve的代币锁仓机制加上贿选机制,造成流动性严重不足。攻击者先在交易所开CRV高倍率空单。
b)借贷做空:攻击者前后在AAVE共抵押6360万个USDC,借出9200 万个CRV砸盘做空。由于CRV价格暴跌,借贷协议AAVE上的USDC抵押物可以继续借出更多的CRV做空。
c)杠杆循环清算:由于CRV本身是借贷协议抵押品,价格的快速下跌也引发了大量CRV被清算,或将引起死亡螺旋的连锁反应。攻击者意图击穿CRV创始人抵押仓位清算线,将其爆仓。虽然后来在创始人和社区联合下做空失败爆仓,但操作思路还是值得学习借鉴。
闪电贷治理攻击
Defi攻击已不仅限于操纵价格了,若协议防线不足,治理机制漏洞也可能被攻击者利用。
案例8:BEAN
22年4月以太坊链去中心化稳定币Beanstalk遭受攻击。
成功要素:未对可投票资金添加时间锁
攻击流程:
a)提案:攻击者在攻击前一天发布恶意提案,提案通过以后将会从Beanstalk合约中提取资金。
b)建仓:攻击者通过闪电贷获得了3.5亿个DAI、5亿个USDC、1.5亿个USDT、3200万个BEAN和1100万个LUSD作为资金储备,从而积累了大量该协议的治理代币。
c)投票:攻击者用BEAN3CRV-f和BEANLUSD-f来对提案发起投票,从而导致提案通过。攻击者获得24830个ETH和3600万个BEAN稳定币,获利约8000万美元。
虽然是熊市,但是Defi市场仍保持一定的活力。从锁仓量来看,如果加密市场以原生资产ETH而非美元计价,那么22年Maker DAO、Lido等头部项目的TVL仍将实现正增长。即使以美元计算,Defi市场仍然保持400亿美元以上的TVL,比21年前要好得多,这意味着Defi市场已成为加密市场不可或缺一部分。
这轮牛市是Defi的繁荣起点,随着该行业的崛起成为人们关注的焦点,攻击者也相应地将注意力转向了这一领域。从上面的攻击中可以清楚地看出,攻击Defi协议并没有单一的方法,而是一些常见的攻击向量,导致一些年轻的Defi项目沦为了牺牲品。到目前为止,这些日益增长的攻击造成的损失还不是灾难性的。然而,随着生态系统的持续发展和总锁仓量的增长,涉及的资金将变得更多,攻击将更有利可图,未来将会看到更复杂的Defi攻击。实践出真知。
关于 Foresight Ventures
Foresight Ventures 押注加密货币未来几十年的创新历程,旗下管理多支基金:VC基金、二级主动管理基金、多策略FOF、特殊目的S基金「Foresight Secondary Fund l」, 总资产管理规模超过4亿美元。Foresight Ventures 坚持“Unique, Independent, Aggressive, Long-term”的理念,通过强大的生态力量为项目提供广泛的支持。其团队来自包括红杉中国,中金公司,谷歌,比特大陆等顶级金融和技术公司的资深人士。
Website: https://www.foresightventures.com/
Twitter: https://twitter.com/ForesightVen
Medium: https://medium.com/@foresightventures-zh
Substack: https://foresightventures.substack.com
Discord: https://discord.com/invite/maEG3hRdE3
Linktree: https://linktr.ee/foresightventures
原文始发于微信公众号(Foresight Research):Foresight Ventures: “正义”的攻击,复盘常见的Defi经济模型攻击