本文深入探讨了去中心化稳定币机制中的风险与挑战,包括价格预言机的角色、常见的价格错误、计算错误以及清算机制等问题。通过分析不同的稳定币项目,作者指出了维护稳定币价值的关键因素,以及如何减少恶意操控的风险。文章具有较强的技术深度和结构性,是对稳定币设计与安全性问题的全面分析。
"稳定币是一种增加了经济结构的加密货币,旨在稳定价格 ^1"
稳定币通常与美元(USD)相关,但更广泛地说,它们代表的是旨在相对于特定资产保持稳定价值的代币。
这种稳定性被称为稳定币与其资产Hook。 已经部署了数百种稳定币,但只有少数几种在DeFi经济中确实是核心。
稳定币主要分为两大类:
在我们的文章中,我们只会研究第二类,因为它与我们的讨论最为相关。
许多项目,如Liquity(LUSD)、Maker(DAI)、Frax(FRX)以及许多其他项目,实际上正在努力解决这一复杂问题。
每个项目都有自己的方案,通过激励和巧妙的经济机制来维持Hook。
如果我们进一步深入去中心化稳定币类别,我们可以进一步识别支撑的两种类型的抵押品:
如果你希望获得有关此主题的更多详细信息,我强烈建议你阅读这篇来自Ditto ETH的优秀文章。
最终,稳定币协议的主要挑战是维持其与资产的Hook,因此人们才会信任并使用它。
第二个挑战是防止恶意行为者从用户或协议本身中提取价值,这可以通过操纵或利用内部激励/稳定性/经济实施逻辑来实现。
为了帮助你实现这一目标,确保你的(或你客户的)稳定币协议安全,我将尽量:
在深入讨论风险和漏洞之前,我们必须谈谈预言机,因为它们在稳定币协议的功能中发挥着至关重要的作用,因为其价值基于其支撑的价值。
预言机可以被视为以可靠和去中心化的方式向智能合约提供信息的服务/系统,这些智能合约否则无法(或无法安全地)访问这些信息。
一些预言机提供链外数据的访问(Chainlink, Pyth, …),而另一些预言机则利用巧妙的方法提供高度可靠的链上数据(TWAP预言机)。
像Chainlink这样的价格信息预言机,当它们有大量数据源时,可能是最抗操纵的。但使它们强大的因素也可能成为它们的弱点。
如果网络信息源遇到技术问题,价格可能会变得过时或错误。为了减轻这些问题,已经实施了许多保护措施:
心跳机制、最小/最大范围和价格偏差,来提及最常见的。如果这些机制被忽视或没有正确实施,使用错误价格的概率将增加。
第二种抗操纵能力最强的预言机是TWAP预言机,由Uniswap V2普及。
TWAP意味着时间加权平均价格。
简单来说,计算价格时,不是使用池中代币的即时余额,而是每个区块存储一次余额的检查点,通过在一段时间内平均余额来计算价格。
时间越长,操纵价格就越困难。但延迟也越高,相对于实时市场价格。
这已被实施以防止依赖于在一个区块内大规模交易不平衡池的价格操纵,从而大幅度改变价格。在V3版本中,Uniswap通过使用几何平均数而非算术平均数来改进TWAP的计算。
如果你希望获得有关TWAP的更多详细信息,请查看这篇由RareSkills撰写的文章
最后,出现现货价格,即资产的即时价格,通常通过在池中计算比率 $n{token1}/n{token2}$ 来计算,这不应被使用,因为它容易受到操纵,这正是TWAP首次被实施的原因。
稳定币的目标通常是跟随现实世界资产的价格,例如美元(USD)。
我们常见的一个错误是开发者用另一个稳定币的价格作为美元价格,假设两者之间存在1:1的关系。
场景:
为了向他提供正确数量的与美元Hook的稳定币,我们需要将他提供的抵押品数量(ETH)与美元的价值进行比较。
一个常见的错误是频繁使用ETH/USDC的价格源。
但这为什么是错误的?
因为USDC本身就是一种稳定币!其价值相对于实际美元价值波动。
这意味着我们的稳定币将与USDC(及其波动)Hook,而不是与美元Hook,这不是我们所期望的。
如果是这样,那也意味着用户最终可以从我们的协议/用户中提取价值,例如通过对比铸造/燃烧价格与池子价格之间的差异进行套利。
另一种情况与包裹资产或合成资产(WBTC、stETH等)相关(但不包括WETH,因为它是一种1:1的存款映像)。如果协议旨在跟随一个包裹或合成资产,则绝不应将非包裹/非合成资产用作价格预言机。
最后,以Mirror Protocol为例,该协议将$UST(Luna稳定币)的值硬编码为$1,当UST贬值超过90%时遭受攻击!
相关报告问题:
在这项提交中,SR展示了将所有抵押资产(本身就是稳定币)平等视为1\$将开启套利的可能性,因为用户可以借用大量token<sub>1</sub>(其价值 < \$1)并在池中存入,
铸造协议稳定币,然后燃烧token<sub>2</sub>的价值 > 1\$。
我们在这里讨论的是一个更通用的预言机问题。资产价格是任何与这些资产集成的协议所需的最关键的信息。
然而,这是一个复杂的话题,正如前面关于预言机部分所显示的那样,没有完美的解决方案:
对于协议来说,最糟糕的情况是铸造过多和燃烧不足,因为这代表了朝着用户有利的价值流出,这可能被利用。
相反的情况也是不好的,但对协议的风险较小,因为这可能更难以被利用,尽管仍然可能发生:通过向协议亏损,
恶意行为者可以利用这一情况并操纵特定状态变量,这又会开启一条新的攻击路径,
这一攻击路径最近被多次用于对ERC-4626的攻击,规避了通常的防御机制。
有关预言机集成问题的更多示例,请参阅这份全面的来自Dacian的检查表。
相关报告问题:
即使价格被正确获取(正确的预言机信息,正确的价格),仍然有可能出现数学或逻辑错误。在此,问题可能出现在操作的各个方面,类似于关于错误价格的前一部分,因为最终影响是一致的:资产的错误评估。
处理这些情况的最佳方法是编写广泛且详尽的测试,以确保协议的关键功能始终表现如预期。
相关报告问题:
大多数稳定币协议依靠抵押品支持。这确保了稳定币可以以1:1的比率与其美元价值的对应物进行兑换。
为了做到这一点,抵押品与债务的比率(总抵押品价值除以铸造的稳定币总价值)几乎必须保持在一个高于1的阈值之上。
这是必要的,以确保抵押资产的价格波动不会威胁到任何时间点用户可以先行稳定币并以1:1的比例获得偿还的承诺。
然而,如果抵押资产的价值急剧下跌,可能导致一种称为“坏债务”的情况。在这种情况下,协议通常会有一个清算机制来保护其用户并维持Hook。
但是,如果这些机制没有得到正确设计或实施,可能会导致进一步的问题。
贬值或黑天鹅事件是无法避免的戏剧性问题,因此没有真正的补救措施。但可以设置一些保护措施和机制,以减轻和降低协议将承受的影响和风险。
现有机制包括:
相关报告问题:
虽然套利在DeFi中是必要的,以将价格与它们的“真实”市场价值对齐,但某些组件不 应 被定向。这样做可能会对协议或其用户产生负面影响,仅使单个参与者受益。
错误定价抵押品支持你的稳定币可能导致用户能够铸造超过应有的稳定币,然后在第三方池(Uniswap, Curve等)上销售,这将导致稳定币的价格下跌,有效地使其脱离Hook。
以下链接中可以看到这种情况,其中未考虑预言机偏差阈值,使得在池中代币的市场价格和稳定币协议的预言机价格之间套利成为可能。
保护协议不受“非公平”套利的两种主要方法是:
相关报告问题:
在某些协议中,看到它们拥有自己代币除了它们所发放的稳定币是很常见的。
这种代币通常具有两个功能:治理,为了对参数和协议更新进行投票;收益分享,通常分配给参与协议一些功能的用户,例如提供流动性、质押或其他更创新的功能。
Bluechip,一个独立的稳定币评级机构,会自动给予任何使用自身代币作为稳定币支持的协议“F”评级。
内生抵押导致死亡旋涡的最著名案例显然是LUNA崩盘,因为UST和LUNA的价格互相依赖。
一些协议如Synthetix、FRAX或Beanstalk似乎能够成功管理这种抵押品,尽管有一些麻烦。
拥有(非常)高的抵押比率是重要的,然而,建议根本避免使用稳定币-代币的相互依赖价值体系,因为这使得其对扰动更为敏感,因为这意味着负反馈循环(在市场状况良好时的正反馈)。
我尚未明确表达的一点是,大多数稳定币协议实际上是CDP协议(抵押债务头寸)。
CDP是DeFi中最常见的一种系统类型,其中一些协议在借贷其他用户资产之外,还提供用户以其存款铸造稳定币的可能性。
Dacian再次写了一份出色的检查表,这是一个完整的话题,因此我建议你在审核协议时仔细研究。如果你正在审核的稳定币协议是CDP类型,那么CDP中的任何问题都有可能高度影响稳定币的稳定性。
- 原文链接: github.com/InfectedIsm/B...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!