3

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

 2 years ago
source link: https://learnblockchain.cn/article/3129
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

本文为 QuarkChain 创始人兼 CEO 周期博士为其担任顾问的项目提供的一套提高资金率的原理设计。目的在于分享 DeFi 设计思想并同更多 DeFi 爱好者进行交流,周期博士([email protected])首先从对 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 编写的智能合约

如有关于这套设计的任何疑问,欢迎同我([email protected])交流。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK