算法稳定币的安全性:FRAX、RAI、DAI 和 AMPL

  • mixbytes
  • 发布于 2023-02-25 18:35
  • 阅读 110

本文深入探讨了算法稳定币的安全性,提供了一份安全性检查清单,分析了多种稳定币(包括FRAX、RAI、DAI和AMPL)的潜在问题。文章内容结构清晰,探讨了各种思维实验、治理攻击和算法特定问题,为读者提供了全面的理解与分析。

作者:Konstantin Nekrasov - MixBytes 的安全研究员

简介

在本文中,我们将继续研究稳定币的常见陷阱。在上一篇文章中,我们提供了一个安全检查清单,并分析了Magic Internet Money (MIM),一种超额抵押的稳定币。为了方便使用,本文在单独的部分提供了扩展的安全检查清单,并简要分析了其他稳定币:FRAX、RAI、DAI和AMPL。

检查清单

1. 死亡螺旋思维实验

这是一个基本问题,问的是如果代币的价格不断下降,会发生什么。

稳定币是否可以在理论上安全“逐渐减小”为零用户?或者更确切地说:如果预期的未来活动降到零,会发生什么?

2. 庞氏骗局思维实验

这是一个基本问题,问的是如果代币的价格不断上涨,会发生什么。是否存在应对机制?

如果稳定币没有应对持有需求超过铸造需求的机制,则稳定币的价格可能会超过固定汇率,并可能在两个方向上都对极端价格波动变得脆弱。

为了检查是否存在这样机制,Vitalik Buterin 建议进行思维实验:如果你试图将稳定币与每年上涨 20% 的指数挂钩,会发生什么?

他声称,试图跟踪庞氏指数的稳定币基本上可以以两种方式结束:

  1. 对持有者收取某种负利率,抵消基本上取消以美元计的指数内置的增长率。
  2. 它变成一个庞氏骗局,给稳定币持有者在一段时间内提供惊人的回报,直到有一天它突然轰然崩溃。

Buterin 声称,为了使抵押自动稳定币可持续,它必须以三种方式含有实施负利率的可能性:

  1. RAI 风格,拥有一个浮动目标,如果赎回率为负,则该目标可以随时间下降。
  2. AMPL 风格,在时间推移中调整余额。
  3. DAI 风格。作为一种 混合 稳定币,使用纯加密资产和中心化资产如 USDC 作为抵押。

3. 预言机弱点

检查哪些适用:

  1. 快速借贷价格操纵。
  2. 低交易量市场价格操纵。
  3. TWAP 操纵。你可以查看 Rari Fuse VUSD价格操纵黑客。使用 Uniswap Oracle Attack Simulator 计算移动加密资产的 TWAP 所需的钱。
  4. 过时的价格:

4.1. TWAP 滞后套利。例如,通过使用 TITAN 的十分钟加权平均价格而不是现货价格,用户能够以不同于现货市场上 TITAN 的价格在主要市场上创建和赎回 IRON [*]

4.2. 稀有价格更新。如果存在公共方法进行更新,这可能尤为有趣。例如,xSUSHI/MIM 贷款池中的预言机价格过时,以至于黑客利用快速借贷开设了一个廉价的 CDP,更新价格后立刻以超过 10 万美元的利润清算头寸(参见 该笔记录交易)。

  1. MEV套利(预言机价格更新前抢)。
  2. 预言机数据提供者的共谋。这样的攻击获得的利润是否要比潜在损失高得多?
  3. 买断预言机。控制股份的价格是否远低于稳定币的总价值?

此外,你可能还想查找预言机攻击清单。

4. 治理攻击

稳定币是否具有治理结构?控制股份的价格是否远低于稳定币的总价值?

此外,你可能还想检查治理攻击检查清单:

5. 特定算法问题

重新调整算法稳定币

重新调整代币是一种加密货币,根据价格波动调整其流通供应量(例如 Ampleforth)。

需要询问的问题:

  • 总供应量是否存在溢出或下溢的可能性?

超额抵押算法稳定币

