Uniswap、Balancer 和 Curve,头部 AMM最新版本的多维度解析_UNI:Uniswap

撰文:RickyLi、SiddharthLalwani、HongxuYan,就职于AltonomyVentures

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

定价模型和不变式

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

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

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

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

将Uniswap v3部署至Polygon PoS链相关提案已进入共识检查阶段:11月29日消息,Polygon联合创始人Mihailo Bjelic在Uniswap治理论坛发文称,大约一周前,Polygon团队提交将Uniswap v3部署到Polygon PoS的正式提案。之后启动Uniswap治理流程的第一阶段“Temperature Check(热度检查)”,779万UNI(100%)投了赞成票。Polygon团队现在正在启动“Consensus Check(共识检查)”,这是治理流程的第二个阶段(共计三个阶段)。目前“共识检查:是否应将Uniswap v3部署到Polygon”相关投票正在Snapshot上进行,截止日期为12月3日。

此前报道,Polygon联合创始人Mihailo Bjelic在Uniswap治理论坛提议将Uniswap V3部署到Polygon PoS链,并表示现在是Uniswap在Polygon上部署的合适时机。[2021/11/29 12:38:50]

Table1边际价格

UniswapV3

Uniswap的交易函数定义如下:

由此可得不变式为:

推导出Δ2的表达式为:

边际价格为:

当Δ1->0时,

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

硅谷王川:Uniswap等撮合交易的智能合约是以太网络拥堵,费用高企不下的最重要原因:独立投资人硅谷王川表示,以太坊网络上的不同操作,传输的数据大小不一样,因此消耗费用也不一样。Uniswap等撮合交易的智能合约,消耗了网络上20%的流量,是以太网络拥堵,费用高企不下的最重要原因。可以把这些智能合约看成一个完全开放的国际倒爷做买卖的贸易自由港。从这个角度看,70美元的gas成本其实不贵,如果嫌贵,那是因为你做的生意太小。Paypal做国际支付,一旦涉及到汇率不同的国家之间支付,支付费用可以到金额的4.5%,而且清算常常有延迟。从这个角度看,以太网的费用,即使在现在的相对高位,仍然是良心价格。

最终解决问题的方案,可能是Uniswap或者其竞争者推出一个rollup的智能合约,把交易批处理,费用可以压缩到忽略不计 (但清算会有些延迟)。只要有一家推出,竞争者必须马上跟进,否则别人就不用了,这样主网络上的费用也会迅速大幅下降。现在已经有二层rollup解决方案,如zkswap上线,但和Uniswap相比,锁仓金额不到后者的5%,主要交易对的流动性不到Uniswap的十分之一,还需要一段时间市场检验。[2021/2/25 17:51:22]

BalancerV2

Balancer的交易函数定义如下:

由此可得不变式为:

推导出Δ2的表达式为:

边际价格为:

当Δ1->0时,

UNI跌破7.5美元关口 日内跌幅为7.07%:火币全球站数据显示,UNI短线下跌,跌破7.5美元关口,现报7.4991美元,日内跌幅达到7.07%,行情波动较大,请做好风险控制。[2021/1/22 16:44:26]

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

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

CurveV2

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

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

价格影响和滑点

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

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

一个UniswapV3池,初始价格为1

BKEX挖矿宝支持UNI挖矿:据BKEX Global公告,BKEX挖矿宝将于2020年9月18日8:00(UTC+8)起支持UNI挖矿,用户可通过在BKEX挖矿宝投入ETH、USDT、USDC、DAI参与挖矿,获取UNI代币奖励。

为提供用户更专业、灵活、靠谱、安全的DeFi项目流动性挖矿代理服务,BKEX Global全新升级推出BKEX挖矿宝产品。用户仅需一键参与BKEX挖矿宝,便可享受由专业团队代理进行市场优秀DeFi项目流动性挖矿而获得的可观奖励回报。更多详情见官方公告。[2020/9/17]

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

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

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

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

Figure1价格影响曲线

明显的,对于交易相同数量Δ1的代币1,对价格的影响排序如下:BalancerV2w1=0.6>UniswapV3>BalancerV2w1=0.4>CurveV2。

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

FTX推出Uniswap指数永续合约:金色财经报道,加密交易所FTX已推出一项永续合约,该合约与去中心化交易所(DEX)协议Uniswap排名前100的流动性池相关。FTX创始人兼首席执行官Sam Bankman-Fried表示,该指数期货合约名为UNISWAP-PERP,将Uniswap前100个流动性池进行了加权平均。[2020/8/25]

无常损失

Table2无常损失

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

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

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

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

出金与入金

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

Table3出金与入金

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

具体计算方法如下:

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

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

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

流动性聚集

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

Table4流动性聚集方式

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

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

Figure3流动性分布UniswapV2

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

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

Figure4流动性分布Curve

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

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

Figure5流动性分布BalancerV2

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

Figure6实际观察到的流动性分布UniswapV3

交易费用

Table5交易费用

UniswapV3

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

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

BalancerV2

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

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

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

CurveV2

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

结论

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

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

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

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

引用文献

G.Angeris,A.Evans,T.Chitra;Whendoesthetailwagthedog?Curvatureandmarketmaking,2020.

HaydenAdams,NoahZinsmeister,MoodySalem,RiverKeefer,andDanRobinson.Uniswapv3Core.(2021).

MichaelEgorov,CurveFinance(SwissStakeGmbH).Automaticmarket-makingwithdynamicpeg(2021)

FernandoMartinelli,NikolaiMushegian.BalancerWhitepaper(2019)

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

水星链

[0:31ms0-0:633ms