uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

2021-04-08 15:34 栏目:行业动态 来源:网络整理 查看()

uniswap V3的核心思想是流动性集中。原标题:《uniswap - V3技术白皮书导读》

来源:明星创意

作者:明星李

Uniswap V3自发布以来引起了广泛关注。与V2相比,逻辑和代码更加复杂。V3的核心是通过差点区间提供流动性(集中流动性),解决LP提供流动性时的资金利用率问题。资金利用率如何?V3如何推导区间流动性公式?如何理解流动性?换汇费怎么算?本文首先详细分析了V3技术白皮书。

先给一些uniswap关于V3的官方信息:

V3官方介绍

https://uniswap.org/blog/uniswap-v3/

技术白皮书

https://uniswap.org/whitepaper-v3.pdf

智能合同代码

https://github.com/Uniswap/uniswap-v3-core

https://github.com/Uniswap/uniswap-v3-periphery

建议先仔细查看技术白皮书,再查看智能合同代码,最后与官方介绍进行对比。懂技术白皮书,代码很好理解。技术白皮书第一章总结了uniswap V3的技术特点,核心概念是‘集中流动性’。

1资金利用率

让我们先来看看uniswap V2的资金利用率:

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

上图是资金池中x/y的数量变化曲线。基金池当前价格在c点,假设会在a点和b点之间波动,从c点到a点滑动消耗最大y_real,从c点到b点滑动消耗最大x_real。也就是说,如果当前价位c在a点和b点之间震荡,最多只需要消耗x_real和y_real。理论上提供x_real和y_real就够了。事实上,如上图所示,在价格点c,分别提供了大于x_real和y_real的x和y。可以清楚的看到,x-x_real和y-y_real的资金在这种情况下是绝对不会用到的,也叫闲置资金。

在这种情况下,资金利用率为x_real/x或y_real/y.如果价格波动很小,资金利用率很低。Uniswap V3是解决资金利用率低问题的一种尝试。思路很简单。所有基金只能加到某个区间,只能加到价格可能波动的区间。如何在一定区间内增加流动性,提供掉期功能,是uniswap V3的重点。先说虚拟储备。

2个虚拟资金池(虚拟准备金)

Uniswap的交易采用固定产品模式(x*y=k)。所谓虚拟准备金是指仍在固定产品曲线上,仅在一定区间内提供流动性的资金池:

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

图中深绿色曲线是虚拟基金池所满足的产品固定曲线。事实上,所需资金的曲线在图中是橙色的。橙色的曲线公式如下:

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

可以想象虚拟资本曲线在x/y轴上平移,使a/b点与x/y轴重合。也就是说,有了一定的资金,就可以达到“虚拟”交易曲线的效果。

如何计算一定区间内提供的虚拟资金池,首先要对流动性有深入的了解。

3流动性(流动性-升)

具有固定产品的交易模型满足资金池中以下两个令牌金额:x * y=k,如果设置了k=l 2,则X * y=l 2。l就是我们所说的流动性。下面的公式是从固定产品的交易模型中得到的:

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

给定l和sqrt(P),也可以推导出资本需求x和y。

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

根据公式6.6,在流动性不变(不增加或删除流动性)的情况下,流动性可视为Y基金每单位“价格波动”的变化。“价格波动”之所以被引用,是因为它实际上是sqrt(P)的变化。

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

这是uniswap V3的核心公式(6.7),用相对价值(资本和价格的相对价值)来计算流动性。流动性是指单位“价格变动”的资金量。在一定的交易量下,流动性好的话,价格变化小,流动性不足的话,价格波动大。

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

尤其是区间内的流动性不同于V2的普遍流动性。一个区间的流动性集中在“区间”上。不同区间的流动性不具有可比性。V2流动性和区间流动性的区别如下:

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

V2的流动性是“普遍的”,在所有价位上都是一样的。V3的流动性是由一系列不同区间的流动性组成的。相对来说,围绕现价的流动性比较高。流动性提供者LP只有提供可供交易的流动性,才能获得交易费。为了获得更多的交易费用,提高资金的利用率,流动性提供者会在合理的价格波动范围内提供资金。也就是说,只有一定区间内的流动性提供者才能获得掉期交易产生的手续费。为了计算每个区间的手续费,引入了Tick的概念和计算方法。

4点击

区间提供流动性带来很多复杂的情况:区间、区间覆盖重叠。由于不同区间的流动性不具有可比性,一定的交易费用无法混入营运资金,在流动性被删除时会被提取。为了解决这个问题,uniswap V3引入了Tick的概念。交易费用实时结算,单独入账,不混入营运资金。虽然整个区间的流动性是不可比的,但是在特定的价位(在一个价格片上)是可比的。Uniswap V3将整个价格范围(负无穷大至正无穷大)分为Tick(价格点):

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

后一个价位的价格是前一个价位的万分之一。

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

每个刻度也有一个唯一的序列号。一个位置可以用两个刻度来表示。从逻辑上来说,交易费用可以按分笔成交点计算,交易可以根据流动性的比例在每个分笔成交点进行分配。让我们来看看一个Tick范围的互换计算。

5分钟内交换

假设有少量y,互换要求为x,利用6.13中的公式,可以计算出y的变化引起的价格变化。

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

x的量可以用6.15中的公式计算。

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

Uniswap V3对同一个交易对设置不同的交易费用:0.05%,0.3%,1%(也可以添加其他费率)。Y换X的,先扣手续费再换。

同一个交易池只支持一种汇率。也就是说,一个交易池支持不同的价格区间,但都是同一个费率。如果您需要为同一交易对添加具有不同交易费用的交易池,则必须创建新的交易池。

接下来,深入解释增加/删除流动性和交易成本的计算逻辑。

6增加/移除流动性

V3中增加/删除流动性是指在当前价格下,在一定范围内增加或删除流动性。所有流动性增加/减少采用以下公式:

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

注意价格变化不是指区间的大小,而是在一定区间内提供流动性。与当前价格相比,价格变化对应“需要相应的资金变动”。

分为三种情况,待加流动性区间与当前价格的关系。

当前价格在流动性价格范围内(il=ic iu)

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

因为价格在区间内,如果价格滑落到il,需要提供Y资金。如果价格滑落到iu,需要提供相应的X资金。所以对于delta_Y,价格变化是sqrt(p)-sqrt(p(il));对于delta_X,价格变化为1/sqrt(P)-1/sqrt(p(iu))。

当前价格低于流动性价格区间

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

因为现价远低于il,即使从现价滑到iu,也只需要X的资金,不需要Y的资金。因此,这种情况下,delta_Y=0。因为从il滑向iu需要整个区间的X资金,对于delta_X,价格变化为1/sqrt(il)-1/sqrt(p(iu))。

当前价格高于流动性价格区间

类似于第一种情况,不重复分析。

7掉期交易成本

uniswap最复杂的逻辑是计算和分配交易成本。在增加和删除流动性之前,需要提取相应的交易成本。

滴答总流动性

一个刻度可以有多个间隔。在计算交易成本时,有必要将这些成本平均分摊到此刻度上所有区间的总流动性中。在每个区间的刻度上记录_ L(以此刻度为边界的所有区间的总流动性)。

有一个全局状态:流动性,保存当前价格对应的Tick的流动性总和。当价格波动并穿过一个Tick时,流动性会增加或减少(取决于价格波动方向)。比如价格从左到右经过区间,流动性需要增加,价格经过最后一个Tick,流动性需要减少。中间Tick (delta_L为0)流动性没有增减。

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

头寸的交易费用率

从总费用率中减去区间外的费用率,计算区间内的交易费用率。在一个时间间隔的边界刻度上记录feeGrowthOutside。所谓的feeGrowthOutside就是另一个方向的总费用率。另一个方向是相对于通过当前刻度的方向。当价格从左向右通过一个分笔成交点时,外部费用增长指的是分笔成交点左侧所有区间的费用率。简单来说就是价格反方向所有区间的费用率。FeeGrowthOutside用fo表示。因为fo是Tick两个方向的总费用率,所以两个方向的费用率之和必须等于fg(全局费用率)。因此,当穿过一个刻度时,该刻度上的fo应该翻转:

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

创建间隔时,需要初始化间隔边界上的刻度的fo:

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

如果当前价格大于Tick价格,因为即使当前价格在设定范围内,也不会分摊之前的费用,所以可以简单假设所有费用都低于Tick价格,即fo=fg。如果Tick的价格大于当前价格,则价格没有通过Tick,因为假设以前发生的所有费用都低于Tick价格,并且没有高于Tick的费用,因此fo=0。在理解这些逻辑的基础上,在互换过程中,随着价格的波动,超过最高分笔成交点的费用率和低于最低分笔成交点的费用率可以计算如下:

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

以最低Tick以下的费用率计算为例,如果ic=i(当前价格高于最低Tick),则Tick以下的所有费用率都为fo(定义)。If ic

uniswap V3技术白皮书导读:核心是流动性集中_币世界+星想法

在获得费率的基础上,区间收取的费用可以通过将费率乘以区间的流动性来计算。

总结:
uniswap V3版核心思想是流动性集中。流动性提供者可以在一定范围内提供流动性,提高资金利用率。一定区间内获得的交易费用,由区间内所有流动性提供者平均分摊。Uniswap V3设计了区间粒度-Tick,推导了流动性增加/删除和成本计算的过程。在此基础上,uniswap V3还更新了价格预测机的实现。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发