区块见闻 区块见闻
Ctrl+D收藏区块见闻

Uni V3的数学原理

作者:

时间:

前言——Uniswap V3(如下简称 Uni V3)放出了很多 feature,然而其最为本质的迭代依然是对 AMM 数学曲线的再思考。在过去的两年中,我们也躬身入局 AMM 领域,认为 AMM 最基本的曲线形态已经定型,后续的创新应该会在 AMM 基本曲线形态的基础上实现“策略化”,于是我们创造了 MOV 超导 V2。而如今我们看到了 V3,突然有一种“久别重逢”的感觉,在寻找这种感觉之余,我们也希望为大家呈现 AMM 最为深刻的思考路程。因为 AMM 的时代将会比想象得更为恢弘壮阔。

让我们直切正题,Uniswap V3 最耀眼的创新——在 AMM 上实现集中流动性。

V3 给出了一个虚拟储备金(virtual reserves)的概念,举例讲解:

在传统 V2 中,Alice 一次性将 500,000 DAI 和 333.33 ETH 注入储备池,总价值 $1m,提供全区间(0,\infty)的流动性,但实际上 ETH 的价格波动范围在很长一段时间内是有局部范围的,这种为全区间无私提供流动性的行为大大浪费了资本利用效率。

(注:在一个逐步走向成熟化的金融市场中,无套利原理和提升资本利用效率永远是两大核心诉求,也是后续 DeFi 产品向先驱 DeFi 发起挑战的出发点。)

所谓的集中流动性便是让 LP 自主选择波动范围,只为该范围提供局部流动性,例如 Bob 认为未来一段时间内 ETH 的价格区间在(1000,2250),并且如果未来真的是在这个区间波动,Bob 希望自己获得的收益能够跟百万富豪 Alice 一样多,于是 Bob 一开始只需要投入 91,751 DAI 和 61.17 ETH,总价值 $183,500,远远小于 Alice 实际投入的资金。我们对照下图来解释其中的道理。

数据:自去年12月以来DEX交易量一直在下降:金色财经报道,数据显示,自2021年12月以来,去中心化交易所(DEX)的交易量一直在下降。然而,上个月的去中心化交易所交易量比2月份的交易量高出2.37%。尽管4月份的交易量短暂飙升,但指标显示本月的去中心化交易所交易量可能会远低于3月份。

2021年12月DEX交易量达1860.3亿美元。今年1月交易量为1576.8亿美元,2月交易量减少至1143.7亿美元。这意味着在2021年12月至2022年2月期间,DEX交易量减少38.52%。3月份DEX交易量出现短暂飙升,在此期间达到1170.9亿美元。然而,4月份的统计数据似乎显示,DEX交易量将表现平平,可能低于2月份。截至4月21日的数据显示,目前4月份交易量为751.1亿美元。(news.bitcoin)[2022/4/22 14:40:51]

即 Bob 所获得的虚拟曲线(D 值)几乎跟 Alice 一样。

上述计算过程是一种反证法,实际上用户 Bob 会向系统算法提出自己的需求输入,包括预测价格区间范围、当前价格点、最终想要获得的一个 virtual reserves 规模(即虚拟曲线 D 值)。有了虚拟曲线表达式的确定,可以轻松算出 a、b、c 三个确定的点坐标,进而便算出 ?x_{real}=61.17以及y_{real}=91751。

同时,也可以看到,一旦未来价格越出了区间,Bob 其中一种资产将彻底消失。

全局状态中有feeGrowthGlobal0(f_{g},0) 和 feeGrowthGlobal1 (f_{g},1)—f_{g},用来从全局角度统计总的手续费收益。例如,当在一个 tick 内发生了一笔交易,系统会计算出该笔交易产生的手续费:

Coin Metrics新指标显示目前比特币“真实”供应为1450万枚:区块链分析公司Coin Metrics发布了一个新指标,该指标将更真实地反映比特币的流通供应。据其统计,目前存在1860万枚比特币。然而,正如Coin Metrics所指出的那样,许多比特币已经丢失了,无法再进入市场。这促使研究人员创建了所谓的“自由浮动供应”指标,他们认为这能“更真实地反映市场上的比特币供应情况”。根据该指标,这个数字目前为1450万枚。这意味着,大约390万枚比特币(按今天的价格计算为145亿美元)本应在流通中的比特币已经丢失。(Decrypt)[2021/2/5 19:00:52]

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

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

<img ?src="https://img.jinse.com/4923026_image3.png" ? auto";'>

再来看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 内所有手续费累计。

<img ?src="https://img.jinse.com/4923027_image3.png" ? auto";'>

