LindaZ

Posted on Oct 19, 2022Read on Mirror.xyz

闪电贷攻击猖獗--探讨预言机对DEFI协议的重要性

前几天,Solana生态上的DeFi项目Mango受到黑客闪电贷攻击,损失超过1亿美金。据悉,黑客是通过操作预言机的价格来掏空了Mango协议的流动性。那我们今天就来聊聊何为闪电贷、黑客是如何使用闪电贷来攻击DeFi协议的,以及预言机对DeFi协议的重要性。

区块链世界的金融创新-闪电贷

闪电贷最初是由Marble银行提出,Marble宣称「闪电贷可以帮助交易者从Marble银行贷款,在一家去DEX(去中心化交易所)中买币, 在另一家DEX以较高价格卖出代币,一笔自动化交易就可以让您将套利收益收入囊中。」

闪电贷的原理如下:

1、用户以无抵押的方式从协议中借出大量的资金;

2、用户可以使用这笔资金进行任何对自己有利的操作(比如套利、用作过桥资金、操纵币价获利等);

3、最后用户需将本金和一定的利息还给协议,若这个时候用户没有足够的资金,则整个操作都会进行回滚,保证协议的资金不会受到损失。

闪电贷的机制是由智能合约的原子性来保障的,即上述这些操作为具有原子性的事务,只能全部成功,或全部失败,不会出现一部分成功而一部分失败的情况。因此在所有操作全部成功的情况下,整个闪电贷运行成功,协议通过借出资金并收回资金获取了利息,而用户通过各种各样的方式从这笔大资金的运作中获取了利益;而当用户在使用资金的过程中,并未获取到预期的利益,反而亏损了的话,会导致借出的资金变少而无法完成最后的还款操作,因此整个操作会失败,则除了用户损失gas外,协议的资金不会受到损失。

根据闪电贷的原理,我们可以发现为了能够使整个操作顺利地运行,关键就是用户如何在短时间内利用这笔资金进行获利。随着闪电贷的应用发展,这种无抵押瞬间获取大量资金的工具在人们进行了各种各样的尝试后,猛然发现黑客使用闪电贷的资金对DeFi协议进行攻击的方式竟然是获利最大的操作,那接下来就让我们来看看黑客是如何使用闪电贷来获利的吧。

闪电贷如何沦为黑客获利工具

目前的区块链世界就是一片黑暗森林,隐藏着各种各样的风险,而黑客在这其中无疑是一群贪婪的猎食者,他们无时无刻不在发现有利可图的机会,或者创造这样的机会来进行获利。而闪电贷这种提供无抵押大资金的借贷工具,无疑满足了黑客需要使用低风险的大资金来进行价格操纵的需求。目前使用闪电贷对DeFi协议的攻击大多都是通过操纵价格的方式来进行的,因此我们用下面的例子来进行说明。

1、黑客从借贷协议中借出大量的资金;

2、在DeFi协议中埋伏相关币种的资金;

3、使用大资金在DEX中拉高相关币种的价格;

4、受操作的价格通过预言机传递给DeFi协议;

5、DeFi协议在收到预言机的喂价后,黑客按当前受操纵的价格将提前埋伏的币种进行抵押借款,从而获得大量的资金;

6、黑客将本金还给借贷协议,带着剩余资金扬长而去,从而完成了一次空手套白狼的闪电贷攻击。

我们可以看到这个过程中,比较关键的一点是DeFi协议收到了来自预言机受操纵的价格,从而导致了错误地借出资金。然而DeFi协议中的价格一般都来自于预言机的喂价,因此预言机的准确喂价变成了DeFi协议的安全基石。

Pyth-一个链上高保真预言机网络

在Mango被盗的事件中,我们发现Mango官方和其CEO都谈论到了预言机对此次事件的影响,并说明预言机的报价并无异常。

在其中我们看到了Pyth这款预言机,那这款预言机有何秘密呢?现在就让我们一起来探索一番吧。

  • Pyth隐藏背景

