浅析衍生品资产的价格预言机实现问题
原文标题:《针对衍生品资产的价格 预言机 》( Price Oracles for Derivative Assets )
原文作者:Jonathan Erlich
原文编译: 0 xStephen
1. 介绍
在这篇文章中,我们将分析在 DeFi 借贷协议的背景下,针对衍生资产价格的预言机的现有假设。具体来说,我们将讨论为什么使用基础资产 (underlying asset) 的价格作为衍生资产的喂价,通常是一种应该避免的坏做法。鉴于这种做法的普遍性,我们认为这是一个及时和重要的问题。
我们将重点讨论两种类型的衍生资产: 跨链 资产和流动性质押衍生品。然而,类似的分析也可以泛用为任何类型的衍生资产。
这篇文章分为三个部分:跨链资产、流动性质押衍生品和总结性思考。
2. 跨链资产
当一项衍生资产以基础资产作为代理进行定价时,有一个基本的假设(或至少是隐含在决策中的假设):这两种资产在一段时间内将遵循相同的价格轨迹。而一般来说,情况就是这样。
如果一切运作正常,基础资产价格应该密切跟踪衍生品的价格。然而,当事情不按预期进行时,这一假设就会被打破,在跨链资产的案例中,这种情况经常发生。让我们探讨一个例子来了解原因。
假设我们有 bridgedETH,即不同 L 1 链上的 ETH 的跨链版本。在正常情况下,每个 bridgedETH 由锁定在以太坊的一个 智能合约 上的 ETH 支撑 ( 基于 1: 1 的比率锚定 )。然而,这些正常情况并不总是成立。特别是,正如已经发生过的几次情况,跨链可以被利用,导致基础资产被盗。举个例子,让我们假设这正是发生在我们的 bridgedETH 上的情况,攻击者利用了跨链并能够窃取支持 bridgedETH 的所有 ETH。
那么,这将如何影响使用 ETH 价格作为 bridgedETH 的代理的借贷协议?从根本上说,这意味着该协议对每个 bridgedETH 的估值为 1 ETH,而其真实价格为 0 ETH(假设这也是其市场价格)。这就使协议出现了以下的漏洞:
-
它允许攻击者使用 bridgedETH 作为抵押品,从协议中窃取资金。任何攻击者都能够以 0 的价格从市场上购买桥接 ETH,并将其作为抵押品存入协议(在那里它的价值为 1 ETH,并以一种有效的无抵押方式借入(盗取)其他资产。这种类型的攻击已经被用于不同的实时协议(例如,对 Moonriver 上的 Hundred Finance 和对 Harmony 上的 Aave )。
-
它阻碍了清算的正确运作。当 bridgedETH 的市场价格从 1 ETH 跌至 0 ETH 时,一些使用 bridgedETH 作为抵押品的头寸应该变得可以清算。然而,鉴于协议仍然将每个 bridgedETH 估值定为 1 个 ETH,这些头寸不会成为可清算的对象。如果使用一个强大的预言机,这些头寸是否真的会被清算是另一个有趣的问题,最终将取决于 bridgedETH 的市场价格下跌的速度。然而,这种分析不在本篇文章的范围之内。重要的一点是,在脆弱的预言机机制下,这些头寸甚至不会成为可被清算的坏账。
作为这个问题的潜在解决方案,Aave 正在考虑接入 Chainlink 的 Proof-of-reserve ( 储备金证明 ) 喂价。在宏观上,这些喂价将允许 Aave 验证支持跨链衍生品的基础资产确实存在。虽然这可能是一个可行的解决方案,但其实施的细节仍然很少,无法进行全面评估。此外,这个解决方案不能很好地处理一些特殊情况。
例如,基础资产可能变得无法访问或「失效」,这意味着合约中的一个错误永远锁定了合约中的基础资产。在这种情况下,基础资产实际上是存在的,所以不会有储备证明的问题。然而,如果基础资产不能被收回,衍生品将毫无价值。市场价格很可能会反映出这一点,这将使该协议出现上面所探讨的漏洞。虽然这是一个低概率事件,但在评估解决方案的时候应该考虑到这一点。
3. 流动性质押衍生品(LSD)
当使用基础资产的价格作为衍生资产的代理时,LSD 会受到与跨链资产相同的脆弱性的影响。鉴于我们已经在上一节中谈到了这些问题,让我们来看看 DeFi 中专门针对 LSD 的更复杂的案例。
在进入具体问题之前,我们值得简单探讨一下 LSD 的工作原理。正如它的名字所示,LSD 是抵押基础资产(通常在 PoS 网络中)的可流动证明。在这种情况下,流动性质押协议的工作方式如下:
-
它从用户方接收要被抵押的资产
-
它将这些资产委托给一些验证者 ( 节点 )
-
它向用户返回被抵押资产的证明 ( 可流通的 ):即 LSD
当用户想要提取基础资产时 ( 将 LSD 换为流通资产 ),协议的工作过程如下:
-
它从用户方收到 LSD
-
它使用赎回率计算出应该向用户归还多少基础资产。赎回率是 LSD 供应与基础资产的比率 ( 即它表明每个 LSD 所代表的基础资产数额 )。
-
它解除了必要的基础资产的质押
-
在释放期过后,用户便可以认领资产
在这个背景下,让我们回到价格问题。目前一些协议使用的计算 LSD 价格的方式是将基础资产的价格及赎回率都纳入考量标准,计算方式如下:
其中:
通过将赎回率纳入计算,这种方法解决了上一节所探讨的情况,即基础资产可能被盗(或在 PoS 协议的情况下被罚没)。例如,如果基础资产被盗,将被反映在赎回率上,因此,价格也将受到影响。
那么,这种方法有什么问题呢?让我们用以下例子来探讨这个问题。在这个例子中,假设我们有一个名为 stakedATOM 的 ATOM 的 LSD,其工作方式与我们上面描述的 LSD 的方式类似,并且有一个 21 天的释放期。使用上面描述的定价方法,stakedATOM 的价格计算方式如下(假设我们以美元计价):
其中:
这种方法有一个基本问题:stakedATOM 的实际市场价格可能与上面探讨的计算价格有出入。这是因为,虽然当 stakedATOM 的市场价格高于计算价格时,存在一个套利机会,但当 stakedATOM 的价格低于计算价格时,就不是这样了。
换句话说,虽然 stakedATOM 的市场价格在上行方面有一个硬挂钩(相当于计算价格),但在下行时却不存在了。为了了解原因,让我们来探讨一下这两种情况下的套利机会是如何运作的。上涨的情况如下:
-
假设赎回率为 1 ATOM/stakedATOM。
-
市场价格是 1.1 ATOM/stakedATOM(stakedATOM 在市场上被高估了)。
-
一个套利者可以质押 1 ATOM,并收到 1 stakedATOM,然后在市场上卖出该 stakedATOM 并获得 0.1 ATOM 的利润。
上述情况会发生,直到套利机会不再存在。这种机制保证了市场价格将倾向于有一个等于计算价格的上限。然而,价格下行时,情况并不是这样的,其原因是 21 天的释放期打破了套利机会。以下是另一个例子:
-
假设赎回率为 1 ATOM/stakedATOM。
-
市场价格是 0.9 ATOM/stakedATOM。
-
如果没有释放期,套利者可以在市场上用 0.9 个 ATOM 买 1 个 stakedATOM 并解除质押 ATOM,取回 1 ATOM,其利润为 0.1 ATOM。
-
然而,释放期为 21 天,所以不存在立即套利的机会。
所以,对于价格上升来说这存在一个「硬挂钩」,而对于价格下降来说却是一个「软挂钩」。这种软挂钩意味着,从长远来看,市场价格应该趋向于跟随赎回率。但在短期内,stakedATOM 的价格没有一个真正的下限。这不仅仅是一个理论上或抽象的发现,在现实中,我们已经看到了这一点,例如臭名昭著的 stETH 脱锚事件和其他 LSD,如 stLUNA。基本上,当有足够多的人想要提出 LSD 而不想要等待释放期时,价格就会趋向于向下「脱钩」。
对于使用计算出的价格作为 LSD 的预言机喂价的借贷协议而言,上述波动可能会导致资不抵债。让我们来看看下面的例子来了解这种情况是如何发生的:
假设我们在 DeFi 借贷协议中拥有下述仓位:
-
一位用户存入了 100 个 stakedATOM 作为抵押品,其最高贷款利率为 70%
-
该用户使用 stakedATOM 作为抵押,借出了价值 600 美元的其他资产
现在让我们探讨一下下图中 T 1、T 2 和 T 3 时间节点中仓位是如何变化的:
在 T 1 中,stakedATOM 的市场价格 ( 第 4 行 ) 完美反映了计算出的预言机价格 ( 第 5 行 ),所以一切都运行顺利;具体来说,健康系数 (Collateral*Max. LTV/Debt) 和抵押品系数 (Collateral/Debt) 都高于 1 ,所以这个账户是健康并且超抵押的;
在 T 2 中,stakedATOM 的市场价格偏离了赎回率 ( 也因此偏离了预言机价格 )。具体来说,虽然赎回价格是 1 ATOM,但市场价格是 0.8 ATOM ( 有 20% 的偏差 );这种情况下有几个部分值得详述:
-
用 stakedATOM 的市场价格计算的健康系数 ( 第 12 行 ) 不再高于 1 ,意味着用市场价格衡量的头寸是不健康的,应该是可以清算的。然而,考虑到协议使用的是预言机价格,而预言机价格并没有改变,使用预言机价格计算的健康系数 ( 第 11 行 ) 仍然与 T 1 中的完全相同,并且高于 1 。因此,该头寸无法被清算。
-
请注意,在这一点上,对清算人来说,该头寸的清算已经无利可图 ( 见最后一行 )。这是由于协议根据预言机的价格计算要支付给清算人的。stakedATOM 抵押品的数量,而预言机的价格被高估了。如果预言机使用的是市场价格,那么这个头寸是可以清算的,在这个时候清算是有利可图的。
-
虽然这种情况并不理想,但考虑到应该清算的头寸并没有清算,这并不是很糟糕,因为该头寸仍有偿付能力。换句话说,它仍然是过度抵押的 ( 抵押系数高于 1)。
在 T 3 中,市场价格和赎回率之间的偏差与 T 2 相同,但 ATOM 的价格从 10 美元降至 5 美元。这实际上会导致一个无力偿还的头寸,因为它不会被清算,现在抵押率已经降至 1 以下。
从根本上说,这种预言机方法的问题在于,即使一切都在按计划进行,没有发生价格操纵,系统也会变得无力偿还,正如上文所探讨的那样。
4. 总结性思考
预言机是 DeFi 借贷协议的核心。它们是如此重要,以至于它们往往决定了整个协议的未来。一个不健全的预言机可能会使价值数百万美元的资产面临风险,这就是为什么我们花了这么多时间分析预言机的实现。
通过这篇文章,我们希望能对衍生资产的预言机的使用情况有所了解。特别是,我们已经表明为什么一些常用的做法并不理想,应该避免。这篇文章的目的并不是要阻止衍生资产的上市,因为我们知道它们是一些可以作为抵押品的最佳资产。我们的目的是不鼓励这些衍生资产上市时使用不够稳健的预言机,这可能导致最坏的结果。
我们知道,衍生资产的流动性往往比它们的基础资产要差,这使得专门为它们建立健全的预言机制很困难。然而,我们认为这不应该成为使用非稳健预言机的借口。我们强烈鼓励协议在使用非稳健预言机之前,等待流动性的建立和针对特定资产的稳健预言机的开发。
原文链接