转载

解析Bancor V2版-动态自动化做市商

在本文中,我们将探讨Bancor v2版本中一种称为动态自动做市商(DAMM)的新型流动资金池的动态加权和质押功能。

以下阐述的过程允许对由可靠的价格预言机支持的所有质押资产进行自动做市,旨在通过使用池中的动态参数保持流动性提供者(LP)随时间而不断贡献的价值。

换句话说,池中的所有LP都应能够提取与其所质押金额相同的金额,再加上池中在质押期间所赚取的一部分费用。

v2池的核心概念是:

●    单一储备池代币:每个v2池都锚定到两个池代币(每个储备池一个)。

●    质押余额与当前余额:对于每一储备,质押余额表示流动性提供者质押的代币总数,而当前余额表示储备中持有的代币数量。

●    动态权重:该池更新储备权重,以激励市场参与者使当前余额与质押余额相等。

●    价格流:使用价格流(price feeds)来计算权重,以便在套利交易关闭后,池价格等于市场价格。

有关其他详细信息,请阅读正在进行的Bancor v2文档Balancing Mechanics部分或阅读开源v2智能合约

单一储备池代币

在现有的AMMs(自动做市商)中,用户向池提供流动性以换取池代币。 这些池代币跟踪多个储备中流动性提供者在池中的份额。

0Hc99kiRXoDkmcnGGqT45Tn0RRIQWYInfOdpmuhC.png

在Bancor v2中,我们进行了重要更改:v2池为每个储备分配了单独的池代币。 这简化了跟踪流动性提供者贡献的过程:现在,每个池代币现在代表一个储备中的质押,而不是一个池代币跟踪多个储备中的质押。

请注意,尽管在现有AMM中,每个池只有一个池代币,但每个v2池都固定在两个池代币上(每个储备池一个)。

这将为每个池创建两组流动性提供者:

1. 一级储备LPs—以主要储备代币(以下简称“ XYZ”)提供流动性,以换取XYZ池代币(ERC20)

2. 二级储备LPs —以二级储备代币(以下简称“ BNT”)提供流动性,以换取BNT池代币(ERC20)

2NzDiC6n7Trj1xm6kUCceKXt7XSXxul52LccP3O2.png

在每个v2池中,一次兑换都会在目的代币的储备中产生费用。 例如,XYZ到BNT的兑换会产生BNT储备的费用。

此外,当流动性提供者增加或减少流动性时,池的权重会自动进行调整,以考虑储备的变化,例如,在收到流动性时增加储备的权重。

质押余额与当前余额

现有的流动性池(包括Bancor v1)使流动性提供者承受着称为永久损失的下行风险:每当资产的相对外部市场价格偏离提供流动性时的价格时,提供者可以撤回的价值就小于其质押的价值。

V2池旨在通过激励市场参与者以始终将储备中持有的总金额(“当前余额”)与流动性提供者所质押的金额(“质押余额”)相等来减轻这种风险。

当用户在v2池中投入流动性时,池中会记录存放的代币数量。池的“质押余额”是池对其流动性提供者的债务记录。池总是希望有足够的代币来承担这项债务。v2还有一点值得寻味的就是,有时池中的当前余额不足以支持池对流动性提供者的总债务。听起来比“永久损失”还要糟糕对吧?答案是不对。

当池的当前余额不等于其质押余额时,将调整池的权重,以激励套利者将一级储备代币余额返回至其质押余额。随后,二级储备代币的余额也越来越接近其质押余额。尽管套利激励措施不会将二级储备代币余额100%恢复平衡状态,但是频繁的套利操作保证了它始终非常接近(略低于或高于)其质押余额。

E7XSsRxSESkQokmVORmSclYz1kyC4y9dKSW5OMy6.png

在下图中,你可以看到大约50%的套利关闭导致池中收到多余的BNT,而还有大约50%会导致BNT短缺。 假定套利反应快,随着时间的流逝,池将推动BNT当前余额以密切跟踪质押余额。

QpVblrscO8x6ovNtglXmdZXnBy02zUhh9EnBdYZ6.png

私人TestNet对现实世界市场状况的模拟,二级储备代币(BNT)的当前余额密切跟踪其质押余额。

