星球日报
搜索
手机客户端
iPhone · Android
微信公众号
微信公众号

iPhone · Android

微信公众号

详解 BM 全新“高流动性价格锚定” TOKEN 算法

2019-04-30

锚定代币是一种让空头为多头提供的服务,该服务要求空头为锚定代币提供流动性。如果对锚定代币有需求,那么即使市场相对平稳,做市商赚取的交易费也应该能让服务提供商获利。

本文来自 Medium,原文作者:Daniel Larimer

Odaily 星球日报译者 | Moni

详解 BM 全新“高流动性价格锚定” TOKEN 算法Daniel Larimer 是 Bitshares,Steem 和 EOS 的联合创始人,也是目前世界上唯一一个连续成功开发出三个区块链系统的人,业内绰号“BM(ByteMaster)”。最近,他推出了一个全新的“高流动性价格锚定” TOKEN 算法,全文翻译如下: 

今天,我想向大家介绍一个全新的代币锚定算法,该算法可以提供高流动性和利差收窄(narrow spreads),同时在随时间推移抵押品逐渐失去价值的情况下确保代币稳健性。我们的算法是基于一个严重超额抵押的空头头寸,并且与 Bancor 算法相结合,为多头和空头头寸提供流动性。此外,该算法还可以利用价格来引导市场,但其影响仅限于长期偏离(prolonged deviation)的情况,以保护做市商免受代币滥发的影响。 

背景 

2013 年,BitShares 推出了 BitUSD 的概念,这其实算是一种“智慧货币(smart coin)”,由 BitShares 代币(BTS)支持,旨在追踪美元价值。BitUSD 通过创建一个交易委托账本(order book),为那些想要利用 BTS 的人和那些想要价格稳定加密货币的人提供服务。另一方面,为了向购买 BitUSD 的人提供流动性,BitUSD 代币持有人可以在多日延迟之后强制清算最少抵押的空头头寸(least-collateralized short position)。这样一来,BitShares 等于创造了一个有效的保证金追加机制,以此确保 BitUSD 代币购买者手上的代币价值与 1 美元等价的 BTS 相当。为了防止违约,如果 price feed 于最低保证金要求,最少抵押空头头寸也可能被强制平仓。

不过,BitUSD 所采用的这种方法也存在一些问题,比如缺乏流动性、可用的 BitUSD 供应量有限、市场传播不足等等。做市商必须使用交易机器人,以便在内部交易委托账本上转移订单。有时虽然 BitUSD 持币人获得了流动性,但空头头寸却无法保证流动性。最后,当最少抵押头寸无法被覆盖的时候,整个市场就会受到“黑天鹅事件”的影响。一旦发生“黑天鹅”这种情况,锚定关系就会被永久性地破坏,BitUSD 和 BTS 之间也会形成固定汇率。

缺乏激励创造 BitUSD、低流动性风险、意外追加保证金、以及使用机器人难以创造一个安全运行的市场,这些因素都导致了BitUSD供应量很少,而且利差极高。

事实上,凡是利用过度抵押头寸和保证金要求的项目,或多或少都会遇到与 BitUSD 类似的问题。

传统的衍生品市场里会进行“期货交易”,允许人们在未来的某个固定时间点发布抵押品、并基于一个价格清算。这些期货合约是可以互换的,而且在一定时间内可交易,但由于带起和所需清算/转仓,此类传统期货合约并不适合创建锚定类型的代币。

Bancor 算法可以在两个资产之间提供了自动的“流动性”,同时还能保护资产价值不会被老练的交易者操纵而受到损失。无论针对 Bancor 算法执行的订单的数量和种类如何,当资产对价格返回到其最初起点的时候,Bancor 算法总会为你带来利润。一个典型的 Bancor 做市商常常被称为是带有两个“连接器”的“继电器”,“连接器”代表了等价市值余额(balances of equal market value)。Bancor算法已经成功在 EOR ARM 市场中应用,而且也为这些加密货币提供了自动流动性。

锚定算法

我提出的这个锚定算法基于这样一个概念:锚定代币是一种让空头为多头提供的服务,该服务要求空头为锚定代币提供流动性。如果对锚定代币有需求,那么即使市场相对平稳,做市商赚取的交易费也应该能让服务提供商获利。

其他锚定算法往往会让空头们互相“厮杀”,而不是促进合作,导致空头之间经常做空彼此,无法带来稳定的服务。实际上,这些锚定算法会让空头在彼此竞争过程中平仓和建仓,而且还担心空头挤压。

我们的算法这是基于这样一个前提:凡是愿意在抵押资产(比如 EOS)中略微使用一点杠杆做多的人,可以通过促进 EOS 与可互换锚定资产(比如 USD)之间的做市活动来赚钱,其价值是被设计的,可以在一个允许的偏差范围内追踪 price feed。

我们的算法不是让用户各自创建独立的空头头寸,而是构建一个全球性的空头头寸并允许用户在这个全球性头寸里买入和卖出权益(stake)。在空头头寸里买入和卖出权益是一个中立且可逆的过程(除去交易费用),而两者之间不会发生其他交易。在这种情况下,杠杆不再是交易的主要动机,交易费成为在头寸中买入权益的真正动机。这意味着 400%、甚至更高的超额抵押目标是可信的,而且空头可以在抵押资产中使用较低的杠杆率,这样他们就有机会来赚取交易费。

做市商最初是通过将抵押品存入合约中被创建出来的,这个合约将在做市商中创建代币 MMS,然后再将代币分发给最先在合约中存入抵押品的人。举个例子,假设我们的抵押品是 EOS,锚定的货币是美元,旨在追踪 24 小时 EOS 美元价格的中间价。

详解 BM 全新“高流动性价格锚定” TOKEN 算法

接下来,我们需要确定一个目标储备比例,比如 400%。根据四倍的准备金比例,75% 存入的 EOS 将会被留作多余的抵押品,25% 将被置于按照 50% 权重设定的 Bancor 中继连接器 (Bancor Relay Connector) 中。此时,自动做市商合约将会创建一些 USD 锚定代币,以便为第二个 Banco r中继连接器提供资金,使 EOS 和 USD 连接器的余额市场价格与 price feed 的初始价值相同。

在初始条件下,做市商可以在其连接器中拥有 100% USD,因此没有净负债(也就意味着他们必须要回购 USD)。做市商的账面价值与连接器中保留的 EOS 和额外抵押品 EOS 的总价值再减去从连接器卖出的流通 USD 后的值相等,完成初始设置之后,任何人都可以从做市商那里买入 USD,从而为 MMS 持有人建立未来的回购责任。Bancor 中继算法的数学特征,意味着当用户从做市商那里购买 USD 的时候,报价将会上涨。如果每个购买 USD 的人都买入的 USD 再卖出去,那么连接器最终还是会回到初始状态。每笔交易中收取的费用,都会导致连接器余额中持有的 EOS 价值净增加。

考虑到我们所做的这种设置,以及 400% 的储备目标,最后其实能够证明实际抵押物储备与已售出 USD 的比例会远远超过 400%。为了在市场价格不变的情况下让储备目标降低到 400%,必须购买整个 USD 连接器,这意味着会把 USD 价格推到无穷大。实际上,随着可用多头 USD 头寸的有效供应减少,做市商会自动提高买入多头 USD 头寸的成本。

详解 BM 全新“高流动性价格锚定” TOKEN 算法

做市商提高的现货价格,其实与连接器余额中持有的 EOS 和 USD 比例相同。当现货价格波动超过可接受的范围(比如上涨或下跌达到 2%),同时波动持续时间也超出了可接受的范围(比如波动达到了 24 个小时),那么做市商将根据市场情况采取以下行动中的一个:

SPOT = price of USD according to Bancor

FEED_USD = price of a federal reserve note in EOS

if( SPOT > FEED_USD ) 

   if( Excess Collateral < 3x EOS Connector )

      then slowly move EOS Connector to Excess (lowering SPOT)

   else 

     then slowly add new USD to Connector (lowering SPOT)

else if( SPOT < FEED_USD  )

   if( excess collateral )

       then gradually buy USD using excess collateral

            and destroy it (raising SPOT)

else do nothing

