# 超导兑换实现

# 超导架构

超导兑换架构图:

超导架构图

超导兑换架构中,有三大关键角色,代表了不同类型的参与者。除了这些关键角色外,还有一些辅助设施。

  • 单一资产代理转换:即帮助存入单一资产的 LP 转换成按理性比例存入各资产的机制(后面会讲不按照理性比例存入各资产的损失问题)
  • 滑点保护机制:帮助正常交易者和 LP 规避损失
  • 黑天鹅熔断机制:以防某种稳定币出现黑天鹅信用危机造成的系统风险
  • 外部市场波动监控,通过灵活调整系统关键参数应对极端的市场行情波动

这些辅助措施对于超导兑换的稳定运行至关重要,每一个措施都是对用户无微不至的保护。

超导基本角色:
超导兑换中主要有三种角色,分别是流动性提供者(LP)、正常交易者、套利者。

  • 流动性提供者:

    MOV 超导基于储备池提供流动性,所以也可以称之为储备池做市商。而储备池中的流动性资金就由LP这一角色提供,他们向储备池按照当前币种间正常市场汇率比例投入各资产进行做市(目前已支持单资产转入,但会产生额外手续费)。LP在提供流动性的同时会的得到系统收益,例如,DAI + USDC组合的年化收益最高时曾达到16%。

  • 正常交易者:

    正常交易者在MOV超导兑换中享受低成本、低滑点的稳定币兑换服务,50万量级流动性下,进行一次20万美元大额交易的滑点为 0.29%(千三),相比于几大中心化交易所也具备充分的竞争力。交易手续费也较友好,一般低于0.05%(万五)。交易者在交易过程中产生的手续费会做为LP提供流动性的奖励。

  • 套利者:

    超导兑换的市场定价或者汇率锚定并不是通过传统的中心化预言机机制,而是完全依赖于一种套利者角色,一旦因为交易或者外部汇率变化导致场内汇率跟正常值出现明显偏差,套利者便会迅速进行套利操作,在场内以低成本换取偏差代币,然后去场外汇率正常的市场高价卖出,赚取额外收益的同时将场内汇率“搬”到跟场外一样,这种通过不断的高频套利维持场内价格与正常市场汇率锚定的机制。

看似简单的过程中其实蕴藏着复杂的套利与损失问题:

  • 有些 LP 可能并没有严格按照理性比例存入各资产
  • 场内价格严重偏离外部正常市场汇率
  • 迅速波动的外部市场环境对 LP 存入策略的影响
  • 超级攻击,例如闪电贷攻击。

简单来概括这些问题的本质 —— 被套利者利用,加大 LP 的损失,不利于系统健康运转。但如果我们的系统和机制设计可以很好地解决这些问题,让套利者成为一个“白帽子”套利者,而不是像黑客一样利用系统金融漏洞进行恶意套利,不仅有助于维持场内汇率跟外部正常市场汇率间的无缝锚定,创建一种完备的链上预言机和去中心化交易市场,更有利于系统中所有关键角色(LP、正常交易者、套利交易者)达到一个共赢的平衡(每个角色都持续获得正向收益),让系统正向壮大。

核心公式推导:
从最简单的做市函数 —— 恒定之和开始

x+y=Dx+y=D

x+y=D

加入初始时有 5 个 USDC 和 5 个 USDT,在这条斜率绝对值恒为 1 的直线函数做市下,USDC 和 USDT 间的兑换汇率始终保持为 1:1,即 1 USDC = 1 USDT。看似很完美,但是有两个致命问题:

  1. 流动性枯竭。在没有强制干预的前提下,很容易出现一方数量归零,将无法再次提供流动性
  2. 无法适应变化的汇率。在外部市场中,稳定币间并不会完全 1:1 锚定,每种都有可能出现各自的波动行情,场内需要能够实时锚定,否则会带来套利危机

为了弥补缺陷,我们很自然的想到了著名的双曲线函数(已被 Uniswap 在实际场景中验证)—— 恒定乘积:

xy=(D2)2xy=(\frac{D}{2})^2

双曲线的恒定乘积值根据 x+y=D 来定,双曲线切于直线,初始时两种币数量相等,保障汇率为 1:1

双曲线最为直观得反应了供求与价格的关系。其函数曲线无限接近与 x 和 y 轴,但永不相交,即当一方代币因为极度需求导致池中数量越来越少,则其价格接近无穷大,两币数量比即为汇率,也即双曲线对应点斜率。这条曲线完美解决了上述两个难题,但同时又引入了一个新的致命问题:无法适应稳定币兑换场景。稳定币大多数情况下汇率是稳定的,而且接近 1:1,双曲线函数会引入很大的滑点,即便在很少的交易量下,因此不利于满足大额稳定币兑换的需求。

