本文作者:Auditless创始人Peteris Erins,前麦肯锡分析师
本周早些时候,我写了关于如何推导出 Uniswap V1 和 V2 的无常损失公式的文章。我们将使用相同的方法来计算 Uniswap V3 和集中流动性头寸的无常损失。
对于像 Uniswap 这样的自动做市商 (AMM) 来说,无常损失是一个流行的概念。作为流动性提供者,您的头寸相对于任一资产的价值可能会下降,而无常损失通常被定义为 LP 在给定价格变动时遭受的损失百分比。
Uniswap V3 流动性提供商提供固定价格范围内的流动性。这种特征称为集中化流动性。但是在固定范围 [a, b] 内提供流动性意味着什么?在头寸集中的情况下,池中两种资产的储备在交易期间以更高的速度消耗,导致它们在范围的任一端(a 或 b)完全耗尽。
您可以将其视为通过杠杆提供流动性。如果价格没有超出范围,您可以提供更有效的流动性(也称为虚拟流动性)。如果是这样,您的头寸只剩下 1 项资产,并且在价格重新进入该范围之前不会赚取交易费用。
在进行杠杆交易时,收益和损失被放大,Uniswap V3 也是如此。 集中头寸的交易费用份额较高,但无常损失也较高。 我们会查明具体是多少。
定义
我们举例一个流动性为 L 的市场,在一个集中流动性头寸中,资产 X 和 Y 的数量分别为 x 和 y。
我们根据资产 Y = y / x 设置资产 X 的初始价格为 P,并考虑价格变动至 P' = Pk,其中 k > 0。我们还将 [p_a, p_b] 定义为我们集中流动性头寸的价格区间。 假设 P 和 P' 都在这个区间内。
根据白皮书,集中头寸的准备金可根据这个曲线来描述:
这意味着在给定的价格范围内,一组较小的储备 x、y 能够充当更大的储备。
从我们之前的帖子中,我们可以根据流动性 (L) 和价格 (P) 确定虚拟储备,我们可以在这里使用它:
我们再次定义三个值:
V_0,初始持有资产Y的价值
V_1,如果保留在池中,则持有的价值(x,y 随价格移动)
V_held,如果保留在池之外,则持有的价值(x,y 常数)
推导
和以前一样,V_1 等于用 P' 代替了 V_0中的P:
接下来是 V_held:
最后,我们将无常损失作为一种百分比变化进行计算:
其中 IL_a,b(k) 是 [p_a, p_b] 范围内集中头寸的无常损失,IL(k) 是 (0, +∞) 范围内 V2 头寸的无常损失。
我们可以做两个快速检查。 首先,在 p_a = p_b = P 的极端情况下,那么无常损失将为 0。
其次,我们可以设置 p_a → 0 和 p_b → +∞ 并看到 IL_{0,+∞}(k) = IL(k),也就是价格范围越大,对于V2,这个方程就越收敛到无常损失方程。
最后,设置 k = 1,我们确实得到 0,因为在这种情况下不应该有任何无常损失。
注意事项
请注意,如果价格落在流动性范围 [p_a, p_b] 之外,则此等式将不适用,因为资产持有量在价格范围之外停止变化。 我们把它作为一个简单的练习留给读者。
分析
无常损失有多大? 考虑一个简单的例子,其中 p_a/P = 1/n 和 P/p_b = 1/n。 在这种情况下:
我们可以看到对于不同的 n 值,这个比率是什么样的:
即使我们的流动性范围大到足以容纳价格翻倍或腰斩,与我们在整个价格范围内提供流动性相比,无常损失也高出近 4 倍。 这还不包括与落在集中流动性范围之外相关的无常损失……
简而言之,注意资金安全。
声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。
简介:服务于区块链创新者
评论0条