什么是无常损失?
无常损失 Impermanent Loss
无常损失简单来说是由于资金池中的币的价格背离引起的。去中心化交易所的自动做市商模型一般是恒定乘积做市商模型,简称 CPMM(Constant Product Market Maker)。最早在2017年,以太坊的创始人 vitalik 就在 reddit 上提出过 CPMM 模型在去中心化交易所的应用。2018年,他在 Ether Research 论坛上又提出了优化方案。目前,像 Uniswap 这样的去中心化交易所,采用的都是恒定乘积做市商模型,正是由于这种模型的计算方式,AMM 对做市商并不友好。流动性提供者并不是一定能够盈利。
举个例子:
假设当前流动性池中 ETH/DAI
分别有 100 个(ETH)和 30000 个(DAI),那么 100 * 30000=3000000。
假设我们在其中有十分之一的资产,10ETH
和 3000DAI
。过了一段时间,ETH
价格上涨,流动池中资产比重发生了变化,变成了 50ETH
和 60000DAI
,这时 50 * 60000=3000000 乘积没有变化,我们的资产会相应进行调整,变成了 5ETH
和 6000DAI
,它和单纯持有 10ETH
和 3000DAI
相比的价值之差,就是无常损失。
从这个角度来说,无常损失可以看成一种机会成本,这个成本是我们持有两个加密货币资产和把这两个资产投入到资金池中进行流动性挖矿相比,最终的价值之差。
恒定乘积做市商模型其实非常简单,它其实就是一个公式,x * y = k
。
假设交易对是 A 和 B,其中 x 是流动性池中 A 的总流通量,y 是 B 的总流通量,在不增加或减少流动性的情况下,无论交易多少次,x 和 y 的乘积 k 是不变的。所以 A 和 B 的数量关系是这样一个反比的曲线:
由于每次交易,都会改变做市池中 A 和 B 的数量,所以 A/B 的价格就会发生变化。
假设资金池中一开始是 1200 个 A 和 400 个 B,所以兑换价格是 3:1。某个交易者用 3 个 A 兑换了 1 个 B,算上手续费(假设0.03%),那么资金池中就变成了 1203.03 个 A 和 399 个 B,那么接下来 A 兑换 B 的价格就是 3.01:1 了。
作为交易者,如果 A 和 B 的兑换价格是 3:1,那么也并不意味着你一定可以用 1 个 B 换 3 个 A。由于存在交易滑点,你实际拿到的 A大概率是要小于 3的。而 A:B 的资金池中的币量越多,交易滑点就越小。交易者需要兑换的币量越小,滑点也越小。如果交易者交易的单子非常大,就会造成类似砸盘的效果,滑点也会非常大。
那么初始的币量比值是谁定的呢?在去中心化交易所,任何人都可以定义一个新的交易对的资金池的初始量,也就是其价格。如果这个价格定得不合理,就会有套利者进行套利交易,使得价格趋于合理。
我们可以在一些网站上找到无常损失的简易计算器,我们以非小号为例,来看一下:
输入两个币的预计涨幅,以及池子中币量的比例,就可以看到预计的无常损失。在这个例子中,如果我们存入时池子中 A 和 B 的比例是 1:1,一段时间后,A 跌了 50%,B 涨了 60%,那么预计的无常损失就是 14.816458%。
无常损失是流动性挖矿必然会遇到的一个问题,它本身几乎没有可以改进的空间,而有些平台,通过一些特殊的方式,可以尽可能的降低无常损失。