Appearance
WTF DeFi 系列 - 何为无常损失?它是如何产生的?我该如何应对?
TL;DR: 无常损失(Impermanent Loss)是 DeFi 领域中的一种特殊现象,指当自动做市商(AMM)系统通过算法对代币进行再平衡时,会导致流动性池内外的资产总价值产生偏差,从而造成损失。
与依赖活跃的买卖双方和订单簿(Order Book)的传统交易模式不同,基于自动做市商(Automated Market Maker, AMM)机制的交易所是让你的资产与流动性提供者(Liquidity Provider, LP)提供的代币池进行交易。这些代币池(Liquidity Pools,即流动性池)的构成是由一个恒定的算法公式来调节的,该公式会平衡池中代币的比例。这种自动做市商的过程使去中心化交易所能够在没有传统交易中介(如证券交易所)的情况下运作,确保交易在不依赖于第三方的情况下始终能被撮合。
这种模式会导致一种独特的资产贬值现象 - 无常损失(Impermanent Loss,也称背离损失)。无常损失指的是流动性池内代币的价值与池外相同代币价值产生偏差的情况。由于 AMM 公式优先考虑比例平衡,你的资产价值可能与其在流动性池外的价值不同。如果你要将代币从流动性池中取出进行交易,就会产生这种损失。
为了减轻无常损失对 LP 的伤害,并激励他们提供流动性,AMM 采用了一种权益持有人模式来补偿 LP - 向 LP 支付一定比例的流动性池交易费用,并用平台特定的代币无偿奖励给提供流动性的 LP,这些代币本身可能成为极具价值的资产。为了解释无常损失是如何运作的,我们将以以太坊区块链上的去中心化交易所协议 Uniswap 为例来解释(在 Uniswap 的流动性池中,代币对必须保持其总价值不变,这种等值平衡由恒定乘积公式:x * y = k 来管理)。
恒定乘积公式:x * y = k
这个公式规定 Uniswap 流动性池中一种代币的总价值必须始终等于池中另一种代币的总价值。维持代币对之间的等值关系是自动定价机制的基础。
例如,一个 Uniswap 流动性池可能由 50% 的 ETH 和 50% 的 DAI 组成。当交易者来到 Uniswap 使用 DAI 交换(购买) ETH 时,池子收到更多的 DAI 并支出 ETH,导致池子中 ETH 供应减少。为了应对这种数量变化,Uniswap 上的恒定乘积公式会提高 ETH 相对于 DAI 的价格,使得池中 ETH 的价值再次等于池中 DAI 的价值。
让我们来做一些数学计算
我们来做下简单的数学计算:为了简单起见,我们假设你是 Uniswap 池中唯一的 LP,这个池子由 50% 的 ETH 和 50% 的 DAI 组成,你向池子提供了 10 个 ETH(此时每枚 ETH 价值 100 USD) 和 1000 个 DAI。虽然一个真实场景的流动性池基本不可能只存在一个 LP,但这是解释并理解无常损失(Impermanent Loss)是如何理论上运作的好例子。假设在你进入流动性池时:
- 1 个 ETH 的价格 = 100 DAI
- 池子包含 10 个 ETH 和 1000 个 DAI
随后,ETH 的二级市场价格翻倍至 200 美元:
- 1 个 ETH 的价格 = 200 DAI
- Uniswap 外部的套利交易者会进来购买池子中的 ETH,直到价格达到 200 DAI, 并与外部交易所持平
- 基于恒定乘积公式:x * y = k,流动性池现在将变为:7.071 个 ETH 和 1414.21 个 DAI
- 在 ETH 达到新价格 200 美元时,你在流动性池中持有的总价值将是:1414.21 美元 + 1414.21 美元 = 2828.42 美元
- 如果你只是持有原始的 10 个 ETH 和 1000 个 DAI,你在流动性池外持有的总价值现在将是:2000 美元 + 1000 美元 = 3000 美元
- 因此,你的无常损失是:3000 美元 - 2828.43 美元 = 171.57 美元
计算过程如下:
在 Uniswap 恒定乘积公式中,x 和 y 分别代表池中两种代币的数量,k 是一个常数,表示池中代币数量的乘积。公式为:
[ x \times y = k ]
在这个例子中,初始状态是:
[ 10 , \text{ETH} \times 1000 , \text{DAI} = 10000 ]
当 ETH 的价格翻倍至 200 DAI 时,新的价格比为 1:200。我们需要找到新的 ETH 数量 ( x ) 和新的 DAI 数量 ( y ) ,使得:
- ( x \times y = 10000 ) (恒定乘积公式)
- ( y = 200 \times x ) (新的价格比)
将第二个方程代入第一个方程:
[ x \times (200 \times x) = 10000 ]
简化得到:
[ 200x^2 = 10000 ]
解这个二次方程:
[ x^2 = 50 ]
[ x = \sqrt{50} \approx 7.071 ]
因此,新的 ETH 数量约为 7.071。相应的 DAI 数量为:
[ y = 200 \times 7.071 \approx 1414.21 ]
这就是为什么流动性池会变为 7.071 个 ETH 和 1414.21 个 DAI。
只有在极少数情况下,当价格恰好回到你进入池子时的水平,无常损失才会完全消除。池内外资产之间的价格差异越大,无常损失就越大。在这个场景中,如果 ETH 的价格下跌而不是上涨,你同样会经历类似程度的无常损失。在 DeFi 中,像 Curve 这样由表现相似的资产(如 USDC 和 USDT)组成的 AMM 流动性池,由于池中相对价格的差异有限,无常损失会大大减少。
在实际操作中,如果你要去 Uniswap 成为 LP,你的体验不会像我们上面的假设例子那样如此极端。你不会是唯一的 LP,而是会成为数千个在不同时间点向流动性池提供不同数量 ETH 和 DAI 的 LP 之一。尽管无常损失的程度可能仍与我们的例子相似,但计算损失的确切值会变得更加复杂,因为你必须考虑数千个其他 LP 独立且异步地与你的流动性池部分进行交互的影响。
来自自动做市商的奖励
为了缓解去 DeFi 生态系统中的无常损失并激励用户向流动性池提供代币,AMM 平台不仅向 LP 支付交易费用,还经常向 LP 分发平台代币作为奖励。以 Uniswap 为例,LP 在每次交易达成时都能获得 0.3% 的费用。对 LP 而言,更多的交易和更大的波动性就意味着更多的收益。当平台达到足够的交易量时,LP 可以通过累积的交易费用来抵消无常损失。
AMM 平台通过项目代币建立 LP 的奖励机制,如果你向指定的 Uniswap 流动性池提供代币,就可以赚取 UNI 代币作为奖励。同样,向合适的 Balancer 或 Curve 池提供代币则可以分别赚取 BAL 或 CRV 代币。这些代币不仅可以在 DeFi 生态系统的其他场景中使用,还可以在交易所进行交易。通过费用的累积和奖励代币的增值,不仅可以抵消无常损失,还能让 LP获得可观收益。
然而,要成为一个盈利的 AMM 流动性提供者,很大程度上取决于选择入场的时机和市场环境。如果你能在交易活动频繁的时期向合适的流动性池提供代币,就有机会累积可观的收益。