多维度解析头部 AMM:Uniswap V3、Curve V2 与 Balancer V2_ANC:Fivebalance

从定价模型、滑点、无常损失、交易费等角度比较分析 Uniswap V3、Curve V2 和 Balancer V2。

自动做市商机制(AMM),以其常数级别的时间空间占用的优势,被许多去中心化交易所(DEX)采用,迄今为止已有许多此类项目大获成功。说到其中佼佼者,必须要提到 Uniswap、Balancer 和 Curve,它们都在近期推出了新的版本, 以针对流动性提供者所关注的各种问题和风险。 本文将会从多个方面对这三个协议的最新版本做出比较。

参与到自动做市商机制中的人群,包括两种不同的角色:流动性提供者(LP)和交易者。流动性提供者向机池存入资金,而交易者用一种货币从池中换取另一种代币。AMM 协议需要解决的第一个问题就是如何定价,以一个二币池为例,即如何用代币 2(t2) 的数量表示代币 1(t1) 的价格。

假设池中两种货币的数量分别为 R1 和 R2,在一笔交易中一个交易者想用Δ2 数量的 t2 来买Δ1 数量的 t1。我们可以用一个交易函数ψ来描述一个 AMM 协议,其必须满足在交易前后函数值不变,不变式表示为:

根据这个等式,我们就可以由Δ1 推出Δ2 (或反之)。而这笔交易同时也会影响价格,因为池中的代币总量在交易之后改变了。实际上,因为机池的交易价格和外部参考市场的价格有差距,所以套利者会不断交易知道价差回归,AMM 正是利用这种机制来矫正池内的交易价格。每次交易的平均价格定义为:

当 dΔ1->0 时,我们可以计算得到边际价格。 三种协议的边际价格总结如下表

Table 1 边际价格

某聪明钱买入7.9万亿枚PEPE2.0,获利超100万美元:7月7日消息,据Lookonchain监测,某聪明钱地址在10天内将1.2万美元变成105万美元。这个聪明钱地址的大部分利润来自PEPE2.0。他花了9万美元购买了7.9万亿枚PEPE2.0,然后以约61.4万美元的价格出售了5.2万亿枚PEPE2.0。他目前持有2.7万亿枚PEPE2.0(约合53.3万美元),总利润超过100万美元。[2023/7/7 22:23:46]

Uniswap V3

Uniswap 的交易函数定义如下:

由此可得不变式为:

推导出Δ2 的表达式为:

边际价格为:

当 Δ1->0 时,

在新版本 V3 中,由于在不同价格区间的流动性密度不同,需要对每个同一流动性密度的小区间单独计算。当跨过区间边界时,需要的下一个区间做类似计算。

Balancer V2

Balancer 的交易函数定义如下:

全链借贷协议Radiant Capital将于下周上线Radiant v2版本:2月10日消息,全链借贷协议Radiant Capital近日发文表示,Radiantv2版本讨论的所有新功能已在测试版中构建并完全实现,安全团队派盾和Zokyo正在进行审计。官方表示希望在2月16日左右上线v2版本。

此前报道,新版本通过将协议Token RDNT从ERC-20格式转换成LayerZero OFT格式,实现跨链费用无缝共享,同时便捷协议多链启动。此外,Radiant v2还将改变协议费用分配方案,通过增加流动性提供者在协议费用流中的份额,减少解锁RDNT的稀释影响,为流动性提供者提供更强大的效用。[2023/2/10 11:59:43]

权重ω1,ω2 也代表两种代币总市值的占比,如果指定ω1=ω2=1/2,那么该池就等价于 Uniswap 的池子。特别的,Balancer 允许至多 8 种代币的混合池,当代币种类大于两种时,其交易函数扩展为:

其他推导步骤也可类似地拓展到多币的情形,推导步骤在此略过。

Curve V2

Curve 协议的交易函数是恒定和函数和恒定积函数的线性组合:

类似的,我们可以推导出边际价格,当 Δ1->0 时,

招商宏观:央行或于四季度降准:9月25日消息,招商证券宏观团队研报认为,八月中旬以来,银行间市场流动性趋紧,两大监测指标-超储率与超额备付金率均滑至历史低位,“市场-政策”利差快速收窄。与此同时,央行流动性调控成效显现,同业杠杆去化明显。展望四季度,流动性面临较大缺口,出于维护流动性合理充裕与引导中长期贷款利率下行等考虑,央行或于四季度降准,最早见于10月。(财联社)[2022/9/25 7:19:32]

根据上一步得出的边际价格公式,我们可以通过比较单次交易前后边际价格的变化,来定义这次交易的价格影响。比较三种协议的价格影响,我们能得出以下结论:假定交易同等数量的代币 1,设定ω1 越高的 Balancer 池,其价格影响越大,如果ω1>1/2,那么价格影响大于相同交易在 Uniswap 池中的影响,反之亦然。而在平衡点附近(即价格偏移不严重) Curve V2 的价格影响最小。

在下面的例子中,我们比较四个不同池子的单次交易价格影响,假设初始池中代币总量 R1=R2=10000:

一个 Uniswap V3 池,初始价格为 1

一个 Balancer V2 池,ω1=0.4,ω2=0.6,初始价格为 0.666

一个 Balancer V2 池,ω1=0.6,ω2=0.4,初始价格为 1.5

一个 Curve V2 池,α=1,β=3,初始价格为 1

四个池子的价格影响曲线如下图所示:

Figure 1 价格影响曲线

明显的,对于交易相同数量 Δ1 的代币 1,对价格的影响排序如下:Balancer V2 w1=0.6 > Uniswap V3 > Balancer V2 w1=0.4 > Curve V2。

Crypto.com 将交易费用降低 80%:金色财经消息,Crypto.com 发布公告称,已将现货和衍生品市场的交易费用降低最高 80%,现货和衍生品市场的最高交易费用目前分别从 0.075% 和 0.034% 开始。另外,Crypto.com 还对 CRO 质押者减免部分交易费用。[2022/8/18 12:34:34]

对于 Curve 来说,因为其在一定范围内价格影响最小,所以最适合稳定币的交易对。根据以往 AMM 协议的经验,价格影响曲线的形状往往和流动性提供者的收益相关。距上图所示,因为 Curve 的价格影响曲线最平缓,导致滑点较低,从而使交易者在这个区间中更频繁地(或更大量)交易,最终流动性提供者赚取了更多的交易手续费。

Table 2 无常损失

对于 Uniswap V3 来说,来自单一提供者的流动性是被放置在某一封闭区间上的,当一种代币的价格下降时,LP 对该种代币的风险敞口逐渐增大,直到价格来到区间边界。此时,该 LP 只有对该种代币的风险敞口,对另一种代币的敞口为 0,若价格继续往同方向移动,则敞口维持不变。

对于 Balancer V2 和 Curve V2 来说,流动性是对整个价格区间提供的,所以敞口会在整个区间上逐渐变化,不会到达最大 / 最小值。

Figure 2 Balancer 池在不同权重配置下的相对价格变化对无常损失影响

对于 Balancer 协议来说,代币 1 的权重ω1 越小,相同价格波动下的无常损失越小,这是符合直觉的,因为 LP 持有代币 1 的量变小了。

对于想要参与这三种协议的流动性提供者来说,它们对于出金和入金的规则比较起来并没有绝对的优劣,不过根据个人的资产类别和风险偏好,每个协议都有更适合的情形:

美联储7月加息75个基点的概率为92.1%:6月20日消息,据CME“美联储观察”,美联储到7月份加息25个基点的概率为0%,加息50个基点的概率为7.9%,加息75个基点的概率为92.1%;到9月份累计加息25、50个基点的概率均为0%,累计加息100个基点的概率为5.1%,累计加息125个基点的概率为62.6%,累计加息150个基点的概率为32.2%。(金十)[2022/6/20 4:39:23]

Table 3 出金与入金

对于 Uniswap V3 来说,入金时存入两种代币的配比由两点因素决定(1)区间的两个边界 (2)当前交易价格。 简单来说,如果当前交易价格等于两个边界价格的几何平均数的话,LP 需存入 50:50 等量的两种代币。若当前价格更偏向一侧,那么 LP 需要存入的代币中,更便宜的那种代币占据更高的比重。若当前价格在区间之外,LP 只需提供更便宜的一种代币即可。

具体计算方法如下:

当出金时,两种代币的本金提取量可做类似计算。已赚取的手续费部分,以交易发生时的代币类型收取并提取。对于 Balancer V2,LP 入金时总是需要提供池中所有种类的代币,其配比决定与该池的权重设置

对于 Curve,当入金时,LP 可以按任意比例存入代币,或仅存入单一种类的代币。但是,若存入比例和当前池内的代币总量比例不符合,LP 将承受一定程度的损失(或奖励)。因为当 LP 获取 LP 代币时,获得的量由以下公式计算:

