值得信赖的区块链资讯!
uniswap – V3技术白皮书导读
uniswap V3一公布就引发广泛关注。相对V2来说,逻辑和代码都复杂一些。V3的核心是通过盘口区间提供流动性(集中式流动性),解决LP提供流动性时的资金利用率的问题。什么是资金利用率?V3如何推导区间流动性的计算公式?如何理解流动性?如何计算swap费用?本文先从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的技术特点,最核心的概念是"Concentrated Liquidity" (集中式流动性)。
先看看uniswap V2的资金利用率:
上图为资金池中的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就是尝试解决资金利用率低的问题。想法比较简单,所有资金可以只添加到某个区间,只添加到有可能价格波动到的区间范围。如何在某个区间添加流动性并提供swap功能是uniswap V3的重点。先从Virtual Reserves说起。
uniswap的交易采用的乘积固定模型(x*y=k)。所谓的虚拟资金池(Virtual Reserves),是指还在乘积固定曲线上,只提供某个区间流动性的资金池:
图中的墨绿色的曲线就是虚拟资金池满足的乘积固定曲线。事实上需要的资金的曲线如图中的橘黄色。橘黄色的曲线公式如下图:
你可以想象成虚拟资金曲线在x/y轴进行平移,使得a/b点和x/y轴重合。也就是用一定量的资金就能达到“虚拟”的交易曲线的效果。
如何计算在某个区间提供虚拟资金池,先要从深入理解流动性开始。
乘积固定的交易模型,满足资金池中的两种代币金额满足:x*y = K。如果设定K=L^2的话,x*y = L^2。L就是我们说的流动性。由乘积固定的交易模型得出如下的公式:
在已知L和sqrt(P)的情况下,也能推导出资金需求量x和y。
通过公式6.6,在流动性不变的情况下(不添加删除流动性),流动性可以看成是单位“价格波动”的y资金量的变化。”价格波动“打上引号是因为事实上是sqrt(P)的变化。
这个是uniswap V3核心公式(6.7),用相对值(资金和价格相对值)来计算流动性。所谓的流动性,就是单位“价格变化”的资金量。在一定的交易量的情况下,如果流动性好,价格变化就小,流动性不够的话,价格波动就大。
特别注意的是,一个区间上的流动性和V2的普适的流动性不同。一个区间上的流动性,重点在“区间上”。不同区间的流动性没有可比性。V2的流动性和区间上的流动性的区别如下图:
V2的流动性是“普适”的,在所有价格点上流动性相同。V3的流动性是由一系列不同区间上的流动性组成。相对来说,在当前价格左右的流动性比较高。流动性提供者LP只有提供了可供交易的流动性才能获取交易费。为了获取更多的交易费,为了提高资金的利用率,流动性提供者会将资金提供在合理的价格波动范围内。也就是说,在某个区间swap交易产生的手续费,只有该区间流动性提供者才能获取手续费。为了计算每个区间获取的手续费,引入了Tick的概念和计算方法。
在区间上提供流动性,带来很多复杂的情况:区间和区间的重叠覆盖。因为不同区间的流动性没有可比性,某个交易费并不能混入到流动资金中,等删除流动性时候一并提取。为了解决这个问题,uniswap V3引入了Tick的概念。交易费用实时结算并单独记录,并不混入流动资金中。虽然整个区间和区间的流动性没有可比性,但是,在具体的某个价格点上(一个价格片上),流动性是可比较的。uniswap V3将整个价格范围(负无穷到正无穷)分成一个个的Tick(价格点):
后一个价格点的价格是前一个价格点价格基础上浮动万分之一。
每个Tick也有一个唯一的序号。区间(Position)可以由两个Tick表示。逻辑上交易手续费可以一个个的Tick计算,并在每一个Tick上根据流动性的占比进行交易分配。先看看一个Tick范围的swap的计算。
假设有一个很小的量的y,需要swap为x。通过6.13的公式,可以计算出因为y的变化导致的价格变化。
再利用6.15的公式可以算出换取的x的量。
uniswap V3针对同样的交易对设置了不同的交易费:0.05%,0.3%以及1% (还可以添加其他费率)。如果是从Y换取X,则在换取之前先扣除手续费再进行上述的交换。
在同一交易池中只支持一种费率。也就是说,在一个交易池中支持不同的价格区间,但是都是同样的费率。如果需要添加同样交易对的不同交易费的交易池,必须创建新的交易池。
接下来,深入讲解一下 添加/删除流动性以及交易费用的计算逻辑。
V3的添加/删除流动性是当前价格情况下在某个区间添加或者删除流动性。所有的流动性添加/删除流动性采用如下的公式:
注意,价格变化并不是指区间的大小,而是在某个区间上提供流动性,相对当前价格,“需要相应资金变化”对应的价格变化。
分为三种情况,想要添加的流动性区间和当前价格的关系。
-
当前价格处于流动性价格区间 (il <= ic < iu)
因为价格在区间范围内,如果价格滑动到il,则需要提供y资金。如果价格滑动到iu,则需要提供相应的x资金。所以,对于delta_Y来说的,价格变化为sqrt(P) – sqrt(p(il));对于delta_X来说,价格变化为1/sqrt(P) – 1/sqrt(p(iu))。
-
当前价格低于流动性价格区间
因为当前价格远低于il,即使从当前价格向iu滑动,也只需要x的资金,不需要y的资金。所以,在这种情况下,delta_Y = 0。因为从il滑向iu需要整个区间的x的资金,对于delta_X来说,价格变化为1/sqrt(il) – 1/sqrt(p(iu))。
-
当前价格高于流动性价格区间
和第一种情况类似,不重复分析了。
uniswap最复杂的逻辑是计算交易费用并分配。在添加和删除流动性之前需要将相应的交易费用提取。
-
Tick上的总流动性
在某个Tick上可以存在多个区间。在计算交易费用时,需要平摊这些费用给所有在这个Tick上多个区间的总的流动性。在每个区间的边界的Tick上记录下delta_L(所有以这个Tick为边界的区间的流动性总和)。
存在一个全局状态:liquidity,保存当前价格对应Tick的流动性总和。当价格波动,穿过某个Tick时,会进行流动性的增加或者减少(取决于价格波动方向)。举例来说,价格从左到右穿过区间,当穿过区间的第一个Tick时,流动性需要增加,穿出最后一个Tick时,流动性需要减少,中间的Tick都没有流动性的增加和减少(delta_L为0)。
-
区间(Position)上的交易费用率
计算一个区间上的交易费用率,采用总的费用率减去区间外的费用率的方法。在一个区间的边界Tick上记录feeGrowthOutside。所谓的feeGrowthOutside,就是“另外”一个方向上总的费用率。另外的一个方向是相对穿过当前Tick的方向而言。当价格从左到右穿过一个Tick,feeGrowthOutside指的是Tick左边所有区间的费用率。简单的说,就是价格要去方向的相反方向所有区间的费用率。feeGrowthOutside用fo表示。因为fo是一个Tick的两个方向的总的费用率,两个方向的费用率的总和肯定是等于fg(全局的费用率)。所以当穿过一个Tick时,这个Tick上的fo要进行翻转:
当一个区间创建时,区间边界上Tick的fo需要初始化:
如果当前的价格大于Tick的价格时,因为即使当前价格在设置的区间内,但是之前费用也不会分到,所以,可以简单的假想为所有的费用发生在Tick价格之下,也就是fo=fg。如果Tick的价格大于当前价格,价格还没有穿过Tick,因为假设了之前所有发生的费用发生在Tick价格之下,Tick之上是没有费用的,所以fo=0。在理解了这些逻辑的基础上,在swap的过程中,随着价格的波动,一个区间上,超过最高Tick的费用率以及低于最低Tick的费用率可以用如下的方式计算:
以低于最低Tick的费用率的计算为例,如果ic>=i (当前的价格是高于最低Tick的),低于Tick的所有的费用率就是fo(定义如此)。如果ic<i的情况下,fo记录的是高于Tick的所有费用率,所以需要翻转,即fg – fo。在获取了一个区间外的所有费用的情况下,计算本区间的费用率:
获取的费用率的基础上,用费用率乘以区间的流动性可以计算出该区间收取的费用。
总结:
uniswap V3版本核心思想是流动性集中。流动性提供者可以在某个区间提供流动性,提高资金使用率。在某个区间获取的交易费,由所有在该区间的流动性提供者均分。uniswap V3设计了区间粒度-Tick,并且推导了流动性添加/删除以及费用计算的过程。在之基础上,uniswap V3也更新了价格预言机的实现。
比推快讯
更多 >>- 数据:4000 枚 ETH 从 Chun Wang (F2Pool) 转出,价值约 1189 万美元
- 美国会计准则委员会计划 2026 年探索将部分稳定币列为“现金等价物”
- 数据:ETH 全网合约持仓量 24h 减少 5.48%
- 分析师:BTC 大资金换手积极性下降,链上单笔交易金额较月中跌近 47%
- Shaw:量子计算对比特币的威胁是无稽之谈,炒作者一无所知
- 数据:过去 24 小时全网爆仓 1.08 亿美元,多单爆仓 5,756.54 万美元,空单爆仓 4,994.82 万美元
- 月之暗面完成 5 亿美元 C 轮融资,IDG 领投
- Coinbase 高管警告美国稳定币政策或让中国在全球支付竞争中占优
- 慢雾:警惕浏览器历史记录污染攻击,恶意软件攻击再次抬头
- 慢雾:钓鱼攻击仍是 Q4 资金被盗首因,共收到 300 起被盗案件追回 100 万美元
- Neo 创始人决裂:达鸿飞被指未履行财务披露承诺,Erik 被控独揽基金会财权
- 交易所 XRP 供应量降至 7 年低点,由 37.6 亿枚降至 16 亿枚
- Gate Alpha 开启积分空投第 136 期,持有相应积分可抢先领取 150 或 500 OOOO
- dYdX:已回购约 750 万枚 DYDX,总价值约 135 万美元
- Upbit 将新增支持 CRO 作为可质押数字资产
- Michael Saylor、Tom Lee 和 Arthur Hayes 的 2025 BTC 价格预测均未实现
- 中国银行:1 月 1 日起数字人民币实名钱包余额将计付利息
- 以太坊主网单日交易量创下 220 万笔新纪录,手续费平均降至 17 美分
- Arthur Hayes:流动性可能已在 11 月触底,是时候开始上涨了
- 山寨空军车头LIT 空单浮亏转盈后再次加仓,短时增持超 200 万美元
- 以太坊充币情绪加剧,过去 24 小时 CEX 净流入 10.58 万枚 ETH
- 2026 年美国加密监管关键时间点一览
- Arthur Hayes:购买 ZEC 就应使用隐私保护功能,否则投资将毫无意义
- 币安:今日 15:00(UTC+8)可领取币安 Alpha 空投,空投门槛 240 个 Alpha 积分
- 数据:GMGN 聪明钱榜单显示 KABUTO 过去 24h 获净流入 2 千美元
- 特朗普牌手机推迟发布,因美国政府停摆导致交付延迟
- 币安披露新型骗局:用户伪造“高管诈骗”证据,试图诱导客服表态
- 马斯克承诺大幅提升 X 平台创始者收入奖励并标记 Solana 顾问负责处理
- A 股数字货币概念午后震荡走强,拉卡拉涨超 10%
- 特朗普前顾问改口:关税本质是隐形消费税,或拖累经济与就业
- Pacifica 全线交易手续费减半,每积分获取成本或将降至 0.2 美元
- OneKey 创始人:公司已从烧钱模式迈入增长阶段,将全面转型 AI 原生硬件金融公司
- OpenAI 人均股票薪酬达 150 万美元,创科技初创公司纪录
- 数据:当前加密恐慌贪婪指数为 20,处于极度恐慌状态
- 数据:监测到 3,374.43 万 USDT 转入 Binance
- 终极空头巨鲸减仓 LIT 空单头寸,入场均价降至 2.8 美元
- 机器人和 AI 开放组织 Fabric 基金会成立,OpenMind 为其合作伙伴
- 比特币提币情绪延续,过去 24 小时 CEX 净流出 3,451.64 枚 BTC
- 全球多地金融市场今日提前休市
- 数据:STRAX 24 小时跌超 13%,AIXBT 涨超 6%并触及今日新高
- 某鲸鱼平仓 1648 万美元 BTC 多单头寸,盈利 6.3 万美元
- 美国佛罗里达州议员提出创建和管理战略加密货币储备的两项法案
- RootData:IN 将于一周后解锁价值约 237 万美元的代币
- 币安将于 2026 年 1 月 2 日移除 ARKM/BNB 等 6 个现货交易对
- Upbit 披露 Dunamu & Partners 2025 年 12 月数字资产持仓:持有约 2081.85 枚 BTC,暂无出售记录
- Arthur Hayes 从币安提取总计约 201 万美元代币
- Gate 打新业务 2025 年加速成型,数据驱动引擎推动生态全面增长
- 数据:加密板块多数上涨,SocialFi 板块涨超 3%,Layer2 及 DeFi 板块小幅下跌
- 数据:美国 XRP 现货 ETF 单日总净流入 1555 万美元
- 2026 年降息路径成加密市场关键变量,美联储分歧正日益加剧
比推专栏
更多 >>观点
比推热门文章
- 数据:4000 枚 ETH 从 Chun Wang (F2Pool) 转出,价值约 1189 万美元
- 美国会计准则委员会计划 2026 年探索将部分稳定币列为“现金等价物”
- 数据:ETH 全网合约持仓量 24h 减少 5.48%
- 分析师:BTC 大资金换手积极性下降,链上单笔交易金额较月中跌近 47%
- Shaw:量子计算对比特币的威胁是无稽之谈,炒作者一无所知
- 数据:过去 24 小时全网爆仓 1.08 亿美元,多单爆仓 5,756.54 万美元,空单爆仓 4,994.82 万美元
- 2025 美股年鉴:高墙新耸,围栏坍塌,2026 如何寻找新秩序的锚点?(上)
- 月之暗面完成 5 亿美元 C 轮融资,IDG 领投
- Coinbase 高管警告美国稳定币政策或让中国在全球支付竞争中占优
- 慢雾:警惕浏览器历史记录污染攻击,恶意软件攻击再次抬头
比推 APP



