预言机是将有关某些链上或链下事件的信息传输到区块链上的工具。这可以是任何东西,从价格到数量再到天气,尽管在本文中我们将讨论价格的预言。在 DeFi 中,价格预言机用于在链上发布加密货币价格数据,这是智能合约的关键数据输入。通过价格预言获取的最粗略的数据将包括一个没有异常值管理的单一交易工具。在最强大的情况下,各种数据提供者(Kaiko 就是其中之一)从各种交易所获取输入的值,应用异常值检测,并将聚合提供给像 Chainlink 或 Pyth 这样的预言机,然后根据他们从许多数据提供者那里收到的值广播一个总价值。
价格和预言机操纵
价格操纵漏洞是 DeFi 中最早和最常见的漏洞。在 2020 年夏天,随着 DeFi 的腾飞,在预言机被广泛使用之前,由于攻击者会抬高流动性不足的代币(通常是协议的原生代币或治理代币)的价格,导致大量协议的资金流失,从而导致膨胀他们自己头寸的价值,并使用这个膨胀的价值来提取更多“有价值”的代币,比如 ETH 或 USDC。在早期,协议通常会使用来自单个 DEX 的直接价格馈送,使得价格操纵相对容易。当协议会在推特上发布对漏洞利用的事后分析时,他们的回复中会充满“Chainlink 得修复此问题”,而且通常情况下,他们是对的。
预言机为应对此类攻击提供了一层保护,尽管并没有使攻击成为不可能。例如,看看借贷协议 Inverse Finance 发生了什么,该协议今年受到了两次打击,首先是在 Sushiswap 上对 INV-ETH 进行了相对简单的操作。
所需要的只是以很大的 ETH 交换 INV 来操纵价格,Inverse Finance 的预言机发现了这一点,从而使攻击者可以耗尽资金。在 Sushiswap 上,价格达到了近 4,000 美元的高位;在 Uniswap V2 上,超过 15,000 美元;在 Coinbase 上,它达到了 490 美元的高位。不幸的是,Inverse 使用的 Keep3r 预言机完全依赖于 DEX 价格数据(在他宣布创建这些预言机的博客文章中,创建者 Andre Cronje 承认它们没有提供最佳安全性)。更强大的预言机可能会限制来自 DEX 的明显错误值的影响,并在价格变动期间更多地依赖 Coinbase 和其他 CEX。
但是,这里的预言机并没有任何责任。预言机只是为协议提供数据的工具。在这种情况下,预言机完全按照设计运行:它使用较短的 TWAP(由协议设置)跟踪 DEX 上的 INV 价格,并且没有异常值检测。只要预言机提供者有足够的透明度,DeFi 协议就有责任了解他们使用的预言机是如何运作的,以及如何操纵用作输入的价格馈送。对于在少数或没有中心化交易所提供的非流动性和/或小市值代币,价格操纵和预言机操纵相对容易;协议应认识到这一点并采取措施减轻其影响。
预言机的局限性
预言机不是灵丹妙药,它有两个主要限制:
-
他们无法实施风险管理来限制协议市场操纵措施的影响
-
输出只能与输入一样好(或者一样差)。
第一点是诙谐的,但比以往任何时候都更相关;去中心化永续期货交易所的爆炸式增长——由 Avalanche 和 Solana 等 L1 和 Arbitrum 等以太坊 Layer 2 上更便宜的交易带来——使反市场滥用措施(如头寸限制)的重要性成为人们关注的焦点。例如,大约一个月前,一位交易员利用了 GMX 的预言机定价——它允许用户以预言机价格开大头寸而没有滑点——以及精简 AVAX 订单簿以从不自然的价格变动中获利。
Mango Markets 最近的漏洞利用(或者,根据您的意见,“高利润的交易策略”)证明了第二点。简而言之,攻击者(或交易者)开立了 MNGO 永续期货多头头寸,推高了 MNGO-PERP 所基于的预言机价格,并使用了未实现且短暂的“利润”从 Mango 借款超过 4 亿美元,耗尽了所有资金——价值超过 1 亿美元。
这个时间线有什么启示?对我来说,整个过程相对容易。无论出于何种原因,很少有 CEX 提供 MGNO(甚至 Binance 或 Kucoin!),只有 FTX、AscendEX 和 BingX 是具有任何有意义交易量的唯一交易所。在漏洞被利用之前,FTX 订单薄得令人难以置信。
在价格变动前的几个小时内,每个方向距离中点 1% 的总市场深度刚刚超过 2 万美元。在 UTC 晚上 10:45,卖出深度(红色)为 957 美元,买入深度(绿色)仅为 743 美元。
Mango 使用的 Pyth MNGO-USD 预言机反映了 0.155 美元的高价。在检查每个发布者(即为预言机提供价格的数据提供者)时,有趣的是他们的收集和异常值检测方法有何不同:一个发布者达到了 0.829 美元的高位,而另一个达到了 0.07 美元的高位。
预言机按设计运行,Mango 团队承认这一点,并表示预言机提供者没有过错。代币的流动性太差了,预言机的输出只和它的输入一样好。
接下来是什么?
希望 DeFi 协议已经意识到,仅仅使用 Chainlink 或 Pyth 价格预言机并不能免除他们的风险管理。如前所述,去中心化期货交易所是此类攻击的主要目标,因为它们本质上是借贷协议的杠杆版本,通常是这些攻击的标志。
正如 FTX 首席执行官 Sam Bankman-Fried 所详述的那样,FTX 的风险引擎使用自己的异常值检测形式,并对较大的头寸收取更高百分比的保证金(在 Mango Markets 上的 MNGO 头寸必须在 FTX 上完全抵押),等等检查。其他人则建议,可以根据预言机提供的流动性衡量标准(如买卖差价)来建立头寸限制。这可能会给攻击增加一定程度的难度,但我的直觉是,一个老练且资本充足的攻击者将能够欺骗流动性,尤其是在仅在少数交易所提供代币的情况下。
值得一提的是,参与 Mango 漏洞利用的一名攻击者在推特上表示,借贷协议应存储 24 小时滚动预言机价格,并要求新头寸在当前预言机价格和滚动价格下均有效。这实际上似乎是一个很好的解决方案。
随着熊市的拖延,我预计会看到更多、资本化程度更高的利用这种方式的尝试。上面提到的同一位攻击者详细介绍了 Aave V2 的理论利用,使用 1 亿美元的启动资金来抽取 REN,并可能从协议中消耗 5 亿美元。
解决方案的组合——使用预言机、限制(或不提供)对非流动性代币的杠杆作用、使用更长的滚动价格来开设新头寸等等——对于防止未来此类攻击至关重要。