加密抵押稳定币是以其他加密货币为支撑的。由于储备加密货币可能也容易受到高度波动,这些稳定币是超额抵押的——持有的加密货币的价值超过发行的稳定币的价值(例如 DAI、RAI、MIM)。

需要询问的问题:

  1. 抵押比率是否足以应对抵押的波动性?
  2. 如果代币变为不足抵押,会发生什么?
  3. 如果债务持有人在稳定币下跌到固定汇率以下时不回购稳定币,而是等待其进一步下跌会发生什么?这会导致死亡螺旋吗?
  4. 发行不足事件。如果抵押价格开始下跌,就存在大规模清算的风险。借款人将在市场上大量购买稳定币以偿还债务。这将推高稳定币的价格。同时,没有人会冒险再抵押额外的抵押品来铸造新的代币,因为担心抵押品本身价格下跌而被清算。因此,在稳定币的总量有限且不断缩减的情况下,其价格将进一步上涨。这样的情况确实发生在 DAI 上,并通过引入使用 USDC铸造 DAI 的能力得到了解决。 问题是——稳定币是否有机制(类似于 DAI 的稳定-稳定铸造)来应对这样的事件?

铸币收益算法稳定币

铸币收益稳定币允许销毁其代币(从而提升价格)以换取铸币收益股份(伴随的加密货币),前提是这些股份将来可能被兑换为更多的货币。

荫有成功的稳定币使用铸币收益机制(DAI、FRAX)以及失败的稳定币(Luna/UST 和 Titan/Iron)。

需要询问的问题:

分析

FRAX V1

Fraax V1 协议是包含一种稳定币FRAX和一种治理代币 Frax Shares (FXS) 的双代币系统。该协议以 USDC 抵押池作为支撑。

FRAX 可以根据其价值铸造和赎回$ 1,部分以 USDC,部分以 FXS,具体取决于当前的抵押比率。抵押比率参数每小时按照当前 FRAX 价格变化 0.25% [*]

  • 如果价格在固定汇率之上持续足够长的时间(即人们对稳定币有信心),抵押比率会降低。
  • 如果价格在固定汇率之下持续足够长的时间(即人们失去信心),抵押比率会增加。

FRAX 依赖于铸币收益机制来稳定其价格:

  • 如果 FRAX/USDC < 1$ → 以低于 1 美元的价格购买 FRAX 焚烧以获得价值 1$ 的 USDC + FXS。这样,价格会提高。
  • 如果 FRAX/USDC > 1$ → 以价值 1美元的 USDC + FXS 铸造 FRAX,并将其出售以获得更多的 USDC 价值。这样,价格会降低。

1. 死亡螺旋思维实验

如果 FRAX V1 抵押比率降低至,例如 75%,那么协议的状态将变得危险地类似于失败的 Titan/Iron。因此,FRAX V1 协议存在银行挤兑的风险。

FRAX V2 协议是一个更复杂的案例,超出了本文的范围。

2. 庞氏骗局思维实验

如果你尝试将 FRAX 与每年上涨 20% 的指数挂钩,会发生什么?

价格将跌破固定汇率,这将推动抵押比率达到100%。但固定汇率将继续上升,因此用户必须支付更多的美元获取1个 FRAX。因此,早期用户将能够以增加的抵押量焚烧他们的 FRAX,损害较新的用户。

存在一个可能性,即最后的持有者可能根本无法提取任何资金。考虑一个例子:

  1. 固定汇率和价格为 1$,抵押比率为 100%。
  2. 用户 №1 用 200$ 铸造 200 FRAX。
  3. 固定汇率和价格上涨至 2$。
  4. 用户 №2 用 200$ 铸造 100 FRAX。
  5. 总 FRAX 供应量为 300,总池价值为 400$。
  6. 用户 №1 焚烧 200 FRAX 换取 400$。
  7. 总 FRAX 供应量为 100,总池价值为 0$。
  8. 现在用户 №2 无法焚烧任何 FRAX,因为池中没有资金。

3. 预言机弱点

