GaiaEx AcademyGaiaEx Academy
什么是无常损失?
初级区块链7 min read

什么是无常损失?

提供流动性的隐性成本——以及如何管理它

分享文章

那笔没赚到的利润

在 2020 年夏天,也就是所谓的「DeFi 之夏」,成千上万的人发现了一个听起来很神奇的点子:把你的加密货币放进流动性池,边睡边赚手续费。不用交易,不用择时,只要存入两种代币,就能收取收益。各个协议打出了高得吓人的 APY(年化收益率)。资金蜂拥而入。

然后人们开始提款。一件奇怪的事情发生在他们当中许多人身上:仪表盘显示盈利,但他们的钱包却比当初什么都不做时还要穷。他们赚到了手续费,看着自己的资产升值,结果跟什么都不做相比反而亏了钱。这个罪魁祸首有一个具有欺骗性的温和名字:无常损失。

你往一个 Uniswap ETH/USDC 池里存入 $10,000。一个月后,池子的价值显示为 $10,800——你「赚了」8%。可是如果你只是把同样的 ETH 和 USDC 放在钱包里,什么都不做,你本该有 $11,200。你比被动持有少赚了 $400。

这 $400 的差距就是无常损失。它是去中心化金融中最被误解的概念,也是无数首次提供流动性的人悄悄跑输一个无聊到只需要袖手旁观的策略的原因。这节课的存在,就是为了确保你永远不会成为他们中的一员。

无常损失从何而来:AMM

要理解这种损失,你首先得理解制造它的那台机器。传统交易所通过订单簿撮合买家和卖家——一份买价与卖价的清单。像 Uniswap 这样的去中心化交易所抛弃了它,用自动做市商(AMM)取而代之:一个装着两种代币的池子,外加一段自动设定价格的数学公式。

任何人都可以往池子里存款。如果你存入价值相等的两种代币——比如 ETH 和 USDC——你就成了流动性提供者(LP),池子会按你所占的份额,把每一笔交易手续费分一部分给你。而交易者则是跟池子做兑换,而不是跟另一个人。

价格不是由做市商报出来的;它是从池中两种代币的比例推导出来的,由恒定乘积公式支配:

  • x × y = k,其中 x 是一种代币的数量,y 是另一种代币的数量,k 是一个在兑换过程中绝不能改变的常数。
  • 当有人从池中买入 ETH 时,ETH(x)减少,USDC(y)增加——但它们的乘积 k 保持不变。为了让 k 维持恒定,每多买一个 ETH 都要花费越来越多的 USDC。那条曲线就是价格。

关键的后果在这里。池子根本不知道 ETH 在外部世界值多少钱。它只知道自己的比例。当真实市场价格发生变动时,池子的价格会暂时出错——而那个差距就是一份公开的邀请函。

关键洞察:AMM 是一个被动的机器人。它从不会自己更新价格。唯一能把池子的价格拉回与真实世界一致的,是一个从这种价差中获利的套利交易者——而他赚到的每一美元,都是从流动性提供者的口袋里掏出来的。无常损失就是套利者的利润,只不过是从牌桌另一侧 LP 的角度来看的。

用真实数字算一遍的例子

理论很滑头;数字不会。我们把一个例子从头到尾走一遍。

在 ETH = $2,000 时,你往一个池子里存入 5 ETH 和 10,000 USDC。总价值:$20,000。池子的恒定乘积为 k = 5 × 10,000 = 50,000。

现在 ETH 在更广阔的市场上翻倍涨到 $4,000。池子对此一无所知,仍然把 ETH 定价在 $2,000 附近——所以它在以过低的价格卖 ETH。套利者扑了上来:他们把被低估的 ETH 从池子里买走,拿到别处去卖,不断重复,直到池子的价格与 $4,000 匹配为止。由于 k 必须维持在 50,000,新的余额大约稳定在 3.54 ETH 和 14,142 USDC(3.54 × 14,142 ≈ 50,000,且 14,142 ÷ 3.54 ≈ 每个 ETH $4,000)。

你的份额现在价值:3.54 × $4,000 + $14,142 = $28,282

但如果你只是持有最初的 5 ETH 和 10,000 USDC:5 × $4,000 + $10,000 = $30,000

无常损失就是 $30,000 − $28,282 = $1,718,相当于持有本该带给你的金额的 5.7%。

