Uniswap V3与集中利用多池流动性,如何提高资金效率?
摘要: 周期博士首先从对 Uniswap 的资金利用公式出发,分析了 Uniswap 采用的提高单个交易对资金利用率的方法,然后在这个基础上设计了更多(大于等于三)个币种构建集合资金池的流动性原始方案。
导语
本文为 QuarkChain 创始人兼 CEO 周期博士为其担任顾问的项目提供的一套提高资金率的原理设计。目的在于分享 DeFi 设计思想并同更多 DeFi 爱好者进行交流,周期博士首先从对 Uniswap 的资金利用公式出发,分析了 Uniswap 采用的提高单个交易对资金利用率的方法,然后在这个基础上设计了更多(大于等于三)个币种构建集合资金池的流动性原始方案,并分析了这种方式能够带来的优点如更高的资金利用率,更低的 Gas 和更高的 LP 回报。欢迎就本文的模型设计同周期博士进行交流。
Uniswap V2 的简要回顾
Uniswap V2 是最受欢迎和最成功的 DEX,以交易对形式,通过曲线对成对资产进行定价并进行兑换,其原理如下:
其中 x 和 y 是池中资产的余额。给定 Δx,为了将 Δx 交换为 Δy,Uniswap V2 将执行以下计算
这样兑换后仍然满足 xy = k 不变量,价格为
Uniswap V2 的一个很大的特点是无需授权 -任何人都能够通过提供代币创建一个两种资产的交易对。例如,通过在池中提供 x = 1 ETH 和 y = 3000 USDT,LP 可以创建一个交易对,ETH 最初定价为 3000 USDT/ETH。
尽管 Uniswap V2 获得了广泛采用,但 Uniswap V2 的关键问题是其资金效率低,因为流动性分布在价格 [0, +∞] 上。这意味着如果两种资产的价格集中在一个相对较小的范围内(例如稳定币兑换),池中沉淀大部分资产并没有参与兑换,从而导致高滑点和 LP 较低的手续费收益。
将流动性集中的 Uniswap V3
Uniswap V3 通过一种称为集中流动性的技术改善了低资金效率问题,该技术使用以下曲线:
其中兑换的实际价格在 [p_a, p_b] 范围,p_a < p_b。如果设置 p_a = 0 和 p_b = +∞,V2 本质上是 V3 的特例。
在提供流动性时,Uniswap V3 会向 LP 询问流动性的价格范围(见下图)。
这允许 LP 将流动性集中在目标价格范围内,从而实现更高的资金效率。
以稳定币兑换(USDC/USDT)为例,从下图中,95% 的流动性集中在价格区间 [0.999, 1.001],实现了比 Uniswap V2 约 2000 倍的资金效率。由于流动性集中,兑换 USDC/USDT 的滑点远低于 V2,因此对于池中提供的相同数量的资产,相比 V2 LP 可以收到更多的手续费奖励。
由于流动性集中,Uniswap V3 的 TVL 增长非常顺利,3 个月左右达到 2.5B。
集中多资产的流动性
Uniswap V3 只为一对资产提供集中流动性。那么一个自然的问题是:
「如果在一个资金池中集合多个资产会怎么样?」
通过集中更多资产的流动性,我们可以实现更高的资金效率,因为资产可以共享一个池中的流动性而不是各自的流动性。相比之下,在 V3 中,由于直接兑换的流动性不足,兑换可能会被路由到多个交易对。例如,交换 TUSD -> BUSD 可能会被路由到 TUSD -> USDT -> BUSD,这意味着交易者将支付更多的费用,滑点也随之提高。
所以核心问题是
「多资产流动性集中的曲线应该是怎样的?」
遗憾的是,答案并不简单,而是更为复杂。
让我们从从集中流动性能够获益最多的稳定币兑换开始。假设两个稳定币的价格在 [p, 1/p] 之间(例如,p = 0.999),我们可以将 V3 曲线简化为
其中 [p, 1/p] = [p_a, p_b]。简化曲线的好处是它有点对称。首先,让我们先添加第三个稳定币交易对,得到以下等式
请注意,三个资产的方程与两个资产方程相比有一些细微变化:
● 等号右边是 L³ 而不是 L²
● 等号左侧我们使用 p 的立方根,而不是使用 p 的平方根。
依靠这个等式,我们有一个关键结果:
命题 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},曲线看起来像
● 多个价格区间。例如,假设我们有 p_0 < p_1 (例如,p_0 = 0.99,p_1 = 0.999),LP 可以选择其流动性的价格范围之一。因此,该算法将联合求解以下方程以进行兑换。
● 不同资产的不同价格范围,其中的等式可能看起来像
结束语
集合资产的流动性是 DEX 中最热门的话题之一,因为它具有以下好处:
● 更高的资金效率
● 降低滑点
● 更多 LP 收益
Uniswap V3 是第一个为成对资产提供集中流动性的 DEX。对于稳定币兑换,资金效率可以提升至 2000 倍。
我们也设计出了一个可以集中超过三个资产的流动性池:
● 在多种资产之间共享流动性
● 非常适合稳定币兑换
● 可以成为同一资产稳定币互换市场中的竞争性产品(相对于 Curve)
● 用 Solidity 编写的智能合约
作者:QuarkChain夸克链中文社群;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请联系微信:chaindd123。
评论(0)
Oh! no
您是否确认要删除该条评论吗?