一文彻底了解无常损失

知乎 阅读 2853 2021-3-8 15:28
分享至
微信扫一扫,打开网页后点击屏幕右上角分享按钮

2020年上半年去中心化金融变得炙手可热。流动性挖矿一度造富。Uniswap作为现如今最大的去中心化交易所广受瞩目。介绍如何使用uniswap进行流动性挖矿的文章很多,我这里不再说明。这里主要介绍无常损失(Impermanent Loss)这一概念。 大家可能在进入挖矿时并不完全了解这一概念,从而造成一些困惑或投资损失。接下来我们就深入了解一下这个概念。介绍中有公式推导。大家可能对数学公式有一种恐惧感,我尽量不省略中间过程。实在对公式抵触可以直接跳过公式推导看具体例子。接下来还是先介绍一下概念。

什么是无常损失(Impermanent Loss)

这是在Uniswap上进行流动性挖矿时会碰到的一种损失。这种损失是由于代币价格背离引起的。当价格回归时,这种损失也就没有了。我们这里说的是损失,不等同亏损。当我们把一对代币存入Uniswap后,如果一种代币以另一种进行计价的价格上升,那么在价格上升后你把他们取出,得到的总价格比直接手握这两种代币要低一些,低的这一部分就是损失,价格偏离越大损失就越大,所以可能造成亏损,特别是当两种代币在实际中都要以其他稳定币来计价时。当然挖矿还会有治理代币的收入。在讨论无常损失这一议题时,我们先抛开治理代币来分析。有的文章里觉得Impermanent Loss这个说法不够准确,所以也会看到有人把它叫做Divergence Loss(背离损失)。接下来我就来深入分析无常损失是怎么来的。

为什么会出现无常损失

我们知道Uniswap提供了自动坐市商的协议。我们提供代币对到流动性资源池,代币对之间的交换通过一个简单的公式进行计算。比如说,我们进入代币A跟代币B的流动性池。在池中代币A的数量是a,代币B的数量是b。那么,代币的交换过程中系统始终要保持a与b的积为一个常量c。也就是:

一文彻底了解无常损失

 ------------ 表达式1

如果我们考虑以代币B来计价代币A,我们用

一文彻底了解无常损失

标识这个价格。为了方便理解我们把A看成是以太币(ETH),我们把B看成是泰达币(USDT)。这样我们就好理解以USDT来计价ETH的概念了。回到分析。

代币A的价格计算如下:

一文彻底了解无常损失

 ------------- 表达式2

接下来我们结合表达式1,2,来推导出池中代币A跟代币B的数量计算公式。

(1) 代币A计算公式推导

一文彻底了解无常损失

所以,

一文彻底了解无常损失

代币A数量的计算公式 :

一文彻底了解无常损失

------------ 表达式4

(2)代币B数量公式推导

一文彻底了解无常损失

所以

一文彻底了解无常损失

代币B数量的计算公式:

一文彻底了解无常损失

-------------- 表达式5


有了表达式1到5,我们就可以来推导下面的问题。问题是,如果我存储了一定比例(这个比例记做 n ,是相对池的总量)的A跟B到流动性池中。 当A以B来记价的价格上涨了一个比率 r后我们会有多大比率的无常损失。

(1)我们先来看如果我们不进入挖矿,价格上涨后,我们手中的总价格

根据表达式4,5。我们知道这个池中代币A的数量是:

一文彻底了解无常损失

那我们的代币A的数量就是:

一文彻底了解无常损失

价格上涨后,这一部分代币的价格是:

一文彻底了解无常损失

我们知道池中代币B的数量是:

一文彻底了解无常损失

我们所持有的代币B的数量是:

一文彻底了解无常损失

因为本来就是以代币B计价的,所以这一部分的价格就是 :

一文彻底了解无常损失

我们所持有的价格合计就是:

一文彻底了解无常损失

-------- 表达式6

(2)接下来我们来看如果我们加入流动性池,价格上涨后,我们的总价格

我们知道上涨后的价格是:

一文彻底了解无常损失

根据表达式4, 我们知道上涨后,代币A的数量为:

一文彻底了解无常损失

根据我们所占比例n, 以及上面两个公式,我们得到代币A在这种情况下个价格为:

一文彻底了解无常损失

根据表达式5, A价格上涨后,代币B的数量为:

一文彻底了解无常损失

根据我们的占比n, 我们可以得到代币B的价格为:

一文彻底了解无常损失

所以上涨后的总价格为 :

一文彻底了解无常损失

--------- 表达式7

(3)根据表达式6,7 我们计算出损失为:

一文彻底了解无常损失

进一步简化为:

一文彻底了解无常损失

---------- 表达式8

(4)用表达式8,6,就可以得到损失率

先简化表达式6得到:

一文彻底了解无常损失

最后,我们得到的损失率计算公式为:

一文彻底了解无常损失

-----表达式9


从表达式9我们可知,最终的损失率只跟上涨率r有关。

我们可以取值来画出这个损失率的曲线。

当上涨率为-1(也就是价格变成0), 损失率为 1 --- -100%

当上涨率为 0 (也就是价格不变), 损失率为 0 --- 0.00%

当上涨率为 0.25 , 损失率为 0.006 --- 0.6%

当上涨率为 0.5 , 损失率为 0.02 --- 2.0%

当上涨率为 1 (也就是价格涨一倍) , 损失率为 0.057 --- 5.7%

当上涨率为 4 (也就是价格涨4倍) , 损失率为 0.255 --- 25.5%

一文彻底了解无常损失

上面我们展示了造成无常损失的原因。下面再用一个例子,让大家进一步具体感受一下。

无常损失举例

假定我们在Uniswap的ETH-USDT池进行挖矿。假设池中ETH跟USDT的个数分别为100跟40000,其中我们投入挖矿的代币数占比为1%,也就是1个ETH,400个USDT。为了分析简单,我们假设接下来没有人进行存储和提取活动。

开始时,ETH的价格为1ETH = 400USDT。

接下来,我们来看看,如果ETH价格上涨50%会是怎么样一个情况。上涨后,1ETH = 600USDT。

我们来看,如果不进行挖矿,价格上涨后,我们总共持有代币的价格。我们的1个ETH相当于600USDT。那我们一共持有600+400等于1000 USDT

我们再来看看,挖矿情况上不记治理代币奖励部分的价格总和怎么计算。根据表达式1,这个池的c值为

一文彻底了解无常损失

根据表达式4,价格上涨后ETH在池中个数为 

一文彻底了解无常损失

根据表达式5,USDT的个数为

一文彻底了解无常损失

因为我们占比是1%。所以我们可取出的ETH是0.816497个。可取出的USDT是489.897946个。根据价格再把ETH换算成USDT,

一文彻底了解无常损失

USDT ,好了,我们可以取得的总价是979.796146 USDT。

我们的无常损失是 1000 USDT - 979.796146 USDT = 20.203854‬ USDT。 我们的损失率为0.0202,也就是2%左右。我们看到这跟表达式9计算出来的一致。

到此为止,我们已经详细介绍了无常损失的由来。当然现实情况更为复杂,在一个流动性池里不断有人进行存取活动。还有就是流动性挖矿是有代币挖出的。但了解无常损失很是重要的,这样在进行流动性挖矿时,我们可以有更全面的认识。

btcfans公众号

微信扫描关注公众号,及时掌握新动向

来源链接:https://www.zhihu.com/
免责声明:
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
上一篇:自从披露购买比特币以来 特斯拉股价累计下跌30% 下一篇:比特币根本卖不掉 这是一个骗局吗?

相关资讯