在加密货币交易池中,我们用“reserve(x)”或者“x”来指代池中可用于交易的代币“x”的数量,并且用“reserve(y)”来表示代币“y”的数量。比如有 1 个 ETH 和 1000 个 USDC ,这种情况下的流动性是 1000 。储备量是计算流动性的依据。不同的代币具备不同的储备量。这些不同的储备量会对交易池的流动性状况产生影响,同时也会对交易价格产生影响。
实际应用时,若储备量发生变化,会导致流动性出现波动,就像市场上商品供需变化会使价格波动一样。若某一种代币的储备量大幅减少,流动性就会降低,这可能会对交易产生不利影响。
固定交易示例分析
本节以用 USDT 购买 1 USDC 的这笔交易为例,展现流动性逐渐增多的池中进行相同交易的情况。储备有 10 亿 USDC 和 10 亿 USDT,此时流动性达到了 1 千万亿。储备虽然很庞大,但是由于价格的影响,USDC 和 USDT 不是以 1 比 1 的比例进行交易的,这是一个必须要解决的问题。
流动性增加之后,交易对价格的影响理应逐步变小。但在实际的交易池中,价格无法达到 1 比 1 的比例。这显示出存在其他因素对交易价格产生了作用,也体现出了交易池机制具有复杂性。
理想交易价格范围
我们预期 USDC 和 USDT 的交易价格会是 1:1 ,或者与 1:1 很接近,所以大部分交易预计会在储备相等的区域进行。Uniswap V2 能够支持价格范围从 0 一直到无穷大的交易,不过在极端价格的情形下,交易可能会对整个交易池的稳定性以及效率产生不利影响。
去除在极端价格情况下的交易能力,能够让交易池在预期交易将会发生的区域获取更优良的流动性。比如我们期望 AMM 在价格处于高于 0.99:1 以及低于 1.01:1 这两个范围时具备高流动性,这样就能使交易更接近我们所期望的价格。
Uniswap V3 价格曲线特征
不同价格范围的流动性情况不一样,因此 Uniswap V3 池的价格曲线和传统的不一样。在实际中,一旦流动性提供者确定了一定的流动性,Uniswap V3 就会去算出需要提供的代币 $x$ 的数量以及需要提供的代币 $y$ 的数量。
为了便于记账,流动性提供者需要在预定义的价格(ticks)这个位置提供流动性。如果某些价格范围没有设置流动性,那么$k$值就可能是零。例如在 USDC / USDT 这个池中,我们可以看到在价格 1.000 左右有很高的流动性,这个区域是流动性提供者预期会有交易发生的地方。
预设价格与流动性边界
Uniswap V3 为了便于管理,设立了预定义价格(ticks),这样就能让流动性提供者提供流动性。这些预定义价格对不同价格范围的流动性情况进行了界定。其中,灰色的垂直线表示当前价格,而两条蓝色线分别是允许添加流动性的下限预定义价格和上限预定义价格。
当流动性提供者在不同的 ticks 处下注流动性时,整个交易池的流动性分布会发生改变。这种机制能够让交易池以更具针对性的方式去满足特定价格范围内的交易需求,同时也提高了资源的利用效率。
价格跨越与流动性重算
价格跨越 ticks 之后,Uniswap V3 会对剩余交易的可用流动性重新进行计算。这种机制的作用在于,当价格发生变动时,交易池能够快速地调整流动性,以此来保障交易可以持续地进行下去。
价格跨越之后,流动性进行了重新分配。这种重新分配影响到了后续交易的执行,就好像在一段动画里所呈现的那样。这表明 Uniswap V3 拥有更加灵活且智能的交易机制,能够更合适地顺应市场价格的变化。
你觉得 Uniswap V3 的这种流动性管理机制在未来的加密交易市场里能呈现出怎样的优势?欢迎读者踊跃发表评论并参与互动,同时也请大家点赞并分享这篇文章。