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%
下面这张图展示了无常损失随价格变化的曲线:
从图上可以看得很清楚:曲线一开始比较平缓,但越往右越陡。也就是说,价格波动越大,边际损失越严重。
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