能否将两个函数各自的优势结合到一种新函数中 —— 稳定的汇率输出、极低的交易滑点、可自动调节的场内汇率以及无尽的流动性保护。从图像直觉上(如上图),我们其实在寻找一条在两条曲线之间的一种曲线,既能够在中间位置贴近直线,又能够在尾端向双曲线一样无限贴近坐标轴。在几何数学上,要获得两曲线之间的线只需要将二者的表达式相加(如下图中黑色线):

x+y+xy=D+(D2)2x+y+xy=D+(\frac{D}{2})^2

还不够贴近直线表达式。可以赋予权重常量:

A(x+y)+xy=AD+(D2)2A(x+y)+xy=A*D+(\frac{D}{2})^2

赋予 (x+y=D) 以权重 A,A 越大表示合成曲线比例越以直线为主,即偏向直线形态,但同时我们发现合成线的尾部并没有延续双曲线的优势,也就无法提供无尽的流动性。这里我们需要用极限思维和逆向思维来推导合成公式可能的组合形态(如下图中黑色曲线) —— 我们以初始化点(D/2, D/2)为中心,在中间范围极度贴近直线,坐标的乘积(即xy,矩形面积)虽然不再等于双曲线恒定乘积值 (D/2)^2 —— 比之小,但越往中心越接近 (D/2)^2,越远离中心越小于 (D/2)^2。直到极限位置(即合成曲线无限贴近坐标轴),xy 将远远小于 (D/2)^2,逼近于0。

所以我们的表达式应该满足上述特征。在上面权重表达式的基础上,我们让 A “动起来”,成为变量 X —— 当线上的点越贴近中心位置,X 越趋于 A,使得合成表达式权重偏向直线;当线上的点越远离中心位置,X 越趋于 0,使得合成表达式权重偏向双曲线。因此得 X:

X=Axy(D/2)2X=\frac{A*x*y}{(D/2)^2}

化简得:

22A(x+y)+D2=22AD+D2222xy2^2*A*(x+y)+D^2=2^2*A*D+\frac{D^{2*2}}{2^2*x*y}

如果继续追求完美,我们受到了 Curve.fi 的启发,权重变量 X 乘上一个可以表示直线和双曲线在坐标轴上位置的常量值 D —— 如果流动性越大,则对应的直线和双曲线的 D 值越大,两条曲线越“膨胀”,相应的权重常量也应该跟 D 的膨胀保持同步,才能“咬住”贴近直线,因此确切的应该是 —— 当线上的点越贴近中心位置,X 越趋于 AD(在随后的多维拓展中,还应该把维度考虑进去,即 A(D^n)),只有这样才能随着流动性增大自动放大权重,否则一直维持 A 的上限,将会随着流动性越来越大而不再“贴近”直线,失去恒定。最终我们得到完美的核心公式如下:

A22(x+y)+D=AD22+D322xyA*2^2*(x+y)+D=A*D*2^2+\frac{D^3}{2^2*x*y}

完美公式

我们找到了构建核心公式的基本原理,同时兼得了中心范围超低滑点以及尾端无尽的流动性两大优势。下面我们给出多维标准核心公式,本质是一种隐函数:

A((i=1,ij,ρRi)+(Rj+γjΔj)+(RρΛjρ))+D=ADnn+Dn+1nn(i=1,ij,ρnRi)(Rj+γjΔj)(RρΛjρ)A((\sum\limits_{i=1,i\neq j,\rho}R_i)+(R_j+\gamma_j\Delta_j)+(R_\rho-\Lambda_j\rho))+D=ADn^n+\frac{D^{n+1}}{n^n(\prod_{i=1,i\neq j,\rho}^{n}R_i)(R_j+\gamma_j\Delta_j)(R_\rho-\Lambda_j\rho)}

# LP的损益模型

对于一个超导兑换这个CFMM市场来说,除了核心公式,最为重要的就是流动性提供者(LP)的损失和收益问题。LP是市场的核心支柱,LP的损益模型正是判断一个CFMM市场是否有吸引力和抗风险的依据。总结下来模型应该包含如下几点:

  1. 无常损失(impermanent loss)模型;
  2. 不按理性比例同时存入各资产,包括单一存、场内汇率与外部市场脱锚时存、存入过程由于干扰、抢先交易和时间等因素导致的比例出现偏差;
  3. 稳定币 CFMM 独特的被大量套利问题以及极端套利保护机制;
  4. 针对 LP 的滑点保护机制;
  5. LP 的年化计息模型以及提取操作

