Ξ

    Search by

    针对衍生品资产的价格预言机

    本文分析了衍生品资产 “跨链资产“ 和 ”流动性质押资产“ 普遍使用的价格预言机方法固有的漏洞,提出了我们应该避免这种常见做法的思考


    JE

    Jonathan Erlich       2022-11-28

    来源 | members.delphidigital.io

    作者 | Jonathan Erlich

    翻译 | 0xStephen,推特 @RoyalKagura

    审阅 | ECN


    图1(1)(1).png


    目录


    1. 介绍
    2. 跨链资产
    3. 流动性质押衍生品(LSD)
    4. 总结性思考

    1. 介绍


    在这篇文章中,我们将分析在 DeFi 借贷协议的背景下,针对衍生资产价格的预言机的现有假设。具体来说,我们将讨论为什么使用基础资产 (underlying asset) 的价格作为衍生资产的喂价,通常是一种应该避免的坏做法。鉴于这种做法的普遍性,我们认为这是一个及时和重要的问题。我们将重点讨论两种类型的衍生资产:跨链资产和流动性质押衍生品。然而,类似的分析也可以泛用为任何类型的衍生资产。

    这篇文章分为三个部分:跨链资产、流动性质押衍生品和总结性思考。


    2. 跨链资产


    当一项衍生资产以基础资产作为代理进行定价时,有一个基本的假设(或至少是隐含在决策中的假设):这两种资产在一段时间内将遵循相同的价格轨迹。而一般来说,情况就是这样。如果一切运作正常,基础资产价格应该密切跟踪衍生品的价格。然而,当事情不按预期进行时,这一假设就会被打破,在跨链资产的案例中,这种情况经常发生。让我们探讨一个例子来了解原因。

    假设我们有 bridgedETH,即不同 L1 链上的 ETH 的跨链版本。在正常情况下,每个 bridgedETH 由锁定在以太坊的一个智能合约上的 ETH 支撑 (基于 1:1 的比率锚定)。然而,这些正常情况并不总是成立。特别是,正如已经发生过的几次情况,跨链可以被利用,导致基础资产被盗。举个例子,让我们假设这正是发生在我们的 bridgedETH 上的情况,攻击者利用了跨链并能够窃取支持 bridgedETH 的所有ETH。

    那么,这将如何影响使用 ETH 价格作为 bridgedETH 的代理的借贷协议?从根本上说,这意味着该协议对每个 bridgedETH 的估值为 1 ETH,而其真实价格为 0 ETH(假设这也是其市场价格)。这就使协议出现了以下的漏洞:


    (1)它允许攻击者使用 bridgedETH 作为抵押品,从协议中窃取资金。任何攻击者都能够以 0 的价格从市场上购买桥接 ETH,并将其作为抵押品存入协议(在那里它的价值为 1 ETH,并以一种有效的无抵押方式借入(盗取)其他资产。这种类型的攻击已经被用于不同的实时协议(例如,对 Moonriver 上的 Hundred Finance 和对 Harmony 上的 Aave)。


    (2)它阻碍了清算的正确运作。当 bridgedETH 的市场价格从 1 ETH跌至 0 ETH 时,一些使用 bridgedETH 作为抵押品的头寸应该变得可以清算。然而,鉴于协议仍然将每个 bridgedETH 估值定为 1 个 ETH,这些头寸不会成为可清算的对象。如果使用一个强大的预言机,这些头寸是否真的会被清算是另一个有趣的问题,最终将取决于 bridgedETH 的市场价格下跌的速度。然而,这种分析不在本篇文章的范围之内。重要的一点是,在脆弱的预言机机制下,这些头寸甚至不会成为可被清算的坏账。

    作为这个问题的潜在解决方案,Aave 正在考虑接入 Chainlink 的 Proof-of-reserve (储备金证明) 喂价。在宏观上,这些喂价将允许 Aave 验证支持跨链衍生品的基础资产确实存在。虽然这可能是一个可行的解决方案,但其实施的细节仍然很少,无法进行全面评估。此外,这个解决方案不能很好地处理一些特殊情况。例如,基础资产可能变得无法访问或 "失效",这意味着合约中的一个错误永远锁定了合约中的基础资产。在这种情况下,基础资产实际上是存在的,所以不会有储备证明的问题。然而,如果基础资产不能被收回,衍生品将毫无价值。市场价格很可能会反映出这一点,这将使该协议出现上面所探讨的漏洞。虽然这是一个低概率事件,但在评估解决方案的时候应该考虑到这一点。


    3. 流动性质押衍生品(LSD)


    当使用基础资产的价格作为衍生资产的代理时,LSD 会受到与跨链资产相同的脆弱性的影响。鉴于我们已经在上一节中谈到了这些问题,让我们来看看 DeFi 中专门针对 LSD 的更复杂的案例。

    在进入具体问题之前,我们值得简单探讨一下 LSD 的工作原理。正如它的名字所示,LSD 是抵押基础资产(通常在 PoS 网络中)的可流动证明。在这种情况下,流动性质押协议的工作方式如下:

    (1)它从用户方接收要被抵押的资产

    (2)它将这些资产委托给一些验证者 (节点)

    (3)它向用户返回被抵押资产的证明 (可流通的):即 LSD


    当用户想要提取基础资产时 (将LSD换为流通资产),协议的工作过程如下:

    (1)它从用户方收到 LSD

    (2)它使用赎回率计算出应该向用户归还多少基础资产。赎回率是 LSD 供应与基础资产的比率 (即它表明每个 LSD 所代表的基础资产数额)。

    (3)它解除了必要的基础资产的质押

    (4)在释放期过后,用户便可以认领资产


    在这个背景下,让我们回到价格问题。目前一些协议使用的计算 LSD 价格的方式是将基础资产的价格及赎回率都纳入考量标准,计算方式如下:


    图2.png


    其中:

    图3.png


    通过将赎回率纳入计算,这种方法解决了上一节所探讨的情况,即基础资产可能被盗(或在 PoS 协议的情况下被罚没)。例如,如果基础资产被盗,将被反映在赎回率上,因此,价格也将受到影响。

    那么,这种方法有什么问题呢?让我们用以下例子来探讨这个问题。在这个例子中,假设我们有一个名为 stakedATOM 的 ATOM 的 LSD,其工作方式与我们上面描述的 LSD 的方式类似,并且有一个 21 天的释放期。使用上面描述的定价方法,stakedATOM 的价格计算方式如下(假设我们以美元计价):


    图4.png


    其中:


    图5.png


    这种方法有一个基本问题: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,取回1ATOM,其利润为 0.1 ATOM。
    • 然而,释放期为 21 天,所以不存在立即套利的机会。

    所以,对于价格上升来说这存在一个“硬挂钩”,而对于价格下降来说却是一个“软挂钩”。这种软挂钩意味着,从长远来看,市场价格应该趋向于跟随赎回率。但在短期内,stakedATOM的价格没有一个真正的下限。这不仅仅是一个理论上或抽象的发现,在现实中,我们已经看到了这一点,例如臭名昭著的 stETH脱锚事件和其他 LSD,如 stLUNA。基本上,当有足够多的人想要提出 LSD 而不想要等待释放期时,价格就会趋向于向下 "脱钩"。

    对于使用计算出的价格作为 LSD 的预言机喂价的借贷协议而言,上述波动可能会导致资不抵债。让我们来看看下面的例子来了解这种情况是如何发生的:


    假设我们在 DeFi 借贷协议中拥有下述仓位:

    • 一位用户存入了 100 个 stakedATOM 作为抵押品,其最高贷款利率为 70%
    • 该用户使用 stakedATOM 作为抵押,借出了价值 600 美元的其他资产

    现在让我们探讨一下下图中 T1、T2 和 T3 时间节点中仓位是如何变化的:


    图6.png


    • 在 T1 中,stakedATOM 的市场价格 (第 4 行) 完美反映了计算出的预言机价格 (第 5 行),所以一切都运行顺利;具体来说,健康系数 (Collateral*Max.LTV/Debt) 和抵押品系数 (Collateral/Debt) 都高于 1,所以这个账户是健康并且超抵押的;

    • 在 T2 中,stakedATOM 的市场价格偏离了赎回率 (也因此偏离了预言机价格)。具体来说,虽然赎回价格是 1 ATOM,但市场价格是 0.8 ATOM (有 20% 的偏差);这种情况下有几个部分值得详述:
      • 用 stakedATOM 的市场价格计算的健康系数 (第 12 行) 不再高于 1,意味着用市场价格衡量的头寸是不健康的,应该是可以清算的。然而,考虑到协议使用的是预言机价格,而预言机价格并没有改变,使用预言机价格计算的健康系数 (第 11 行) 仍然与 T1 中的完全相同,并且高于 1。因此,该头寸无法被清算。
      • 请注意,在这一点上,对清算人来说,该头寸的清算已经无利可图 (见最后一行)。这是由于协议根据预言机的价格计算要支付给清算人的 stakedATOM 抵押品的数量,而预言机的价格被高估了。如果预言机使用的是市场价格,那么这个头寸是可以清算的,在这个时候清算是有利可图的
      • 虽然这种情况并不理想,但考虑到应该清算的头寸并没有清算,这并不是很糟糕,因为该头寸仍有偿付能力。换句话说,它仍然是过度抵押的 (抵押系数高于 1)

    • 在 T3 中,市场价格和赎回率之间的偏差与 T2 相同,但 ATOM 的价格从 10 美元降至 5 美元。这实际上会导致一个无力偿还的头寸,因为它不会被清算,现在抵押率已经降至 1 以下。

    从根本上说,这种预言机方法的问题在于,即使一切都在按计划进行,没有发生价格操纵,系统也会变得无力偿还,正如上文所探讨的那样。


    4. 总结性思考


    预言机是 DeFi 借贷协议的核心。它们是如此重要,以至于它们往往决定了整个协议的未来。一个不健全的预言机可能会使价值数百万美元的资产面临风险,这就是为什么我们花了这么多时间分析预言机的实现。

    通过这篇文章,我们希望能对衍生资产的预言机的使用情况有所了解。特别是,我们已经表明为什么一些常用的做法并不理想,应该避免。这篇文章的目的并不是要阻止衍生资产的上市,因为我们知道它们是一些可以作为抵押品的最佳资产。我们的目的是不鼓励这些衍生资产上市时使用不够稳健的预言机,这可能导致最坏的结果。

    我们知道,衍生资产的流动性往往比它们的基础资产要差,这使得专门为它们建立健全的预言机制很困难。然而,我们认为这不应该成为使用非稳健预言机的借口。我们强烈鼓励协议在使用非稳健预言机之前,等待流动性的建立和针对特定资产的稳健预言机的开发。


    特别感谢 ECN 社区翻译志愿者 @RoyalKagura 对本文的翻译贡献。



    ECN 的翻译工作旨在为以太坊中文社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ethereum.cn,若需长期转载,请联系eth@ecn.co 进行授权。


    Ethereum Community Network
    以太坊社区网络
    Ethereum Community Network
    以太坊社区网络