无常损失是指资金在流动性池中面临的损失。这种损失通常发生在流动性池中代币的比例变得不平衡时。不过,无常损失直到代币从流动性池中被提出后才会实现。这种损失通常是通过比较流动性池中代币的价值与简单持有它们的价值来计算的。由于稳定币具有价格稳定性,因此使用稳定币的流动性池不会受到永久性损失的影响。
无常损失是如何产生的?
无常损失通常会影响具有相等比例的代币 50/50 的流动性池。在USDC/ETH流动性池中,流动性提供者需要将相同份额的USDC和ETH注入到池中。然后他们有权提取同等份额的资金。当用户使用流动性池(发生在去中心化的交易所)进行交易时,该比率将根据每个池中有多少代币而变化,这将影响这些代币的价格。
假设一个流动性提供者向流动性池添加1个ETH和100个USDC,这是两个代币的价值相等。他们的存款金额是200美元,因为他们的ETH和USDC都值100美元。目前,流动性池中有10个ETH和1000个USDC,比例为50/50,这使得流动性提供者在池中占有10%的份额。他们将收到LP代币,他们可以使用这些代币随时赎回他们在池中的10%份额。
由于代币的价格依赖于其流动性池的比率,它们的价格可以与其他交易所的价格分开。如果ETH价格上涨100%,现在每ETH价值200美元,流动性池将变为7.071 ETH和1,414.21 USDC。这是因为池子的比例发生了变化,不再是50/50,这影响了ETH的价格。
由于流动性提供者有10%的流动性池份额,他们可以提取0.7071 ETH和141 USDC,相当于282美元。然而,如果流动性提供者仅仅持有他们的1个ETH和100个USDC,他们将价值300美元。两者之间的差额18美元是流动性提供者所经历的无常损失。池的比例变化越大,产生的无常损失就越大。
无常损失的数量也会受到流动性池中的代币以及流动性池中的流动性提供者数量的影响。因为上面的例子使用了ETH/USDC流动性池,所以ETH有一个稳定的资产可供交换。如果流动性池是ETH/LINK,那么无常损失的风险可能会更高,因为这两种代币都有可能波动。流动性池也可以由纯稳定币组成,如DAI和USDC。这大大降低了无常损失的风险,因为稳定币几乎没有波动,这将使池保持极其稳定。
下图显示了价格如何影响流动性提供者将经历的无常损失。当代币价格上涨500%时,就可以看到流动性提供者将蒙受大约25%的临时损失。这比单纯持有代币的价值少25%。
由于去中心化交易所使用等式来计算当比率变化时如何调整代币的价值,可以使用一个失常损失计算器来轻松计算潜在损失。下面是一个失常损失计算器的例子,可以在dailydefi.org/tools/impermanent-loss-calculator/上找到
在本例中,代币A为$100,代币B为$1,两个代币之间的起始总值为$1000—这是由计算器自动设置的。在“未来价格”部分,代币A的价值增加到200美元,而代币B的价值保持在1美元。
由于持有代币A和B的价值将为1500美元,而它们在一个流动性池中为1414.21美元,这将导致85.79美元的永久性损失。
这使用代币A和B都为500美元的例子。使用自己的金额来计算,可以乘或除以任何给定的值。如果用户使用两个代币的2000美元,这是示例的两倍,用户的无常损失将是171.58美元。
下面是另一个无常损失计算器的例子,可以在decentyields.com/impermanent-loss-calculator上找到。在这里,用户可以手动设置自己的存款金额以及池的比例,池权重。
在这个例子中,ETH的价格上涨了100%,而Tether的价格保持稳定。下面可以看到4000美元的存款利润是1656美元,即池盈亏。然而,无常损失为5.7%,造成344美元的损失。这可由持有价值减去池子价值计算,即$6,000 - $5,656 = $344。
但是,它只能从代币的当前值进行计算。如果用户以比当前更低或更高的价格购买代币,它将不允许用户更改此值。如果用户需要尽可能多的数据,就可能需要使用多个计算器,因为目前没有一个计算器提供所有必要的功能和数据点。
为什么要成为流动性提供者?
虽然流动性提供者可能会经历无常损失,但他们的代币收益率也必须考虑在内。如果用户的收益产生的回报高于从无常损失而损失的金额,那么用户可以获得比简单地持有代币更多的利润。此外,通过在流动性池中获得代币收益,用户也在将它们转变为一种生产性资产。
Uniswap从每笔交易中收取0.03%的费用,并将其提供给流动性提供者。交易量越高,流动性提供者的收入就越多。下面用户可以看到ETH/USDC池在24小时内产生的费用超过了402,000美元。用户在这一池子里的份额越高,用户从这402000美元中获得的收入就越多。
DeFi平台也一直在鼓励用户向其资金池增加流动性。这通常通过根据用户的份额给予奖励来实现。在Uniswap上,流动性提供者还可以赚取UNI代币作为提供流动性收益的额外奖励。这可以进一步增加流动性提供者的利润,同时减少无常损失的影响。
解决方案
虽然流动性提供者可以使用稳定币、收益率和奖励来帮助减少无常损失的影响,但他们也可以通过使用非50/50比率的流动性池来减少这一影响。Balancer是一个提供像60/40或80/20比率的流动性池的平台。当ETH以50/50的比例存入一个池时,流动性提供者必须对另一个代币有50%的风险敞口。对于80/20的池,他们只需要另外一个代币20%的敞口。可以在下面看到三种流动性池比率是如何受到无常损失的不同影响的,95/5的池子的无常损失最小。
与提供流动性相比,这些较高的比率还可以通过提供较小的代币持有差异来帮助减轻无常损失的影响。下面可以看到,80% ETH和20%另一个代币的流动性池比50/50的比率表现更好。
值得注意的是,50/50的池比其他更常见,特别是在Uniswap。由于交易费用流入流动性池,用户的收益率取决于有多少人在使用自己的流动性池。如果这一比率是95/5,但没有人利用池子进行交易,那么用户的存款收益很少或没有收益。
Bancor是另一个通过其流动性池实现oracle以帮助最小化无常损失的平台。由于oracle可以从外部来源提供数据,流动性池可以从其他交易所获得资产价格数据。这可以帮助流动性池相应地调整价格,而不是仅仅依靠池的比率来确定代币的价格。由于失常损失变得更糟的比率变化,这可以让流动性池保持接近50/50的比率,这可能会显著降低无常损失的风险。