什么是无常损失

你是否有过这样的经历,向某个流动性挖矿池中提供流动性,结果拿回来的时候,发现自己的币变少了?在本文中,我们将了解什么是“无常损失”,“永久损失”,以及它如何影响流动性提供者的利润。

本质上,无常损失是提供流动性时发生的资金暂时损失/非永久性损失。之所以叫做非永久性损失,是因为只要在AMM中的代币相对价格恢复到其初始状态,那么,该损失就消失了。但是,这种情况很少发生。通常,无常损失会变成永久性损失,吞掉你的交易费用收入甚至导致负回报。

当AMM中的代币市场价格在涨或跌时,就会产生无常损失。波动越大,无常损失越大。

无常损失简单案例

充分理解无常损失的最简单方法,就是看一个简单的例子。

假设你作为流动性的提供者(即LP)向DAI / ETH Uniswap 50/50池提供流动性。为了向50/50池提供流动性,流动性提供者(LP)必须向池提供两个等值的token。(即提供DAI/ETH时,你提供两个币种流动性的价值(即价格*数量)需要相同。

假设此时DAI=1 USD, ETH=500 USD, 你需要提供20个ETH,和10000个DAI。

打开网易新闻 查看更多图片

你提供万流动性后,此时,两个token的价值是相同的。

假设,ETH的价格在外部的交易所中开始上涨。中心化交易所的ETH价格从500涨到了550美元。于是其他市场参与者(称为套利者)就开始工作了。套利者注意到中心化交易所和Uniswap之间的价格差异,并将其视为套利机会。

随着套利者从池中购走更多的ETH(即取走ETH流动性),ETH的价格就变得越高。套利者不断在Uniswap上购买更便宜的ETH,直到交易所之间不再存在价格差异为止。

使用恒定乘积公式,我们可以看到Uniswap ETH价格将达到550美元的时候,池中的情况会被套利者变为有10488.09个DAI和19.07 个ETH。

也就是说套利者花费488.09个 DAI买走了0.93 ETH,以实现Uniswap和Coinbase的ETH价格之间的平衡。此时,套利者的成本是1 ETH = 524.83 DAI 。套利者购买的ETH可以在外部的中心化交易所以DAI或任何其他基于美元的稳定币即时出售,价格为550美元。于是套利者从中赚取了约25美元(减去手续费)。

让我们看看这如何影响我们的流动资金提供者(LP)。

我们可以看到,如果流动性提供者一开始不提供流动性,而是把ETH和DAI放在钱包里面,他们将拥有$ 23.41的收益。这23.41美元基本上是LP的无常损失。

无常损失被称为非永久性,因为在此时此刻,LP只是在账面上损失了23.41美元。如果LP选择不撤回其流动性,当之哦户后面以太坊的价格回到500美元时再取出来,此时无常损失被抵消为0。

另一方面,如果LP决定在以太坊550美元时决定撤回其流动性,他们将永久性的损失23.41美元。

当然了,上述情况没有包含流动性提供者(LP)在提供流动性期间所赚取的手续费(0.4%每笔交易),以及流动性挖矿的收益(不是每一个流动性提供者都有此收益,而且流动性挖矿的收益是随时变化的)。

也就是说,即使你参加的流动性挖矿,可能展示出来极高的收益,但是如果挖矿的资产价格突然暴跌,并永远回不到你提供流动性时的水平,你的无常损失就会变成永久损失。而且你的永久损失,可能大于你的挖矿收益。

一般情况下,价格暴跌的资产就是你挖矿所得的资产,一旦其价格暴跌,挖矿收益率也会暴跌,同时无常损失会剧增。这会引发其他流动性提供者停止提供流动性,一旦流动性撤走,资产的价格就更容易继续暴跌。这就是所谓的“死亡螺旋”,或者说“矿难”。

无常损失计算器

如果你的数学并不是拿手的学科,或者对恒定乘积公式什么的没有丝毫兴趣,可以使用一些网站提供的计算工具。

比如这个:https://yieldfarmingtools.com/tools

可以看到当资产2相当于资产1变化剧烈,下图显示在419%(4.19倍)以上时,无常损失高达26.39%。

打开网易新闻 查看更多图片

想深入了解AMM机制及无常损失计算的,可以继续阅读下方资料:

AMM及无常损失的手动计算

Uniswap的矿池价值比例都为50/50。假设你在UniSwap上代币A/B矿池中按照1A = 50B的价格存入了10个A和500个B。而这个池中一共有100个A和5000个B,你的份额占10%。

由AMA的固定乘积公式可知,K=100*5000=500,000

当市场价格波动至1A=100B,而此时Uniswap中的A/B流动性池价格还是1A = 50B。这时套利者就会进入,在流动性池中用B换取A,再在其它中心化交易所卖出。这样就会造成A数量下降,B数量升高,从而重新达到一个平衡,使价格稳定在1A=100B。

而AMA的固定乘积公式中,K为定值,保持不变。假设在稳定后池总A总数数量变成X,B的数量变成Y,那么:

X*Y=K=500,000

100X=Y

解出X,Y,得到:

价格波动后,由于你的份额占据池中的10%,你的持有代币价值为7.071A+707.1B=14.14A

而假设如果你没有进行流动性提供,持有的A和B都在个人钱包里放着,那么你现在还是拥有10A+500B=15A

你的无常损失为:

15A-14.14A=0.86A

因此,可以发现,因为你提供了流动性,代币对价格波动后,你的资产价值反而缩水了。当然了,因为的流动性中做市商可以收取手续费,手续费是否能跑赢无常损失就是一个未知数了。

本文素材来源:

《Uniswap上的无常损失计算》-王心玉