作者:比原链 王嘉昊、刘秋杉
前言 ——《AMM终极笔记》是对诸多代表性 AMM 项目和相关论文进行的一项综述(survey),由于 AMM 所涉及层面较为广泛,本文选取我们认为最能代表 AMM 本质特征以及未来发展方向的无常损失进行讲解。
注:AMM(Automated Market Maker),自动化做市商,以基本数学曲线定义加密货币交易对的供需曲线,基于智能合约的全天候无人值守,重新定义了 DEX 的基本形态,代表项目 Uniswap。
大家最为关心的无常损失是一个难题,不可解,但存在优化的方法。
从简单的角度来说,无常损失就是当场外(AMM 资金池外的主流交易市场)代币 A 相对于代币 B 的汇率上涨时,套利交易者会从场外筹集代币 B,并转移到 AMM 资金池,以相对于场外更优惠的汇率换得更多的代币 A,从而实现无风险套利。而这部分利润也是资金池(LP)的损失,可以称之为无常损失(临时损失),因为一旦汇率又重新回到原始位置,将再次创造反向套利空间(对称的),整体池子的资产数量将回归到原始状态,LP 们无损失,但因为行情的两次变化,也因此造福了两次套利者利润,这个利润空间就不再来自于 LP 的财富,而是市场机会,是只有精明的套利者不断盯市场赢得的机会。从这个角度看,无常损失是精明的套利者和怀揣大局意识的 LP 之间博弈均衡的结果,套利者也极大地活跃了 AMM 交易市场,尤其是当有非常多的套利者开始意识到此处的机会并开始竞争套利。
从一般性的角度定义无常损失,即无常损失只看交易对汇率是否发生变化,一旦发生变动,便产生客观的无常损失,与是涨是跌无关,一旦汇率回归,损失自动消失。这意味着,只有当流动性提供者(LP)在与最初使用的价格情况不同的情况下移除流动性时,才会出现无常损失。如果不移除,而等待一个更有机会的时机撤出,损失就不会发生。作为对比,在传统金融上,我们可以认为这是一个 '卖出永续跨期 '的头寸。之所以说是永续,是因为这个头寸没有到期日,LP 可以持有多久就持有多久。
另外要着重提到的一点,也是如今很多玩家都未意识到的一个方面,无常损失虽然理论上是无上限的,但基于比特币等大行情的变动总是有所范围的假设,无常损失也是有可计算的上限,例如交易对 BTC/USDT 中 BTC 从 20000 USDT 涨到 60000 USDT,留给套利者的无常损失空间也不会超过 13%,即 LP 无常损失控制在 13%(无常损失计算器:https://yieldfarmingtools.com/tools)。
此外,无常损失是一种贪婪心理,我们总是爱将现实和假如做对比,还是看 BTC/USDT 交易对,在 BTC 上涨后,本质上不论怎么无常损失,LP 的财富总是法币增值的,然而人们往往爱跟假如做对比,会想“假如自己当初在 20000 USDT 的时候一直持有这么多 BTC 而不去参与 AMM 卖掉该多好”,但实际上很多 LP 是因为 AMM 才开始组建自己的资产配置,去购买 BTC,去构建交易对,因此大多数 LP 财富增值的机会正是来自于 AMM 这种集储蓄利息与基金组合功能于一身的特定场景,如果总是抱着贪婪的心态去看待问题,那么可以肯定任何金融市场均不存在只有收益没有风险的路径。
附: 以下为模拟交易:(1)当 1 ETH = 500 USDT,做市商存入 10 ETH 和 5000 USDT。他的总资产价值是10000 USDT。(2)当 1 ETH = 550 USDT,这个时候就存在套利的空间,在 AMM 机制下,做市商池就会自动向套利者卖出 ETH 换取 USDT,因此,目前流动性池中资产变为 9.53 个 ETH 和 5244 个 USDT,对应的 ETH 的价格为 550 USDT,总资产价值是 10488 USDT。(3)如果不去做市,USDT 本位的价值为 10500,这便产生了相对的 12 USDT 无常损失。 相反的,(a)当价格下跌 1 ETH = 450 USDT 时,套利者会向池子注入 ETH 来换取有利润空间的 USDT,直到 ETH 的场内价格与市场价相同,因此做市商的流动池就变为 10.54 ETH 和 4743 USDT,总资产价值是 9486 USDT。(b)如果不进行做市活动,总资产价值是 9500 USDT。相对来看整体资产贬值了 500 USDT,进行做市额外还损失 14 USDT。 从实际例子中不难看出不论价格涨跌,在AMM机制下,流动性供应商的反向操作都会造成一定的无常损失。
1 动态权重的恒定加权几何平均函数
此类解决方案以 Bancor V2 为代表项目。最原始的灵感是 Balancer 为 AMM 引入了恒定几何加权平均的函数:
本质跟 Uniswap 的恒定乘积类似,但赋予了每一项指数(权重)的概念,也因此拥有更灵活的曲线形态。也是 Balancer 第一次在一篇文章(Interest-Bearing Stablecoin Pools Without Impermanent Loss https://medium.com/balancer-protocol/zero-impermanent-loss-stablecoin-pool-with-lending-interests-a3da6d8bb782)中提到了可以通过动态更新权重项来从根源上阻止无常损失的发生,而 Bancor V2 则对此方案进行了更通用细致的数学描述(Calculating Dynamic Reserve Weights in Bancor V2 https://blog.bancor.network/calculating-dynamic-reserve-weights-in-bancorv2-538b901bcac4)(pdf 版本 https://drive.google.com/file/d/1lYsaUi5du7BdP5eXgVJX60POcg2UkBfZ/view)。
细致的数学描述这里不展开讲解,由于篇幅限制本文只进行原理概要。如果权重项不变的话,可以将曲线形态看成跟 Uniswap 一样。如果不断变化权重,曲线将会绕着曲线上的某一个点在不断旋转,使得旋转后的曲线在该点的切线斜率(即汇率)与最新的市场价格保持一致,而促进这个旋转计算的便是来自外部市场价的预言机驱动,通过为 AMM 更新每一刻最新的市场价,反推权重项的计算,以使当前点(池子两资产数量组成的点)在新曲线的切线斜率不断随市场变化,进而不创造套利空间。形象的计算如下:
虽然此类解决问题的方法是非常本质的,但缺陷也是十分明显且隐患巨大。一个本来可以完全自动应对市场的 AMM 需要单点依赖一个外部预言机,一旦预言机出现问题,即便是很小的问题,也会给 AMM 带来巨大的套利攻击损失,这种损失不同于无常损失,是切切实实的用户损失,也会给以后 AMM 的商业扩大带来根本阻力。另外,此类 AMM 将彻底失去市场定价权,即放弃了自己成为 Primary Market,我们都知道随着 DeFi 等的崛起,越来越多有价值的新资产都选择 DEX 作为自己的 Primary Market,反而那些中心化的主流交易所成了 Secondary Market。
除了 Bancor V2,国产项目 DODO 也有着类似的方式,虽然 DODO 并未采用恒定加权几何平均函数,而是采用了一种类似 Curve 的混合构造函数,但本质都是依赖一个外部预言机,来不断更改【定价/交易】曲线的形态,使得新曲线的报价结果与外部市场紧密跟随。
如果一个系统只依赖自己,那么它的安全边界就是自己,是可以计算的;如果一个系统依赖了外部因子,它的安全边界理论上是不可估算的,如同一个拜占庭分布式系统一样,没有任何经验观察甚至形式化数学可以估算覆盖到所有潜在 fault(故障)路径。
2 虚拟余额限制套路路径
此类仅存在于 Mooniswap。与 Bancor V2 和 DODO 解决问题的思维不同,Mooniswap 并未改变 AMM 的最大本质(自动自主定价),与 Uniswap 只能眼睁睁看着套利者来吃肉不同,当系统出现套利空间时,Mooniswap 会自动根据偏移量逐次构建多条虚拟的曲线,使得套利交易者只能吸收到每一条虚拟曲线所规定的套利上限,而不再是一次性在原始曲线上完成大量套利。
如下图,初始平衡点在 A,一笔交易使得系统处于 X 点,此时便产生了套利空间,在 Uniswap 这种传统 AMM 中,任何聪明的套利者都可以通过一笔交易一次性地拉回到 A 点,而这个过程往往伴随着可观的利润。Mooniswap 的虚拟构造法便是陆续构建了上面三条 AMM 曲线,首先给套利者呈现的是下图第二条曲线 BC,套利者的套利路径仅仅只有 B 到 C 的短暂过程,当该套利者到达 C 点后,系统便放出第二条虚拟曲线 DE,同理,给套利者呈现 D 到 E 的套利路径,在第二个套利者到达 E 点后,系统放出最后一条曲线,也是最终要更迭到的实际曲线 ZQ,最后一位套利者从 Z 到 Q 完成套利,最终系统曲线变为 ZQ,且平衡点为 Q。通过者一系列虚拟构造,即便三次加起来的套利空间也远小于传统 AMM 曲线一次套利路径,而且在这个过程中套利者也为资金池注入了更多的资产,使得池子规模变大,也充当了 LP,曲线向右上偏移。
对于具体的点位计算和数学证明,请详见 Mooniswap 白皮书(Mooniswap https://mooniswap.exchange/docs/MooniswapWhitePaper-v1.0.pdf)。
此类方法缺点,需要仔细判别套利机会的出现,一定程度上也需要依赖外部因子;而且虚拟量缩短套利路径的过程需要动态构建大量曲线,对于高并发的系统,此类方法在工程上过于复杂,引入太多不确定性。
3 无限网格策略做市
以比原链 MOV 超导 V2 提出的基于无限网格策略的 AMM 算法为例(暂未实现)。这种解决方案并未直接去关注无常损失的发生(如前第一类),也未去针对无常损失的始作俑者套利者(第二类),它是在以一种基金经理的角色在管理 LP 的财富,不希望只通过储蓄利息(手续费)让 LP 财富增值,更是希望可以在专业基金策略的作用下充分利用好 LP 巨大的财富池,跟随市场大势,获得基金式的财富增值。其中,无限网格策略是 MOV 超导 V2 所选择的方向,并将其在 AMM 上实现,虽然还有很多不足,但如下大致给出了构建思路。
如上图,超导 V2 在原有恒定乘积曲线做市商机制的基础上进一步分段构造出了不同形态的曲线形态,以满足无限网格的基本定义——“分段买入卖出,即便在市场最高点时也有现货可以卖出,在市场最低点时也能完成建仓操作”。超导 V2 通过上面四种分段函数的构造,希望可以实现——“在行情上涨时,能够适当出货 BTC,但不要大量出货,逐步逐量,既能够帮 LP 在达到最高点前守住 BTC,也能够在上涨行情中智能化的卖出适当数量 BTC,以应对潜在的大跌风险;在行情下跌时,HOLD,以上涨时积累的 USDT 财富获得财富增值”。
在具体函数构造和实现原理上,可以对照上图看如下图例。早在 2020 年 8 月份(BTC 11000 刀,超导 V2 理论刚刚诞生时),当时的超导 V2 设计者就预计未来可能会达到一个 40000 刀至 100000 刀的一个牛市行情,因此做了如上四个分段预测。在第一段中,超导函数为非常普通的恒定乘积曲线,执行简单的 AMM 仓位策略,在达到 40000 刀时,函数自动触发切换为混合构造函数曲线,这是一种曲率更低的曲线,可以大幅度改变 BTC 仓位,在 40000 ~ 100000 范围,如果判断本轮最高点可能到 100000 刀,则在 100000 刀处再次设置函数切换点,变为非常陡峭的双曲线,可以帮助 LP 在行情回落过程中不会重新将高点套现的 USDT 再还回去。具体数据可以见下图。
这种解决方案的优势是一旦策略预测成功,不仅可以解决无常损失,还可以大幅度帮助 LP 获得基金级别的财富增值,这是市面上任何 AMM 都给不了的,即便是有流动性挖矿加持。而且这种策略不依赖任何外部因子,只依赖自身策略,因此不会引入其他风险,即便是后市行情不如所愿,也可以提前更改下一个函数切换点,及时改变下一段函数形态,避免大规模损失。缺陷也是十分明显的,即需要非常专业的基金经理预判和策略,需要能够预测好较大范围的后市行情,而且分段函数的构造十分复杂,超导 V2 在构建自身策略时,其实是有更好的函数构造,但迫于数学形态过于复杂且工程实现困难,便选择了如上实现案例,也是一种折中办法。
4 经济补偿
这一类是最为大家熟悉的方法,即以自身代币的形式为 LP 补偿损失,包括 Bancor V2.1 和流动性挖矿两种形式。
Bancor V2.1 是在 Bancor 意识到 Bancor V2(如上第一类)无法解决无常损失而且会带来预言机系统风险之后重新制定的无常损失方案,这种方法会从系统层面记录每一个 LP 初始做市时的仓位,在无常损失发生后,会通过系统增发 Bancor 代币来补偿无常损失。
流动性挖矿也是异曲同工,不过 Bancor V2.1 的补偿更为精细,有多少损失便补贴多少自身代币。而市面上的流动性挖矿,多则 APY 可达几十倍,少则也有两三倍,是一场疯狂的造富运动,即便是 LP 参与了一个月,所获得的挖矿财富也足够其应对无常损失的任何上限。
因此流动性挖矿如果可以做好“善后”工作,也未尝不是一种根本性的无常损失解决方案。
5 期权对冲
也叫 Hedge,这一类研究非常稀少,几乎不见于任何市面上的项目,之前火币研究院有过一篇专门的报告(AMM做市无常损失对冲分析系列一:损益及期权对冲模型构建 https://zhuanlan.zhihu.com/p/260141168)。火币研究院的文章论证了通过看跌期权来补偿无常损失的基本结论,并给出了具体数量和位置指导,一定程度上是可以明显起到缓解无常损失的作用,见下图。
后来我们也发掘了几篇非常好的行业论文,尤其是 Placeholder 的研究员 Alex Evans 的研究工作(论文 When does the tail wag the dog? Curvature and market making 和论文 Liquidity Provider Returns in Geometric Mean Markets)十分突出,我们也在此对其进行简单解读。
在传统金融理论中,动态套期保值是机构投资者利用股指期货或股票与无风险资产创造合成的看跌期权并通过使用合成看跌期权策略寻求保护投资组合价值的策略。而在 CFMM 机制下,有人提出可以类比资产的 Delta 值(δ)和 Gamma(γ)值来规避高额 LP 风险。接下来我们将会计算 LP 的动态对冲数量,并展示它们如何在交易中表现良好。通过以下的数学推导,我们还可以看出动态对冲数量和曲率之间的关系。
储备的投资组合价值其中 m 为市场价格,R 和 R’ 储备金数额,则我们可以得到 。
如何证明此等式的正确性? 函数 ψ 只与 R 和 R’ 有关,在无套利的情况下,市场价格 m 满足。则等式满足函数 ψ 对市场价 m 求一阶导为零,带入得:
整理即得:
在 Joseph Clark 所著的论文《The replicating portfolio of a constant product market》中,他提出了用带 CPM 收益的欧式期权来提高 LP 的收益。在他看来,LP 根据新的资产比例得到的一定比例的交易费用可以被精确复制与期货和期权的静态组合。如果这些期货和期权存在并且是可交易的,每千次展示费用收取的交易费用将由期权价格决定和预期的交易量。如果期货和期权不存在,则 CPM 的收益可以用来创建它们。
我们可以详细讨论下在 CPM 模式下的收益以及最终组合投资的总收益。
我们假定当前市场价为 ,则此时准备金可以表示为。那么在时间 t 内我们得到的组合投资净利润为 。显然,我们可以得到最终投资的总收益为。
当然,我们还有另外一种思路,就是研究在 CPM 模式之下复制欧洲看涨期权对 LP 的收益,跟前文说的组合收益不同,这种期权不是静态的,但是它可以做到在有限的套期保值下保持精确。仿照期权 Greeks,Joseph Clark 给出了在 CPM 模式之下,影响期权价格的各项指标:
复制期权的总回报等于CPM收益和期货的原有收益相加:
综上我们不难看出,Joseph Clark 认为可以用静态资产组合来对冲 LP 的风险损失,而动态对冲数量和曲率有密切联系。若期权和期货不可交易,那么 CPM 带来的收益也可以作为复制期权的备选项。
未完待续
我们还有很多课题和最新研究成果与大家分享,包括
(1)LP 终极收益的数学公式表达以及影响 LP 收益的最本质因子,其实都可以通过公式论证出来,以帮助 AMM 产品更好的进行迭代改进,例如影响 LP 收益的有曲率、informed trading 等;
(2)流动性挖矿(Yield Farming)的真正使命,除了补偿无常损失外,还可以起到非常好的 AMM 项目自身原始代币的发行以及代币价格稳定的作用,我们认为通过流动性挖矿发行的自身代币价格,不会存在死亡螺旋的现象,反而会造就项目市值的一个强支撑,当然前提是该项目是非常有人气有口碑的项目,此外,流动性挖矿的具体补贴数值也存在数学表达和影响因子;
(3)AMM 项目在未来会都向着动态 AMM 形态发展,即不再局限于一条曲线形态,会根据不同的情境辅助以多种曲线形态;曲率是一个被大大忽略的曲线研究领域,曲率几乎决定着一切 AMM 产品特征,曲率甚至可以改变一个新币种的主市场定价问题。