在实际情况中, LP 们还会存在复杂的行为,比如注入/退出的时间纷杂、选择的 range/tick 纷杂。但 Uni V3 的大道至简之处正是利用全局计算来屏蔽掉单个 LP 视角,只关心 ticks 视角和 Position 视角。在确定好上述所述的一系列全局状态变量的定义后,认真记录好每一笔 swap 交易在 ticks 中发生的情况(包括只在一个 tick 内完成该笔 swap 交易,和需要跨多个 tick 才能完成该笔 swap 交易),同时只记录每个 tick 内虚拟流动性的大小,以此为根本去提供 swap 交易公式以及 swap 后手续费如何分配给参与该 tick 的所有 LP 们。LP 的复杂行为体现在空间的不连续性和时间的不统一性两方面,对于时间不统一性(即会出现很多 LP 不断加入和退出流动性),Uni V3 还会引入 Position 这一级别的全局变量为每一个身份(address)记录下其对 range/tick 加入/退出(“setPosition”)时手续费的统计(uncollected fee/feeGrowthInside),确保后来的 LP 不会参与到前序 LP 们已经累计的收益分配。

如果总结来讲 ,tick-level 是对空间上发生的统计,确保起点一致的 LP 们 fee 分配,而 Position-level 是对时间上发生的统计,确保不同起点的 LP 们 fee 累计起点不一样。建议实现者深入 V3 代码,才能真正获得安全计算法。

最后,Uni V3 过于复杂,但大道至简,即便去模仿,模仿者依然需要下功夫深刻了解其“微积分”思维。这篇文章只选择了 fee 这一个角度呈现 Uni V3 的“数学原理”,也是其实现集中流动性的核心逻辑。而在数学之外,我们有更多惊喜的“哲学意义”发现与大家分享,例如 LP token 的进化、NFT 其实并不只属于艺术领域(更有助于金融)、V3 会存在一个策略博弈、V3 对基金池/合成资产的启示等等,当然也包括与 MOV 超导 V2 的“心有灵犀”——AMM 的本质是连续性的无限网格,Uni V3 是在这个无限网格基础之上再实现了微观无限网格,是“无数网格机器人的叠加”,MOV 超导 V2 则是在无限网格基础之上进行了更为宏观的无限网格,是超级网格。请期待下一篇《Uni V3 的自然哲学》。

作者:比原链研究院

标签:ICKUSDUSDCRANMAGICK价格USDNusdc币市值减少Lets Go Brandon

币安app官方下载最新版热门资讯
Tether将在Polkadot和Kusama上推出其稳定币USDT

当公共利益平行链启动时,Polkadot和Kusama的用户将从与Tether稳定币USDT的直接集成中受益。周二,Tether宣布,USDT将在Polkadot和其兄弟网络Kusama上推出。 Tether是最老牌的稳定币,已获得广泛的采用,其流通供应量最近已经超过了400亿美元。

山寨币全面苏醒 数百品种一月翻倍 总市值即将超越比特币?

比特币歇菜,山寨币疯狂。 4月3日下午,全球加密货币市值超过2万亿美元大关,在以太坊价格猛攻的助力下,山寨币的市值占比再度上升至45.5%。在比特币价格于3月中下旬攻击6万美元,两次未能成功,价格持续震荡的比特币吸血效应减弱,进一步刺激了投资者对山寨币的信心。

88天 EOS最大的算法稳定币崩盘

“矿塌了?” 4月1日,愚人节,稳定运行88天之后,EOS最大的算法稳定币系统USDX崩盘,代币USDC最低跌至0.65美元。 (图片来源:https://dfsswap.gitee.io/) USDX是DFS团队在今年1月推出的算法稳定币系统,凭借着“蓄水池 + 分流器 + 流速算法”三大特色机制,硬是在EOS这样的撒哈拉沙漠里建立起一座算法银行。

独家 | 审计报告怎么记录审计文件的存证? 又该如何去审读

本文由“Fairyproof Tech”原创,授权“金色财经”独家首发,转载请注明出处。  一份审计报告是对一套智能合约的“质量检测报告”,那报告就要告诉用户所审计的对象是谁。

加密市场一季度经历了哪些暴涨?

在2021年,加密技术经历了快速扩张。我们看到了新的历史高点,以及新一波的普及和热潮。在本期《网络状态》特刊中,我们来回顾2021年第一季度的情况,并分析趋势背后的数据。? 机构投资者在2021年第一季度继续进入加密货币领域,尽管与2020年第四季度相比,许多机构投资者相对平静。

金色趋势丨BTC牛市这一黄金规律有望继续上演

上图为BTC?2010-2020年至今的长期走势,通过研究可以发现,以三次产量减半为时间分割点,从之前每一轮熊市的最低点一直延伸至各自周期内的产量减半时间点这一段时间周期,与减半后行情开始震荡向上冲至这一轮牛市的最高点这一时间周期,我们对比发现,在整个这一轮牛市周期内,两个时间段存在着51%和49%的黄金比例。