08.Uniswap V3简介
目录
核心摘要 (Key Takeaways)
- 解决核心痛点:Uniswap V3 的首要目标是解决 V2 版本资金利用率低下的问题。V2 将流动性平均分布在
(0, +∞)的价格区间,导致大部分资金在常规价格波动范围之外被闲置。 - 核心创新:集中流动性 (Concentrated Liquidity):V3 允许流动性提供者 (LP) 将资金集中在自定义的价格区间
[PA, PB]内。这使得在有限的资本下,可以实现与 V2 庞大资金池相同的交易深度,从而极大地提高了资本效率。 - LP 角色与凭证的转变:由于每个 LP 提供的价格区间和资金量都可能不同,其流动性头寸是独一无二的。因此,LP 凭证从 V2 的同质化代币 ERC-20 演变为 V3 的非同质化代币 ERC-721 (NFT)。这也要求 LP 从被动提供者转变为主动的策略管理者。
- 功能与风险的优化:集中流动性不仅能带来更高的手续费收益,还能在极端行情下提供更好的风险控制。此外,它还催生了新功能,如通过设置极窄的价格区间来模拟限价订单 (Range Orders)。
- 灵活的手续费机制:V3 摒弃了 V2 单一的 0.3% 手续费,引入了基于交易对波动性的多级费率(如 0.01%, 0.05%, 0.3%, 1%),为不同类型的资产(稳定币、主流币等)提供了更合理的定价。
1. Uniswap V2 的核心问题:资金利用率低下

Uniswap V2 的核心算法是 恒定乘积做市商模型,其公式为:
这个模型虽然简洁,但存在一个重大缺陷:资金利用率 (Capital Efficiency) 很低。这一问题也催生了其他竞品(如 Curve Finance)通过改变曲线算法来尝试解决。
- 理论基础:该公式支持从
0到+∞的无限大价格范围。 - 现实情况:任何代币(如 ETH)的价格通常只在一个相对狭窄的范围内波动(例如,1000美元至4000美元)。
- 问题所在:存放在当前主流交易范围之外的流动性,例如支持价格低于1000美元或高于4000美元的资金,几乎从未被使用,造成了严重的资本浪费。
案例:ETH/DAI 交易对的资金利用率计算
-
场景设定:
- 交易对:ETH/DAI
- 初始池子状态:
4500DAI (x) 和3ETH (y) - 当前市价:
1500DAI/ETH - 恒定乘积
-
情况一:价格下跌
- 假设 ETH 价格从
1500下跌到1300。 - 经过计算,交易后池子状态变为:
4192.5DAI () 和3.22ETH ()。 - 资金变动:
- DAI 减少量 ():
- ETH 增加量 ():
- 资金利用率 (以 DAI 计):
- 假设 ETH 价格从
-
情况二:价格上涨
- 假设 ETH 价格从
1500上涨到2200。 - 在这种涨幅较大的情况下,资金利用率也仅在 20% 左右。
- 假设 ETH 价格从
-
结论:即使在价格波动较大的情况下,V2 池中大部分资金仍然是闲置的。
极端情况:稳定币交易对
对于像 USDC/DAI 这样的稳定币交易对,价格波动范围极小(如 0.99 到 1.01)。在这种情况下,绝大部分流动性都分布在永远不会触及的价格点上,导致其资金利用率远低于波动性资产。
2. Uniswap V3 的核心解决方案:集中流动性 (Concentrated Liquidity)

为了解决资金利用率低下的问题,Uniswap V3 提出了革命性的 集中流动性 概念。

- 核心思想:允许流动性提供者 (LP) 不再将资金平均分布于
(0, +∞),而是可以自定义一个价格区间[PA, PB],并只在这个区间内提供流动性。 - 流动性分布形态:
- 个人 LP:提供一个矩形区间的流动性。
- 全体 LP:由于大量 LP 根据市场预期在当前价格附近集中提供流动性,所有个人头寸叠加后,整个池子的流动性分布形态通常类似于正态分布,在当前市场价附近流动性最深。
虚拟流动性 (Virtual Liquidity) 与实际储备 (Real Reserves)
V3 的数学实现依然基于 公式,但它引入了虚拟流动性的概念。