经过抽丝剥茧的信息筛选,初步锁定Jump Crypto可能就是Pyth背后的金主和建设者。Jump Crypto是高频交易巨头-Jump Trading成立的加密投资部门,参与了最近热度极高的Aptos的融资。

对于高频交易而言,及时且准确的价格信息无疑是取胜的关键要素。而Jump更是对网络速度的追求达到了变态的程度。例如在2018年,为了更快地获取不同市场的期货报价,Jump与Citadel等六家高频交易商竟联合架设了一条连接芝加哥与东京的海底光缆“Go West”。

在Jump Crypto的官方介绍中,使用了较长的篇幅来介绍pyth,同时直接表明了Jump参与了pyth代码的编写。而且还利用自身的资源,让众多的金融交易所和币圈交易所都成为了Pyth网络的数据发布者。

Jump Crypto官方介绍链接:https://jumpcrypto.com/introducing-jump-crypto/

  • Pyth运行模型

在Pyth网络中有三种角色:

发布者(Publisher) 负责发布喂价,并获得部分数据费用作为回报。发布者通常是能够及时获取准确价格信息的市场参与者。Pyth 协议根据发布者分享的新价格信息的数量,按比例对发布者进行奖励

**消费者(Consumer)**读取喂价,将数据集成智能合约或去中心化应用之中,并可以选择性地支付数据费用。消费者既可以是链上协议,也可以是链下应用

**委托者(Delegator)**质押代币,赚取数据费用,代价则是在预言机价格不准确的情况下,可能会损失其质押的代币

这些角色可以在Pyth网络中,通过如下四种机制来进行互动:

**价格聚合机制(Price aggregation)**将单个发布者的喂价整合为产品的单⼀喂价。此机制旨在生成稳定的喂价,也就是说,喂价不会受到少数发布者的显著影响

**数据质押机制(Data staking)**使委托者能够通过质押代币来获取数据费用。委托者总体上还通过质押代币的方式决定每个发布者对聚合价格的影响程度。另外,此机制还将确定委托者质押的代币是否会遭到削减。最后,此机制向消费者收取数据费用,并向委托者分配部分数据费用。余下部分将进入奖励池,用于分配给发布者

**奖励分配机制(Reward distribution)**决定了每个数据发布者可从奖励池中获取的奖励份额。此机制会优先奖励提供高质量喂价的发布者,并降低提供低质量信息的发布者获取奖励的可能性

**治理机制(Governance)**决定上述三种机制的高级参数

简而言之,就是发布者向网络提供了价格数据信息,消费者可以选择以类似保险的形式保障自己获得信息的准确性,而委托者就是价格数据信息的担保方,若是出现严重偏离现实情况的价格信息,则委托者需要对付费的消费者进行补偿。

同时在整个模型中,对最终价格信息的拟合以及提前防止一些作恶行为的措施,都表明了Jump倾注在pyth中的专业能力和用心程度,对详情感兴趣的小伙伴可以进一步研究Pyth的白皮书。

pyth代币分配:PYTH 代币的总供应量为 10,000,000,000,不会增加。85%的代币最初会在合约上锁定。这些代币有 1 年的锁定期,将在 7 年内每月线性解锁。这将随着时间的推移逐渐增加非锁定代币的供应量。余下的 15%PYTH 代币最初就是非锁定的状态。锁定/非锁定代币将按下图的分类进行分配。

  • Pyth可能存在的问题及风险

目前pyth的代币尚未发布,因此对整个经济模型的影响暂时无法体现。但就对目前pyth的整个模型来说,协议的收入来自于消费者的付费,而这个付费只是起到了一个保险的作用,消费者在不付费的情况下,依然可以获取到pyth的实时价格信息。因此到代币发布后,消费者是否愿意付费,付费的比例会是多少,就会成为协议能否盈利的关键因素。

当然pyth后续也可以限制消费者付费才能使用协议,但在这种情况下,消费者是否会转移使用其他预言机,也是一个存疑的问题。

  • 总结

在Jump的加持下,pyth相较于其他预言机有着Jump对于高频交易的深刻理解和相关模型的经验加持,而这套模型在Web3的世界是否有效,那就需要实践出真相了。