该算法的目标就是要让系统状态始终接近于初始条件,即 USD 连接器中持有比 Bancor 余额多三倍的超额抵押物和 100% USD。在有流通 USD 的情况下,连接器显然不可能达到持有 100% USD 的状态,但是当 EOS 价值相对于 USD 有了明显上升的时候,其循环流通供应量可以按照百分比逐渐减少。

抵押品转移或是 USD 分发的速度应该是以修正价格为目的,必须要在某个目标时间内——比如一小时——把价格修正到一个可接受的范围。从理论上来说,交易者应该按照1美元价值买入和卖出 USD,因为他们有信心可以在不久之后再把 USD 按照 1 美元的价格卖出去。这意味着当 EOS 和 USD 的价格相对稳定的时候,做市商不必依赖 price feed 来纠正实时价格,同时 Bancor 算法其实也具备一定的安全性,可以保护连接器余额不会被操纵市场的交易者掳走。

在配置允许 feed 偏差、校正率和延迟启动价格矫正等参数的时候,要尽量减少、甚至最小化对做市商的主动干预,这点至关重要。即便是在不得不要去干预的时候,也需要缓慢且渐进式地进行。从理论上来说,市场参与者应该无法在做市商之前获得利润,因为通常做市商会预测市场干预发生,然后提前进行投机。

我们的算法最终会生产一个锚定资产,该资产确保稳定币在 24 小时内的中间价格与美元锚定,而不是以它的实时价格与美元锚定。只有当做市商价格的 24 小时中间值明显大于市场实际价格 24 小时中间值的时候,这个算法才会对锚定结果进行主动修正。当实际市场价格大幅波动的时候,我们希望交易者能够与 Bancor 算法进行交互,并且在 24 小时价格中间值出现偏离的时候提前进行交易。这种提前交易所能够防止 Bancor 连接器发生强制性调整,除非市场已经陷入长期偏离。中间价走势越慢,做市商的风险越低,但稳定币 USD 和实际美元的偏差则越大。由于Bancor 算法允许较大百分比(如 5%) 的价格偏差,这也最小化了基于喂价的人为价格操作。但是人为操作越少,price feed 相关的实时准确性就会越低。

买入和卖出 MMS 代币

任何人都可以随时贡献新的EOS来购买 MMS 和 USD 组合,这是通过添加新的 EOS 之后维持 Bancor 连接器中的 MMS、EOS、 USD 和流通中的 USD 的比率来实现的。提供 EOS 作为抵押的用户会收到 MMS,并且会按照一定比例转化成USD,这个比例取决于当前 USD 的流通总量。此外,一部分 USD 和 EOS 会被转移到连接器和超额准备金中,用户之后可以卖出 USD 来获得 EOS 并重复该过程,或是仅是持有超额的 USD 或 EOS。

卖出的 MMS 代币需要提供等同于“流通中的USD乘以卖出的MMS再除以MMS总供应量”的 USD 代币,这与他们首次购买带有 EOS 的 MMS 代币时所获得的 USD 代币数量是一样的(当然,还要减去所收取的交易费用)。

这个过程可以被看作是拆分并加入相同的空头头寸,一旦你控制了空头头寸所有未偿还的债务,就可以将其解除并获得所有抵押品。整个过程的关键点在于保持不变量,也就是当一个用户通过抵押买入 MMS 或是出售 MMS 来获得抵押的时候,并不会改变 MMS、EOS、USD、以及流通中 USD 的比率。如果你想出手做市商(MMS)中 1% 的权益,那么就必须购买并支付 1% 流通中的 USD。幸运的是,你可以从做市商那里直接购买流通 USD,因为他们那里能一直确保流动性。

市场交易费用

当用户买入和卖出 USD、EOS 和 MMS 时,系统将收取交易费用,该费用其实算是一种收入来源,可以为 MMS 代币持有人带来资本收益。波动性越高,交易量越大,产生的费用就越多。不仅如此,这些费用也会对 MMS 不断进行重组,不需要使用任何集体杠杆进行投入。无论市场条件如何,那些被杠杆化的人都不能减少他们的抵押品,也不能逐步增加自己的抵押品。由于初始抵押品比例较高(比如四倍),抵押品的贬值速度必须比交易费的积累快 75%。