- 实际储备 (Real Reserves):为了支持价格在
[PA, PB]区间内波动,LP 实际上只需要提供在该区间内会被交易的资产量,即 和 。 - 虚拟流动性 (Virtual Liquidity):V3 的算法通过数学计算,将 LP 提供的有限的“实际储备”放大,创造出一条虚拟的 曲线。这条曲线的效果等同于 V2 中一个资金量大得多的池子,但仅在
[PA, PB]区间内有效。 - 效果:LP 可以用更少的资金,在指定的价格区间内,达到和 V2 模式下投入大量资金相同的流动性深度和交易滑点。
3. 集中流动性带来的核心变化与优势
3.1 显著提升资金利用率
案例:Alice (V2) vs. Bob (V3) 的投资回报对比
-
背景:
- 两人各有 100 万美元 资本。
- 市场预期:未来一年 ETH 价格在
[1000, 2500]美元区间内波动。
-
Alice 的策略 (Uniswap V2):
- 投入全部资本:
50万美元的 DAI 和价值50万美元的333.33ETH。 - 流动性范围:
(0, +∞)。 - 年化收益率 (APR):50%。
- 投入全部资本:
-
Bob 的策略 (Uniswap V3):
- 仅投入部分资本:
91,750DAI 和61.17ETH,将流动性集中在[1000, 2500]的价格区间。 - 剩余资本:约
81万美元保持闲置。 - 结果:由于 Bob 的资金高度集中在实际交易区间,他用少得多的资本获得了与 Alice 相同的手续费收入。
- 年化收益率 (APR):314% (因为本金更小)。
- 仅投入部分资本:

3.2 更好的风险管理
案例:ETH 归零的极端行情
-
Alice (V2):
- 当 ETH 价格趋近于零时,她的池子会不断卖出 DAI、买入 ETH。
- 最终,她持有的资产将几乎全部是归零的 ETH,而 DAI 已被耗尽。
- 损失:接近 100%。
-
Bob (V3):
- 他的流动性只在
[1000, 2500]区间有效。当 ETH 价格跌破1000美元时,他的头寸会自动转换为 100% 的 ETH,并且不再参与更低价格的交易。 - 虽然他这部分 LP 头寸的价值也会归零,但他最初闲置的 81 万美元资本安然无恙。
- 损失:仅限于他投入 LP 的那一小部分资金,整体亏损远小于 Alice。
- 他的流动性只在

