织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

数学角度解析 Uniswap V3 集中流动性的实现原理(3)

时间:2021-04-01 12:36来源:未知 作者:admin 点击:
f_{a}变量是对所有高于 i tick 的区间的 fee 统计,f_{b}是对所有低于 i tick 的区间的 fee 统计,因此在上述总公式中,我们从全局总累计手续费 f_{g}中减去所有

f_{a}变量是对所有高于 i tick 的区间的 fee 统计,f_{b}是对所有低于 i tick 的区间的 fee 统计,因此在上述总公式中,我们从全局总累计手续费 f_{g}中减去所有低于下界 i_{l}的累计手续费,再减去所有高于上界 i_{u}的累计手续费,便是 (i_{l},i_{u}) 之间的累计手续费。

f_{o} 可以理解为一个计算单元,用于累积截止到 i tick 的手续费,在它的初始化过程中,我们约定如下:

数学角度解析 Uniswap V3 集中流动性的实现原理

再来看 f_{a}的计算,分成了两段,可以理解为——

  • 如果当前 tick 等于 i 或者高于 i,此时从全局总手续费 f_{g} 中减去「累积到 i tick」的手续费 f_{o}(i),剩下的便是对所有高于 i tick 的区间的 fee 统计;

  • 但如果当前 tick 还未抵达 i,此时根据对 f_{o} 的初始化定义为 0,则所有高于 i tick 的区间的 fee 统计尚未产生,为 0。

同样对于 f_{b}——

  • 如果当前 tick 抵达或者超过了 i,f_{o}(i) 表示累计到 i 的手续费,也即对所有低于 i tick 的区间的 fee 统计;

  • 如果当前 tick 还未抵达 i,对所有低于 i tick 的区间的 fee 统计值即为当前的全局变量 f_{g}(当前总手续费)。

通俗来概括,系统算法要统计某一个 range 内累计的手续费,

  • 如果当前 tick 已经处于 range 内部,即 i_{l}\leq i_{c} < i_{u},只需要从全局手续费 f_{g}减去所有低于 i_{l}组成的 range 累计的手续费;

  • 如果当前 tick 不处于 range 内部,且低于下界 i_{l},说明尚未在 (i_{l},i_{u}) 区间内产生交易,也就未产生手续费,因此该 range 内累计量为 0;

  • 如果当前 tick 不处于 range 内部,且高于上界 i_{u},需要从全局总量中分别去除「两头」各自的累计量,即从全局 f_{g}中减去所有低于 i_{l}区间累计量,再减去「从 i_{u}到当前 tick 区间累计量」。

Uni V3 计算手续费的过程是一种从微观走向宏观的思想,它将空间划分成离散的,每一个时间刻度只会在一个离散空间上产生交易,从而产生手续费,每一个微观 tick 都在各自记录着自己从最低 tick 到自身这段区间内的累计手续费总和,然后供上述公式不断调用,以计算各种宏观结果。

Uni V3 已经改变了传统 AMM 对 LP 行为的设定,也不再基于全局流动性(Global Liquidity)和份额(Share)来为每一个 LP 计算手续费收益。对 V3 来讲,它只关注在每一个 tick 里存在多少「虚拟」流动性,以及这些虚拟流动性产生了多少手续费,算得单位虚拟流动性对应的手续费值;在这个时空之下,我们再把视角切到具体每一个 LP 上,对于任何 LP,都会存在一个「开仓」(Position)的区间设定,他在自己设定的区间提供了虚拟流动性,可能是一个 tick,也可能是连续多个 tick,从最简单的「一个 tick」角度解释,系统会记得同一时空下每一个 LP 在此 tick 注入的虚拟流动性值,并为他们确定出一个比例(注意这个比例只与最开始注入的虚拟流动性大小有关,并不涉及手续费转流动性,这与 V2 是不同的),以此分得该 tick 内所有手续费累计。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容