Uniswap V3 —— 概述
Uniswap V3 于 2021 年 5 月上线,引入了**集中流动性(Concentrated Liquidity)**概念,彻底改变了 AMM 的设计范式,将资本效率提升了数百倍。
1. Uniswap V3 简介
1.1 设计目标
V3 的核心目标是解决 V2 的资本效率问题。在 V2 中,流动性均匀分布在 (0, ∞) 的价格范围内,但实际交易通常发生在很窄的价格区间,导致大量资金闲置。
1.2 V3 核心创新
| 创新点 | 说明 |
|---|---|
| 集中流动性 | LP 可自定义价格范围 |
| 多费率层级 | 0.05% / 0.3% / 1% |
| NFT 头寸 | 每个头寸是独立的 NFT |
| 改进的预言机 | 更高效的 TWAP 实现 |
2. 集中流动性
2.1 V2 vs V3 流动性分布
V2:流动性均匀分布在整个价格范围
1 | 流动性 |
V3:流动性集中在自定义范围
1 | 流动性 |
2.2 资本效率对比
假设 ETH 价格为 2000 USDC,LP 想在 1500-2500 范围提供流动性:
| 版本 | 所需资金 | 有效流动性 | 资本效率 |
|---|---|---|---|
| V2 | $20,000 | $20,000 | 1x |
| V3 | $2,500 | $20,000(等效) | 8x |
V3 用更少的资金实现相同的流动性深度。
2.3 价格范围选择
LP 需要权衡:
1 | ┌─────────────────────────────────────────────────────────┐ |
常见策略:
- 稳定币对:极窄范围(0.99 - 1.01)
- 主流币对:当前价格 ±20-50%
- 波动币对:宽范围或多头寸覆盖
3. Tick 机制
3.1 什么是 Tick
V3 将连续的价格空间离散化为 Tick,每个 Tick 代表一个价格点:
1 | 价格 = 1.0001^tick |
3.2 Tick 与价格范围
LP 设置的价格范围对应 [tickLower, tickUpper]:
1 | 价格范围 [1500, 2500] USDC/ETH |
3.3 Tick 间距
不同费率对应不同的 Tick 间距,限制可用的 Tick 位置:
| 费率 | Tick 间距 | 说明 |
|---|---|---|
| 0.05% (500) | 10 | 适合稳定币,需要精细价格 |
| 0.30% (3000) | 60 | 通用交易对 |
| 1.00% (10000) | 200 | 长尾/波动资产 |
1 | 费率 0.3%,tick 间距 60: |
4. 多费率层级
4.1 费率选择
V3 支持为同一交易对创建多个不同费率的池子:
1 | ETH/USDC 可以有: |
4.2 费率适用场景
| 费率 | 适用场景 | 示例 |
|---|---|---|
| 0.05% | 稳定币、高度相关资产 | USDC/USDT, stETH/ETH |
| 0.30% | 主流交易对 | ETH/USDC, WBTC/ETH |
| 1.00% | 长尾资产、高波动 | 新发行代币 |
4.3 池子选择策略
交易者通常选择流动性最好的池子,而非费率最低的池子,因为滑点可能比手续费影响更大。
5. NFT 头寸
5.1 为什么使用 NFT
V2 中,所有 LP 的流动性范围相同(全范围),可以用同质化的 ERC-20 LP Token 表示。
V3 中,每个 LP 的价格范围不同,头寸不可互换,因此使用 ERC-721 NFT:
1 | V2 LP Token(ERC-20): |
5.2 头寸属性
每个 NFT 头寸包含:
1 | struct Position { |
5.3 头寸管理
V3 的头寸管理更加灵活:
- 多头寸策略:同一 LP 可创建多个不同范围的头寸
- 独立管理:每个头寸可独立添加/移除流动性
- NFT 可转让:头寸可以在二级市场交易
6. V2 vs V3 对比
6.1 特性对比
| 特性 | V2 | V3 |
|---|---|---|
| 流动性范围 | 全范围 (0, ∞) | 自定义 [tickLower, tickUpper] |
| 资本效率 | 1x | 最高 4000x |
| 流动性凭证 | ERC-20 LP Token | ERC-721 NFT |
| 费率 | 固定 0.3% | 0.05% / 0.3% / 1% |
| 无常损失 | 固定模式 | 范围越窄,无常损失越大 |
| 复杂度 | 简单 | 复杂,需要主动管理 |
6.2 收益对比
1 | 假设:ETH/USDC 池,24h 交易量 $10M |
6.3 适用场景
| 场景 | 推荐版本 | 原因 |
|---|---|---|
| 被动投资 | V2 | 无需管理 |
| 稳定币做市 | V3 | 极高资本效率 |
| 专业做市 | V3 | 精细策略控制 |
| 长尾资产 | V2 | 简单,适合低流动性 |
7. 无常损失
7.1 V3 中的无常损失
V3 的集中流动性放大了无常损失:
1 | 范围 ±50%:无常损失 ≈ V2 的 2x |
7.2 范围外的情况
当价格移出 LP 的范围时:
- 流动性停止赚取手续费
- 头寸变成 100% 单一代币
1 | 设置范围:[1800, 2200] USDC/ETH |
8. 价格预言机改进
8.1 V3 预言机特点
V3 的预言机相比 V2 更高效:
| 特性 | V2 | V3 |
|---|---|---|
| 存储 | 单个累积值 | 环形数组 |
| 历史查询 | 需外部存储 | 原生支持 |
| Gas 成本 | 首次交易高 | 更均匀分摊 |
8.2 Observation 数组
V3 使用环形数组存储历史价格观察点:
1 | struct Observation { |
9. 总结
9.1 V3 优势
- 资本效率:相同资金提供更深的流动性
- 灵活性:自定义价格范围和费率
- 精细控制:专业做市策略支持
9.2 V3 挑战
- 复杂性:需要主动管理头寸
- Gas 成本:操作比 V2 更贵
- 无常损失:集中流动性放大损失风险
9.3 选择建议
1 | ┌─────────────────────────────────────────────────────────┐ |