4、无常损失:AMM做市商必须面对的核心风险

无常损失,这个词我最早接触是在2020年做Uniswap V2流动性挖矿的时候。当时有个朋友兴冲冲地告诉我,他把ETH和USDC按50:50的比例放进了池子,结果ETH涨了3倍,他取出来一算——比单纯持有少赚了将近30%。他问我:「这损失到底是怎么来的?」

嗯,今天我们就来彻底讲清楚无常损失。说白了,它就是你在AMM池子里做市,跟单纯持有资产相比,产生的那个「差额」。为什么叫「无常」?因为只要你不撤出流动性,这个损失就是「暂时」的——价格涨回来,损失就消失了。但问题是,价格真的会涨回来吗?

4.1 无常损失的定义

先给个严谨的定义:

无常损失(Impermanent Loss):流动性提供者(LP)将资产存入AMM池后,由于池内资产相对价格发生变化,导致LP的资产价值低于单纯持有同等数量资产的价值,所产生的差额。

我习惯用一个公式来表达:

IL = (V_pool - V_hold) / V_hold × 100%

其中:

  • V_pool:在池中做市后的资产总价值
  • V_hold:如果单纯持有这些资产的总价值

如果IL是负数,说明你亏了;如果是正数,说明你做市比持有赚得多——但这种情况极少发生。

4.2 产生原因:套利者的「收割」

为什么会发生无常损失?核心原因就一个:套利者

你想想看,AMM的定价公式是恒定的——比如Uniswap V2的x*y=k。当外部市场价格发生变化时,池子里的价格跟外部市场就产生了价差。这时候套利者就会冲进来,低价买入、高价卖出,直到池内价格跟外部市场重新对齐。

这个过程对LP来说意味着什么?

  • 如果Token A价格上涨,套利者会从池子里买走Token A
  • 你的池子里Token A变少了,Token B变多了
  • 你持有的资产组合,从「50% A + 50% B」变成了「更少的A + 更多的B」
  • 而A恰恰是涨得好的那个——你卖飞了

我在项目中遇到过最典型的案例:一个朋友在UNI/USDC池子里做市,UNI从5美元涨到40美元。他取出来的时候,UNI只剩原来的一半不到。他苦笑着说:「我相当于在5美元的时候把UNI全卖了。」

4.3 数学推导:从公式到损失曲线

好,我们来推一下无常损失的数学表达式。别怕,其实很简单。

假设一个x*y=k的池子,初始状态:

  • x₀ = y₀ = 100(各100个代币)
  • k = 100 × 100 = 10000
  • 初始价格 P₀ = y₀/x₀ = 1

现在,Token A(x)的价格上涨到原来的r倍。也就是说,外部市场价格变为P = r × P₀ = r。

套利发生后,池内价格必须等于外部价格。设新的池内数量为(x₁, y₁):

y₁/x₁ = r   (价格关系)
x₁ × y₁ = k  (恒定乘积)

解这个方程组:

y₁ = r × x₁
x₁ × (r × x₁) = k
r × x₁² = k
x₁ = √(k/r)
y₁ = √(k × r)

代入初始值k=10000:

x₁ = 100/√r
y₁ = 100 × √r

现在算LP的资产价值(以Token B计价):

V_pool = y₁ + r × x₁ = 100√r + r × (100/√r) = 100√r + 100√r = 200√r

如果单纯持有:

V_hold = y₀ + r × x₀ = 100 + 100r

无常损失:

IL = (200√r - (100 + 100r)) / (100 + 100r)
   = (2√r - (1 + r)) / (1 + r)

这就是无常损失的经典公式。我建议你把这个公式记下来,面试的时候经常考。

4.4 与价格波动的关系:一张图看懂

我们来看几个关键数据点:

价格变化倍数 r 价格变化百分比 无常损失 IL
1.0 0% 0.00%
1.25 +25% -0.60%
1.5 +50% -2.02%
2.0 +100% -5.72%
3.0 +200% -13.40%
4.0 +300% -20.00%
5.0 +400% -25.46%
10.0 +900% -42.85%

看到规律了吗?

  • 价格波动越小,无常损失越小
  • 价格翻倍(r=2),损失约5.7%
  • 价格涨10倍,损失高达42.8%
  • 损失是对称的——价格跌到1/2,损失也是5.7%

下面这张图展示了无常损失随价格变化的曲线:

无常损失 vs 价格变化倍数 价格变化倍数 r 1 2 3 4 5 0% -10% -20% -30% -40% -5.72% -13.4% -20% -25.5% 无常损失

从图上可以看得很清楚:曲线一开始比较平缓,但越往右越陡。也就是说,价格波动越大,边际损失越严重。

4.5 如何规避无常损失

说实话,无常损失没办法完全消除——它是AMM的固有属性。但我们可以通过各种策略来降低它。我总结了几个实战中比较有效的方法:

策略一:选择稳定币对

如果你提供的是USDC/DAI、USDT/USDC这类稳定币对的流动性,价格波动极小,无常损失几乎可以忽略不计。我个人的建议是:如果追求稳定收益,稳定币对是最安全的选择。

策略二:使用低波动资产对

比如ETH/stETH、WBTC/renBTC这类锚定资产。它们之间的价格波动通常很小,无常损失也相应较低。

策略三:选择高交易量池子

交易手续费收入可以弥补无常损失。如果一个池子每天的交易量是流动性的几倍,手续费收入可能远超无常损失。我曾经算过一个Uniswap上的ETH/USDC池子,年化手续费收益约15%,而无常损失在ETH波动30%的情况下只有2%左右——净赚13%。

策略四:使用集中流动性AMM

像Uniswap V3这样的协议,允许你把流动性集中在某个价格区间内。如果你对价格走势有判断,可以大幅降低无常损失。但要注意——价格一旦超出区间,你的流动性就完全失效了。

策略五:无常损失对冲

这个比较高级。你可以通过期权、永续合约等衍生品来对冲价格风险。比如你在ETH/USDC池子里做市,可以同时做空ETH永续合约。这样ETH涨了,做市亏的钱由做空赚的钱来补。

我的经验之谈:对于大多数普通用户,我建议选择稳定币对或者主流资产对(ETH/USDC、WBTC/ETH),并且优先考虑交易量大的池子。不要为了追求高APY去投那些波动极大的山寨币对——你赚的手续费可能还不够无常损失塞牙缝的。

避坑指南:我曾经见过一个项目方,为了吸引流动性,把APY做到300%以上。很多人冲进去提供流动性,结果代币价格一周跌了90%。你想想看,价格跌90%,无常损失接近50%,而手续费收入根本覆盖不了。最后大家血本无归。所以记住:高APY往往意味着高风险,别被数字冲昏了头脑。

4.6 小结

无常损失是AMM做市商绕不开的话题。它本质上是因为套利者「纠正」了池内价格与外部市场的偏差,导致LP的资产组合发生了不利于自己的变化。

核心要点:

  • 无常损失随价格波动增大而增大,且是对称的
  • 价格翻倍时损失约5.7%,涨10倍时损失高达42.8%
  • 无法完全消除,但可以通过选择稳定资产对、高交易量池子、集中流动性、对冲等策略来降低
  • 做市前一定要算清楚:手续费收入能否覆盖潜在的无常损失

嗯,这一章的内容就到这里。无常损失这个概念,理解起来不难,但真正在实战中把握好,需要经验和判断力。希望今天的讲解对你有帮助。


公众号:蓝海资料掘金营,微信deep3321