?
前几天,Solana生态上的DeFi项目Mango受到黑客闪电贷攻击,损失超过1亿美金。据悉,黑客是通过操作预言机的价格来掏空了Mango协议的流动性。
那我们今天就来聊聊何为闪电贷、黑客是如何使用闪电贷来攻击DeFi协议的,以及预言机对DeFi协议的重要性。
01区块链世界的金融创新——闪电贷
闪电贷最初是由Marble银行提出,Marble宣称「闪电贷可以帮助交易者从Marble银行贷款,在一家去DEX中买币,在另一家DEX以较高价格卖出代币,一笔自动化交易就可以让您将套利收益收入囊中。」
闪电贷的原理如下:
1、用户以无抵押的方式从协议中借出大量的资金;
2、用户可以使用这笔资金进行任何对自己有利的操作;
3、最后用户需将本金和一定的利息还给协议,若这个时候用户没有足够的资金,则整个操作都会进行回滚,保证协议的资金不会受到损失。
Ara项目遭到闪电贷攻击:金色财经报道,据CertiK官方推特发布消息称,Ara项目遭到闪电贷攻击。攻击者疑似获利约12.4万美元的BUSD。攻击者地址:0xF84efA8a9F7E68855CF17EAaC9c2f97A9d131366。[2023/6/19 21:46:43]
闪电贷的机制是由智能合约的原子性来保障的,即上述这些操作为具有原子性的事务,只能全部成功,或全部失败,不会出现一部分成功而一部分失败的情况。
因此在所有操作全部成功的情况下,整个闪电贷运行成功,协议通过借出资金并收回资金获取了利息,而用户通过各种各样的方式从这笔大资金的运作中获取了利益;而当用户在使用资金的过程中,并未获取到预期的利益,反而亏损了的话,会导致借出的资金变少而无法完成最后的还款操作,因此整个操作会失败,则除了用户损失gas外,协议的资金不会受到损失。
根据闪电贷的原理,我们可以发现为了能够使整个操作顺利地运行,关键就是用户如何在短时间内利用这笔资金进行获利。
慢雾:Inverse Finance遭遇闪电贷攻击简析:据慢雾安全团队链上情报,Inverse Finance遭遇闪电贷攻击,损失53.2445WBTC和99,976.29USDT。慢雾安全团队以简讯的形式将攻击原理分享如下:
1.攻击者先从AAVE闪电贷借出27,000WBTC,然后存225WBTC到CurveUSDT-WETH-WBTC的池子获得5,375.5个crv3crypto和4,906.7yvCurve-3Crypto,随后攻击者把获得的2个凭证存入Inverse Finance获得245,337.73个存款凭证anYvCrv3Crypto。
2.接下来攻击者在CurveUSDT-WETH-WBTC的池子进行了一次swap,用26,775个WBTC兑换出了75,403,376.18USDT,由于anYvCrv3Crypto的存款凭证使用的价格计算合约除了采用Chainlink的喂价之外还会根据CurveUSDT-WETH-WBTC的池子的WBTC,WETH,USDT的实时余额变化进行计算所以在攻击者进行swap之后anYvCrv3Crypto的价格被拉高从而导致攻击者可以从合约中借出超额的10,133,949.1个DOLA。
3.借贷完DOLA之后攻击者在把第二步获取的75,403,376.18USDT再次swap成26,626.4个WBTC,攻击者在把10,133,949.1DOLAswap成9,881,355个3crv,之后攻击者通过移除3crv的流动性获得10,099,976.2个USDT。
4.最后攻击者把去除流动性的10,000,000个USDTswap成451.0个WBT,归还闪电贷获利离场。
针对该事件,慢雾给出以下防范建议:本次攻击的原因主要在于使用了不安全的预言机来计算LP价格,慢雾安全团队建议可以参考Alpha Finance关于获取公平LP价格的方法。[2022/6/16 4:32:58]
随着闪电贷的应用发展,这种无抵押瞬间获取大量资金的工具在人们进行了各种各样的尝试后,猛然发现黑客使用闪电贷的资金对DeFi协议进行攻击的方式竟然是获利最大的操作,那接下来就让我们来看看黑客是如何使用闪电贷来获利的吧。
成都链安:Discover项目正在持续遭到闪电贷攻击:6月6日消息,据成都链安“链必应-区块链安全态势感知平台”安全舆情监控数据显示,Discover项目正在持续遭到闪电贷攻击,攻击者通过闪电贷使用BSC-USD大量重复兑换Discover代币,其中一个攻击者0x446...BA277获利约49BNB已转入龙卷风,攻击交易:0x1dd4989052f69cd388f4dfbeb1690a3f3a323ebb73df816e5ef2466dc98fa4a4,攻击合约:0xfa9c2157cf3d8cbfd54f6bef7388fbcd7dc90bd6
攻击者地址:0x446247bb10B77D1BCa4D4A396E014526D1ABA277[2022/6/6 4:05:40]
02闪电贷如何沦为黑客获利工具
目前的区块链世界就是一片黑暗森林,隐藏着各种各样的风险,而黑客在这其中无疑是一群贪婪的猎食者,他们无时无刻不在发现有利可图的机会,或者创造这样的机会来进行获利。
Cream Finance:已对闪电贷功能做出调整,以适应EIP-3156提案:8月23日,CreamFinance官方发布公告,称平台对闪电贷相关功能进行了调整,以适应改进提案EIP—3156。公告显示,CreamFinance的闪电贷功能与AAVEV1非常相似,但有3个主要区别:1.Cream的闪电贷使用者将与flashLoanLender合约进行交互,而不是借贷池。2.Cream部署了两个符合EIP-3156的flashLoanLenders合约,一种用于Lending,一种用于IronBank。3.Cream闪电贷的手续率更低,为0.03%。[2021/8/23 22:31:44]
而闪电贷这种提供无抵押大资金的借贷工具,无疑满足了黑客需要使用低风险的大资金来进行价格操纵的需求。目前使用闪电贷对DeFi协议的攻击大多都是通过操纵价格的方式来进行的,因此我们用下面的例子来进行说明。
1、黑客从借贷协议中借出大量的资金;
BSC链上Impossible Finance疑似遭到闪电贷攻击:PeckShield“派盾”预警显示,BSC链上DeFi协议Impossible Finance疑似遭到闪电贷攻击,请用户注意规避风险。[2021/6/21 23:53:14]
2、在DeFi协议中埋伏相关币种的资金;
3、使用大资金在DEX中拉高相关币种的价格;
4、受操作的价格通过预言机传递给DeFi协议;
5、DeFi协议在收到预言机的喂价后,黑客按当前受操纵的价格将提前埋伏的币种进行抵押借款,从而获得大量的资金;
6、黑客将本金还给借贷协议,带着剩余资金扬长而去,从而完成了一次空手套白狼的闪电贷攻击。
我们可以看到这个过程中,比较关键的一点是DeFi协议收到了来自预言机受操纵的价格,从而导致了错误地借出资金。
然而DeFi协议中的价格一般都来自于预言机的喂价,因此预言机的准确喂价变成了DeFi协议的安全基石。
03Pyth——一个链上高保真预言机网络
在Mango被盗的事件中,我们发现Mango官方和其CEO都谈论到了预言机对此次事件的影响,并说明预言机的报价并无异常。
在其中我们看到了Pyth这款预言机,那这款预言机有何秘密呢?现在就让我们一起来探索一番吧。
Pyth隐藏背景
经过抽丝剥茧的信息筛选,初步锁定JumpCrypto可能就是Pyth背后的金主和建设者。JumpCrypto是高频交易巨头-JumpTrading成立的加密投资部门,参与了最近热度极高的Aptos的融资。
对于高频交易而言,及时且准确的价格信息无疑是取胜的关键要素。而Jump更是对网络速度的追求达到了变态的程度。例如在2018年,为了更快地获取不同市场的期货报价,Jump与Citadel等六家高频交易商竟联合架设了一条连接芝加哥与东京的海底光缆“GoWest”。
在JumpCrypto的官方介绍中,使用了较长的篇幅来介绍pyth,同时直接表明了Jump参与了pyth代码的编写。而且还利用自身的资源,让众多的金融交易所和币圈交易所都成为了Pyth网络的数据发布者。
Pyth运行模型
在Pyth网络中有三种角色:
发布者负责发布喂价,并获得部分数据费用作为回报。发布者通常是能够及时获取准确价格信息的市场参与者。Pyth协议根据发布者分享的新价格信息的数量,按比例对发布者进行奖励
消费者读取喂价,将数据集成智能合约或去中心化应用之中,并可以选择性地支付数据费用。消费者既可以是链上协议,也可以是链下应用
委托者质押代币,赚取数据费用,代价则是在预言机价格不准确的情况下,可能会损失其质押的代币
这些角色可以在Pyth网络中,通过如下四种机制来进行互动:
价格聚合机制将单个发布者的喂价整合为产品的单?喂价。此机制旨在生成稳定的喂价,也就是说,喂价不会受到少数发布者的显著影响
数据质押机制使委托者能够通过质押代币来获取数据费用。委托者总体上还通过质押代币的方式决定每个发布者对聚合价格的影响程度。另外,此机制还将确定委托者质押的代币是否会遭到削减。最后,此机制向消费者收取数据费用,并向委托者分配部分数据费用。余下部分将进入奖励池,用于分配给发布者
奖励分配机制决定了每个数据发布者可从奖励池中获取的奖励份额。此机制会优先奖励提供高质量喂价的发布者,并降低提供低质量信息的发布者获取奖励的可能性
治理机制决定上述三种机制的高级参数
简而言之,就是发布者向网络提供了价格数据信息,消费者可以选择以类似保险的形式保障自己获得信息的准确性,而委托者就是价格数据信息的db方,若是出现严重偏离现实情况的价格信息,则委托者需要对付费的消费者进行补偿。
同时在整个模型中,对最终价格信息的拟合以及提前防止一些作恶行为的措施,都表明了Jump倾注在pyth中的专业能力和用心程度,对详情感兴趣的小伙伴可以进一步研究Pyth的白皮书。
pyth代币分配:PYTH代币的总供应量为10,000,000,000,不会增加。85%的代币最初会在合约上锁定。这些代币有1年的锁定期,将在7年内每月线性解锁。这将随着时间的推移逐渐增加非锁定代币的供应量。余下的15%PYTH代币最初就是非锁定的状态。锁定/非锁定代币将按下图的分类进行分配。
Pyth可能存在的问题及风险
目前pyth的代币尚未发布,因此对整个经济模型的影响暂时无法体现。但就对目前pyth的整个模型来说,协议的收入来自于消费者的付费,而这个付费只是起到了一个保险的作用,消费者在不付费的情况下,依然可以获取到pyth的实时价格信息。因此到代币发布后,消费者是否愿意付费,付费的比例会是多少,就会成为协议能否盈利的关键因素。
当然pyth后续也可以限制消费者付费才能使用协议,但在这种情况下,消费者是否会转移使用其他预言机,也是一个存疑的问题。
总结
在Jump的加持下,pyth相较于其他预言机有着Jump对于高频交易的深刻理解和相关模型的经验加持,而这套模型在Web3的世界是否有效,那就需要实践出z'x了。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。