Uniswap V3 与集中利用多个资金池的流动性 如何更好提高资金效率

Uniswap V3 与集中利用多个资金池的流动性 如何更好提高资金效率

导语

本文为 QuarkChain 创始人兼 CEO 周期博士为其担任顾问的项目提供的一套提高资金率的原理设计。目的在于分享 DeFi 设计思想并同更多 DeFi 爱好者进行交流,周期博士(qizhou@quarkchain.org)首先从对 Uniswap 的资金利用公式出发,分析了 Uniswap 采用的提高单个交易对资金利用率的方法,然后在这个基础上设计了更多(大于等于三)个币种构建集合资金池的流动性原始方案,并分析了这种方式能够带来的优点如更高的资金利用率,更低的 Gas 和更高的 LP 回报。欢迎就本文的模型设计同周期博士进行交流。

Uniswap V2 的简要回顾

Uniswap V2 是最受欢迎和最成功的 DEX,以交易对形式,通过曲线对成对资产进行定价并进行兑换,其原理如下:

78a7b952bb58bf505a6b3ed328d85454.png

其中 x 和 y 是池中资产的余额。给定 Δx,为了将 Δx 交换为 Δy,Uniswap V2 将执行以下计算

1a330bd26c54ae1820dd790fe9a49416.png

这样兑换后仍然满足 xy = k 不变量,价格为

7149b326c26b3a8dfd5f1eb2b7c820d2.png

Uniswap V2 的一个很大的特点是无需授权 -任何人都能够通过提供代币创建一个两种资产的交易对。例如,通过在池中提供 x = 1 ETH 和 y = 3000 USDT,LP 可以创建一个交易对,ETH 最初定价为 3000 USDT/ETH。

尽管 Uniswap V2 获得了广泛采用,但 Uniswap V2 的关键问题是其资金效率低,因为流动性分布在价格 [0, +∞] 上。这意味着如果两种资产的价格集中在一个相对较小的范围内(例如稳定币兑换),池中沉淀大部分资产并没有参与兑换,从而导致高滑点和 LP 较低的手续费收益。

将流动性集中的 Uniswap V3

Uniswap V3 通过一种称为集中流动性的技术改善了低资金效率问题,该技术使用以下曲线:

78642b02f47d8b262791af608e1dc101.png

其中兑换的实际价格在 [p_a, p_b] 范围,p_a < p_b。如果设置 p_a = 0 和 p_b = +∞,V2 本质上是 V3 的特例。

在提供流动性时,Uniswap V3 会向 LP 询问流动性的价格范围(见下图)。

c7c58c6077c74a9fcd01e9cf6bb9d339.png

这允许 LP 将流动性集中在目标价格范围内,从而实现更高的资金效率。以稳定币兑换(USDC/USDT)为例,从下图中,95%的流动性集中在价格区间[0.999, 1.001],实现了比 Uniswap V2 约 2000 倍的资金效率。由于流动性集中,兑换 USDC/USDT 的滑点远低于 V2,因此对于池中提供的相同数量的资产,相比 V2 LP 可以收到更多的手续费奖励。

f17e6ee5e1d0d9f6ae9def9d0d3dd8be.png

由于流动性集中,Uniswap V3 的 TVL 增长非常顺利,3 个月左右达到 2.5B。

68b6e9f228a483ead2519079dcbb010f.png

集中多资产的流动性 Uniswap V3 只为一对资产提供集中流动性。那么一个自然的问题是:“如果在一个资金池中集合多个资产会怎么样?“ 通过集中更多资产的流动性,我们可以实现更高的资金效率,因为资产可以共享一个池中的流动性而不是各自的流动性。

相比之下,在 V3 中,由于直接兑换的流动性不足,兑换可能会被路由到多个交易对。例如,交换 TUSD -> BUSD 可能会被路由到 TUSD -> USDT -> BUSD,这意味着交易者将支付更多的费用,滑点也随之提高。所以核心问题是 “多资产流动性集中的曲线应该是怎样的?” 遗憾的是,答案并不简单,而是更为复杂。

让我们从从集中流动性能够获益最多的稳定币兑换开始。假设两个稳定币的价格在 [p, 1/p] 之间(例如,p = 0.999),我们可以将 V3 曲线简化为

