自动做市商
自动做市商是通过数学公式和流动性池自动定价的去中心化交易机制
#type / concept
#status / growing
#society / economy
[!info] related notes
- 所属 MOC: 加密金融与传统金融映射MOC
- 前置概念: 做市商, 稳定币
- 并列概念: 链上借贷, 抵押与清算
- 易混淆概念: 传统做市商、订单簿交易所
- 关系笔记: 传统金融功能与链上映射
自动做市商
一句话定义
自动做市商(AMM)是用数学公式取代传统订单簿,让任何人都能通过向流动性池提供资金来充当做市商,实现无需对手方的自动交易。
核心机制 / 工作原理
传统做市商 vs AMM
在传统金融市场,做市商(Market Maker)是专业机构,持续挂出买卖单为市场提供流动性:
传统做市商(如 Citadel Securities):
- 雇佣大量工程师和交易员
- 持有数十亿美元库存
- 用复杂算法实时报价
- 赚取买卖价差(Spread)
- 需要交易所会员资格
自动做市商(如 Uniswap):
- 任何人都可以提供流动性
- 用一个数学公式自动定价
- 流动性来自普通用户
- 赚取交易手续费分成
- 无需许可,一个智能合约搞定
核心公式:恒定乘积 x × y = k
Uniswap 使用的最经典 AMM 公式:
x × y = k
x = 池中 A 代币数量
y = 池中 B 代币数量
k = 常数(在交易前后保持不变)
直观理解:想象一个池子里有 100 ETH 和 200,000 USDC。
初始状态:100 ETH × 200,000 USDC = 20,000,000 (k)
小明想用 10 ETH 买 USDC:
卖出 10 ETH → 池中 ETH 变为 110
为了保持 k = 20,000,000
池中 USDC 必须变为 20,000,000 / 110 = 181,818.18 USDC
小明获得:200,000 - 181,818.18 = 18,181.82 USDC
实际价格:18,181.82 / 10 = 1,818.18 USDC/ETH
初始价格:200,000 / 100 = 2,000 USDC/ETH
价格滑点:(2,000 - 1,818.18) / 2,000 = 9.1%
关键观察:交易量越大,价格影响越大。这就是滑点(Slippage)——大额交易会导致成交价偏离预期。
流动性池(Liquidity Pool)
流动性池是 AMM 的核心组件:
┌─────────────────────────────────────┐
│ ETH/USDC 流动性池 │
│ │
│ 流动性提供者(LP) │
│ ├── Alice: 5 ETH + 10,000 USDC │
│ ├── Bob: 3 ETH + 6,000 USDC │
│ └── Carol: 2 ETH + 4,000 USDC │
│ │
│ 池中总量: 10 ETH + 20,000 USDC │
│ 总份额: 100 LP Token │
│ │
│ 交易者 ↔ 池子 ↔ 自动定价 │
└─────────────────────────────────────┘
流动性提供者(LP)将代币对存入池中,获得 LP Token 作为凭证。LP Token 代表其在池中的份额比例。
LP 的收益与风险
收益来源:每笔交易的手续费(Uniswap V2 为 0.3%,V3 可自定义费率)按份额分配给所有 LP。
核心风险——无常损失(Impermanent Loss):
无常损失是 LP 面临的独特风险,当两种代币的价格比率发生变化时产生:
初始状态:1 ETH = 2,000 USDC
Alice 提供:1 ETH + 2,000 USDC(价值 $4,000)
假设 ETH 价格涨到 4,000 USDC:
如果 Alice 没有提供流动性,只是持有:
1 ETH + 2,000 USDC = $6,000
如果 Alice 作为 LP(假设只有她一个人):
x × y = k → x × y = 1 × 2,000 = 2,000
ETH 价格 = 4,000 → y/x = 4,000
解方程:x = 0.707 ETH, y = 2,828 USDC
总价值 = 0.707 × 4,000 + 2,828 = $5,657
无常损失 = $6,000 - $5,657 = $343 (5.7%)
“无常”这个名字来源于:如果价格回到初始比率,损失会消失。但现实中价格通常不会完美回归,所以更准确的叫法是”发散损失”(Divergence Loss)。
Uniswap V3 的集中流动性
V2 的流动性均匀分布在 0 到无穷大的价格区间。V3 引入了革命性的改进——集中流动性:
V2:流动性均匀分布
价格 0 ──────────────────────────→ ∞
████████████████████████████████████
V3:LP 可以选择价格范围集中提供
价格 0 ──────────────────────────→ ∞
████████████
↑ LP 选择的范围(如 1,800-2,200)
集中流动性的优势:
- 资本效率提升最高 4000 倍
- LP 在选定范围内获得更高手续费
- 但需要更主动的管理,超出范围则停止赚取手续费
AMM vs 订单簿
| 特性 | AMM | 订单簿 |
|---|---|---|
| 定价机制 | 数学公式自动定价 | 买卖双方挂单撮合 |
| 流动性来源 | 普通用户(LP) | 专业做市商+散户 |
| 大额交易 | 滑点大 | 深度好的话滑点小 |
| 价格发现 | 被动跟随外部价格 | 主动发现价格 |
| 链上实现 | 天然适合(只需简单计算) | 复杂(需要高频订单匹配) |
| 适合场景 | 长尾资产、新代币 | 主流资产、高流动性市场 |
主要 AMM 协议
| 协议 | 特点 | 适用场景 |
|---|---|---|
| Uniswap | 恒定乘积,V3 集中流动性 | 通用 ERC-20 代币交易 |
| Curve | 专为稳定资产优化(低滑点) | 稳定币互换(USDC↔USDT) |
| Balancer | 支持多代币池、自定义权重 | 指数基金式流动性提供 |
| PancakeSwap | BSC 链上的 Uniswap 分叉 | BSC 生态代币交易 |
最小例子 / 最小场景
场景:小明在 Uniswap 上交易
- 小明想用 1 ETH 买 USDC
- Uniswap 显示当前 ETH/USDC 池中有 1,000 ETH 和 2,000,000 USDC
- 小明输入 1 ETH,Uniswap 计算:
- k = 1,000 × 2,000,000 = 2,000,000,000
- 新 ETH 数 = 1,001
- 新 USDC 数 = 2,000,000,000 / 1,001 = 1,998,002
- 小明获得 2,000,000 - 1,998,002 = 1,998 USDC
- 手续费 0.3% 已包含在计算中
- 交易通过智能合约自动执行,无需任何中介
场景:小红提供流动性
- 小红决定为 ETH/USDC 池提供流动性
- 当前池中比例:1 ETH = 2,000 USDC
- 小红存入 5 ETH + 10,000 USDC
- 获得 LP Token(代表池中 0.5% 份额)
- 每当有人交易这个池子,小红按份额获得 0.3% 手续费的一部分
- 如果 ETH 价格大幅波动,小红面临无常损失
边界与易混淆点
它不是什么
- 不是传统做市商:传统做市商是专业机构,用复杂策略主动报价。AMM 是被动的,价格由公式决定,LP 不需要做任何决策(V3 除外)。
- 不是订单簿:没有买卖挂单,没有撮合过程。交易者直接和流动性池交互。
- 不是交易所本身:AMM 是定价机制,DEX 是使用 AMM 的交易平台。一个 DEX 可以使用多种 AMM 模型。
主要局限
- 无常损失是系统性的:只要价格波动就会产生,LP 需要靠手续费收入覆盖
- 滑点问题:大额交易在流动性不足的池中会产生巨大滑点
- 三明治攻击(Sandwich Attack):MEV 机器人可以通过前后夹击交易来提取利润
- 流动性碎片化:同一交易对在不同协议、不同链上分散,降低了效率
- 价格依赖外部预言机:AMM 本身不产生价格,而是跟随套利者调整到外部市场价格
常见误解
- “做 LP 稳赚手续费”——无常损失可能远超手续费收入,尤其在高波动市场
- “AMM 给出了正确价格”——AMM 跟随市场,不是发现价格。套利者将 AMM 价格调整到与外部市场一致
- “交易量越大池子越赚钱”——交易量大意味着无常损失也可能更大,LP 的净收益取决于两者的平衡
- “V3 一定比 V2 好”——V3 集中流动性需要主动管理,对被动 LP 可能不友好
最短记忆方式
AMM 用一个简单的数学公式(x×y=k)取代了传统做市商的复杂系统——任何人都能通过存入代币成为做市商,代价是承担无常损失风险。
参考资料
- Adams, H. et al. “Uniswap v3 Core” (2021) — 理解集中流动性的创新设计
- Egorov, M. “StableSwap - Efficient Mechanism for Stablecoin Liquidity” (2019) — Curve 的低滑点稳定币交易机制
- Pintail. “Uniswap: A Good Deal for Liquidity Providers?” (2020) — 深入分析无常损失的数学推导