前言——UniswapV3放出了很多feature,然而其最为本质的迭代依然是对AMM数学曲线的再思考。在过去的两年中,我们也躬身入局AMM领域,认为AMM最基本的曲线形态已经定型,后续的创新应该会在AMM基本曲线形态的基础上实现“策略化”,于是我们创造了MOV超导V2。而如今我们看到了V3,突然有一种“久别重逢”的感觉,在寻找这种感觉之余,我们也希望为大家呈现AMM最为深刻的思考路程。因为AMM的时代将会比想象得更为恢弘壮阔。
让我们直切正题,UniswapV3最耀眼的创新——在AMM上实现集中流动性。
V3给出了一个虚拟储备金的概念,举例讲解:
在传统V2中,Alice一次性将500,000DAI和333.33ETH注入储备池,总价值$1m,提供全区间
(0,\infty)
的流动性,但实际上ETH的价格波动范围在很长一段时间内是有局部范围的,这种为全区间无私提供流动性的行为大大浪费了资本利用效率。
所谓的集中流动性便是让LP自主选择波动范围,只为该范围提供局部流动性,例如Bob认为未来一段时间内ETH的价格区间在
(1000,2250)
Unisat:将于今日上线NFT交易市场:7月12日消息,比特币生态钱包Unisat发推称,将于今日上线NFT交易市场。
据此前报道,该市场将支持超过1500个NFT系列。为庆祝铭文NFT系列交易上线,UniSat计划下调整个市场的服务费。[2023/7/12 10:50:03]
,并且如果未来真的是在这个区间波动,Bob希望自己获得的收益能够跟百万富豪Alice一样多,于是Bob一开始只需要投入91,751DAI和61.17ETH,总价值$183,500,远远小于Alice实际投入的资金。我们对照下图来解释其中的道理。
则
即Bob所获得的虚拟曲线几乎跟Alice一样。
上述计算过程是一种反证法,实际上用户Bob会向系统算法提出自己的需求输入,包括预测价格区间范围、当前价格点、最终想要获得的一个virtualreserves规模。有了虚拟曲线表达式的确定,可以轻松算出a、b、c三个确定的点坐标,进而便算出?
BRC-20交易市场UniSat Marketplace已取消积分访问门槛:5月11日消息,BRC-20 交易市场 UniSat Marketplace 宣布访问门槛已经取消,即不再需要 UniSat 积分即可进行使用。[2023/5/11 14:56:30]
x_{real}=61.17
以及
y_{real}=91751
。
同时,也可以看到,一旦未来价格越出了区间,Bob其中一种资产将彻底消失。
全局状态中有
feeGrowthGlobal0(f_{g},0)和feeGrowthGlobal1(f_{g},1)
—
f_{g}
,用来从全局角度统计总的手续费收益。例如,当在一个tick内发生了一笔交易,系统会计算出该笔交易产生的手续费:
Uniswap Labs在二层网络中引入Auto Router支持,以优化价格和gas成本:12月19日消息,Uniswap背后的开发者Uniswap Labs发布了一系列重要的功能来寻找最优价格,并优化交换的gas成本。
Uniswap Labs发布了一个更新的自动路由器(Auto Router),通过在Uniswap v2和v3池中路由交易,在更大程度上提高了交易价格。这样,用户就可以直接从App界面实时跟踪交换的真实成本。除了优化gas成本,新版本还可以在所有Uniswap协议中找到最优价格。
另一个主要更新是同时支持Optimistic Ethereum和Arbitrum的自动路由器。这些变更的目的是通过有效的交易定价,再加上二层网络的低gas成本,提供整体上具有成本效益的交易体验。
此外,Uniswap App现在将在提交交换之前提供美元计价的gas费用预估,在此功能的帮助下,该应用程序还将根据交易员预期的gas成本和交易规模自动设置滑点。
自三个月前发布Auto Router以来,Uniswap Labs就表示这对于v3用户而言是“重大胜利”。根据该平台的分析,Auto Router提高了13.97%的交易价格,按TVL计算,十大代币之间的交易价格提高了36.84%。(Crypto Potato)[2021/12/20 7:49:46]
f_{a}
Unit Protocol计划在2-3个月内向社区基金捐赠100万美元的DUCK代币:Unit Protocol在推特上宣布,计划在2-3个月内向社区基金(Community Fund)捐赠价值100万美元的代币(3333333枚DUCK),以支持教育活动,从而助力Unit Protocol发展。这些代币将从团队vesting multisig分配。该团队不参与社区基金。官方表示希望这将使该协议更加平衡和去中心化。据悉,Unit Protocol是一个去中心化借贷协议,允许用户使用各种代币作为抵押品来铸造USDP稳定币。[2021/3/7 18:22:34]
变量是对所有高于itick的区间的fee统计,
f_{b}
是对所有低于itick的区间的fee统计,因此在上述总公式中,我们从全局总累计手续费
f_{g}
中减去所有低于下界
i_{l}
的累计手续费,再减去所有高于上界
i_{u}
的累计手续费,便是
(i_{l},i_{u})
?之间的累计手续费。
UNI上线火币5分钟最高涨至5.5美元:火币“全球观察区”已于9月17日10:50(GMT+8)上线Uniswap(UNI)。截至10:55,UNI最高涨至5.5USDT,较于1USDT的开盘价,最高涨幅达到450%;UNI现报价4.33USDT,开盘5小时涨幅达335%%。行情波动较大,请注意风险控制。
据悉,上币首日,用户在火币全球站净充值(充币量-提币量,不含交易)满400个UNI,即送50USDT等值点卡(自发放之日起7日内有效)。[2020/9/17]
f_{o}
可以理解为一个计算单元,用于累积截止到
i
?tick的手续费,在它的初始化过程中,我们约定如下:
<img?src="https://img.jinse.com/4923026_image3.png"?auto";'>
再来看
f_{a}
的计算,分成了两段,可以理解为——
如果当前tick等于i或者高于i,此时从全局总手续费
f_{g}
中减去“累积到itick”的手续费
f_{o}(i)
,剩下的便是对所有高于itick的区间的fee统计;
但如果当前tick还未抵达i,此时根据对
f_{o}
的初始化定义为0,则所有高于itick的区间的fee统计尚未产生,为0。
同样对于
f_{b}
——
如果当前tick抵达或者超过了i,
f_{o}(i)
表示累计到i的手续费,也即对所有低于itick的区间的fee统计;
如果当前tick还未抵达i,对所有低于itick的区间的fee统计值即为当前的全局变量
f_{g}
。
通俗来概括,系统算法要统计某一个range内累计的手续费,
如果当前tick已经处于range内部,即
i_{l}\leqi_{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区间累计量”。
UniV3计算手续费的过程是一种从微观走向宏观的思想,它将空间划分成离散的,每一个时间刻度只会在一个离散空间上产生交易,从而产生手续费,每一个微观tick都在各自记录着自己从最低tick到自身这段区间内的累计手续费总和,然后供上述公式不断调用,以计算各种宏观结果。
UniV3已经改变了传统AMM对LP行为的设定,也不再基于全局流动性和份额来为每一个LP计算手续费收益。对V3来讲,它只关注在每一个tick里存在多少“虚拟”流动性,以及这些虚拟流动性产生了多少手续费,算得单位虚拟流动性对应的手续费值;在这个时空之下,我们再把视角切到具体每一个LP上,对于任何LP,都会存在一个“开仓”的区间设定,他在自己设定的区间提供了虚拟流动性,可能是一个tick,也可能是连续多个tick,从最简单的“一个tick”角度解释,系统会记得同一时空下每一个LP在此tick注入的虚拟流动性值,并为他们确定出一个比例,以此分得该tick内所有手续费累计。
<img?src="https://img.jinse.com/4923027_image3.png"?auto";'>
在实际情况中,LP们还会存在复杂的行为,比如注入/退出的时间纷杂、选择的range/tick纷杂。但UniV3的大道至简之处正是利用全局计算来屏蔽掉单个LP视角,只关心ticks视角和Position视角。在确定好上述所述的一系列全局状态变量的定义后,认真记录好每一笔swap交易在ticks中发生的情况,同时只记录每个tick内虚拟流动性的大小,以此为根本去提供swap交易公式以及swap后手续费如何分配给参与该tick的所有LP们。LP的复杂行为体现在空间的不连续性和时间的不统一性两方面,对于时间不统一性,UniV3还会引入Position这一级别的全局变量为每一个身份记录下其对range/tick加入/退出时手续费的统计,确保后来的LP不会参与到前序LP们已经累计的收益分配。
如果总结来讲,tick-level是对空间上发生的统计,确保起点一致的LP们fee分配,而Position-level是对时间上发生的统计,确保不同起点的LP们fee累计起点不一样。建议实现者深入V3代码,才能真正获得安全计算法。
最后,UniV3过于复杂,但大道至简,即便去模仿,模仿者依然需要下功夫深刻了解其“微积分”思维。这篇文章只选择了fee这一个角度呈现UniV3的“数学原理”,也是其实现集中流动性的核心逻辑。而在数学之外,我们有更多惊喜的“哲学意义”发现与大家分享,例如LPtoken的进化、NFT其实并不只属于艺术领域、V3会存在一个策略博弈、V3对基金池/合成资产的启示等等,当然也包括与MOV超导V2的“心有灵犀”——AMM的本质是连续性的无限网格,UniV3是在这个无限网格基础之上再实现了微观无限网格,是“无数网格机器人的叠加”,MOV超导V2则是在无限网格基础之上进行了更为宏观的无限网格,是超级网格。请期待下一篇《UniV3的自然哲学》。
作者:比原链研究院
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。