黑天鹅

黑天鹅是指任何做市商无法将 USD 价值维持在 price feed 附近的事件,当抵押率不足的时候,黑天鹅事件就会发生。如果在黑天鹅事件发生的时候做市商继续运作,USD 的价格就会独立于 price feed 浮动。

至此,有些精明的读者可能会觉得如果从连接器的一侧移除 USD 是不是就可以确保价格稳定呢?但实际上,这是不可取的,因为它会导致连接器中剩余的 EOS 离开连接器。在超额抵押品消失时让价格浮动,那些想要提前离场的人会为流动性支付溢价,而场中交易行为的继续则将会为留下的各方用户进行资本重组。

值得一提的是,即使在黑天鹅期间,交易费用所代表的收入流也会激励各方提供抵押品,并且继续为做市商提供资金。如果抵押资产(例如EOS)的价值没有回归预期,那么稳定资产(例如 USD )持有人将会以市价在连接器中获得剩余EOS的公平份额。

与其他系统不同的是,黑天鹅事件并不是一个特别案例,市场有一种无缝且自然的恢复方法来恢复价格锚定。

如果抵押率过低的话,做市商其实可以利用一些手段阻止市场卖出 MMS 代币,同时允许以 10% 折扣用 EOS 买入 MMS。这种方式可以在为做市商进行资本重组的同时,让新的 MMS 持有者获得比先前持有者更高的利益。一旦超额抵押率恢复,MMS 又可以按照类似的方法再次卖出。超额抵押品的损耗和折扣幅度的确切数值是可变量,通过调节这些可变量,将最小化抵押物耗尽的风险并且最大化激励资本快速参与市场调整,而不会过度惩罚先前的 MMS 持币人。

Price Feed

有很多不同的方式来生成值得信赖的 price feed,不过我也会提供一些建议,可以让你获得更好的结果。锚定代币可以追踪任何 price feed,包括类似于30天移动平均线这样的人工 price feed。一般来说,传统 price feed 机制都是去追踪实时现货价格,但这种预期对追求安全性的做市商来说可能并不现实,因为市场参与者有更多的时间进行头寸调整,如果价格变动越慢,维持锚定的难度就越大。

我的建议是锚定 24 小时中位价,而不是实时价格。这将减少锚定价格的波动频率和幅度,同时也不会破坏稳定币 USD 作为美元替代品的价值。事实上,这种铆钉方式可以将一些当日波动风险转移给 USD 持币人(平均偏差),同时仍然为 USD 持有者提供长期波动对冲。

不过由于市场波动性的存在,你仍然需要在市场上进行一些实验来确定 price feed 与做市商盈利能力之间的适当平衡。

替代价格修正措施

当交易者与算法进行交互的时候,他们要么把 Bancor 价格推高 feed 价格,要么接近于 feed 价格。这么做对于产生交易动态费用来说是可行的,交易量越多,就会推高 Bancor 价格,在帮助 MMS 持币人增加利润的同时,也会防止市场操纵者将价格过度偏离 price feed。

总结

与 BitUSD 等系统相比,我们的锚定算法通过向提供抵押的空头提供交易费用,同时还会有效减少大多数空头的流动性风险,从而激励资产创造和流动性。此外,该算法为市场双方提供相同的流动性,其中BitUSD仅向市场的一方提供强制结算。交易费用会不断地重复抵押给市场,使其能够从价格变化造成的损失中恢复过来。只要交易费收入高于抵押资产价值的平均下降幅度,系统就可以保持偿付能力和流动性。 我们相信这种方法可以最大限度地提高所有参与者的效率和利益,并且将风险最小化。

注意:本文所述的一些经济手段可能不受你所在的司法管辖区的法规管辖,因此如果你要尝试这种算法的话,最好先寻求专业的法律意见。实际操作的时候还可能取决于许多其他隐私,比如实施和选定的参数配置,上述想法和意见都来自于作者本人。

参与讨论

登录后参与讨论

Moni

新锐作者

Moni

这个作者有点忙,还没写简介

总文章数: 249


分享至

微信扫一扫分享

0