尽管在加密领域,「不要碰合约」已经是人尽皆知的老话,但我们不得不承认,杠杆才是目前加密市场增长的最大动力之一,在过去的一轮牛市中更是如此。实际上,在当各方面风险得到有效控制的情况下,杠杆的使用也并非完全是一件坏事。
但目前,即使是在 BTC 和 ETH 这类流动性很强的市场中,实现清算都非常困难,尤其是在市场出现大幅波动的情况下。为了保证永续合约市场的有效运行,交易平台往往会增加清算惩戒的金额,亦或对交易规模设置更严格的上限。当这些措施都失败时,交易便会强制结算,交易者也无法从他们的盈利头寸中获得报酬。更可怕的是,交易平台的主要收入也来自清算,而在交易双方利益不一致时,便常有令人唏嘘的故事发生。
由 Lemma Labs 开发的 InfinityPools 解决的正是永续合约的这种清算风险。通过让协议中的所有头寸都实现完美平仓,以让交易者在没有交易对手风险的情况下,对任何资产添加无限的杠杆。
InfinityPools 是一个双向市场,一侧是交易者,另一侧是流动性提供者(LP),通过预先确保平仓所需的现货流动性来解决清算问题。LP 将其在 Uniswap v3 或其他 AMM 上的 LP Token 存入协议以供交易者使用,通过资金费率获得比 AMM 交易费更优越、更持续的收益。交易者则从公共流动性池中借用 LP 的集中流动性范围,并将其放入私人交易池中用于做多或做空操作。
由于交易者的操作是基于私人交易池合约,因此平仓时不需要考虑资产现货价格的涨跌,不会因现货价格下跌而发生清算。平仓时,交易者可以自由选择私人交易池或其他 AMM 协议将头寸换成现金以偿还贷款,因此协议也不需要使用价格预言机,协议本身则完全无许可。
我们可以通过下面这个例子来简单了解 InfinityPools 的杠杆逻辑:
我们假设当前 ETH 的市价是 1000 ETH/USDC,交易者在 InfinityPools 上借入了价值 1000 USDC 的 ETH-USDC LP Token,该 LP Token 的流动性范围部署在 900 ETH/USDC 为中心价格的狭窄流动性范围内。如果这个交易者想要做多 ETH,那么他可以先将 LP Token 赎回为 1000 USDC(因市价高于流动性范围,因此 LP Token 内的资产皆为 USDC),并在其他 DEX 上将其兑换为 1 ETH。
根据 ETH 市价的涨跌,这个交易者将会面临三种情况:
1. 如果 ETH 价格上涨,1 ETH 的价值大于 1000 ETH/USDC,则该交易者可以将 1 ETH 的一部分兑换回 1000 USDC,并偿还借入的 LP Token 以平仓。
2. 如果 ETH 价格跌至 900 USDC 上方,1 ETH 的价值大于 900 ETH/USDC,小于 1000 USDC,则该交易者需要以 100 USDC 或 0.11 ETH 作为抵押品才能偿还价值 1000 USDC 的 LP Token。
3. 如果 ETH 价格跌至 900 USDC 下方,1 ETH 的价值小于 900 ETH/USDC,则该交易者需要再已经持有的 1 ETH 基础上,追加 0.11 ETH 作为抵押品才能偿还现价值 1.11 的 LP Token(因价格低于流动性范围,LP Token 内资产皆为 ETH)。而此时 0.11 ETH 的价值最多不超过 100 USDC。
不难看出,无论 ETH 的价格怎么波动,这个交易者做多所需的抵押品都是 100 USDC,因此在这个案例中,交易者实现了 10 倍杠杆。而当借入的流动性范围更加接近 ETH 的当前市价时,交易者能启用的杠杆比例就会更大。比如当借入流动性部署在 999 ETH/USDC 附近时,所需抵押品便只需要 1 USDC,也就对应了 1000 的倍杠杆。
为了防止市价波动对平仓的影响,InfinityPools 搭建了一个称为「兑换器」(Swapper)的隔离机制,即上文提到的私人交易池。该交易池中的 Token 以预定价格进行兑换,如以预定价格将 ETH 兑换成 USDC,反之亦然,这样 ETH 的市价就无法再对平仓产生影响,也就没有了清算风险。一旦消除了清算风险,协议和交易者理论上就可以为任意资产提供无限量的杠杆。
交易者可以在任意价格和宽窄的流动性范围中借入 LP Token,借入的流动性被聚合到兑换器中,LP Token 内的资产则称为「储备金」(Reserves)。每个兑换器都有单独的预定或执行价格(Strike Price),执行价位于介入流动性的中点(计算公式见下图),在该价格下,交易者可以使用储备无滑点执行无限数数的 Token 兑换。
下图公式中的「Token0」和「Token1」分别代表流动性范围中的两个 Token,当资产市价超出借入的流动性范围时,就会出现「最大准备金」(Max Reserves),即上文中 LP Token 内皆为一种资产的情况。我们仍使用刚才的例子,将 Token0 看作 ETH,将 Token1 看作 USDC,借入流动性区间部署在 900 ETH/USDC 附近。当 ETH 市价高于 900 USDC 时,LP Token 内皆为 ETH,这时 USDC 即达到其最大储备 1000 USDC,而当 ETH 市价低于 900 ETH/USDC 时,LP Token 内皆为 USDC,则 ETH 达到最大储备 1.11 ETH。这时,该流动性范围的执行价即为 1000/1.11 = 900 ETH/USDC,我们还可以根据执行价格计算出该头寸的杠杆。
当交易者借入一个流动性范围的 LP Token,即一个兑换器被创建时,将始终具有重新创建该流动性范围的储备金,尽管 LP Token 被借出,但仍限于可以用于重建原始流动性范围的储备金规模,因此在流动性范围内,LP 同样不承担任何风险。而协议的交易者也不存在信用风险,因为他们只是获得了 LP Token 的使用权,背书流动性的储备始终都有保障。
如图下图所示,Uniswap V3 模式的集中流动性价格曲线向下凹陷,坡度从右到左逐渐变陡,而连接任何范围内价格曲线两端的直线(即兑换器采用的执行价格)总是在曲线上方。也就是说,基于特定流动性范围创建的兑换器内所含储备金(图中蓝色 Valid Swapper Reserves 部分)将始终拥有始终足以重建原始流动性范围的资金。
根据兑换器的有效储备金范围,我们可以将交易者的操作行为进行可视化。还是沿用之前的案例,交易者为了获得最大的 ETH 敞口,需要根据兑换器 900ETH/USDC 的执行价格借入 900 USDC,另按此价提供 0.1 ETH 的抵押。
随后,交易者在其他 DEX 上将 900 USDC 按 1000 ETH/USDC 市价在兑换为 0.9 ETH 后,交易者总共持有 1 ETH。这时,如果交易者直接用 1 ETH 平仓,则会亏损自己 0.1 ETH 的资产,而如果 ETH 市价涨到 1200 ETH/USDC,则交易者可以将 ETH 换回 USDC 以平仓,自己实现 300 USDC 的盈利。
而在更高的杠杆比率下,横纵轴上的数字则会按比例增加。比如在 20 倍的杠杆率下,纵轴上 USDC 的数字就会放大 2 倍,交易者添加 0.1 ETH 抵押品可以借入 1900 USDC(此时执行价为 950 ETH/USDC)。
InfinityPools 交易者借入的「流动性期货合约」会在一个连续的基础上到期,交易者可以选择平仓或以当前利率补充已经衰减的持有量。这种对头寸的补充,实际上就是永续合约保持不变头寸的基本原理。为了恢复自己的头寸,多头交易者必须以现货价格出售资产,并以标记价格购买更多期货。这个标记价格减去现货价格的差值,正好与永续多头连续支付的资金费率成正比。另外,InfinityPools 允许交易者设置自己的「费率容忍度」,在费率高于特定阈值时连续无滑点平仓,并在低于该阈值时重新补充头寸。
InfinityPools 主要有两种贷款类型,分为定期贷款(Fixed Term Loan)和循环贷款(Revolving Loan)。其中,定期贷款用于的杠杆水平较低的交易(一般为 1 至 40 倍),借贷成本(公允价值费率)更低。借款人需要预先支付定期贷款期限内到期的利息,协议将根据到期时间表将资金支付给 LP。虽然贷款有预先确定的期限,但借款人(即交易者)可以通过将借入的资产换回原始 LP 资产,从而随时实现获利。
循环贷款则更像闪电贷,用于接待时间更短、杠杆水平更高的交易(一般为 40 至 2000 倍),这类贷款有更多的选择,但借贷成本更高。循环贷款按照与定期贷款相同的时间表到期,但借款人可以随时关闭头寸,因此实际上是立即到期的。循环贷款的利息不预先支付,借款人可以递增抵押品以支付未来的利息,并可以在关闭贷款后取回剩余的抵押品。
浮动资金池(Float pool)针对 LP 建立,当 LP 的流动性范围未被借出时,协议会将其保留在浮动资金池中,并用于执行普通 AMM 的现货交易。与独立的流动性资金池相比,浮动资金池能够实现更低的费用水平,同时提供更高的 LP 收益率。
与传统 LP 不同,InfinityPools LP 的收益除浮动资金池的交易费用外,还有来自借款人为持有流动性而支付的资金费率。这些收益来源是互补的,浮动资金池仅在资产市价位于流动性范围内时才会产生收益,而借出的流动性范围则通常与市价有一定的距离。
欢迎加入律动 BlockBeats 官方社群:
Telegram 订阅群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方账号:https://twitter.com/BlockBeatsAsia