请仔细读这段,因为几乎所有人都在这里搞混了:池子并没有亏钱。相对于最初的 $20,000,你赚了 $8,282。这个「损失」纯粹是一种机会成本——你比那个懒惰的替代方案少了 $1,718。池子在上涨过程中悄悄卖掉了你正在升值的 ETH,让你手里留下更多没有上涨的那种资产。你在同一时期赚到的交易手续费是否超过 $1,718,才是决定这件事到底值不值得的全部问题。

无常损失:LP vs. 仅持有(ETH 翻倍) 初始存入 5 ETH + 10,000 USDC 价值:$20,000 仅持有 $30,000 5 ETH × $4K + $10K USDC LP 池子价值 $28,282 3.54 ETH + 14,142 USDC 无常损失 −$1,718 持有价值的 5.7% 手续费须超过此值才能盈利 注:LP 仍然盈利(赚了 $8,282)——但比被动持有少 $1,718
当 ETH 翻倍时,LP 最终比单纯持有少了 $1,718。池子自动卖掉了正在升值的资产——那种再平衡正是 IL 的来源。

为什么叫「无常」(以及为什么这是个陷阱)

这个名字是 DeFi 里最残忍的玩笑。「无常」暗示这种损失是暂时的、无害的、会自行化解的。但对大多数人、在大多数时候,这种暗示都危险地具有误导性。

这个名字背后的真相核心在于:只要你的资金还留在池子里,这种损失就只是未实现的。如果这两种代币的价格漂移回完全等于你存入时的比例,差距就会闭合,无常损失也会彻底消失。在这种狭隘的意义上,它才是「无常」的。

但请注意这个条件:价格必须回到你出发时的精确位置。而市场很少会照办。翻了倍的 ETH 通常不会乖乖晃回你的精确入场价。而且,一旦你提取流动性,那一刻存在的任何损失就会变成永久且已实现的——永远锁定。

所以,一个更诚实的心智模型是这样的:无常损失是一场赌价格会回归的赌注。留在池子里,你就是在让这场赌注开着。提款,你就按当时的分数把它兑现。把它叫做「无常」,让比 DeFi 里任何其他行话都更多的人,被诱进了跑输简单持有的境地——这恰恰是为什么一个头脑清醒的 LP 从第一天起就把它当作真实成本来对待。

情况能糟到什么地步?

无常损失纯粹是两种代币之间价格背离的函数——它们的比例相对你的入场点漂移了多远——而且这种关系是残酷地非线性的。关键在于,方向并不重要。一种代币翻倍和一种代币减半,都会让比例变动 2 倍,两者造成的无常损失也完全相同。

这些数字,是相对于单纯持有来衡量的:1.25 倍的变动成本约为 0.6%。1.5 倍的变动(ETH $2,000 → $3,000)成本约为 2.0%。2 倍($2,000 → $4,000)成本为 5.7%。3 倍($2,000 → $6,000)成本为 13.4%。4 倍成本约为 20.0%。而5 倍($2,000 → $10,000)则要付出高达 25.5% 的惩罚性代价。ETH 从 $2,000 崩跌到 $1,000——同样是比例上 2 倍的变化——产生的损失和翻倍时一模一样,都是 5.7%。

这条曲线解释了 DeFi 中一整套设计哲学。对于像 USDC/USDT 这样的稳定币交易对,价格比例几乎不动——通常背离不到 0.5%——所以无常损失实际上可以忽略不计。这正是为什么专注于稳定币和同类资产池的 Curve Finance,能为 LP 提供比 Uniswap 那些波动剧烈的交易对更可预测得多的回报。这种取舍很诚实:费率更低,但 IL 吞掉你利润的风险也大幅降低。交易对越狂野,你就必须赚到越多的手续费,才能在相对持有时勉强保本。

按价格背离划分的无常损失 价格变动 新价格(若 ETH 原为 $2K) 无常损失 严重程度 1.25x $2,500 0.6% 2x $4,000 5.7% 3x $6,000 13.4% 5x $10,000 25.5% 严重 同样的百分比也适用于价格下跌(下跌 50% = 2 倍背离 = 5.7% IL)
无常损失随价格背离非线性地加速。5 倍的变动会造成 25.5% 的损失——与方向无关。

账本的另一面:交易手续费

如果无常损失就是故事的全部,那就没人会去提供流动性了。但人们确实在做——因为当 LP 也是有报酬的。每一笔经过你池子的兑换都会收取一笔手续费(Uniswap v2 通常是 0.30%,v3 则有 0.05% 或 1% 之类的档位),这笔手续费会按份额比例分配给各个流动性提供者。一个 LP 真正的盈亏,就是一道简单的减法:

净结果 = 赚到的交易手续费 − 无常损失 − gas 成本。只有当手续费收入跑赢同一次价格变动所造成的 IL 时,提供流动性才是盈利的。一个 LP 所做的一切——挑选交易对、挑选区间、挑选退出的时机——都是在试图让这道等式保持为正。

这就是为什么交易量是 LP 最好的朋友。一个高成交量的交易对,能足够快地甩出手续费,从而压过适度的 IL。而一个死气沉沉、低成交量但偏偏又波动的池子,则是两头不讨好的最糟情况:手续费收入微薄,背离却一大堆。同样一次让你在 IL 上付出 5.7% 的 2 倍价格变动,如果你一路上收取了 9% 的手续费,就是一个很棒的结果——而如果你只收到 1%,那就很痛苦了。

这套工具还有一个更锋利的版本。Uniswap v3 集中流动性让你可以把资金限定在一个选定的价格区间——比如 ETH 的 $1,800–$2,200——而不是把它摊在所有可以想象的价格上。在那个区间内,你每一美元能赚到的手续费会大幅增加:一个集中在窄区间里的 $10,000 头寸,能赚到一个摊开的 $200,000 头寸所赚的那么多。代价毫不留情——如果价格离开了你的区间,你就会停止赚取手续费,并且你的头寸会完全转换成那种较弱的代币,把你最糟的 IL 给凝固下来。集中化会同时放大回报和风险。

风险、缓解措施,以及何时值得做 LP

诚实的教育意味着把每一处边角都点明。无常损失是提供流动性的头号风险,但它从不单独出现:

  • IL 在提款时变成永久。那个让人安心的「无常」标签,在你退出的那一刻就蒸发了。如果你在价格已经背离时提款,你就把损失永久地存进了账——离场之后,没有什么「再等等就好」。
  • 波动率是那个放大器。一个交易对的摆动越剧烈,你为了在相对持有时勉强保本所需的手续费就越多。把一个稳定币和一个全新的、交投清淡的代币配成对,是导致严重 IL 的经典配方。
  • 智能合约与协议风险。你的资金活在代码里面。未经审计的、刚刚分叉出来的、或有 bug 的 AMM 可能会被漏洞利用掏空——这种损失跟价格毫无关系,而完全在于信错了合约。
  • 离谱的收益是警告,不是礼物。一个打出难以置信的 APY 的池子,通常是在补偿难以置信的风险——一个脆弱的代币、即将枯竭的雇佣兵式激励,或者更糟的东西。先小额投入,用整整一周衡量真实回报,然后再扩大规模。
  • 暴跌时的单边敞口。如果你用一个波动的代币对一个稳定币做 LP,而那个代币崩盘了,池子就会持续卖掉你的稳定币去买入那个正在下跌的代币——让你手里留下更多的输家。你在承受下行风险的同时,却已经把自己的上行空间封顶了。

缓解措施直接源自其机制:偏好相关或稳定的交易对(USDC/USDT、ETH/stETH),它们的背离在结构上就很小;优先选择高成交量的池子,让手续费挑大梁;有意识地使用集中区间并加以盯盘,而不是盲目使用;并且只往经过审计、久经考验的协议里存款。更新的设计也有帮助——单边存款、为稳定币优化的曲线,以及在波动期间上调的动态费率,全都旨在钝化 IL。

归根结底:提供流动性是一种披着被动外衣的主动策略。盈利的 LP 会监控头寸、再平衡区间,并持续地把手续费收入与 IL 作比较。把一个 LP 头寸当成存进去就不管的储蓄账户,是人们最终跑输一个简单到只需持有的策略的最常见方式。在 GaiaEx 上,即便你自己从不提供流动性,这些机制也很重要——因为你所交易的各个市场上 AMM 池的深度与行为,会直接塑造你拿到的价格,以及你能抓住的机会。