前言
在DeFi世界中,流动性提供者(LP)是去中心化交易所的血液,他们通过提供资金池让交易成为可能。然而,参与流动性挖矿的朋友们可能都有过这样的疑惑:明明池子里的数字在变化,但当取出资金时却发现,价值竟然变少了!这就是困扰许多人的"无常损失"问题。
本文将从零开始,深入探讨这个复杂但极其重要的概念,揭示其背后的数学原理和经济逻辑,帮助读者理解和应对无常损失。
什么是无常损失?
简单来说,无常损失 Impermanent Loss指的是流动性提供者将资产存入AMM(自动做市商)池后,由于价格波动导致的资产价值损失,这种损失是相对于直接持有资产而言的。
关键点:虽然叫"无常"损失,但在取出资金时,这个损失就变成了"现实"损失。名字中的"无常"只是因为理论上价格可能回到初始水平从而消除损失,但在实践中这种回归往往不会发生。
经典案例解析: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,所以:
ini
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的持仓比例被套利者强制调整,从而产生相对于简单持有策略的机会成本。
机制详解
- 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的凸函数性质
数学推导:无常损失通用公式
初始状态设定:等值资产投入
我们从一个简化的模型开始。假设一个流动性提供者(LP)向一个ETH/DAI交易对池中投入流动性。为了方便计算,我们设定初始时ETH的价格 P₀ 为1(即1 ETH = 1 DAI),并且LP投入等值的两种资产,例如1个ETH和1个DAI。此时,流动性池的初始状态为:
- ETH数量 x₀ = 1
- DAI数量 y₀ = 1
- 恒定乘积 k = x₀ * y₀ = 1 * 1 = 1
这个初始设定简化了计算,并且不失一般性,因为任何初始价格都可以通过调整资产数量来等效表示。
价格变动后的资产再平衡
现在,假设外部市场上ETH的价格上涨,从 P₀ = 1 变为 P₁ = r(其中 r > 1 是价格变化倍数)。由于套利者的行为,池中的资产数量会重新调整,以使池内价格 y₁ / x₁ 与新的市场价格 r 保持一致。同时,资产数量必须仍然满足恒定乘积公式 x₁ * y₁ = k = 1。我们得到一个方程组:
- x₁ * y₁ = 1
- y₁ / x₁ = r
解这个方程组:
从方程2得: y₁ = r * x₁。
将此代入方程1得:x₁ * (r * x₁) = 1
即:r * x₁² = 1
即:x₁ = √(1/r) = 1/√r
然后,代回 y₁ = r * x₁
即:y₁ = r * (1/√r) = √r
因此,在价格上涨 r 倍后,池中的资产数量变为:
- ETH数量 x₁ = 1/√r
- DAI数量 y₁ = √r
这个结果非常关键:当ETH价格上涨时,池中的ETH数量减少,而DAI数量增加,这正是"越涨越卖"的体现。
HODL策略的最终价值计算
现在,我们计算如果LP当初选择HODL策略,其资产在当前价格 P₁ = r 下的总价值。
- 初始持有的ETH数量:x₀ = 1
- 初始持有的DAI数量:y₀ = 1
- 当前ETH价格:P₁ = r (以DAI计价)
HODL策略的总价值 V_HODL 为:
V_HODL = (ETH数量 * 当前ETH价格) + DAI数量
即:V_HODL = (1 * r) + 1 = r + 1
LP策略的最终价值计算
接下来,我们计算LP策略下,池中资产在当前价格 P₁ = r 下的总价值。
- 池中ETH数量:x₁ = 1/√r
- 池中DAI数量:y₁ = √r
- 当前ETH价格:P₁ = r
LP策略的总价值 V_LP 为:V_LP = (x₁ * P₁) + y₁
即:V_LP = (1/√r * r) + √r
即:V_LP = √r + √r = 2√r
这个结果 2√r 是LP在价格变动后其份额的总价值。
无常损失公式的建立与简化
无常损失(IL)定义为LP策略价值相对于HODL策略价值的比率减去1:
IL = (V_LP / V_HODL) - 1
将我们计算出的 V_LP 和 V_HODL 代入:
得证:IL = (2√r / (r + 1)) - 1
这个公式就是恒定乘积模型下无常损失的通用计算公式 。它清晰地揭示了无常损失仅与价格变化倍数 r 有关。无论 r 是大于1(价格上涨)还是小于1(价格下跌),这个公式都适用,并且结果总是非正的,意味着LP策略的收益永远不会超过HODL策略(在不考虑交易手续费的情况下)。
最佳实践
1. 如何降低无常损失
- 选择合适的交易对(稳定币对、相关资产对)
- 使用更先进的AMM模型(如Uniswap V3的集中流动性)
- 考虑手续费收入与无常损失的平衡
2. 风险管理策略
- 根据市场波动情况动态调整流动性
- 定期评估和调整LP策略
- 组合多种资产降低单一资产风险
3. 投资时机选择
- 在市场相对稳定时添加流动性
- 在预期波动加剧前撤离
- 结合技术分析和基本面分析做出决策
总结
无常损失是DeFi流动性提供机制的固有特征,理解它对于参与DeFi生态至关重要。虽然它会带来一定的损失,但通过选择合适的策略、交易对和时机,LP可以有效地管理这一风险,实现风险调整后的收益最大化。
最终,无常损失提醒我们:在DeFi世界中,简单的"存钱就能赚钱"的想法是不现实的,需要深入理解机制,制定科学的策略,才能在波动的市场中取得理想的收益。