05.Uniswap V2 无常损失
Uniswap V2 无常损失深度解析
核心摘要 (Key Takeaways)
- 无常损失 (Impermanent Loss) 是指在去中心化交易所(DEX)中提供流动性(LP)的资产价值,与仅仅持有这些资产(HODL)相比所产生的价值差异。
- 其核心特征可以总结为一句口诀:“涨价少赚钱,降价多亏钱”。无论市场朝哪个方向波动,只要价格发生变化,LP的资产价值增长总会慢于或亏损总会多于单纯持有者。
- 手续费的核心作用之一是弥补无常损失。DEX 通过向 LP 支付交易手续费,不仅是为了激励用户提供流动性,更是为了补偿他们在价格波动中可能遭受的无常损失。
- 无常损失的大小可以通过一个数学公式量化,它只与资产的相对价格变化率有关,而与流动性池的大小或具体的资产价格无关。
- 在 Uniswap V2 中,价格波动越大,无常损失就越严重。而在 Uniswap V3 中,由于流动性被集中在特定价格区间,无常损失的问题会更加显著。
1. 什么是无常损失 (Impermanent Loss)?
1.1 核心定义
无常损失 (Impermanent Loss, 简称 IL) 是指当您作为流动性提供者 (LP) 将资金存入一个流动性池后,由于池中代币的相对价格发生变化,导致您撤出资金时的总价值低于您从一开始就选择单纯持有 (HODL) 这些代币的价值。
- “无常”的含义:这种损失是“浮亏”。如果池内代币的相对价格能恢复到您存入时的初始价格,那么这个损失就会消失(不考虑已赚取的手续费)。
- “损失”的相对性:它是一种机会成本的损失。即使您的 LP 头寸总价值在上涨,但因为存在无常损失,您赚取的收益会少于单纯持有资产所能获得的收益。
1.2 产生原因与手续费的角色
无常损失的根本原因在于自动做市商 (AMM) 的核心机制,即 恒定乘积公式 。
- 机制:当池中一种资产(如 ETH)价格上涨时,套利者会用另一种资产(如 DAI)来购买池中相对“便宜”的 ETH,直到池中价格与外部市场价持平。这个过程导致 LP 手中价格上涨的资产数量减少,而价格稳定的资产数量增多。
- 手续费的角色:
- 激励流动性:吸引用户将闲置资产放入池中,增加交易深度,减小用户的滑点。
- 弥补无常损失:这是手续费更深层次的功能。LP 承担了价格波动的风险,交易手续费就是对这种风险的补偿。理想情况下,赚取的手续费应该能够覆盖甚至超过无常损失。
2. 案例分析:无常损失的直观理解
2.1 场景设定
- 交易对: DAI / ETH
- 初始流动性: 一位 LP 提供了 100 DAI 和 1 ETH。
- 初始状态 (T0):
- 池中资产: 100 DAI, 1 ETH
- 恒定乘积 K:
- 初始 ETH 价格:
- LP 初始资产总价值:
100 DAI + 1 ETH = 100 DAI + 100 DAI = 200 DAI
2.2 案例一:资产价格上涨
假设市场交易导致 ETH 价格上涨。
- 价格变化后状态 (T1):
- 池中资产变为: 120 DAI 和 0.83 ETH (恒定乘积 )
- 当前 ETH 价格:
- 价值对比:
- 作为 LP 的价值 ():
- LP 的资产从 200 DAI 增值到 240 DAI,赚了 40 DAI。
- 如果当初选择 HODL ():
- 单纯持有资产会从 200 DAI 增值到 244.58 DAI。
- 作为 LP 的价值 ():
- 无常损失计算:
- 结论: ETH 价格上涨,LP 虽然赚钱了,但比单纯持有资产少赚了 4.58 DAI。这就是无常损失。
2.3 案例二:资产价格下跌
假设市场交易导致 ETH 价格下跌。
- 价格变化后状态 (T1):
- 池中资产变为: 80 DAI 和 1.25 ETH (恒定乘积 )
- 当前 ETH 价格:
- 价值对比:
- 作为 LP 的价值 ():
- LP 的资产从 200 DAI 贬值到 160 DAI,亏了 40 DAI。
- 如果当初选择 HODL ():
- 单纯持有资产会从 200 DAI 贬值到 164 DAI,只亏了 36 DAI。
- 作为 LP 的价值 ():
- 无常损失计算:
- 结论: ETH 价格下跌,LP 亏钱了,而且比单纯持有资产多亏了 4 DAI。这也是无常损失。
2.4 案例总结
通过以上两个案例,我们可以清晰地看到无常损失的本质:
涨价少赚钱,降价多亏钱
这是作为 LP 必须理解和接受的核心风险。
3. 无常损失的数学量化与公式推导
为了精确衡量无常损失,我们可以将其抽象为一个数学模型。
3.1 基础模型与变量定义
- 资产:池中有两种资产,Token X (如 ETH) 和 Token Y (如 DAI)。
- 数量:池中 Token X 的数量为 ,Token Y 的数量为 。
- 价格 ():Token X 以 Token Y 计价的价格,。
- 流动性 ():一个代表池子深度的常量,定义为 。
通过联立 和 ,我们可以推导出用流动性 和价格 来表示资产数量的公式:
这个转换非常关键,因为它让我们能够只通过价格 的变化来分析池内资产的变化。
3.2 公式推导流程
无常损失被定义为 LP 资产价值与 HODL 资产价值的比率,再减 1。我们的目标是推导出这个值与价格变化之间的关系。
第一步:定义不同时间点的价值
我们设初始时间为 T0,当前时间为 T1。
- 在
T1时刻,LP 的资产价值 () 是池中当前资产 和 以当前价格 计算的总价值: - 在
T1时刻,HODL 的资产价值 () 是初始资产 和 以当前价格 计算的总价值:
第二步:用流动性 和价格 表示价值
利用 3.1 节中的公式,我们将 和 替换掉:
- 计算 :
- 计算 :
第三步:引入价格变化因子
我们定义价格变化因子 ,即当前价格是初始价格的 倍。因此 。现在我们将 替换掉:
- 重写 :
- 重写 :
第四步:计算无常损失 (IL)
无常损失的公式为:
将我们推导出的表达式代入:
约去分子分母中的公因子 ,我们得到最终的公式:
这个结果表明,无常损失的大小只与价格变化的倍数 有关,而与初始流动性 或初始价格 无关。
3.3 最终公式
经过上述推导,我们得到 Uniswap V2 的无常损失计算公式:
其中 是资产的相对价格变化倍数。例如:
- 如果价格上涨 50% (变为原来的 1.5 倍),则 。
- 如果价格下跌 20% (变为原来的 0.8 倍),则 。
4. 无常损失的视觉化呈现与V3展望
4.1 Uniswap V2 无常损失曲线
这一分析和图表源于 Uniswap 团队后续发布的一篇名为 《Losses to Liquidity Providers Due to Price Variation》 的补充文章,而非最初的白皮书。将上述公式绘制成图表,可以直观地看到无常损失与价格变化的关系:
https://docs.uniswap.org/contracts/v2/concepts/advanced-topics/understanding-returns

- 横坐标:价格变化因子 。
- 纵坐标:无常损失的百分比。
- 曲线特征:
- 当 时(价格无变化),无常损失为 0。
- 当 偏离 1 时(无论上涨还是下跌),无常损失都会出现并增加。
- 价格下跌导致的无常损失增长速度比价格上涨更快。例如,价格腰斩(D=0.5)造成的损失大于价格翻倍(D=2.0)造成的损失。
(注:这是一个根据视频描述生成的示例图,蓝色曲线代表了无常损失的变化趋势)
4.2 Uniswap V3 展望
Uniswap V3 的无常损失问题比 V2 更严重。
- 原因:V3 引入了“集中流动性”机制,允许 LP 将资金集中在特定的价格范围内。这提高了资本效率,但也意味着当价格波动超出这个范围时,LP 的头寸会更快地被完全兑换成价值较低的资产,从而放大了无常损失。
- 曲线对比:如果将 V3 的无常损失曲线与 V2 对比,V3 的曲线会更加陡峭,意味着在相同的价格波动下,V3 的 LP 会经历更大的无常损失。