Frax 协议使用 Chainlink 预言机 + Uniswap 1 小时 TWAP。FXS 的价格是根据 Chainlink 提供的 ETH/USD 价格与 Uniswap 提供的 ETH/FXS 价格计算的。这创造了套利的机会:如果当前 FXS 的价格远低于滞后预言机中的价格,则在市场上以低价购买 FXS,然后焚烧以铸造和出售新的 FRAX,将推动 FXS 的价格上涨,而 FRAX 的价格下跌。

4. 治理攻击

Frax 治理模块源自维护 Compound,与 Frax Shares (FXS) 作为系统中的投票代币。

etherscan.io(2022 年 11 月 9 日)可以看出:

  • FXS 当前价格为 4.61 美元。
  • FXS 总供应量为 99,822,984 FXS,所以控制股份(50%)应为 49,911,492 FXS。
  • FXS 的流通供应量价值 303,097,331美元,完全稀释后的 $550,024,642
  • FRAX 的总价值是 $1,223,556,231

似乎在政府获取控制股份的成本为 $4.61 * 49,911,492 FXS = $230,091,978,这比 FRAX 稳定币的整体价值低四倍,但实际情况是一旦攻击者开始从市场上购买如此大数量的代币,FXS 的价格将暴涨,他们所需支出的总金额将会更高。

5. 特定算法问题

FRAX V1 具备铸币收益机制。正如上面提到的,FRAX V1 可能会重复 Titan/Iron 的死亡螺旋场景。

还应注意,在银行挤兑的情况下,存在 某些用户无法取回资金的风险。考虑一个例子:

  1. 抵押比率为 50%。
  2. 用户 №1 用抵押 100$ 和火焚烧 100$ FXS 铸造 200 FRAX。
  3. 抵押比率为 100%。
  4. 用户 №2 用 100$ 铸造 100 FRAX。
  5. 现在铸造了 300 FRAX,池中有 200$。
  6. 用户 №1 焚烧 200 FRAX,取回 200$。
  7. 现在用户 №2 无法取回他们的资金,因为池中余额为 0$。

Rai Reflex Index (RAI)

RAI 是一种以 ETH 为基础的超额抵押稳定币,具有浮动固定汇率。

为了铸造 RAI,用户创建一个抵押债务位置 (CDP),当出现以下情况时可能会变得不健康:

  • 抵押品(ETH)的价格大幅下降;
  • 固定汇率大幅上涨。

如果用户的债务变得不健康,则抵押品将以折扣出售。这提供了某种保证,即稳定币的价值不会低于所锁定的抵押品的价值。

RAI 依赖于套利来稳定其价格:

  • 如果 RAI/USD < 固定汇率:从市场中购买 RAI 并将其焚烧以偿还债务是有利可图的。
  • 如果 RAI/USD > 固定汇率:铸造 RAI 并以美元出售,期望价格更低是有利可图的。

固定汇率由抵押赎回价格决定。它不断以正或负的比例改变:

  • 当 RAI 的市场价格 > 抵押赎回价格:这意味着人们更有信心,应该激励铸造更多 RAI,以推动价格的下降。抵押赎回价格变化率变为负值。清算的可能性降低。
  • 当 RAI 的市场价格 < 抵押赎回价格:这意味着人们正在失去信心,应该激励更多焚烧 RAI,以推动价格的上涨。抵押赎回价格变化率变为正值。清算的可能性增加。

这是来自 Vitalik Buterin 的帖子的视觉示意:

1. 死亡螺旋思维实验

RAI 可以安全地逐渐减小吗?Vitalik Buterin 提供了良好的理由,说明 RAI 算法可以安全地处理需求突然下降的情况

2. 庞氏骗局思维实验

RAI 能否应对持有需求超过借款需求的情况?Vitalik Buterin 认为 RAI 具备应对此类情况的良好机制:RAI 的浮动目标可以随着赎回率为负而下降。这相当于对持有者设置了负利率。

3. 预言机弱点

文档声明 RAI 使用 Chainlink 预言机 + Uniswap V2 TWAP 来确定 ETH/USD 价格。RAI团队承认,使用任何预言机都可能存在风险——例如存在共谋的风险。这可以被认为是一种不太可能发生的事件。

