三、AMM 机制详解:恒定乘积公式、流动性池、滑点与无常损失的基本概念
自动做市商(Automated Market Maker, AMM)是去中心化交易所(DEX)的核心引擎,它彻底改变了传统订单簿的交易模式。在 AMM 模式下,交易不再依赖买卖双方的挂单撮合,而是直接与一个由智能合约锁定的资金池进行兑换。理解 AMM 的底层机制——尤其是恒定乘积公式、流动性池的运作逻辑、滑点的产生根源以及无常损失的数学本质——是设计任何做市策略的前提。本章将逐一拆解这些核心概念,并揭示它们之间的内在联动关系。
3.1 恒定乘积公式:AMM 的数学基石
Uniswap 开创性地采用了 恒定乘积做市商(Constant Product Market Maker) 模型,其核心公式为 x × y = k。其中,x 和 y 分别代表流动性池中两种代币(如 ETH 与 USDC)的储备数量,k 是一个在单笔交易前后保持不变的常数(不考虑手续费)。该公式的巧妙之处在于,它保证了无论交易规模多大,池中始终存在流动性,且价格会随供需关系自动调整。
当交易者向池中注入 Δx 数量的代币 X 时,为了维持乘积不变,池中代币 Y 的储备必须减少。具体输出量 Δy 的计算公式为:
Δy = y - (x * y) / (x + Δx)
这一公式的直观含义是:交易者买入的代币数量越多,池中该代币的储备越少,其相对价格就越高,从而形成价格滑点。从数学角度看,AMM 的价格曲线是一条双曲线,它无限接近坐标轴但永远不会相交,这意味着理论上池中资产永远不会被完全买空。
3.2 流动性池:资产储备与 LP
流动性池是 AMM 的物理载体,它是一个由智能合约管理的资金池,其中锁定了两种或多种代币。任何用户都可以成为流动性提供者(LP),通过存入等价值的两种代币来获取流动性池份额。作为回报,LP 会获得代表其份额的 LP (如 Uniswap 的 UNI-V2),该 可用于赎回底层资产,并有权按比例分享交易手续费。
流动性池的设计遵循 50/50 价值均衡原则:LP 存入的两种代币价值必须相等。例如,若 ETH 当前价格为 2000 USDC,LP 存入 1 ETH 的同时必须存入 2000 USDC。这一原则确保了池内初始价格与外部市场一致,避免了无风险套利机会。
| 池类型 | 代币对 | 手续费率 | 典型应用场景 |
|---|---|---|---|
| 稳定币池 | USDC / USDT | 0.05% | 低滑点兑换,适合大额稳定币转账 |
| 主流资产池 | ETH / USDC | 0.30% | 高流动性,滑点可控,适合主流资产交易 |
| 波动资产池 | PEPE / WETH | 1.00% | 高波动 meme 币,高手续费补偿 LP 风险 |
LP 的收益来源主要包括两部分:交易手续费(按池内份额比例分配)和 流动性挖矿奖励(平台额外发放的治理代币)。然而,LP 也面临着两大风险:无常损失和 智能合约漏洞风险。理解这些风险是评估做市策略收益的关键。
3.3 滑点:交易成本与深度评估
滑点(Slippage)是指交易者在下单时预期的价格与实际执行价格之间的差异。在 AMM 中,滑点是由恒定乘积公式的数学特性决定的,它随着交易规模相对于池子深度的增大而增大。滑点通常分为两部分:价格影响(Price Impact) 和 外部滑点(External Slippage)。前者是 AMM 机制本身造成的,后者则是由链上交易延迟或矿工抢跑导致的。
评估一个池子的滑点水平,最直接的指标是 池子深度。深度越大的池子,在同等交易规模下产生的滑点越小。专业做市商通常使用 滑点曲线 来评估池子的流动性质量,该曲线展示了不同交易规模对应的价格影响百分比。
// 滑点计算示例(以 ETH/USDC 池为例)
// 假设池中储备:ETH = 1000, USDC = 2,000,000
// 交易者买入 10 ETH(即 Δx = 10)
Δy = 2,000,000 - (1000 * 2,000,000) / (1000 + 10)
= 2,000,000 - 2,000,000,000 / 1010
= 2,000,000 - 1,980,198.02
= 19,801.98 USDC
// 平均执行价格 = 19,801.98 / 10 = 1,980.20 USDC/ETH
// 而交易前池内价格 = 2,000,000 / 1000 = 2,000 USDC/ETH
// 价格影响 = (2000 - 1980.20) / 2000 = 0.99%
3.4 无常损失:LP 的隐性成本
无常损失(Impermanent Loss, IL)是 LP 在提供流动性时面临的最核心风险。它指的是:当池内两种代币的相对价格发生变化时,LP 持有的资产价值将低于其简单持有(HODL)这两种代币的价值。这种损失被称为“无常”,是因为如果价格恢复到初始水平,损失就会消失;但只要价格偏离,损失就真实存在。
无常损失的数学公式为:
IL = 1 - (2 * √r) / (1 + r)
其中 r = 价格变化倍数(例如,价格翻倍则 r = 2)
从公式可以看出,无论价格上涨还是下跌,只要价格偏离初始比例,LP 就会产生损失。价格偏离越大,损失越严重。例如,当一种代币价格翻倍(r=2)时,无常损失约为 5.7%;当价格变为 4 倍(r=4)时,损失升至 20%。
3.5 案例拆解:ETH/USDC 池的做市决策
假设你计划在 Uniswap V3 上为 ETH/USDC 池提供流动性,当前 ETH 价格为 2000 USDC。你拥有 1 ETH 和 2000 USDC,总价值 4000 USDC。你选择了 0.30% 手续费率的池子,并决定将价格范围设定在 1800 - 2200 USDC 之间(即 ±10% 的窄区间)。
初始状态:池内储备 ETH = 1000,USDC = 2,000,000。你存入 1 ETH 和 2000 USDC,获得池内 0.1% 的份额。
情景一:价格稳定(30 天内价格在 1950 - 2050 波动)
- 累计交易手续费:假设池内日均交易量为 500 万 USDC,手续费率为 0.3%,则日手续费为 15,000 USDC。你的份额为 0.1%,日收益为 15 USDC,30 天收益为 450 USDC。
- 无常损失:由于价格波动较小(±2.5%),无常损失几乎可以忽略不计(约 0.03%)。
- 净收益:450 USDC - 1.2 USDC(IL) ≈ 448.8 USDC,收益率约 11.2%。
情景二:价格大幅上涨(ETH 涨至 3000 USDC)
- 池内价格被套利者拉至 3000,你的 LP 份额中 ETH 数量减少,USDC 数量增加。根据公式,你的资产组合变为约 0.816 ETH 和 2449 USDC,总价值 = 0.816 * 3000 + 2449 = 4897 USDC。
- 如果简单持有,你的资产价值 = 1 * 3000 + 2000 = 5000 USDC。
- 无常损失 = (5000 - 4897) / 5000 = 2.06%,即损失约 103 USDC。
- 30 天手续费收入 450 USDC,扣除无常损失后净收益为 347 USDC,收益率降至 8.7%。
复盘结论:在窄区间内提供流动性,虽然能提高资金效率(获得更高手续费份额),但也增加了无常损失的风险。做市策略的核心在于:根据市场波动率动态调整价格区间。在低波动期,可以收窄区间以提升收益;在高波动期,应适当放宽区间或减少流动性敞口,以规避不可控的无常损失。
3.6 常见误区与总结复盘
在理解 AMM 机制时,初学者常陷入以下误区:
- 误区一:认为无常损失是“假损失”。实际上,只要价格偏离,损失就已锁定,只是尚未变现。LP 赎回时,损失会直接反映在资产数量上。
- 误区二:只关注手续费率,忽视池子深度。高手续费率的长尾池往往深度不足,大额交易会产生极高滑点,实际收益可能被滑点吞噬。
- 误区三:忽略资金费率与借贷成本。如果 LP 是通过借贷杠杆提供流动性,还需支付利息,这会进一步压缩净收益。
- 误区四:认为 AMM 适合所有资产。对于高度相关的资产(如 ETH 与 stETH),无常损失较小;但对于不相关或负相关的资产,无常损失可能非常显著。