3.3 LP 凭证的演变:从 ERC-20 到 ERC-721
- V2:所有 LP 在同一个池子里提供的流动性是等价的、可互换的,因此其凭证是同质化的 ERC-20 代币。
- V3:每个 LP 的头寸由资金量、价格区间
[PA, PB]共同定义,是独一无二、不可互换的。因此,LP 凭证变成了非同质化的 ERC-721 代币 (NFT)。
3.4 新的 LP 策略:主动管理
- V2:添加流动性后,LP 无需任何操作,是一种被动收入策略。
- V3:LP 需要主动管理自己的头寸。如果市场价格超出了设定的
[PA, PB]区间,LP 将停止赚取手续费。因此,LP 需要监控市场并根据判断调整自己的流动性范围,以最大化收益。
3.5 模拟限价订单 (Range Orders)
通过在当前市价之外设置一个极窄的价格区间,可以模拟出传统交易所的限价单功能。
sequenceDiagram
participant User as 用户/LP
participant Market as 市场
participant V3_Pool as Uniswap V3 池
User->>V3_Pool: 1. 创建限价单:在当前价下方[PA, PB]区间存入DAI
Note right of User: 目标:用DAI在低价买入ETH
Market->>Market: 2. ETH价格随市场波动下跌
Market->>V3_Pool: 3. 市场价进入[PA, PB]区间
activate V3_Pool
V3_Pool->>V3_Pool: 4. 开始将DAI逐步兑换为ETH
deactivate V3_Pool
Market->>V3_Pool: 5. 市场价跌穿PA
activate V3_Pool
V3_Pool->>User: 6. 完成兑换:用户头寸变为100% ETH
deactivate V3_Pool
Note right of User: 成功实现限价买入
sequenceDiagram
participant User as 用户/LP
participant Market as 市场
participant V3_Pool as Uniswap V3 池
User->>V3_Pool: 1. 创建限价单:在当前价下方[PA, PB]区间存入DAI
Note right of User: 目标:用DAI在低价买入ETH
Market->>Market: 2. ETH价格随市场波动下跌
Market->>V3_Pool: 3. 市场价进入[PA, PB]区间
activate V3_Pool
V3_Pool->>V3_Pool: 4. 开始将DAI逐步兑换为ETH
deactivate V3_Pool
Market->>V3_Pool: 5. 市场价跌穿PA
activate V3_Pool
V3_Pool->>User: 6. 完成兑换:用户头寸变为100% ETH
deactivate V3_Pool
Note right of User: 成功实现限价买入
sequenceDiagram
participant User as 用户/LP
participant Market as 市场
participant V3_Pool as Uniswap V3 池
User->>V3_Pool: 1. 创建限价单:在当前价下方[PA, PB]区间存入DAI
Note right of User: 目标:用DAI在低价买入ETH
Market->>Market: 2. ETH价格随市场波动下跌
Market->>V3_Pool: 3. 市场价进入[PA, PB]区间
activate V3_Pool
V3_Pool->>V3_Pool: 4. 开始将DAI逐步兑换为ETH
deactivate V3_Pool
Market->>V3_Pool: 5. 市场价跌穿PA
activate V3_Pool
V3_Pool->>User: 6. 完成兑换:用户头寸变为100% ETH
deactivate V3_Pool
Note right of User: 成功实现限价买入sequenceDiagram
participant User as 用户/LP
participant Market as 市场
participant V3_Pool as Uniswap V3 池
User->>V3_Pool: 1. 创建限价单:在当前价下方[PA, PB]区间存入DAI
Note right of User: 目标:用DAI在低价买入ETH
Market->>Market: 2. ETH价格随市场波动下跌
Market->>V3_Pool: 3. 市场价进入[PA, PB]区间
activate V3_Pool
V3_Pool->>V3_Pool: 4. 开始将DAI逐步兑换为ETH
deactivate V3_Pool
Market->>V3_Pool: 5. 市场价跌穿PA
activate V3_Pool
V3_Pool->>User: 6. 完成兑换:用户头寸变为100% ETH
deactivate V3_Pool
Note right of User: 成功实现限价买入
流程解释: 该时序图展示了用户如何利用 V3 实现限价买入。
- 设置订单:用户在当前市场价下方设定一个非常狭窄的价格范围
[PA, PB],并只存入单一资产(如 DAI)。 - 市场触发:当市场价格下跌并进入用户设定的
[PA, PB]区间时,订单被激活。 - 自动执行:Uniswap V3 池会利用该流动性,将用户的 DAI 逐步兑换成另一种资产(如 ETH)。
- 完成订单:如果价格完全跌穿该范围(低于
PA),用户的 DAI 将被 100% 兑换成 ETH,从而实现了在特定价格区间“买入”ETH 的限价单效果。反之,在当前价上方设置区间并存入 ETH,则可实现限价卖出。
4. Uniswap V3 的另一项重要创新:灵活的手续费等级 (Flexible Fee Tiers)
V3 认识到不同类型的交易对风险和波动性不同,因此应收取不同的手续费。
-
背后的逻辑:
- 无常损失 (Impermanent Loss) 与价格波动成正比。
- 高波动性资产(如山寨币):应收取更高手续费,以补偿 LP 面临的巨大无常损失风险。
- 低波动性资产(如稳定币):无常损失极小,应收取更低手续费,以鼓励更多交易,降低用户成本。
-
V3 提供的费率等级:
- 0.01% (万分之一):适用于稳定币对稳定币,如 USDC/DAI。
- 0.05% (万分之五):适用于主流币对稳定币等。
- 0.3% (千分之三):适用于主流币对,如 ETH/DAI。
- 1%:适用于高波动性的山寨币或新兴代币。
-
协议管理费:协议可以从 LP 赚取的手续费中抽取 10% 到 25% 作为管理费。