对 Uniswap V2 TWAP 的价格操纵攻击由于 ETH/USD 流动池中大量流动性看来代价过于昂贵。

可以看到,预言机每大约 1.5 小时更新一次抵押品价格,这对协议来说看似频繁。

4. 治理攻击

FLX 治理代币 的流通量为 $2,638,736,完全稀释后为 $13,274,844。 RAI 稳定币 的市值为 $9,916,797。

由于只有约 15% 的 FLX 是流动性的,因此很难买入控制协议的股份。同时,FLX 代币似乎到目前为止并没有太多的治理功能。

5. 抵押问题

有关当前债务/铸造统计数据,请访问 stats.reflexer.finance

该算法即使在熊市中也表现得非常适应:目前没有不健康的清算头寸。

MakerDAO的DAI

DAI 是一种结合了中心化与去中心化抵押的混合借贷系统 [*]

DAI 由多种机制稳定

  1. 全球结算预期:当全球结算发生时,DAI 持有者有权获取以抵押品支付的目标值的 DAI。对可能的未来全球结算的预期推动当前价格趋向于固定汇率。
  2. 稳定化投机:投机当他们预期价格最终会恢复到固定汇率,而不需要他们的行动时,将会对 DAI 进行重新挂钩。
  3. CDP 创建者进行价格操纵:在固定汇率时发行 DAI 的人,有动机在其价格低于开设 CDP 时回购 DAI,因而帮助提升价格。当 DAI 在应用固定汇率交易时,CDP 创建者可能希望创建更多 CDP。此外,CDP 会被自动清算,这也会推高 DAI 的价格。
  4. MKR 稀释:通过 MKR 稀释尝试偿还 CDP 的债务的“债务拍卖”。债务拍卖用新铸造的 MKR 买入 DAI来偿还债务。这样 DAI 被焚烧以取消 CDP 尚未偿还的 DAI 债务。债务拍卖的目的是确保即使 CDP 中的抵押品不足也能偿还债务。
  5. 链外稳定:Maker 可能会利用 MKR 销售的链外资金,通过各种方式稳定价格,有效地维护 DAIs 的买卖墙。

1. 死亡螺旋思维实验

DAI 能否安全地逐渐减小?首先需要注意的是,DAI 的价格不能低于 0.5$,因为至少 50% 的 DAI 是由美元稳定资产支持的。其次需要注意的是前一部分中提到的多种不同价格控制机制。 这些机制允许 DAI 社区相当好地稳定代币的价格。但是,即使在最坏的情况下,还有全球结算的最后手段机制:由 MKR 持有者选择的应急预言机可以停止协议以安全地解开所有抵押品。

2. 庞氏骗局思维实验

DAI 是由大量中心化稳定资产(超过 50%)支持的:

因此,它是一种混合稳定币。

它具有稳定-稳定铸造的机制,可以应对DIA 价格高于固定汇率的事件。

3. 预言机弱点

MakerDAO 使用 定制的预言机网络 应该每当价格变动 0.5% 或更多时在区块链上更新价格 https://blog.makerdao.com/makerdao-approves-4-new-light-feeds-for-oracles。抵押品的最终价格是从不同信息源生成的中位数价格进行计算——这有助于过滤掉异常值。

预言机网络迄今为止表现良好,并且没有相关的黑客事件。

4. 治理攻击

MKR 持有者负责治理 Maker 协议,包括调整 DAI 稳定币的政策、选择新的抵押品类型和改善治理本身。

因此,控制 MKR 的最小成本将在 $376,431,942。这比 DAI 的流通价值低 7 倍,但这是目前攻击者所需支付的最低金额。在现实中,一旦攻击者开始从自由市场购买如此大量的 MKR,其价格将会暴涨。如果 MKR 的价格至少上涨十倍,这是非常可能的,那么将没有动机进行敌意收购。

5. 抵押问题

DAI 的抵押比率为 137%——这是合理的。

FTX 崩溃不应影响 DAI,因为 FTT 并没有在 MakerDAO 中用作抵押品。

