原文作者:Biteye 核心贡献者 JoJonas
自 Uniswap 推出 V3 版本一年半有余,其所提出的「聚合流动性」概念已被用户习以为常。目前 Uniswap 官网提供的分析数据中,V3 的 TVL 约是 V2 的 3 倍以上,日交易量则在 10 倍以上。
集中流动性使得用户可以主动选择其提供流动性的价格范围,显著提升了 V3 的 LP 资金效率,但其并未改变定义 LP 的恒定乘积公式,也就是说,无常损失仍然存在,并随着资金效率提升而相对放大;
用户交易仍旧有滑点,易遭到三明治攻击。从用户角度,限价单是更为习惯、也更有利的交易方式,但 V3 并没有做到这一点。
Uniswap V3 实际上已经有了价格区间的概念,每个区间的流动性定义因该区间价格上下限不同而不同,如下:
由于 LP 无法实时追踪市场价格变化,一旦价格超出所选区间,LP 对本身会变为单一币种流动性,相对于现有市价是存在损失的。
在追踪市价一途,机构及专业投资者显然更具优势;而一份近期的数据分析指出,为 Uniswap V3 提供流动性的投资者整体处于亏损状态,手续费并没有超过无常损失。
AMM 真的要 xy=k 一条道走到黑吗?笔者最近注意到一脉新的 AMM 设计思路,在此分享。
iZUMi 的 DL-AMM 模型
DL-AMM 模型源自 iZUMi 产品矩阵中的 iZiswap,其设计概念最早于 2021 年 11 月由 iZUMi 的两位 co-founder 发表的论文中提出。
这篇论文是针对 Uniswap V3 所存在的不足而提出的创新性算法,具有如下特征:
1、离散集中流动性(Discretized Contentrated Liquidity)
DL-AMM 不使用恒定乘积公式,而是将流动性放在离散的不同价格点上,每一个价格点遵循恒定加和公式(x + y = L)。
无数离散的价格点相连,构成了完整的类似 Uniswap 的 AMM 价格曲线。同时,在放置区间流动性时,DL-AMM 通过新的「流动性」量化定义(L = x*√p + y/√p),将 Uniswap V3 的积分求和转化为等比求和,同样能够在常数时间内高效地完成。
2、限价流动性组(Grouped Limited Liquidity)
DL-AMM 中的流动性将分为两类:LP 流动性,以及限价单流动性,前者同 V3,后者是单向的,一旦越过目标价格,代币将不会被换回,保留直至用户「claim」。
如果组内流动性未完全越过目标价格,「claim」遵循先来后到的原则。传统交易撮合引擎需要轮训在一个价格点上的所有订单,通过创新性的算法设计,DL-AMM 第一次能够在常数时间内完成撮合,并且保证了时间正确性、公平性以及资金完全非托管的安全性。
与 Uniswap V3 相比,iZUMi 所提出的 DL-AMM 通过在不同离散价格点上应用恒定加和公式的方式来避免每一个价格点上的交易滑点,并且结合离散的价格点(以及基于此的流动性深度)来实现链上订单簿的功能。后来者如 traderjoe 的 liquidity Bin 等均来源于 DL-AMM 的设计。
DL-AMM 模型简介, source: https://izumi.finance/paper/dswap.pdf
如图为 DL-AMM 所使用的恒定加和公式,不同的离散价格点对应着不同的(p, L),其 LP 曲线(黄线)与 Uniswap 所用蓝线(恒定乘积公式,xy=k)最终区别见左图。
可以看到,如果价格区间足够密集,黄线可以无限趋近于蓝线,此时二者在实际交易体验与操作体验上并无区别。
右图则表示了 DL-AMM 对限价订单的支持。限价订单将作为一种特殊的 LP(单一币种),和普通 LP 一同提供流动性,这为 iZiswap 带来了 Limit order 功能,是 Uniswap 所无法达成的。
通过这几点巧妙的改进,DL-AMM 拓展了 Uniswap V3 在限价单功能上可发挥的潜力,提供了完整的链上订单簿功能;而基于 iZiswap DL-AMM 的链上订单簿,能够完美避开传统思路所遇到的技术难题,为之提供了新的发展方向。
iZiswap 自 2021 年 5 月 20 日推出,产品历经不断的迭代,目前全链的 TVL 约 94.7 M 美元。
iZUMi 推出的 iZiSwap Pro,拥有点对池撮合(AMM 模式)的链上订单簿功能;同时,零滑点、防 MEV 的去中心化限价订单也令人耳目一新。
iZiswap 已陆续在 BNB chain/Arbitrum 等多链上线,自 4 月 21 日在 ZkSync 上线后,短短三周时间,已成为 ZkSync 上的 TVL 最大的 DEX。
iZiSwap 在 ZkSync 上的数据
目前 Near 上的 Ref finance、Aurora 上的 Arctic 均采用 iZiswap 独创的 DL-AMM 解决方案,前者是 Near 生态中最大的 DEX,TVL 巅峰时期达到 2.7 亿美元。
Trader Joe 的 Liquidity Book
Traderjoe 沿用 DL-AMM 的做法,为 LP 设置了多个离散的价格箱(Liquidity Bin),每个价格箱内的 LP 同样由恒定加和公式所定义(如下图左)。
每个价格箱内的流动性由多个用户提供。以 c 作为价格箱内 token Y 所占比例,容易得出,仅当前市场价格所在价格箱 c 在(0 , 1 )之间。
价格大于市价的价格箱,其流动性由 token Y 构成(c= 0 );价格小于市价的价格箱,其流动性由 token X 构成(c= 1 )。
至此,Liquidity Bin 的设计基本与 DL-AMM 如出一辙,也即其同样可以实现更低的滑点。
在其官网中,也向用户提供了一些基于此的流动性添加策略,让用户可以自由搭配流动箱来实现自己的策略组合。
例如下图中的「Bid-Ask」策略:
Liquidity Bin 为了进一步降低无常损失,设计了同价格波动率相关联的交易费率机制。
其交易费除去与传统机制相同的基本费用部分,还包含一个可变费用部分(公式如下)。
该部分费用与波动率累加器(v_a)呈二次关系(s 为价格箱长)。v_a 用于衡量价格波动剧烈程度,如果短时间内价格波动过快,可变费用就会相应提升,以通过平稳波动降低 IL,且在波动过低时吸引流动性。
Liquidity Book 可以看作是 iZUMi 的 DL-AMM 思路与动态费率的结合,其核心仍在于离散价格点恒定总和公式对全局恒定乘积公式的代替,但其目前并未支持 Limit Order 的功能。
自 Uniswap 面世以来,xy=k 似乎一直是 AMM 领域的「圣经」,因其足够简单、也足够有效。
由于 xy=k 公式的不足,很多团队逐渐开始探索新的可能性,iZUMi 提出的 DL-AMM 模型,正是其中足够实用与优美的一种。
它既可以支持原 xy=k 模型的交易深度与体验,又带来了滑点与 MEV 的降低,以及链上订单簿等新功能。
相信之后会有更多基于 DL-AMM 的创新,来为链上带来更丰富的流动性添加策略,以及新应用(例如用户无感的链上订单簿)的出现铺好技术基础。
DL-AMM 会是未来吗?让我们拭目以待。