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

从定价模型、滑点、无常损失、交易费等角度比较分析 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 边际价格

分析:若8500美元附近支撑区域短期有效 BTC或迎小时级别反弹契机:根据OKEx现货显示,截至欧盘开始,BTC暂报8782.1美元(-0.68%)。 昨日BTC未能在关键性底部9100美元附近获得足够的支撑,短短几个小时便跌至8500美元,日内暂时进入盘整走势。OKEx分析师Neo认为,9000美元大关的跌破一定程度上意味着本轮涨势就此终结,然而昨日收盘后形成的较长下影线也反映出多头仍在8500美元上方拥有一定的承接能力,鉴于关键点位的跌破对看多情绪的影响较大,该位置的支撑强度还有待测试。从小时级别走势来看,币价若能在周末站稳8500美元,下周或迎来一定幅度的回暖,然而目前市场反弹意愿并不强烈,短期极有可能跌破且大概率在8250美元附近(去年年末的底部颈线位)获得强支撑,由于该点位是上一轮上涨的起点,因此若不能止跌币价恐将回归7000美元。

ETH昨日的反弹力度要强于BTC,1小时级别上破MA(30)后现已承压于MA(60),随着盘整空间逐步收窄,突破随时有可能发生,投资人本周可继续关注215美元支撑有效性,若有效或有一定概率形成短期的双底反弹形态,反之则有一定概率向下测试200美元。XRP虽于日内上破MA(60), 但在0.2470美元受阻,若跌破0.2360美元或继续在0.2240附近寻找支撑,上方第二阻力位可关注0.2580美元。[2020/2/28]

Uniswap V3

Uniswap 的交易函数定义如下:

由此可得不变式为:

推导出Δ2 的表达式为:

边际价格为:

Aave现已上线Scroll Alpha测试网:5月4日消息,Layer2 网络 Scroll 官方宣布,Aave 现已上线 Scroll Alpha 测试网。[2023/5/4 14:42:43]

当 Δ1->0 时,

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

Balancer V2

Balancer 的交易函数定义如下:

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

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

Curve V2

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

传统风投Alpha Blue Ocean推出数字资产投资公司ABO Digital:金色财经报道,已执行融资承诺 20 亿美元的机构 Alpha Blue Ocean 宣布推出数字资产投资公司 ABO Digital,ABO Digital 将提供创新和灵活的融资解决方案,为区块链项目提供更多融资选择。 ?

Alpha Blue Ocean (“ABO”) 是总部位于巴哈马的投资公司,为上市的中小企业提供创新的融资解决方案,自 2017 年成立以来已为全球上市公司执行了超过 20 亿美元的融资承诺。[2023/2/27 12:32:24]

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

根据上一步得出的边际价格公式,我们可以通过比较单次交易前后边际价格的变化,来定义这次交易的价格影响。比较三种协议的价格影响,我们能得出以下结论:假定交易同等数量的代币 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

分析 | 金色盘面分析师:ZEC短期上行受阻:ZEC短期上行受阻,成交量持续萎缩,逢高减仓为主,短期内突破概率较小。[2018/8/2]

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

Figure 1 价格影响曲线

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

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

Table 2 无常损失

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

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

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

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

Coinness分析:BTC跌破短期爬升通道 空方势力渐强:据Coinness作者分析,由于BTC放量跌破爬升通道,目前趋势开始走平,可能会进入反弹的高位震荡($8646-$9777)。但确认震荡走势还需看阶段低点$8646的支撑是否有效,如果跌破空方将会成为主导。短期从小时线看,此前的200小时均线($9175)支撑已变为BTC上行的第一道压力位,而向下将很有可能直接测试$8646支撑,从该价位的成交量看,支撑力稍显薄弱。如果跌破,看跌区间将移至$8100附近。[2018/5/1]

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

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-2:616ms