其中 D 是在平衡点时池内代币总量,在流动性增加前其值为 D0,在流动性增加后其值变为 D1。但是,(假设投入相同数量的代币)当池内代币比例离平衡点越远,D 值会相对越小,导致 LP 得到的 LP 代币量较少,即产生了损失。相反的,若投入的代币使得池内代币比例趋向于回归平衡点,那么 LP 将得到更多的 LP 代币,即获得了奖励。

就流动性聚集来说,Uniswap V3 给予了 LP 最大程度的灵活性,LP 们可以根据自己的意愿聚合出任意形式的流动性分布曲线。相较之下,Balancer 和 Curve 以更多的固定参数设定代替了这种灵活性。

Table 4 流动性聚集方式

Uniswap V3 允许每个 LP 设置任意的流动性范围,以期望总体流动性聚集在一个最活跃的区间。但是,理论上,根据每个 LP 的自主决定,流动性可以被塑造成任意分布。

举例来说,一个和 Uniswap V2 等效的流动性分布入下图所示:

Figure 3 流动性分布 Uniswap V2

这表示,若所有的 LP 都将流动性区间设置为最大可能区间,那么 Uniswap V3 池将会同 V2 等效。

以下是一个和 Curve 近似的流动性分布,所有的流动性都聚集在平衡点附近的一个狭小区间内

Figure 4 流动性分布 Curve

然而,上图仅仅是 Curve V3 的近似,其实际要更复杂。随着市场条件变化,最活跃价格区间偏离原平衡点太多时,Curve V3 会根据内置 Orcale 来重新调整平衡点和价格曲线。

以下是一个等效于 Balancer V2 的流动性分布,其聚集于更大权重的代币价格更低的一侧

Figure 5 流动性分布 Balancer V2

然而,以上都不是实际观察到的 Uniswap V3 池常见流动性分布,常见的分布更类似于以下:

Figure 6 实际观察到的流动性分布 Uniswap V3

Table 5 交易费用

每个交易对有三个费用梯度的池子供 LP 选择:0.05%,0.3%,1%。直观上看,LP 更偏向于高费用池,但当高费用池的交易活跃度远低于低费用池时,LP 就不得不参与低费用池。交易者更偏向低费用池,但当低费用池的流动性过于稀薄而滑点过高时,交易者就会被迫从高费用池中交易。

根据实际观察,对于稳定币交易对来说,0.05% 费用的池子最活跃。对于其他交易对,当市场波动率高时,高费用池变得更活跃,当波动率低时,低费用池更活跃。

Balancer 协议收取两种费用:(1)交易手续费,以交易额的一定百分比对交易者收取 (2)出金费用,当 LP 从协议中出金时按提取额度收取

交易手续费可设置为 0.05% 到 1% 之间,由池子创建者设置初始值,并由协议根据多因子来动态调整,因子包括:波动率,交易额,无常损失,流动性总量,流动性挖矿奖励,等等。

出金手续费可由协议设置,但迄今为止未采用。

费用可设置为 0.04% 到 0.4% 之间,可根据目前池内代币比例做动态调整,当前比例距离平衡点越远,费用率越低:

通过多方面的比较,可以看出每个协议都采取的不同的方法来契合 LP 和交易者们的多方面不同需要。

Uniswap V3 给予了 LP 最大的灵活性,几乎所有参数都可以由 LP 自主决定,而团队并没有额外加入更多辅助特性,以保持协议的简单化。而 LP 则需要管理自己的各种风险。

Curve 历史上曾专注于稳定币交易对,此新版本 V2 致力于扩展所涵盖代币的种类。不同于稳定币,非稳定币交易对的市场中价可能会偏移到新的活跃区间,所以此协议可根据内置 Oracle 的喂价调整流动性聚集范围,而无需 LP 自己重部署流动性区间。此种设计对个人投资者更加友好,但限制了开发更复杂的定制化做市策略的可能性。

Balancer V2 在同一流动性池中容纳了多于两种的代币,并且赋予不同的权重,这满足了一部分 LP 差别对待不同种代币风险敞口的需求。通过增加一侧风险波动的方式,来降低另一侧的风险。

引用文献

G. Angeris, A. Evans, T. Chitra; When does the tail wag the dog? Curvature and market making, 2020.

Hayden Adams, Noah Zinsmeister, Moody Salem, River Keefer, and Dan Robinson. Uniswap v3 Core. (2021).

Michael Egorov, Curve Finance (Swiss Stake GmbH). Automatic market-making with dynamic peg (2021)

Fernando Martinelli, Nikolai Mushegian. Balancer Whitepaper (2019)

撰文:Ricky Li、Siddharth Lalwani、 Hongxu Yan,就职于 Altonomy Ventures

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

水星链

[0:0ms0-1:68ms