原文:https://frogsanon.neworder.network/articles/lp-diving-how-to-hack-impermanent-loss
当今市场上不乏 DeFi 协议,并且有大量机会通过为它们提供流动性来赚取收益。 UniSwap、Balancer 和 Curve 协议开创了现在几乎所有 AMM 协议都使用的 Constant Product Market Maker 公式和 StableSwap 不变量,他们的主张很简单:用户提供流动性,当池被用于交易时,每个协议根据这些公式分配费用。
然而,使用这些不变量的 LP 会注意到一个关键问题:价格变化会导致损失,而费用通常无法弥补。这种利润损失——无形的,但可衡量的——被称为无常损失。那么,当您可以通过简单的持有和出售获得更多收益时,为什么还要提供流动性呢?
那么,如果我们能改变这个想法从最初的亏损中获利呢?如果我们可以利用这一现象,在更广泛的多/空策略中作为一种有利可图的对冲,会怎么样?
这一切都可以通过我称为“LP Diving”的技术实现,我想解释一下。为了更好地理解这个概念,让我们首先回顾一下无常损失的基础知识。
无常损失
无常损失是一个相当简单的概念,但其含义是可怕的:购买和持有资产比将资产部署在流动性池中并收取费用更有利可图。这是因为当两种资产的价格出现偏离时,流动性池的机制会造成损失。因此,无常损失更准确地描述为发散损失。 [1]
以 LP 池 K 中的两种资产为例,它们的可变价格升值与 AMM/LP 本身无关。想象一下,你汇集了:
- 500 个代币 A,1 美元
- 500 枚 B 代币,1 美元
- 以 1,000 美元的价格存入 1,000 个代币
现在,考虑一种情况:
- 代币 A 从 1 美元增加到 5 美元(增加 500%)
- 代币 B 从 1 美元增加到 2 美元(增加 200%)
- 最终价值为 3,500 美元
合理的假设是,存款人以后可以在价格升值或贬值后以 1:1 的比例提取存款,就像买入并持有一样。代币 A 500,代币 B 500。
但是,这不会发生。每当交易通过它们时,池子就会根据预言机价格进行做市。因此它的名字——恒定产品做市商。
除非两种资产的相关性足够强,以至于每种资产的价格delta相等,否则只要价格出现偏离,储户就会提取不规则的数量。实际上,存款人将取出:
- 代币 A 的 316.23 个,价值 1,581.14 美元
- 790.57 的代币 B,价值 1,581.14 美元
- 如果存入,最终价值为 3,162.28 美元
存款人遭受了 9.65% 的无常损失(或比持有人少 337.72 美元)
这一利润明显低于根本不提供流动性所赚取的利润,这往往会让池存款人从一开始就不存钱。许多协议试图通过释放来激励流动性,以此作为向储户支付费用的一种方式,但几乎总是,这些费用并不能弥补价格差异带来的损失。
考虑一下:一个协议是否有能力向每个存款人支付差价——在上面的例子中是 337.72 美元。通常情况下,作为费用支付的代币通过分配膨胀的低成本供应来补偿,这通常会迫使储户简单地重新组合所赚取的边际利润。对无常损失的受害者一点安慰!
颠覆想法
这是不鼓励将一种以上的资产集中在一起的核心原因——它增加了做市的复杂性。此外,根据利润不断地重新分配资产,使得储户很难预测他们是否会通过领取 LP 代币来取回他们的钱。
然而,在观察 AMM 行为时可以看到一个独特的价值记录。再次检查我们上述示例的结果:
- 316.23 A 代币,售价 1,581.14 美元
- 790.57 B 代币,售价 1,581.14 美元
请注意,虽然 A 和 B 的价值相同,但提取的代币数量不同。我们开始时我们有500个代币B,现在我们有790.57个。自动做市商的效果是存款人用 A 的股票换 B 的股票,而这两种资产的价格都会随着时间的推移而上涨。随着它们之间的价格出现偏离,我们使用我们对 A 的分配将更多的股份分配给 B。
那些与流动资金池合作的人可以应用更复杂的方法从基于 CPMM 的 LP 中获利,通过利用重新分配机制在一种我称之为“LP Dive”的相互作用中获利。
新人的高级流动性
这个概念相当简单:存入流动资金池,然后随着价格的偏离提取资产。然后,为数量较大的资产建立多头头寸。
有利可图的Dive源于对背离损失现象的利用。核心赌注是,在偏离之后,多头资产头寸的升值速度使收益大于持有或存款。为常见的代币 LP 设置提供了两个示例:用于代币-稳定池(Token-Stable pool)的Compression Dive和用于代币-代币池(Token-Token pool)的Twin Dive。
示例一:Token-Stable Pool
Token-Stable Pool在任一方向上都像原生的美元成本平均机制一样工作。这是对冲的核心 - 存入Token-Stable LP 允许用户在上涨或下跌的过程中以较低的收益进行DCA,同时赚取一些费用。这将被称为Compression Dive。
让我们来看看这个例子。假设投资者 LP 具有:
- 500 枚 A 代币和 500 枚 Stable B 代币,分别以1 美元购买(存入 1,000 美元)
- 投资者正在使用灵活的多头/空头策略
- 投资者做多A,灵活做空B
然后,假设发生以下情况:
- 代币 A 的价格降至 0.01 美元
- Stable B的价格保持在$ 1
由于投资者希望在 A 上持有多头头寸,因此如果价格贬值,他们可以简单地撤回其流动性池代币 K。在此示例中,当代币 A 达到 0.01 美元的价格点时,投资者退出,留下 5,000 代币 A 和 50 个Stable B。
结果是增加了储户的损失! LP给他们留下了总共 100 美元,如果他们只是持有,他们将拥有 505 美元。对于流动性池的储户来说,这似乎是一个非常糟糕的案例,因为事实就是如此,而应计费用无法弥补如此巨大的损失。
在这个例子中,无常损失计算为 80.2%,如果存款人不监控他们的头寸,净损失是惊人的高!存款人损失惨重,他们可能会倾向于削减存款。
这就是我们在这个流动资金池中“跳水”的地方。即使池的价格(可提取存款)下降,A 的数量也会呈指数增长。不管他们是否知道,随着价格下跌,储户用他们的Stable B 购买了更多的 A。
在这里,我们有 LP 跳水(dive)的中心前提:将无常损失重新定义为代币的重新分配,并相信它们将回到初始价格。投资者不会放弃代币 A 的头寸,而是退出持有多头头寸。通过持有这个多头头寸,投资者实际上降低了他们的盈亏平衡价格!
- 存款人拥有 5,000 个代币 A
- 存款人有 850 美元的无常损失(损失 900 美元 – 剩余的 50 美元来自Stable B)
- IL除以代币A的数量(850 / 5,000)
- 当代币 A = 0.17 美元时,存款人收支平衡
这就是指数增长发生的地方。在本例中,当代币 A 升值超过 0.17 美元时,多头头寸的风险回报率也呈指数增长。
现在,精明的观察者可能会考虑在没有流动性池的情况下采用这种策略:他们不用存入1000美元,而是简单地使用最初1000美元的一半或全部,以0.01美元的折扣价购买10万代币的A。这种策略在没有 LP 的情况下表现更好,因为交易者在没有额外工具的情况下做市。
这就引出了一个问题:为什么要在微底最赚钱的时候使用跳水策略呢?其理念是,使用潜水策略允许投资者在功能上使用 LP 作为对冲工具。下行风险通过 AMM 的机制自然得到保护,因为确定微底的时机说起来容易做起来难。
通过整合来压缩代币价格以获得收益
我们可以通过借鉴底层做市商的想法并在跳水策略中实施来重新平衡风险分配。那么,压缩就是行使灵活的空头头寸。
潜水员可以选择在他们立即退出后通过使用 Stable B 头寸以现货价格购买代币 A 来巩固其 Stable B 头寸。在恢复到初始价格的前提下,这进一步放大了跳水策略的收益。巧合的是,这也降低了代币 A 的价格在押金盈亏平衡点之后呈指数增长的门槛。
总结:
- 使用 50 个 Stable B 增加头寸 5,000 A 代币
- 存款人现在有 10,000 个 A 代币
我们仍然假设这是一个不使用集中流动性头寸的 LP
这是 C-Dive 最令人着迷的方面:最终总头寸为 10,000 美元 - 初始存款后的利润为 9,000 美元。 在流动性池上使用压缩跳水策略允许对代币 A 头寸进行对冲,并收集类似于计时本地或微底的利润。
示例二:Token-Token Pool Dive
真正的魔力是当您开始使用两个具有波动性的代币时。 如果使用得当,LP 现在是您最喜欢的对冲工具。 使用 Token-Token Pool 开始引入杠杆跳水策略,通过将一种资产与另一种资产压缩以获得成倍的收益。
让我们假设一个投资者的投入与以前相同:
- 500 个代币 A,500 个代币 B——每个 1 美元
- 1,000 美元的初始存款
- 投资者正在使用灵活的多头/空头策略
- 投资者做多A,灵活做空B
然后,假设发生以下情况:
- 代币 A 的价格降至 0.01 美元
- 代币 B 的价格上涨至 2 美元
Dive取款总结:
- 7071.07 代币 A
- 35.36 代币 B
- 持有 1,005 美元
- 如果存入 LP 则为 141.42 美元
在这种情况下,无常损失计算为 85.93% - 比 Token-Stable 池的 IL 高 5.73%!从这个有利的角度来看,发散损失看起来非常可怕。
让我们评估盈亏平衡点:
- 7,071.07 的代币 A 需要补偿 -$858.58 的初始存款损失
- 存款人拥有 35.36 个代币 B,即 70.72 美元
- 我们要补偿代币 B 的量化 IL 损失(即在代币中)以计算盈亏平衡
- 我们从存款价值中减去代币 B 持有量 (1,000 - 70.72)
- 将此 IL 补偿值除以代币 A 的数量 (929.28 / 7,071.07)
- 当代币 A = ~$0.13142 时,存款人达到盈亏平衡
此外,存款人可以选择他们是否愿意在提款后立即购买来行使空头头寸。我们可以在取款时取 B 的值,并像在原始压缩潜水方法中那样使用它来利用它。这使我们的代币持有量翻了一番,达到 14,143.07。
正如人们开始看到的那样,使用 Twin Dive 是根据 B 的杠杆购买力利用 Compression Dive 的一种形式。这是在 Token-Token 池上使用潜水方法的严格好处。计算 Token-Token双跳策略可用的基本杠杆的最简单方法是将杠杆代币或代币 B 相除,在这种情况下,将其除以代币 A 的价格。
例如:
- 代币 B 在提款时的价格为 2 美元
- 代币 A 的提款价格为 0.01 美元
- 基于总价格差异,基本杠杆为 200 - 或简单的 2.00 倍
这种策略通常被称为流动性“吸血鬼”。这是因为流动性通过代币数量有效地从储户那里获取,并根据杠杆转移给潜水员。一般来说,这种流动性是根据它的MEV简单提取的,也就是说它是一种有效的做空工具。
LP Dive 的正面和负面影响
假设价格预测有利于多头/空头投资者的方法并且费用收益代币具有价值,则可以使用Dive方法减轻无常损失并为储户增加利润。任何投资者都可以在任何利用 CPMM 不变量或其某些衍生物(包括 StableSwap)的 LP 上使用此策略。在集中的 LP 头寸上使用这种方法有额外的细微差别,一般效果因个人协议而异。
与简单的购买、持有和出售相比,LP Dive 相对于协议功能允许的标准操作自然会产生指数利润。规模较小的存款人可以通过这种方法获得更多利润,并且更容易在更便宜的链上进行测试。
将 AMM 和关联的 LP 视为本地对冲工具,而不是存款以赚取收益的工具更容易。该工具作为好处提供的过程是,即在本地做空一种资产对另一种资产,一直降低到较低的估值,降低收益,并自动执行多空对冲策略。使用基于 delta 对冲策略的基金或投资者可以将价格变化视为 delta,将 LP 的价格/数量变化视为 gamma。
对于除潜水员之外的所有其他参与者,此动作的负面影响通常都很高。从更广泛的市场背景来看,持续执行此操作会导致价格压缩或临时价格等价,以及分配给潜水员的更多代币,作为承担他们潜水的任何资产风险的补偿。也就是说,所有现货价格都朝着所有资产池中所有资产的最低均衡值移动。在此期间,潜水员可以使用 LP 作为本地对冲工具来利用杠杆,这使得池中的 TVL 粘性降低,或者更容易出现“吸血鬼”(MEV 提取)。
对于没有跳水存款的投资者,一般来说,池 APR 会在协议的代币中产生一定数量的费用,虽然不是最大利润,但它承担的风险比跳水要小。如果使用 LP 跳水方法增加,储户通过深度流动性巩固其资本以赚取费用变得更有利可图。
将风险与两者之间的价格行为联系起来,意味着当资产与AMM配对时,其波动性就会降低。持续使用潜水策略,尤其是杠杆式 C 或 T 潜水,可进一步降低波动性,从而导致杠杆式潜水策略效果不佳。
结论
流动性挖矿不盈利的假设是正确的——潜水员承担多头/空头风险,在短期内比储户赚更多的钱。当前使用基于 CPMM 的不变量的 LP 存在潜水员利用这些软漏洞的风险,这是不变量使用的机制的副产品。另一方面,这为 AMM 和 LP 开辟了新的实施和研究领域,尤其是与自动化 DEX 相关的领域。通过收集关于这些概念的知识,可以在这些协议中深化链上流动性,并且可以围绕流动性池开发更强大的功能。