AMM原理与无常损失深度解析
Week 2 DeFi核心机制开篇,深入理解恒定乘积公式x*y=k、流动性提供机制、无常损失计算与规避策略
Week 2 开始:DeFi核心机制
本周学习路径
Week 2: DeFi核心机制
├── Day 8: AMM原理(x*y=k)、无常损失 ✅ ← 今天
├── Day 9: 订单簿vs AMM对比
├── Day 10: 借贷协议原理(超额抵押/清算)
├── Day 11: 稳定币机制(USDC/DAI/FRAX)
├── Day 12: Dune入门(1) - SQL基础
├── Day 13: Dune入门(2) - 写简单查询
└── Day 14: 复习 + EthPrice多币种支持核心概念
什么是 AMM?
AMM (Automated Market Maker) = 自动做市商
> 传统金融类比:想象一个永不休息的兑换柜台,没有工作人员,只有一个数学公式在自动计算汇率。你放入A币,公式自动算出该给你多少B币。
传统订单簿交易所 vs AMM
─────────────────────────────────────────────
买家挂单 ←→ 卖家挂单 流动性池
需要撮合匹配 公式自动定价
可能没有对手方 永远有流动性
价格由订单决定 价格由公式决定恒定乘积公式 x * y = k
公式解读
x * y = k
x = 池中 Token A 的数量
y = 池中 Token B 的数量
k = 恒定乘积(流动性添加后确定)为什么叫"恒定乘积"?
无论怎么交易,x 和 y 的乘积始终保持不变(忽略手续费)。
图形理解
价格 y
│
│ ╲
│ ╲ ← 恒定乘积曲线 (双曲线)
│ ╲
│ ╲
│ ╲___________
│ ╲
└──────────────────────── 数量 x
特点:
1. 曲线永远不会触及坐标轴(无限流动性)
2. 靠近原点的地方曲线很陡(大单滑点高)
3. 远离原点曲线平缓(小单滑点低)交易示例
初始状态:
┌─────────────────────────────────┐
│ 池子:1000 ETH + 2,000,000 USDC │
│ k = 1000 × 2,000,000 │
│ k = 2,000,000,000 │
│ 价格:2000 USDC/ETH │
└─────────────────────────────────┘
用户用 20,000 USDC 买 ETH:
Step 1: 新的 USDC 数量
y_new = 2,000,000 + 20,000 = 2,020,000
Step 2: 根据 k 计算新的 ETH 数量
x_new = k / y_new
= 2,000,000,000 / 2,020,000
= 990.099 ETH
Step 3: 用户获得的 ETH
ETH_out = 1000 - 990.099 = 9.901 ETH
Step 4: 实际成交价
价格 = 20,000 / 9.901 = 2020 USDC/ETH
滑点 = (2020 - 2000) / 2000 = 1%滑点的本质
滑点 = 预期价格 vs 实际成交价 的差距
影响因素:
├── 交易规模:越大滑点越高
├── 池子深度:越浅滑点越高
└── 价格波动:波动期间滑点更高
┌─────────────────────────────────────┐
│ 交易规模占池子比例 │ 预期滑点 │
├─────────────────────────────────────┤
│ 0.1% │ ~0.1% │
│ 1% │ ~1% │
│ 5% │ ~5% │
│ 10% │ ~11% │
└─────────────────────────────────────┘流动性提供 (LP)
LP 的角色
传统做市商 AMM LP
──────────────────────────────────────
专业机构 任何人
主动报价 被动提供
复杂策略 存入即可
高门槛 无门槛添加流动性流程
1. LP 存入等值的两种代币
┌──────────────────────────────┐
│ 存入 10 ETH + 20,000 USDC │
│ (按当前池子比例 1:2000) │
└──────────────────────────────┘
↓
2. 获得 LP Token(流动性凭证)
┌──────────────────────────────┐
│ 收到 UNI-V2 LP Token │
│ 代表池子份额的所有权 │
└──────────────────────────────┘
↓
3. 赚取交易手续费
┌──────────────────────────────┐
│ Uniswap V2: 0.3% 手续费 │
│ 按 LP Token 份额分配 │
└──────────────────────────────┘LP Token 的本质
LP Token = 流动性所有权证明
特点:
├── ERC20 代币,可转让
├── 代表池子的份额比例
├── 可用于 DeFi 组合(质押、借贷)
└── 燃烧后可取回资产+手续费无常损失 (Impermanent Loss)
什么是无常损失?
> 简单说:你把钱存进池子当 LP,结果价格变动后,你的资产还不如单纯持有(HODL)值钱。这个差距就是无常损失。
为什么叫"无常"?
"无常" = Impermanent = 暂时的、可恢复的
├── 价格回到初始比例 → IL 消失
├── 价格持续偏离 → IL 变成"永久损失"
└── 只要没取出 → 只是账面损失IL 计算公式
IL = 2 * √(price_ratio) / (1 + price_ratio) - 1
price_ratio = 当前价格 / 初始价格IL 速查表
┌──────────────────────────────────────┐
│ 价格变化倍数 │ 无常损失 │ 说明 │
├──────────────────────────────────────┤
│ 1.00x │ 0% │ 无变化 │
│ 1.25x │ 0.6% │ 涨25% │
│ 1.50x │ 2.0% │ 涨50% │
│ 2.00x │ 5.7% │ 翻倍 │
│ 3.00x │ 13.4% │ 涨3倍 │
│ 4.00x │ 20.0% │ 涨4倍 │
│ 5.00x │ 25.5% │ 涨5倍 │
│ 0.50x │ 5.7% │ 跌50% │
│ 0.25x │ 20.0% │ 跌75% │
└──────────────────────────────────────┘
注意:涨跌方向不影响IL,只看变化幅度!IL 图解示例
场景:存入 1 ETH + 2000 USDC (ETH=$2000)
总价值 = $4000
情况1: 价格翻倍 ETH = $4000
─────────────────────────────────
HODL策略:
├── 1 ETH = $4000
├── 2000 USDC = $2000
└── 总计 = $6000
LP策略 (池子自动再平衡):
├── 池子变成 ~0.707 ETH + ~2828 USDC
├── 0.707 × $4000 = $2828
├── 2828 USDC = $2828
└── 总计 = $5656
IL = ($6000 - $5656) / $6000 = 5.7%为什么会发生 IL?
AMM 的自动再平衡机制:
价格上涨时:
├── 套利者买走池中的 ETH
├── 池中 ETH 减少,USDC 增加
└── 你的份额中 ETH 占比下降
价格下跌时:
├── 套利者卖 ETH 到池中
├── 池中 ETH 增加,USDC 减少
└── 你的份额中 USDC 占比下降
本质:你总是被动持有"表现较差"的那个资产更多!如何应对 IL?
策略1: 选择波动性相近的交易对
├── 稳定币对 (USDC/USDT) → IL ≈ 0
├── 相关资产 (ETH/stETH) → IL 很低
└── 高波动对 (ETH/SHIB) → IL 可能很高
策略2: 高手续费覆盖 IL
├── 手续费收入 > IL → 仍然盈利
└── 高交易量的池子更有利
策略3: 挑选市场时机
├── 震荡行情 → IL 较低,适合 LP
└── 单边行情 → IL 较高,谨慎 LP
策略4: 使用 IL 保护协议
├── Bancor (已关闭)
└── 一些新协议提供 IL 保险链上实操记录
测试网操作步骤
1. 打开 app.uniswap.org
2. 连接 MetaMask,切换到 Sepolia 测试网
3. 确保有测试 ETH(Sepolia Faucet)
4. 选择 Pool → New Position
5. 选择 ETH 和任意测试代币
6. 输入数量,确认添加流动性
7. 查看获得的 LP Token
8. 等待一段时间后 Remove Liquidity
9. 对比取出数量与存入数量观察要点
□ LP Token 数量如何计算?
□ 添加流动性的 Gas 消耗
□ 池子份额占比显示
□ 移除流动性后代币数量变化今日思考
Q1: AMM 真的比订单簿好吗?
各有适用场景:
- AMM 适合长尾资产、无需许可、被动流动性
- 订单簿适合高频交易、大单、价格发现
Q2: 无常损失这么可怕,为什么还有人当 LP?
- 手续费收入可能覆盖 IL
- 流动性挖矿激励(额外代币奖励)
- 相信价格会回归("无常"变"归零")
- 对冲策略配合使用
Q3: Uniswap V3 的集中流动性如何改变 IL?
- V3 允许设置价格区间
- 区间内资本效率更高
- 但价格出区间后完全暴露于 IL
- 需要更积极的管理
面试题准备
Q: 什么是 AMM?和订单簿有什么区别?
30秒版本:
> AMM 用数学公式(如 x*y=k)自动定价,无需撮合。优点:无许可、永远有流动性、长尾资产友好。缺点:大单滑点高、有无常损失。订单簿适合专业交易和大单,AMM 适合去中心化和长尾市场。
2分钟版本:
> AMM 是 DeFi 的核心创新。传统订单簿需要买卖双方报价撮合,而 AMM 用流动性池+数学公式自动执行交易。
>
> Uniswap 用的是恒定乘积公式 x*y=k。当你买入 Token A,池中 A 减少,根据公式 B 必须增加来保持 k 不变。价格就是两种代币的比例。
>
> 主要区别:
> 1. 流动性来源:订单簿靠做市商主动报价,AMM 靠被动 LP
> 2. 准入门槛:订单簿做市需要资质,AMM 任何人可以参与
> 3. 价格发现:订单簿更精确,AMM 依赖套利者
> 4. 适用场景:大单和高频用订单簿,长尾资产和 DeFi 组合用 AMM
>
> 从产品角度看,AMM 降低了做市门槛,让任何 ERC20 代币都能获得流动性,这是 DeFi 爆发的基础。
Q: 什么是无常损失?如何减轻?
30秒版本:
> IL 是 LP 因价格变动导致的资产贬值,相比单纯持有的损失。价格变化越大 IL 越高。减轻方法:选择波动相近的交易对、选高手续费池覆盖 IL、或用稳定币对。
学习资源
| 资源 | 链接 | 说明 |
|---|---|---|
| Uniswap V2 白皮书 | uniswap.org/whitepaper.pdf | 必读,10页 |
| Finematics AMM | YouTube | 最佳视频讲解 |
| Pintail IL文章 | Medium | IL 经典文章 |
| IL 计算器 | dailydefi.org | 可视化工具 |
明日预告
Day 9: 订单簿 vs AMM 深度对比
- 体验 dYdX 或 GMX 的订单簿交易
- 对比两种模式的用户体验
- 完成面试题答案:AMM vs 订单簿完整版