深度解析DeFi中的无常损失:为什么LP取出的币变少了?

前言
在DeFi世界中,流动性提供者(LP)是去中心化交易所的血液,他们通过提供资金池让交易成为可能。然而,参与流动性挖矿的朋友们可能都有过这样的疑惑:明明池子里的数字在变化,但当取出资金时却发现,价值竟然变少了!这就是困扰许多人的"无常损失"问题。
本文将从零开始,深入探讨这个复杂但极其重要的概念,揭示其背后的数学原理和经济逻辑,帮助读者理解和应对无常损失。
什么是无常损失?
简单来说,**无常损失(Impermanent Loss)**指的是流动性提供者将资产存入AMM(自动做市商)池后,由于价格波动导致的资产价值损失,这种损失是相对于直接持有资产而言的。
有的文章里觉得 Impermanent Loss 这个说法不够准确,所以也会有人把它叫做 Divergence Loss(背离损失)。
关键点:虽然叫"无常"损失,但在取出资金时,这个损失就变成了"现实"损失。名字中的"无常"只是因为理论上价格可能回到初始水平从而消除损失,但在实践中这种回归往往不会发生。
经典案例解析:ETH暴涨4倍
让我们用一个具体的例子来理解这个过程。假设你存入了1 ETH和1000 USDT到一个流动性池,当时的ETH价格是1000 USDT。
你最初存入时的池子状态(t=0)
| 项目 | 数量 | 当时价格 | 价值(USDT) |
|---|---|---|---|
| 你存入 | 1 ETH | 1000 | 1000 |
| 你存入 | 1000 USDT | 1 | 1000 |
| 你占比 | 假设你是第一个LP,占比 100%(方便算,实际也一样) | ||
| 池子总量 | 1 ETH | ||
| 池子总量 | 1000 USDT | ||
| 恒定乘积 k | 1 × 1000 = 1000(k 永久不变) |
外界疯狂买ETH,价格涨到4000 USDT(t=1)
有人用USDT不断从池子里买走ETH → 池子自动再平衡:
- 池子里的ETH变少
- 池子里的USDT变多
- 但k永远 = 1000
设现在池子里还剩x个ETH,那么USDT必须是1000/x 当前市场价 = USDT数量 / ETH数量 = (1000/x) / x = 1000 / x²
现在市场价变成4000,所以:
1000 / x² = 4000
x² = 1000 / 4000 = 0.25
x = √0.25 = 0.5
→ 池子里现在只剩0.5 ETH → USDT数量 = 1000 / 0.5 = 2000 USDT → k = 0.5 × 2000 = 1000(k 完美守恒!)
你现在把LP取出(按你最初100%份额)
你取出:
- 0.5 ETH
- 2000 USDT
按当前4000的价格算价值: 0.5 × 4000 + 2000 = 2000 + 2000 = 4000 USDT
如果你当初什么都不干,直接持有
你现在还有:
- 1 ETH(现在值4000)
- 1000 USDT
总价值 = 4000 + 1000 = 5000 USDT
无常损失就出来了
4000(LP取出) − 5000(直接持有) = −1000 USDT → 损失20%
核心机制:AMM再平衡的被动套利效应
“明明x × y = k没变,为什么我取出来的钱变少了?",答案在于AMM的再平衡机制逼你"高抛低吸”:
- ETH涨 → 别人买走你的ETH(你被强制卖了)
- ETH跌 → 别人卖给你ETH(你被强制买了)
这一机制本质上是LP将资产定价和交易执行权委托给AMM算法,导致在外部市场价格波动时,LP的持仓比例被套利者强制调整,从而产生相对于简单持有策略的机会成本。
详细数学原理:为什么会出现无常损失
为了更深入地理解无常损失的产生机制,我们需要从数学角度来推导。我们知道 Uniswap 提供了自动做市商的协议。池中的代币 A(数量为 $a$)和代币 B(数量为 $b$)之间的交换过程始终要保持 $a$ 与 $b$ 的积为一个常量 $c$:
$$a \times b = c \tag{表达式1}$$
如果我们考虑以代币 B 来计价代币 A,我们用 $P_A$ 标识这个价格。当前市场价格下: $$P_A = \frac{b}{a} \tag{表达式2}$$
根据表达式 1、2,我们可以推导出价格变化后池中代币数量的计算公式。
代币 A 数量公式推导
价格变化因子为 $r$,即新的价格为 $P_A’ = P_A \times (1 + r)$:
$$a’^2 = \frac{c}{P_A (1 + r)} \implies a’ = \sqrt{\frac{c}{P_A (1 + r)}} \tag{表达式3}$$
$$b’^2 = c \times P_A (1 + r) \implies b’ = \sqrt{c P_A (1 + r)} \tag{表达式4}$$
价值对比:LP策略 vs HODL策略
(1) HODL策略的价值变化
如果我们不提供流动性而在初始时以价格 $P_A$ 持有:
- A代币数量:$n \sqrt{\frac{c}{P_A}}$ (占池子 $n$ 比例)
- 价格上涨后,这部分价值:$n \sqrt{\frac{c}{P_A}} \times P_A (1 + r)$
- B代币数量:$n \sqrt{c P_A}$
- 这部分价值:$n \sqrt{c P_A}$
总价值(HODL策略): $$V_{HODL} = n \sqrt{\frac{c}{P_A}} \times P_A (1 + r) + n \sqrt{c P_A} \tag{表达式5}$$
(2) LP策略的价值变化
价格变化后,我们在流动性池中占比 $n$:
- A代币价值:$n \sqrt{\frac{c}{P_A (1 + r)}} \times P_A (1 + r) = n \sqrt{c P_A (1 + r)}$
- B代币价值:$n \sqrt{c P_A (1 + r)}$
总价值(LP策略): $$V_{LP} = 2n \sqrt{c P_A (1 + r)} \tag{表达式6}$$
损失计算与通用公式
无常损失的绝对量: $$Loss = V_{HODL} - V_{LP} = n \sqrt{c P_A} \left[ (1+r) + 1 - 2\sqrt{1+r} \right] \tag{表达式7}$$
无常损失率(相对于HODL策略的价值): $$IL_{rate} = \frac{(1 + r) + 1 - 2\sqrt{(1+r)}}{(1 + r) + 1} = 1 - \frac{2\sqrt{(r+1)}}{r+2} \tag{表达式8}$$
实际验证案例:价格上涨50%
让我们用一个具体的例子来验证公式。假定在 Uniswap 的 ETH-USDT 池进行挖矿,初始条件为池中有 100 ETH 和 40,000 USDT,我们投入挖矿的代币占比为 1%(即 1 ETH,400 USDT)。
初始 $k = 100 \times 40000 = 4,000,000$。
如果 ETH 价格从 400 USDT 上涨 50% 到 600 USDT,即价格倍数 $r = 0.5$:
- 价格涨50%后,根据公式 8,损失率 = $\frac{0.5 + 2 - 2\sqrt{0.5 + 1}}{0.5 + 2} = \frac{2.5 - 2\sqrt{1.5}}{2.5} \approx 2.02%$
这个结果与我们上面经典案例解析中的 20% 损失是相对应的(在我们更精确的例子中,初始占比 1% 使得损失率约为 2.02%)。
损失率曲线分析
无常损失率只与价格变化倍数 r 有关,我们可以绘制不同价格变化下对应的损失:
- 当上涨率为 -1(也就是价格变成 0),损失率 -100%
- 当上涨率为 0(价格不变),损失率 0.00%
- 当上涨率为 0.25(价格涨25%),损失率约 0.6%
- 当上涨率为 0.5(价格涨50%),损失率约 2.0%
- 当上涨率为 1(价格涨一倍),损失率约 5.7%
- 当上涨率为 4(价格涨 4 倍),损失率约 25.5%
机制详解
- AMM的价格发现与约束:
- AMM通过恒定乘积不变量k维持池内资产X和Y的乘积恒定,确保任何交易后x’ · y’ = k。
- 池内即时价格P = y / x(以X计价Y),由资产数量比率决定,而非外部市场价格主导。
- 当外部市场价格偏离池内价格时,套利者介入,通过与池子的交易(如买入低估资产、卖出高估资产)强制池内价格向外部市场收敛。
- 被动再平衡的逆向操作效应:
- 价格上涨情景(假设Y相对于X的价格从P上涨至rP,r > 1):套利者从池中买入Y(升值资产),卖入X(相对贬值资产)。这导致LP的Y持仓减少、X持仓增加,相当于LP被动"高卖"Y(在价格上涨时减持升值资产),从而错失进一步增值机会。
- 价格下跌情景(r < 1):套利者卖出Y(贬值资产)至池中,买入X。这导致LP的Y持仓增加、X持仓减少,相当于LP被动"低买"Y(在价格下跌时增持贬值资产),放大损失放大。
- 此过程违背投资者直觉偏好,如追涨杀跌,而强制执行反向操作,类似于"卖出赢家、买入输家"。
- 量化表述:
- LP的最终价值V_LP = 2√(k · r)(归一化初始k=1后简化为2√r),而持有策略价值V_HODL = 1 + r。
- IL = (V_LP / V_HODL) - 1 = (2√r / (1 + r)) - 1,反映了几何平均回报相对于算术平均回报的折损,源于持仓的动态调整。
- 该损失具有对称性,即价格上涨r倍或下跌1/r倍产生相同IL百分比,源于√r的凸函数性质
最佳实践
1. 如何降低无常损失
- 选择合适的交易对(稳定币对、相关资产对)
- 使用更先进的AMM模型(如Uniswap V3的集中流动性)
- 考虑手续费收入与无常损失的平衡
2. 风险管理策略
- 根据市场波动情况动态调整流动性
- 定期评估和调整LP策略
- 组合多种资产降低单一资产风险
3. 投资时机选择
- 在市场相对稳定时添加流动性
- 在预期波动加剧前撤离
- 结合技术分析和基本面分析做出决策
总结
无常损失是DeFi流动性提供机制的固有特征,理解它对于参与DeFi生态至关重要。虽然它会带来一定的损失,但通过选择合适的策略、交易对和时机,LP可以有效地管理这一风险,实现风险调整后的收益最大化。
最终,无常损失提醒我们:在DeFi世界中,简单的"存钱就能赚钱"的想法是不现实的,需要深入理解机制,制定科学的策略,才能在波动的市场中取得理想的收益。
参考:
