返回知识库
Day 8

AMM原理与无常损失深度解析

Week 2 DeFi核心机制开篇,深入理解恒定乘积公式x*y=k、流动性提供机制、无常损失计算与规避策略

2025-01-16
DeFiAMMUniswap无常损失LPWeek2

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 AMMYouTube最佳视频讲解
Pintail IL文章MediumIL 经典文章
IL 计算器dailydefi.org可视化工具

明日预告

Day 9: 订单簿 vs AMM 深度对比

  • 体验 dYdX 或 GMX 的订单簿交易
  • 对比两种模式的用户体验
  • 完成面试题答案:AMM vs 订单簿完整版