b0fb722fc777b3f674c306e9ecffcf9d.png

其中 [p, 1/p] = [p_a, p_b]。简化曲线的好处是它有点对称。首先,让我们先添加第三个稳定币交易对,得到以下等式b41ab1e896204a379073b8e6b662b338.png

请注意,三个资产的方程与两个资产方程相比有一些细微变化:等号右边是 L³ 而不是 L² 等号左侧我们使用 p 的立方根,而不是使用 p 的平方根。依靠这个等式,我们有一个关键结果:

a430478d6d49015d569bd30736042a17.png

命题 1. 给定池中任意数量的资产,{x,y,z},通过上图曲线交换任意两个代币的价格会在[p,1/p]的范围内 示例:

三个币种均匀分布的情况

  • 3 个稳定币,取小数点后 6 位
  • x, y, z = [1000,000e6, 1000,000e6, 1000,000e6],即每个资产在池中各有 1M
  • p = 0.999,即价格区间为 [0.999, 1.001]

由于三项相等,我们有:

L = x / (1 — ∛0.999) = 2998.99977x

请注意,与 xy = k 曲线(其中 L = x)相比,我们的资金效率约为 2000 倍。

用 10,000e6(比如 10k 美元)的 代币 0(T0) 交换 代币 1(T1) 将返回 9999.96e6 T1 @ 0.999996 T0/T1。作为比较,xy=k 曲线将返回 9375e6 T1 @ 0.9375 T0/T1,其滑点要高得多。

极度不平衡的情况

  • 3 个稳定币,仍取小数点后 6 位
  • x, y, z = [0, 0, 1000,000e6],即每个资产在池中各有 1M
  • p = 0.999,即价格区间为 [0.999, 1.001]

由于矿池只有一个资产 T2,我们预计 T2 的价格将接近极限价格,即 0.999,那么其余资产的价格(T0/T1)与 T2 的对应价格应为 1.001。

按照曲线,我们可以求解 L = 999.333z。因此,将 10,000e6 T0 交换为 T2 将返回 10009.90e6 T2 @ 1.00099 T0/T2,几乎与极限价格(1/0.999)相同。

当前状态

我们正准备部署一个使用 Solidity 的新稳定币交换算法,它预计有如下几个特点:

  • 可以高精度定点求解
  • n = 3 个资产(可以扩展到更多)
  • 可调整的价格范围 [p, 1/p]
  • Uniswap V2 风格的界面(挖矿/烧毁/兑换)
  • 优化 Gas 成本

一旦算法的实现得到很好的验证,我们将使用它作为下一个 Smoothy.finance (SMTY) 的候选版本——我作为顾问的下一代同一资产稳定币兑换协议项目。

未来发展

在集合资产的集中流动性领域,可以进一步发展几个有趣的话题:

  • 更多资产{x_0, x_1,...,x_n},曲线看起来像

c5e8a05996563e48a1e60c737aed3034.png

  • 多个价格区间。例如,假设我们有 p_0 < p_1(例如,p_0 = 0.99,p_1 = 0.999),LP 可以选择其流动性的价格范围之一。因此,该算法将联合求解以下方程以进行兑换。

cb91d6c428d2448f651dd7e5c02010c6.png

  • 不同资产的不同价格范围,其中的等式可能看起来像

87e29fdf1a07383aab9506688aef515e.png

结束语

集合资产的流动性是 DEX 中最热门的话题之一,因为它具有以下好处:

  • 更高的资金效率
  • 降低滑点
  • 更多 LP 收益

Uniswap V3 是第一个为成对资产提供集中流动性的 DEX。对于稳定币兑换,资金效率可以提升至 2000 倍。

我们也设计出了一个可以集中超过三个资产的流动性池:

  • 在多种资产之间共享流动性
  • 非常适合稳定币兑换
  • 可以成为同一资产稳定币互换市场中的竞争性产品(相对于 Curve)
  • 用 Solidity 编写的智能合约

如有关于这套设计的任何疑问,欢迎同我(qizhou@quarkchain.org)交流。

本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

  • 发表于 2021-10-18 16:47
  • 阅读 ( 212 )
  • 学分 ( 0 )
  • 分类:Uniswap

0 条评论

请先 登录 后评论
rebase
rebase

技术工程师

11 篇文章, 894 学分