高流动性的稳定币价格锚定算法 了解一下
2019 年 4 月 28 日,Block.one CTO Daniel Larimer 在 Medium 上介绍其新的算法 - 高流动性的稳定币价格锚定算法。
据介绍,该算法提供了高流动性和窄幅价差,同时在抵押品随着时间而贬值的情况下仍可保持稳健性。BM 相信,该算法可以最大化所有参与者的利益,同时将风险最小化。
另外,BM 今天在电报群中提到对文章做了一些声明和补充,并分享了一些信息,他表示,B1 没有打算做稳定币,这只是他对于稳定币发表的一些想法,让社区受益并希望有人可以通过该算法创建成功的 Dapp。同时,他也给出了该算法的一些示例代码(https://github.com/bytemaster/pex)。
为了方便大家了解 BM 新发布的算法内容,IMEOS 对原文进行了翻译。如需转载,请注明出处来自 IMEOS 翻译组。
*原文翻译中绝大部分 “USD” 都是代指新算法中的稳定币角色,而非美元。
今天我介绍一种可提供高流动性和窄幅价差的稳定币价格锚定算法。在违约事件中,抵押品随着时间推移迅速贬值,该算法在这种情况下仍可保持稳健性。我们算法的基础是通过超额抵押的空头仓位与 Bancor 算法相结合,同时为多头和空头提供流动性。该算法还将利用喂价来引导市场,但其影响仅限于当价格长期偏离时,以保护做市商系统免遭滥用。
背景
在 2013 年,BitShares 推出了 BitUSD 概念,这是一种以 BTS 代币为抵押物的“智能币”,旨在追踪 USD 价格。BitUSD 通过在那些想要杠杆做多 BitShares 代币 (BTS) 的人和那些想要价格稳定的人之间创建订单簿来运作。
为了给 BitUSD 的购买者提供流动性,BitUSD 持有者被允许在多日延迟后按照喂价将抵押率最低的空头仓位强制平仓。这种方式使用户可以更有效地追加保证金,并保证 BitUSD 买家手上的代币总是价值约为1 美元的BTS。为了防止违约,如果在当前喂价下的质押物价值低于最低保证金要求,抵押率最低的空头仓位将可能被强制平仓。
BitUSD 方法的主要问题是流动性的缺乏,BitUSD 供应量的有限,以及过大的市场价差。做市商必须使用交易机器人在内部订单簿上进行交易。虽然系统为 BitUSD 持有者提供了流动性,但是空头仓位的流动性却并没有得到保证。最后当抵押率最小的空头仓位无法被平仓,整个市场将受制于黑天鹅事件的影响。当发生这种情况时,稳定币的价格锚定被永久性破坏,而 BitUSD 和 BTS 之间则出现固定的汇率。
市场对 BitUSD 生成动机的缺乏,过低的流动性 (交易参与者被迫付出不合理的价格滑点),出乎意料的爆仓预警,以及试图运行安全的做市机器人时所面临的困境,这一切意味着 BitUSD 的低供应和高价差。
很多其他项目也设计了各种样式的超额抵押仓位和保证金要求。但所有这些项目都遇到了与 BitUSD 类似的问题。
传统的衍生市场实行“期货交易”,允许人们在未来的某个时间点发布抵押并按喂价结算。这些期货合约是可互换的并且在某一时间可以交易,但由于截止日期和强制的结算/转仓,这种方式并不适合创建价格锚定的稳定代币。
Bancor 算法在两个资产间提供自动流动性,同时保护其储备不会被老练的交易者掳走。无论针对 Bancor 算法执行的订单数量和种类如何,当资产对的价格回到其起始点时,算法始终会产生利润。典型的 Bancor 做市商被称为中继器,其具有两个代表具备相同市场价值余额的“连接器”。该算法已成功在市场中提供自动流动性,如 EOS RAM 市场。
锚定算法
该锚定算法是基于"稳定币是空头给多头提供服务"这一概念上的。此服务要求空头为稳定币提供流动性。如果对稳定币有需求,那么即使市场价格相对稳定,做市商在提供服务的过程中赚取的交易费也足够使他们有利可图。
其他锚定算法使空头们之间通常互相碾压,而不是以带来稳定服务为前提进行相互合作。在这些其他算法中,空头们在竞争过程中平仓或建仓,并时刻担心逼空风险。
我们算法的前提是,那些愿意在抵押资产 (如 EOS) 中略微杠杆做多的人,可以通过在 EOS 和可互换稳定资产(如 USD )之间的做市行为中进行获利,其价值被设计为在允许的价差范围内追踪喂价。
我们的算法不是由用户各自创建独立的空头仓位,而是创建一个全球性的空头仓位并允许用户买卖这个全球空头仓位的份额。假设两者之间不发生其他额外交易,那么买卖空头仓位的份额就是一个中立且可逆的过程 (但是要扣除手续费)。此时杠杆化便不再是主要动机,交易费才是用户买入仓位份额的动机。这意味着 400% 或更高的超额抵押品目标是可行的,且允许空头在抵押资产中以较低杠杆率来赚取交易费。
做市商最初是通过将抵押品存入合约而创建。合约将在做市商 (MMS) 中创建代币并将其给予最初的存入者。举例来说,我们假设抵押品是 EOS,稳定币是 USD,其设计旨在追踪24小时 EOS 美元中间价。
确定目标储备比率,例如 400%。根据 4 倍的准备金比率,75% 的 EOS 存入将被留做多余的抵押品,另外 25% 将以 50% 的权重被置于 Bancor 中继连接器 (Bancor Relay Connector) 中。这时,自动做市商合约将创建一些 USD 代币以入资第二个 Bancor 中继连接器,使 EOS 和 USD 连接器余额的市场价值与喂价的初始价值相同。
在初始条件下做市商在其连接器中拥有 100% 的 USD,因此没有净负债 (即必须回购的 USD)。MMS 的账面价值等于连接器中保留的 EOS 价值加上多余的抵押品 EOS,减去从连接器卖出的任何流通 USD。在初始设置之后,任何人都可以从做市商那里买入 USD,从而为 MMS 持有者建立未来的回购责任。Bancor Relay 的数学特性意味着当用户从做市商那里买入 USD 时,要价将会增加。如果每个买入 USD 的人都将其卖回去,那么连接器最终处于初始状态。交易收取的每一份费用都将导致连接器余额中保留的 EOS 净增加。
鉴于以上设置和 400% 的储备目标,我们可以证明实际抵押物储备与已售出 USD 的比例将远远超过 400%。为了使其降低到 400% (在市场价格不变的情况下),整个 USD 连接器将必须被购空,这将推动 USD 价格至无限大。实际上,随着多头 USD 仓位有效供应的减少,做市商将自动提高买入多头 USD 仓位的成本。
做市商提供的现货价格等于连接器余额中持有的 EOS 与 USD 的比率。当现货价格波动超过可接受的幅度(如 /- 2%) 且持续时间也超过来可接受范围(如 24小时),那么做市商将会取决于市场情况采取以下其中一个行动:
该算法的目的是使系统状态始终更接近于初始条件,即在 USD 连接器中持有比 Bancor 余额多 3 倍的超额抵押物和 100 % 的 USD。当有流通 USD 的情况下,连接器显然不可能达到持有 100% 的 USD,但当 EOS 的价值相对与 USD 显著上升,流通供应可以按百分比进行减少。
抵押品移动或 USD 发行的速率应以价格修正为目的,即在目标时间内(如,1 小时)将价格修正入一个可接受的范围。从理论上讲交易者应该假设 USD 价值 1 美元来进行交易,因为他们有信心在不久后能够以 1 美元的价格卖出。这意味着当 EOS 和 USD 的相对价格稳定时,做市商不必依赖喂价来纠正实时价格,并且 Bancor 算法在面对操纵者时的安全性可以保护连接器余额不被交易者掳走。
诸如喂价偏差的允许范围,修正率,以及触发价格修正前的时间间隔等等的配置参数对于最小化做市商的主动干预频率是至关紧要的,并且能保证当需要干预时,干预是缓慢和渐进的。市场参与者在理论上应该无法在做市商前抢跑(预测干预的发生并提前进行投机性参与)并获得利润。
该算法的成果,是使稳定币在 24 小时内的中间价格与美元挂钩,而不是以它的即时价值。只有当做市商价格的 24 小时中间值明显大于实际市场价格的 24 小时中间值时,它才会对锚定结果进行主动修正。当实际市场价格大幅波动时,我们希望交易者能够与 Bancor 算法进行交互,并在 24 小时中间值偏离时进行提前交易。
这种提前交易可以防止 Bancor 连接器发生强制性调整,除非市场已经陷入长期偏离。中间价走势越慢,做市商的风险越低,但稳定币 USD 和实际美元的偏差则越大。由于Bancor 算法允许较大百分比(如 5%) 的价格偏差,这也最小化了基于喂价的人为价格操作。而越少人为操作,则喂价时效性的相关性就越低。
买入和卖出 MMS 代币
任何人都可以随时通过提供新的 EOS 来打包买入 MMS 和 USD。这通过添加新的 EOS 之后维持 Bancor 连接器中的 MMS、EOS、 USD 和流通中的 USD 的比率来实现。提供 EOS 抵押物的用户将收到 MMS, 并以某种比例获得新生成的 USD,该比例取决于当前的 USD 流通总量。 一部分 USD 和 EOS 将被转账到连接器和超额准备金中。然后,用户可以卖出 USD 来获得 EOS 并重复该操作,或者单纯持有超额的 USD 或 EOS。
卖出 MMS 代币需要提供等同于 USD_circulating * MMS_Sell / MMS_Supply 的 USD 数量。这与他们在首次用 EOS 买入 MMS 代币时所获得的 USD 数量是相同的(减去期间所有的交易费用)。
此过程可视为拆分和添加相同的空头仓位。一旦你控制了空头仓位的所有未偿还债务,你就可以将其解除并获得所有抵押品。这个过程的关键在于保持不变量,即当一个用户用抵押物买入 MMS 或者售出 MMS 来获得抵押物的时候,不会改变 MMS、EOS、USD 和流通中的 USD 的比率。如果你想要卖出 1% 的 MMS 份额,那么你也必须买入和支付 1% 的流通 USD。幸运的是,你可以从做市商那买入流通 USD,因此总是有流动性。
市场交易费用
当用户买入和卖出 USD、EOS 和 MMS 时,系统将收取交易费。此费用代表一种收入来源,可为持有 MMS 的人带来资本收益。波动性越高,交易越多,产生的费用就越多。这些费用不断对 MMS 进行资本重组,无需杠杆合集的抵押者们再进行任何投入。
不论市场情况如何,那些被杠杆化的人不可能减少他们的抵押品或面临无法逐步增加抵押品的情况。由于初始抵押品比例较高,如假设为 4 倍,抵押品的贬值速度必须比交易费的累计快 75%。
黑天鹅事件
黑天鹅是指任何使做市商无法将 USD 的价格维持接近喂价的事件。这种情况当抵押率不足时就会发生。当这种情况发生时,做市商将继续运作,但 USD 的价格会独立于喂价而浮动。
精明的读者可能会考虑从连接器的一侧移除 USD 以维持价格,但这是不可取的,因为它会导致连接器中剩余的 EOS 的逃离。在超额抵押品消失时让价格浮动,那些想要提前离场的人会为流动性支付溢价,而场中交易行为的继续则将会为留下的各方用户进行资本重组。
即使在黑天鹅期间,交易费用所代表的收入流也会激励各方提供抵押品并为做市商提供资金。如果抵押资产(例如EOS)的价值回归预期不再存在,则稳定资产(例如 USD )的持有人将以市价在连接器中获得剩余EOS的公平份额。
与其他系统不同,黑天鹅事件在此不是一个特别案例,市场有一种无缝且自然的恢复方法来恢复价格锚定。
如果抵押率过低,做市商的配置可以阻止市场卖出 MMS 代币,同时允许以 10% 折扣用 EOS 买入 MMS。这种方式可以在为做市商进行资本重组的同时,为新的 MMS 持有者提供比先前持有者更高的利益。一旦超额抵押率恢复,MMS 可以如上所述再次卖出。超额抵押品的损耗和折扣幅度的确切数值是可变量。通过调节这些可变量,将最小化抵押物耗尽的风险并且最大化激励资本快速参与市场调整,而不会过度惩罚先前的 MMS 持有者。
喂价
有许多不同的方法可以产生可信赖的喂价;但是有一些建议可以得到更好的结果。币价的稳定可以通过追踪任何喂价来实现,包括人工喂价如 30 天的移动平均线。典型的喂价机制试图追踪即时现货价格,但这种预期对追求安全性的做市商来说是不现实的。价格变化越慢,币价的稳定就越容易得以维护,因为市场参与者有更多的时间进行仓位调整。
我的建议是使稳定币价格锚定 24 小时中间价而不是即时价格。这将减少锚定价格的波动频率和幅度,同时不会破坏稳定币 USD 作为美元替代品的价值。事实上,它将一些当日波动风险转移给 USD 持有者(平均偏差),同时仍然为 USD 持有者提供长期波动对冲。
市面中有部分实验要求在喂价的反应与做市商的盈利能力之间确定一个适当的平衡。
价格修正替代措施
当交易者与算法交互时,他们要么把 bancor 价格从喂价进一步推高,要么使之更接近喂价。对交易进行产生动态费用是可行的,这些交易增长越高,就把 bancor 价格从喂价推的更远。这允许 MMS 持有者增加利润并且阻止由操纵者引起的喂价过度偏离。
结论
相比于 BitUSD 这样的系统,我们的稳定币方案通过向提供抵押品的空头提供交易费用,同时有效消除空头的大部分流动性风险,来激励资产创造和流动性。
此外,该算法为市场双方提供相同的流动性,而 BitUSD 仅向市场的一方提供强制结算。交易费用不断重新抵押市场,使其能够从由于价格变化导致的损失中恢复。只要交易费用的收入高于抵押资产价值的平均下降,系统就可以保持偿付能力和流动性。我们相信这种方法可以最大化所有参与者的利益,同时将风险最小化。
注解:本文所述的经济布局可能受到或者不会受你所在的司法管辖的法规制约。在进行所述的经济布局之前,请寻求专业的法律意见。实际性能取决于许多因素,包括实施和选定的配置参数。上述想法和意见是由我自己提出的,而非其他人。