两年前由于极度波动发生过一次脱锚事件:DAI 抵押品的价值迅速下跌,用户因对 DAI 稳定币的需求增加而无法偿还债务。没人想要铸造新币,因为担心被清算。DAI 的价格飙升。通过引入使用 USDC 稳定币铸造 DAI 的能力,解决了这个问题。

Ampleforth

Ampleforth 协议以 CPI 调整的 2019 年美国 dollar 为目标,并且基于价格自动扩展或收缩用户钱包中的代币数量 [*]

重新调整每天下午2点 UTC 执行,仅当目标偏离调整阈值(可调,目前为 5%)时才适用。

Ampleforth 协议中的供应变化是成比例且不稀释的。如果某用户在重新调整前占有网络 Y% 的份额,那么除非该用户买入或卖出更多 AMPL,否则该用户将始终拥有 Y%的份额。

重新调整通过一条 S 型曲线平滑,使供应变化限制在其渐进克拉斯中。它具有可确定以下参数的形状参数:下渐进、上渐进和曲线的陡峭度(增长率)。这些参数目前设置为 -0.1、0.1 和 3。

1. 死亡螺旋思维实验

AMPL 是一种高度波动的稳定币

图表显示 AMPL 的价格可能在 0.22$ 到接近 4$ 之间波动,但随着时间推移,算法会稳定在流通中的 AMPL 数量并将其价值恢复到固定汇率。

技术上,即使价格跌至 0.01$,算法仍然能够将 AMPL 的价格恢复到固定汇率。唯一的问题是人们的资金可能会亏损。

考虑一个例子:

  1. 你用 100$ 购买 100 AMPL。
  2. AMPL 的价格跌至 0.22$。
  3. 为了增加需求,你钱包中的代币数量收缩,因此你将拥有,比如说 10 AMPL。
  4. 现在 AMPL 的价格恢复到 1$。
  5. 但你钱包中只有 10 AMPL。

这种收缩可能会引起恐慌。

一项有趣的说明:FTX 交易所持有价值为 AMPL 的 $885,212。

2. 庞氏骗局思维实验

如果稳定币价格上涨,会发生什么?重新调整算法应该能够应对这一问题,并相应加大用户钱包中代币数量,逐渐将价格拉低。

3. 预言机弱点

Ampleforth 使用两个去中心化的 Chainlink 预言机网络:一个市场预言机用于 AMPL/USD 的当前加权平均价格 (VWAP),另一个消费者价格指数 (CPI) 预言机用于确定一个根据通货膨胀调整后的美元的目标价格。

Chainlink 数据难以被操控,因此我们可以说 AMPL 本身没有预言机问题。从价格表看,价格更新之间的时间间隔是合理选择的。

4. 治理攻击

社区成员可以投票执行带有其 FORTH 代币的脚本

可想而知,控制 FORTH 的股份理论上可以买入大约 $25,729,170。这是最低成本——实际上可能会成倍增加。最低成本不到总 AMPL 价值的两倍,因此没有实际的敌意收购动机。

5. 重新调整问题

是否存在可能导致供应溢出或下溢的 DOS?

有一个要求是总生产量不得超过 MAX_SUPPLY [*]

assert(supplyAfterRebase &lt;= MAX_SUPPLY);

没有最低供应的门槛。

在发生溢出或下溢的情况下,rebase() 方法将会反转,供应量不会变化。这是预期的行为,不会导致永久性 DOS。

结论

在本文中,我们提供了一个安全检查清单,并用它来分析几个有趣的算法稳定币。你可以使用相同的检查清单来分析其他稳定币的陷阱,甚至是一些最不寻常的(例如DYAD)。安全第一,避免陷入常见的陷阱!

MixBytes 是一支专业的区块链审计师和安全研究人员团队,专注于为兼容 EVM 和 Substrate 的项目提供全面的智能合约审计和技术咨询服务。请加入我们的 X 以获取最新行业趋势和见解。

  • 原文链接: mixbytes.io/blog/securit...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
mixbytes
mixbytes
Empowering Web3 businesses to build hack-resistant projects.