因此,在资产波动的现有流动性池中,流动性提供者几乎可以保证收回的代币数量少于所质押的代币数量。 但是,Bancor v2池中的流动性提供者几乎可以保证取回其所质押的代币,条件是在极少数情况下他们可能需要逐渐撤回其质押金额。

动态权重

那么,v2池如何确保流动性提供者可以足够频繁地兑现其质押余额? 动态权重在为套利者持续充值储备从而为套利者提供适当激励方面起着关键作用。

套利的动机始终是将BNT转换为XYZ,反之亦然,从而需满足以下条件:

1.  BNT/XYZ池价格= BNT/XYZ市场价格

2.  XYZ当前余额 = XYZ质押余额

为了说明这一点,让我们将当前XYZ余额表示为“ s”,将质押的XYZ余额表示为“ t”。

考虑“ s <t”的情况。 我们的目标是设置池的权重,以使池价格和参考市场价格均等的套利动机随后会转变成,增加“ s”,使其等于“ t”。 换句话说,我们希望套利者将“ t-s”个XYZ转移到池中,以换取BNT。

这意味着,每当XYZ短缺时,资金池无法偿还XYZ提供者的债务,资金池就会激励市场立即弥补赤字。

完全相同的机制适用于“ s> t”的情况,这说明XYZ中有多余。

那么在BNT方面呢? 与保证保持平衡(XYZ当前余额= XYZ质押余额)的XYZ不同,BNT方面情况不同。 但是,无论何时套利交易结束,它都被推向正确的方向。 套利交易越频繁,BNT越接近平衡。

如果市场参与者需要一些额外的动力来恢复池中的平衡,则v2池会引入动态费用以向正确的方向推动市场。

价格流

两种价格流可不断更新v2流动性池:外部流和内部流。 为了演示这两种流的功能,让我们来看两个市场场景示例。

让我们以一个新初始化的池为例,其中两个资产余额相等。 这是此示例池的示意图:

PfKWMSl6Qx6G9BF3nZd3OLkt0z1QoBD1JHWWm87h.png

1. XYZ价格显著增加

在现有AMMs中,当一项资产的价格与另一项资产的价格不同时,LPs会遭受永久性损失,因为这两种资产之间的比率保持固定。 套利者很快就会发现这些不平衡,他们通过用高估资产交易低估资产从LPs那里获取价值。

在Bancor v2的情况下,预言机会抓住这些价格变化并相应地调整每个储备的权重。 当XYZ价格上涨时,XYZ / BNT池中XYZ的目标权重将上升,并且没有套利机会。

回到我们的初始资金池,让我们考虑XYZ价格上涨10%的影响。

424JsLSU34Bo6YyzYF991JLfiN8kZJivd3csPyJw.png

当外部预言机更新时,XYZ的目标权重将自动调整为52%,与资产储备价值的变化一致。

2. XYZ价格略微增加

外部预言机捕获了储备资产价格的重大波动,并保护LPs免受永久损失。 但是,为了最精确地为储备资产定价,v2池还确保考虑到市场情绪的微小变化。 每个池包含一个内部价格流,该价格流源于前十分钟的简单移动平均线(SMA)。 在来自外部预言机的每次更新中,内部价格流重新定位到外部预言机,并且连续的SMA计算会重启。

请考虑以下情形。 一分钟的一次兑换后,内部价格流和储备目标权重已略有调整。

例如,如果在接下来的三分钟内没有进一步的交易记录,则内部价格流将提供另外三分钟的数据,并且该信息将反映在池价格中(步骤D)。

S3hezAmvU5uJeZ0ha8QNp0NHCzfGmL228zJidfZP.png

总结

在核心V2智能合约完成后,其他工作仍在进行中:

●Bancor V2智能合约正在由Consensys Due Diligence和1inch.exchange进行正式验证和安全审核。

●实时漏洞赏金鼓励对社区的安全性进行额外审查。

https://medium.com/@bancor/bancor-v2-bug-bounty-5bbb970d0097

●Bancor.Network前端已更新为可与Bancor V2一起使用,包括交易、池质押和网络分析。

Bancor V2文档、指南和示例仍在开发中。

http://docs.bancor.network/

在成功进行正式验证之前,我们对Bancor V2在未来几周的内部署持相当乐观的态度。 但是,请记住,这只是一个目标,而不是我们正式宣布的发布日期。

正文到此结束
本文目录