撰文:Jonas,ForesightVentures
在加密行业的黑暗森林里,Defi已成为黑客的提款机,今年迄今损失总金额已超过30亿美元。一是因为Defi平台持有大量资金,攻击成功的回报很高。二是因为大多数Defi协议代码都是开源,更易受到网络安全威胁。三是因为Defi通常生态互连,放大攻击的便利性。TokenTerminal报告显示,Defi大约50%的漏洞发生在跨链桥上,其次为借贷,交易所和机池。
对Defi的经济模型攻击更有研究价值,特别是一些机制在极端情况下的走向,很有利于我们理解代币经济学。某种意义上,如果黑客通过钓鱼、撞库等社会工程学手段来盗取资产,算是不义之财。而类似地通过Defi的规则来套利,就堪称明火执仗地赚钱,手段高明但无可置喙。
币价操纵,通过合约变现
价格操纵是Defi中最早和最常见的漏洞。而随着链上衍生品兴起,攻击的盈亏比变得很高。
案例1:MANGO
22年10月Solana链去中心化合约平台Mango遭遇攻击。
成功要素:山寨币合约仓位没有限制
Certik复盘Yearn闪电贷攻击:黑客完成5次DAI与USDT从3crv中存取操作后偿还闪电贷:Certik发布文章,复盘Yearn闪电贷攻击。黑客操作的具体操作如下:
1.利用闪电贷筹措攻击所需初始资金。
2.利用 Yearn.Finance 合约中漏洞,反复将 DAI 与 USDT 从 3crv 中存入和取出操作,目的是获得更多的3Crv代币。这些代币在随后的3笔转换代币交易中转换为了USDT与DAI稳定币。
3.完成5次重复的DAI 与 USDT 从 3crv 中存取操作后,偿还闪电贷。[2021/2/5 18:57:51]
攻击流程:
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
主力数据复盘:Bitfinex买入推高价格,其他平台跟随确认突破:AICoin PRO版主力数据及秒级周期K线显示:在今天7点的这轮上涨中,07:00:11,Bitfinex BTC/USDT主动买入183.62BTC,买入价格9749.3,被卖价格9777美元,滑点高达42.7美元,把价格推至9791美元。 随后的07:00:12,BitMEX开始出现大额主动买入,41秒内主动买入7笔,共计1442万美元。 差不多相同时间,火币BTC季度合约上亦出现大量主动买入单子。72秒内,有16笔,共计2560万美元成交。 此位置为三角形上沿及日线级别下降趋势线附近,可见大量的买入确认了突破。三分钟后市场开启大幅度拉升。[2020/6/2]
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。
主力数据复盘:大量主力恐慌性平空买入推高了价格:AICoin PRO版K线主力数据显示,在此轮拉升中,多个平台都出现了大量的大额买入平空单,大量的买入推高了价格。
最先是火币BTC季度合约在28日17:00~19:00中短时挂起7笔,共计2333.19万美元大额委托买单并成交,买入均价9211美元。成交后,价格开始拉升。
20:50~22:50,OKEx BTC季度合约短时挂起25笔,共计6284.92万美元的大额委托买单并成交,买入均价9494.9美元。
05:15,BitMEX XBT永续合约市价主力市价买入1000万美元,买入价格9445.5美元,滑点41,价格向上插针至9523美元。不久后价格再度拉升至最高9629美元。
结合AI秒级持仓量分析,以上大部分买单成交后,持仓量均下降明显,可判断大部分均为买入平空单。
可见,大量主力恐慌性的平空买入推高了价格。[2020/5/29]
利用预言机错误,通过抵押借贷变现
这类攻击执行起来非常复杂,但其模式类似,即依赖价格喂价的系统会临时操纵喂价以扭曲协议的内部核算。然后将资金以优惠的利率进行存入,然后在将预言机重置为正常值后立即以另一种货币或同一种货币提走。
案例3:ANKR
22年12月Bsc链借贷协议Helio遭遇攻击。
成功要素:预言机喂价不及时
攻击流程:
主力成交数据复盘:此轮拉升主力在Bitfinex:AICoin PRO版K线主力成交数据显示:过去24小时,比特币持续拉升,现货价格曾一度逼近9000美元。
在拉升过程中,Bitfinex的主力买入了185笔,共计5638.89BTC;主力卖出仅81笔,共计2339.35BTC,主力买卖成交差3299.53BTC。
币安成交差-855.51BTC,火币成交差442.87BTC,OKEx成交差-265.87BTC。
明显,此轮拉升主力在Bitfinex。[2020/4/30]
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美元时,团队才暂停协议。
复盘:突破的时候迅速有大单跟进能辅助判断是否是假突破:AICoin PRO版K线主力成交数据显示:BitMEX XBT永续合约在04:00~10:00的5分钟周期中做三角震荡。 09:45,价格跌破三角形下沿,跌破后大单卖出为0,于是很快便重新回到三角内,可确认为假跌破。 10:35,价格上涨突破了上沿,并且迅速有6笔总额916.31万美元的大额买入,可判断为真突破,果断跟进或持有仓位。[2020/4/8]
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空单,由于Uniswap池子可兑换的WBTC有限,WBTC价格被拉高至正常值的3倍。
c)变现:攻击者再把从Compound借到的112个WBTC卖出,共获利36万美元。
预言机操纵始终是Defi攻击的重灾区,相似案例还有VeeFinance、HarvestFinance、ValueDefi、WarpFinance等等、此处就不一一列举了。
做空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上的USTPool是否出现不平衡的情况。因此当Terra从Curve移除1.5亿美元流动性,为4pool做准备时,较小的流动性池规模意味着UST出售对价格的影响比平时更大。攻击者开始抛售价值2.85亿美元的UST,令稳定币开始脱锚。
坊间传言攻击者Alameda在UST崩溃前从Voyager借了9位数的BTC,砸盘做空BTC以阻击Terra储备金。同时GenesisTrading向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年MakerDAO、Lido等头部项目的TVL仍将实现正增长。即使以美元计算,Defi市场仍然保持400亿美元以上的TVL,比21年前要好得多,这意味着Defi市场已成为加密市场不可或缺一部分。
这轮牛市是Defi的繁荣起点,随着该行业的崛起成为人们关注的焦点,攻击者也相应地将注意力转向了这一领域。从上面的攻击中可以清楚地看出,攻击Defi协议并没有单一的方法,而是一些常见的攻击向量,导致一些年轻的Defi项目沦为了牺牲品。到目前为止,这些日益增长的攻击造成的损失还不是灾难性的。然而,随着生态系统的持续发展和总锁仓量的增长,涉及的资金将变得更多,攻击将更有利可图,未来将会看到更复杂的Defi攻击。实践出真知。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。