原文标题:《Foresight Ventures:「正义」的攻击,复盘常见的 DeFi 经济模型攻击》
原文作者:Jonas,Foresight Ventures
在加密行业的黑暗森林里,Defi 已成为黑客的提款机,今年迄今损失总金额已超过 30 亿美元。一是因为 Defi 平台持有大量资金,攻击成功的回报很高。二是因为大多数 Defi 协议代码都是开源,更易受到网络安全威胁。三是因为 Defi 通常生态互连,放大攻击的便利性。
Token Terminal 报告显示,Defi 大约 50% 的漏洞发生在跨链桥上,其次为借贷,交易平台和机池。
对 Defi 的经济模型攻击更有研究价值,特别是一些机制在极端情况下的走向,很有利于我们理解Token经济学。某种意义上,如果黑客通过钓鱼、撞库等社会工程学手段来盗取资产,算是不义之财。而类似地通过 Defi 的规则来套利,就堪称明火执仗地赚钱,手段高明但无可置喙。
价格操纵是 Defi 中最早和最常见的漏洞。而随着链上衍生品兴起,攻击的盈亏比变得很高。
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]
成功要素:山寨币合约仓位没有限制
攻击流程:
c) 变现:此时攻击者的多头仓位收益为 4.2 亿美元,再利用账户净资产从 Mango 平台进行借贷,好在流动性不足最终只借出 1.1 亿美元。
22 年 9 月 Arbitum 链去中心化合约平台 GMX 遭遇攻击。
成功要素:0 滑点机制,攻击成本低
b) 操纵价格:由于 GMX 是 0 滑点,因此预言机的喂价约等于执行价,但是 GMX 上的大额头寸会影响到其它交易平台的 AVAX/USD 价格,然后预言机才反应过来并喂价给 GMX。0 滑点意味着攻击者在任何时刻都拥有无限流动性。举个极端例子,如果在 GMX 上做多 10 亿美金的 AVAX,照理说这么大的资金量会拉高实际交易的价格,但 GMX 的机制是 0 滑点,所以还是按照预言机的喂价来开仓。但这个体量的交易会拉高其它交易平台 AVAX 的价格,假设涨了 20%,预言机才会把最新的价格反馈到 GMX 上,此时就可以按 AVAX 涨了 20% 的价格来平仓,并把赚到的 AVAX 提取到其它交易平台卖出。
主力成交复盘:币安1024枚BTC主力卖出引发瀑布:AICoin PRO版K线秒级周期及主力成交数据显示:今天10:32:02秒,币安BTC/USDT交易对有一笔数量为1024.37BTC,价格为9550.99美元的主动卖出,最终卖出滑点-179.39美元。该笔大额主动卖出为此轮瀑布中多个平台里第一笔大额卖出,随后市场跟随下跌至最低9256美元。[2020/5/15]
c) 变现:此时攻击者平仓盈利,攻击者赚到的 AVAX,就是 GLP 持有者亏损的 AVAX。
这类攻击执行起来非常复杂,但其模式类似,即依赖价格喂价的系统会临时操纵喂价以扭曲协议的内部核算。然后将资金以优惠的利率进行存入,然后在将预言机重置为正常值后立即以另一种货币或同一种货币提走。
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。
复盘:主力开空均价6823美元:AICoin PRO版K线主力大单统计显示,4月11-12日,OKEx BTC季度合约上有14笔,总成交5148.58万美元的委托大卖单成交,结合AI-PD-持仓差值,这一过程持仓量增加明显,可判断为主力开空,开空均价6823.56美元。火币BTC季度合约在这个位置附近同样有2500多万美元的主力开空单。[2020/4/13]
d) 变现:攻击者将稳定币 HAY 交换成 BNB 和 USDC 等约 1500 万美元等值资产,进行提现。
22 年 5 月 Bsc 链借贷协议 Venus 遭遇攻击。
a) 预言机错误:LUNA 增发崩盘时,Chainlink 对 LUNA 的价格反馈达到价格下限,被以 0.107 美元价格暂停。但 Bsc 链上借贷协议 Venus 的 LUNA 市场却在继续运行,喂价正是来自 Chainlink。当 LUNA 价格约为 0.01 美元时,团队才暂停协议。
b) 建仓:套利者从二级市场大量增发后的 LUNA,并提到 Bsc 链。
c) 抵押借贷变现:套利者在 Venus 上以 LUNA 为抵押品进行借贷,借贷出约 1400 万美元等值资产,进行提现。
20 年 5 月 Bsc 链借贷协议 bZx 遭遇攻击。
成功要素:预言机价格来源单一
复盘:突破的时候迅速有大单跟进能辅助判断是否是假突破:AICoin PRO版K线主力成交数据显示:BitMEX XBT永续合约在04:00~10:00的5分钟周期中做三角震荡。 09:45,价格跌破三角形下沿,跌破后大单卖出为0,于是很快便重新回到三角内,可确认为假跌破。 10:35,价格上涨突破了上沿,并且迅速有6笔总额916.31万美元的大额买入,可判断为真突破,果断跟进或持有仓位。[2020/4/8]
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 等等、此处就不一一列举了。
主力大单跟踪复盘:开多又平多 主力已完成短线操作:AICoin PRO版K线主力大单跟踪显示:3月9日全天,OKEx及火币的季度合约总计有6笔千万美元级别以上的买单成交,总成交金额超过7600万美元。这一过程中,AI-PD-持仓差值为大正值,为主力开多。3月10日早上九点后,OKEx及火币的季度合约总计有10笔千万美元级别以上的卖单成交,这一过程中,AI-PD-持仓差值为大负值,为主力平多。数据表明,过去36小时,主力开多又平多,已完成短线操作。[2020/3/11]
熊市中流动性逐渐匮乏,非主流资产价格深度不足、波动变大。大规模做空可能是由 Defi 杠杆清算和资本做空共同推动的。
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 价格越低,爆仓的人越多。
22 年 11 月以太坊链去中心化稳定币交易平台 Curve 遭遇攻击。
成功要素:借贷协议可抵押长尾资产
b) 借贷做空:攻击者前后在 AAVE 共抵押 6360 万个 USDC,借出 9200 万个 CRV 砸盘做空。由于 CRV 价格暴跌,借贷协议 AAVE 上的 USDC 抵押物可以继续借出更多的 CRV 做空。
c) 杠杆循环清算:由于 CRV 本身是借贷协议抵押品,价格的快速下跌也引发了大量 CRV 被清算,或将引起死亡螺旋的连锁反应。攻击者意图击穿 CRV 创始人抵押仓位清算线,将其爆仓。虽然后来在创始人和社区联合下做空失败爆仓,但操作思路还是值得学习借鉴。
Defi 攻击已不仅限于操纵价格了,若协议防线不足,治理机制漏洞也可能被攻击者利用。
22 年 4 月以太坊链去中心化稳定币 Beanstalk 遭受攻击。
成功要素:未对可投票资金添加时间锁
a) 提案:攻击者在攻击前一天发布恶意提案,提案通过以后将会从 Beanstalk 合约中提取资金。
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 攻击。实践出真知。
金色财经 子木
金色早8点
去中心化金融社区
CertiK中文社区
虎嗅科技
区块律动BlockBeats
深潮TechFlow
念青
Odaily星球日报
腾讯研究院
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。