无偿损失:
无偿损失本质上应该叫做临时损失或者虚损失。这是由于 LP 在投入资产后,在没有手续费收入时,面对市场波动和汇率变化,会被套利者不断套取资产,导致自己所占有的池中资产总价值比刚投入时变少了,但是等汇率又回到投入时的汇率时,这部分损失又消失了。
根据比原链研究院的研究测试发现,不论之后汇率是涨还是跌,都会给 LP 带来无常损失,跌带来的损失更为显著和迅速,当汇率涨到 4 倍时,大约会带来 20% 的损失。如下图所示:

无偿损失

不按比例同存同取:
LP 不按照理性比例存入资产会给自己带来被套利损失。在理解了无常损失问题后,我们可以发现所谓损失的本质就是被套利,而被套利来自于 LP 存入时的比例与当下理性的市场汇率不一致。可以用函数图像来直观感受:

不按比例同存取

最下面曲线代表最初状态,粉红色点代表当时池中的一个理性资产比例,即 USDT:USDC=5:5,如一个用户有 10 美元,他应该将 10 美元变成 5 USDT 和 5 USDC,同时存入池中,最上面的曲线即为变更后的公式,而此时曲线上的点位于蓝色位置,即池中USDT:USDC=10:10,维持了汇率恒定,所以不存在被套利空间,也就不会有损失;但是如果该用户的 10 美元全是 10 USDT,并一次性投入池中,我们将得到中间的曲线公式(该曲线表示的流动性大小要小于最上面曲线),而且此时曲线上的点位于紫色位置,即池中 USDT:USDC=15:5,明显偏离正常市场汇率,会被套利者瞬间利用进行套利,将点搬移到图中绿色位置,即池中 USDT:USDC=9.5:9.5,该 LP 为套利者进行了无偿奉献。
这只是我们讲解过程中举得简单模型,实际的外部市场中干扰因素很多,相互影响,无法凭直觉判断LP资产存入是否规避了损失。因此给予LP的建议是,实时关注场内汇率与理性市场汇率,严格按照比例投入自己的资产,才能将损失降到最低,避免在某种稳定币资产遭遇频繁外部市场波动时存入。

被大量套利问题以及极端套利保护机制:

两种过度损失的模型:

  • LP 以 1:1 投入稳定币资产,随后在市场和套利行为下,不断让场内汇率更新,直到实时锚定到市场汇率,如果外部市场汇率因为极端行情等因素明显偏离 1:1,由于超导曲线前半段优越的抗滑点特性,在滑动到市场汇率的过程中,可能会存在路途过长,导致套利者攫取大量套利利润,严重损害创始 LP 的利益。
  • 市场汇率在波动的同时,流动性池大小也在不断的增加或者减少,套利者如果故意不及时套利锚定外部市场汇率,让场内汇率一直存在偏差,会造成 LP 持续按照偏差比例存入资产,最后套利者在积聚到一定量后开始一次性套利,给这些 LP 造成大量的套利损失。

对于一个成熟的稳定币 CFMM 来说,必要的极端套利保护机制是需要时刻准备的,由官方套利者及时接手过度套利空间,之后将利润返还给 LP。
除了官方提供的极端保护机制外,我们也鼓励 LP 担当套利者,他们能够清醒地判断场内汇率是否出现偏差,抢在恶意套利者之前搬平场内汇率,不仅给自己存入资产规避损失,也带来额外的套利收益。

滑点保护机制:
滑点保护是对正常交易者和 LP 的保护。在 LP 情境中,即便 LP 再理性和认知及时,也可能无法规避不按比例存的风险,比如在提交上链的过程中,出现了抢先交易、操作失误或者极端的市场波动,因此无法保障时序原子性,而我们的滑点保护机制会检测 LP 的范围超出,在微小范围内允许 LP 继续存,否则回退操作。

年化计息模型以及提取:
MOV 超导记账规则:引入一种计息凭证,用于代表 LP 对池子贡献流动性的百分比。

  1. 如果没有流动性大小的任何变化,不论流动池中两种币的比例如何变化,甲的百分比不变,依然是自己持有的计息凭证数量除以当前总发行的计息凭证数量
  2. 当流动性大小改变后,计算出新的 D 值 D1,然后此时总发行的计息凭证数量是之前的 D1/D0 倍,如果此时甲提取自己的资产,百分比为甲持有的计息凭证除以此时总发行的计息凭证的数量
Last Updated: 10/23/2020, 3:30:56 PM