使用一种新的机制来减轻流动性碎片化的影响:共享流动性AMM(SLAMM)。使用协调的应用链“枢纽”、虚拟流动性池和在其他链上的“卫星”部署,SLAMM理论上可以优化孤立的跨链池的流动性。
原文标题:SLAMM: A Unified Model for Cross-Chain Liquidity
原文作者:Guest Analyst
原文来源:delphidigital
编译:若华, Marsbit
通过实现去中心化、可组合和24/7全天候可用的流动性,自动做市商(AMMs)是任何去中心化金融(DeFi)生态系统的生命线。随着新的链和第二层扩展解决方案的迅速扩散,他们竞争引导流动性以吸引新的用户和开发者。具有讽刺意味的是,他们的成功打破了跨链的流动性。
这种分裂是不可避免的,因为领先的AMMs通常局限于两种方法之一:
●部署独立的AMM实例,这些实例不在链上相互沟通(例如,Uniswap、Sushi、Curve)。这导致了流动性分散和糟糕的用户体验,因为交易者的执行不佳,LPs必须手动移动资本以优化利用率。
●部署一个统一的应用链,包含所有的流动性(如Thorchain, Osmosis)。这使得它无法与原生链上的其他dapp实现同步组合(具体来说,它们只能通过跨链合约调用访问流动性,这是一个次优的用户体验)。
在本文中,我们提出并探索了第三种方法,使用一种新的机制来减轻流动性碎片化的影响:共享流动性AMM(SLAMM)。使用协调的应用链“枢纽”、虚拟流动性池和在其他链上的“卫星”部署,SLAMM理论上可以优化孤立的跨链池的流动性。
通过这种方法,LP理论上可以 “一次入金,遍地LP”,被动地收取跨链费用。这将为终端用户提供更好的用户体验(UX)和优越的交易执行,并为LP提供更平稳的回报。
下面的章节探讨了SLAMM如何在Cosmos应用程序链之间转移流动性。然而,这种模式决不局限于最后一节所探讨的任何特定的生态系统。在对该机制进行总体描述后,我们将提出一个蓝图,说明现有的去中心化交易所(DEX)如何升级其逻辑,以便从共享流动性中获益,以及对当前SLAMM逻辑的可能改进,这值得进一步研究。
解决跨链流动性分散的一种方法是向每个链提供所有流动性的总和,而不考虑任何特定链上可用的“真实”流动性。这种方法是由StarkNet和Loopring描述的(见dAMM(分布式AMM))。在这个模型中,流动性最初存放在L1,并进一步划分和分配给多个L2。L2使用 “虚拟”流动性为交易定价,表现为它们各自包含存入L1的全部流动性。这种真实储备和虚拟定价状态的解耦允许每个L2独立运作,而不需要在每笔交易后进行昂贵和耗时的同步。
虽然这种模式确实为L2卫星上的交易者带来了更好的定价,但它有一个主要的缺点:分散损失(又称无常损失)被放大了,并随着共享流动性的卫星数量呈线性增长。这个结果源于这样一个事实:由于L2没有同步通信,同样的流动性可以被多个链上的交易者同时 “获取”,导致 “真实”储备越来越不平衡(见附录1)。
另一个解决碎片化的方法是“流动性黑洞”的方法:吸引足够数量的交易者和LP到一个单一的场所,这样就会发生自然整合。虽然这确实有它的好处,但它牺牲了可组合性;特别是,同步可组合性是不可能的,除非其他DeFi在同一执行环境中。跨链合约调用与其他应用程序进行通信是可能的,但它们需要异步机制,这大大降低了交易者的用户体验,并引入了巨大的复杂性和风险。
SLAMM的目标是通过在多个链共享流动性来提高交易执行和LP回报,同时减轻早期方法的缺点。SLAMM的设计是基于以下目标进行的:
●在SLAMM卫星上进行的交易应能与其他DeFi primitives同步合成
AMM是许多DeFi协议必须与之整合的核心依赖。同步的可组合性大大降低了这些互动的复杂性,并改善了用户体验。
●LP不应承担额外的不必要的库存或价格风险
像dAMM这样的解决方案大大增加了LP对无常损失的风险(或者在稳定币的情况下,库存风险)。虽然LP确实受益于来自多条链的订单流,但额外的风险很难预测或量化,特别是在卫星数量增加或减少的情况下。
●交易员和LP应该只需要与卫星互动
虽然hub 是一个关键的基础设施,但大多数交易者和LP应该不需要担心与新的链互动,获得新的软件或管理新的私人密钥。SLAMM试图通过将大多数用户的互动推到用户已经熟悉的卫星链上,从而最小化额外的用户体验的复杂性。
组件
SLAMM由一个中央 “枢纽”和许多卫星部署组成,每个卫星都在一个不同的链上。中心可以作为主机链上的智能合约来实现,也可以作为自己的应用链来实现。枢纽和卫星位置的考虑因素包括:
●枢纽和每个卫星的有效性和安全性
●枢纽和每个卫星之间强大的跨链信息传递可用性
●卫星之间的跨链资产连接
LP将其资产直接存入卫星。枢纽中心在各卫星之间分配这种流动性,以最大限度地减少对交易者的价格影响,并使其最佳地接触到他们的订单流(见下文的流动性分配)。一般来说,中心应该寻求在预计有高交易量的卫星上增加流动性,并在预计流动性仍处于闲置或利用不足的地方减少流动性。
定价
SLAMM卫星的定价使用虚拟流动性(与DAMM的方式相似)。当中心希望增加卫星上的流动性时,它不需要移动实际资产;相反,它可以向卫星发送一个消息,以增加其虚拟流动性的给定数量。只有当卫星耗尽需要偿还撤出的LP的流动性时,或者当流动性在先前的增加后减少时,才需要移动实际资产(也见下文LP记账)。
注意:只要LP代币是可替换的,卫星的定价公式所使用的联合曲线可以是资产对的任何适当的曲线(例如,恒定产品,稳定交换,或集中流动性)。
流动性分配
与dAMM不同,SLAMM的一个关键原则是全系统的流动性为零和;每当虚拟流动性在一个卫星上增加时,它必须在另一个卫星上相应减少。因此,系统的总流动性不会被放大,LP也不会因为价格的变动而遭受增加的库存或价格风险。虚拟流动性增加的卫星将为交易者提供较低的滑点,而虚拟流动性减少的卫星将为交易者提供较高的滑点。
SLAMM的一个关键见解是,即使这两种影响可以相互抵消,如果虚拟流动性增加的卫星比虚拟流动性减少的卫星获得更高的利用率,交易者平均会遭受更低的滑点。因此,枢纽的主要责任是分配流动性,使虚拟流动性增加的卫星比相应减少的卫星获得更多的订单流量。图1探讨了dAMM和SLAMM如何处理虚拟流动性。
图1: dAMM和SLAMM的虚拟流动性之间的差异
使交易者滑点最小化的最佳流动性分布与 “交易量份额”成正比,即卫星实现的相对交易量数量成正比。直观地说,我们寻求使每个LP对订单流的接触最大化,而不管他们的资产最初存放在哪个卫星上。
给定卫星s_0 ... s_n,一个周期P的流动性最优分配L_0 ... L_n与v_0 ... v_n成正比,其中v_i是P周期卫星s_i上预期的全系统总量的一部分。
LP已经能够以这种方式分配自己的流动性,但这样做往往不实际。频繁的再平衡会导致弥补成本的利润下降,这就要求LP积极管理其资本。此外,LP可能希望用他们的头寸作为单一卫星链上其他DeFi协议的抵押品。最终,SLAMM通过保持可组合性和消除在链间主动移动资本的需要来改善LP的用户体验。
注意:虽然SLAMM减轻了无常损失带来的风险,但LP确实承担了一些额外的风险,如中心枢纽的安全,以及其流动性被实际分配到的链的安全。
LP记账
为了跟踪一个链上减少的流动性和另一个链上增加的流动性,SLAMM使用由卫星发布的虚拟LP代币(VLP)。终端用户永远不会与VLP代币互动;相反,它们是一种机制,跟踪记录卫星和中心之间的债务和信贷。
当中心要求增加卫星的流动性时,卫星将向中心注入大量的VLP,代表这一资产的增加。通过这样做,虚拟流动性总额相当于用户拥有的已发行的实际LP股份加上中心拥有的VLP股份的总和。
同样,当中心要求减少卫星上的流动性时,卫星要么燃烧相应数量的中心的VLP份额,要么向卫星发行自己的VLP份额,如图2所示。当价格在铸造或燃烧VLP行动之间发生变化时,实际资产可能需要被桥接,以妥善解决卫星之间的未偿债务或信贷。
图2:重新平衡各卫星间的虚拟流动性
成交量预测
为了使中心的流动性分配产生上述的积极效果,中心必须能够使用统计模型,在一定程度上准确地预测成交量份额。为了测试这是否可行,我们研究了3个流动性分散的资金池:主网Uniswap上的ETH-USDC,主网SushiSwap上的ETH-USDC,以及polygon SushiSwap上的ETH-USDC。
利用这些池子在24小时内的利用率,我们计算了它们的最小、最大和平均增量。大型增量表明在3个池中重新分配流动性的机会:
图3: 分散的资金池利用率的差异
考虑到这些利用率的差异,可以计算出与交易量份额成比例的最佳流动性分配:
图4:交易量份额为最佳流动性分配提供依据
更仔细地检查Uniswap池,我们可以看到这种流动性分配对其深度的影响。当Uniswap的交易量份额高于其实际流动性份额时,会增加深度(减少滑点):
图5:当交易量份额增加时,池子深度增加
在现实世界中,我们不可能提前知道交易量份额,必须预测未来一段时间的交易量份额。使用ARIMA模型,我们能够以大约10%的平均百分比误差预测交易量份额。
图6:ARIMA模型结果
数量份额预测的改进将对SLAMM产生相应的积极影响,因此对预测更准确的验证者应给予奖励(见下文验证者)。
图7:Hub和池子的通信。
在高层次上,Hub作为一个协调者,协调所有AMM卫星之间的流动性。它的工作是检测和潜在地预测哪个AMM部署将在不久的将来有最多的交易量,并在不同链上的池之间 “转移”虚拟流动性。如果某个LP的流动性(真实的或虚拟的)在特定的交易中被使用,该LP将以交易费的形式得到补偿。中心负责在链之间转移 “真实”代币,以解决其卫星上的实际流动性。它还决定哪些跨链池应该是同一捆绑或池控制器的一部分(下文解释)。最后,Hub管辖每个卫星上的所有参数,并管理和升级自己的逻辑。
池控制器
图 8: 池控制器架构
资金池控制器管理具有相同资产的跨链资金池之间的流动性分配(如A、B、C链上的USDC-axlUSDC资金池)。控制器是一个具有多个杠杆的盒子。每个杠杆象征着有多少虚拟流动性被分配到不同链上的池子(即USDC-axlUSDC池)。中心可以随意从 “盒子”中添加或移除杠杆,并改变每个杠杆的位置。盒子的一个重要属性是,当一个杠杆向上移动时(更多的流动性流向特定链上的特定池),一个或多个杠杆必须向下移动相同的距离(虚拟流动性在链之间 “转移”,为零和)。
每个控制器将有四个主要参数:
●代币0:字符串:代币0的标识符
●代币1:字符串:代币1标识符
●nextPoolID: uint: 递增池标识符
●pools: mapping(int -> PoolInfo): 最后已知的池源数据
PoolInfo是对特定池的源数据的封装,其中包含:
●池:地址:池的地址(链间账户)
●代币0: 字符串: 代币 0 标识符
●代币1: 字符串:代币 1标识符
●预留0: uint: 池中实际存在的代币0数量
●预留1: uint: 池中实际存在的代币1的数量
●virtual预留0: int: 代币0的虚拟储备;可以是负数
●virtual预留1:int:代币1的虚拟储备;可以是负数
●totalSupply: uint: 未完成的LP代币的数量
●virtualTotalSupply: uint: 未偿付的VLP代币的数量
Hub将能够从一个特定的控制器中添加和删除池,以及分配VLP令牌。
除了创建新的控制器,中心还有权通过烧毁其所有相关池的所有虚拟流动性以及结算这些池中的任何真实流动性来关闭一个控制器。该控制器将在清盘后被删除。
卫星池
卫星池为连接到中心的每个DEX实例的交换提供便利。它们充当其他amm上的任何其他池(例如恒定产品,集中流动性池),但也有特殊功能,允许Hub铸造和燃烧虚拟LP代币,以跟踪链间记账。具体来说,这种功能可以在具有相同代币的链和池之间分配虚拟流动性。
中心使用一个包含以下信息的包装器来跟踪真实和虚拟的流动性:
●池:地址:池的地址(链间账户)
●代币0: 字符串:部署池的链上的代币0标识符
●代币1: 字符串:部署资金池的链上的代币1标识符。
●预留0: uint: 池中实际存在的代币0数量
●预留1: uint: 池中实际存在的代币1的数量
●virtual预留0:int:代币0的虚拟储备,可以是负数
●virtual预留1:int:代币1的虚拟储备;可以是负数
●totalSupply: uint: LP代币的总数量
●virtualTotalSupply: uint: 未完成的VLP(虚拟LP)代币数量
每个包装器都是特定控制器的一部分(在Hub层面),并以Hub的治理层预先确定的特定节奏进行更新。在流动性再平衡期间,虚拟储备和供应数据在中心层面和池层面都会被更新。
跨链代币桥接
在跨链环境中,特别是在Cosmos中,一个常见的挑战是确定在不同链之间桥接代币的最佳方式。
作为一个例子:
●假设有人在C链上有某人的axlUSDC,该axlUSDC从A→B→C被桥接。
图9:从A链到C链的流动资金路径
●枢纽需要将流动性从C链转移到D链。到D链的最短路径是C→D,但大部分axlUSDC的流动性是从A→D桥接的
●根据链外共识(社区批准的预定IBC路径,在链C和D之间桥接代币),从C到D桥接axlUSDC的最佳方式是C→B→A→D
图10:将流动性从链C转移到链D
对于每一个代币,在任何两个链之间都必须有一个官方路径来桥接它。这确保了每个链对其处理的所有代币都有规范的版本,以避免流动性分散。为此,Hub将维护和更新IBC路径的注册表,可用于在任何链之间结算真实的流动性。
交易量预测器和验证器
为了正确分配流动性,中心需要从外部来源获得对交易量份额的预测。独立行动的交易量预测者可以向中心提交他们对某一特定时期的预测,中心负责将这些值合成为单一的权重(类似于L1 oracles如何从许多输入中得出单一的价格)。
预测中心可能会根据其预测与现实的接近程度,对其进行奖励或惩罚。每个预测器都可以自由地实现他们自己的模型来竞争这些奖励。这种预测的公开竞争比在协议层面上的单一模型更受青睐,因为它可能会导致更复杂的模型,并且需要更少的管理监督。
如果枢纽作为一个应用链来实施,那么交易量预测器的一个自然候选者就是枢纽链本身的验证者。或者,如果中心被实现为主机链上的智能合约,预测可能是无权限的,只需要一些赌注价值。
我们自己的ARIMA模型在测试真实世界的数据时,预测的交易量份额的平均百分比误差大约为10%(见交易量份额预测部分)。需要进一步的研究来分析可能操纵这种奖励系统的攻击载体,如洗盘交易,目的是使特定验证器的(提议)权重分布与随后的真实交易量分布相匹配。
风险
Hub和卫星模型有两个主要风险。首先,一个有卫星的AMM链可能会停止。这将暂停卫星上的提款和交换。其次,中心站本身也可能停止运行。下面各节详细介绍了这些风险和可能产生的后果。由于停顿会对交易者和LP产生负面影响,在纳入任何有连锁停顿历史或预期的连锁之前,管理部门需要仔细考虑这些风险。值得一提的是,本部分并不是包罗万象的,而是在实现SLAMM时提出了更显著的风险。
Cosmos链停顿
尽管很罕见,但链停止会对交易者和LP产生负面影响。某条链上的停顿不仅会影响发生停顿的链上的资产,而且会影响通过停顿链的任何流动性。有三种情况可能发生:
●起源链停止
●接收链停止
●另外两个Cosmos链之间的一个中间链停止
在数字1和2的情况下,假设有三个链,A,B和D,它们使用第四个链,C,作为中间链。代币定期从A→B→C→D转移,反之亦然。
如果A链停止,在停止期间,所有没有被桥接到B或D的流动性必须从这些链的全局计算中删除。全局流动性将只包括B和D上的资产的总和,因为之前存放在A链上的流动性不能再被提取了。
如果C停止,流动性不能从D桥回到A或B,所以D的虚拟和真实流动性必须从A和B链的全局计算中减去,D的真实流动性仍可用于交易。
如果链D停止,所有从A或B桥接过来的流动性都不能被提取,并从这些剩余链的全局计算中被移除。
在第三种链停止的场景中,假设用于在链A和链C之间桥接代币的链B停止了。桥接到C的代币无法回到A。在这种情况下,中心必须从其全局流动性计算中减去停滞的流动性。此外,LP在停止期间可能无法提款,或可能收到比他们存入的更少的代币,因为他们的全部或部分资金不再可以提取。
如果任何停止的链恢复,虚拟流动性计算应该重新纳入以前减去的流动性。没有提取其初始存款的LP将有资格按比例提取其先前无法获得的剩余流动性的份额。
Hub停顿
Hub负责管理虚拟流动性和跨链移动实际流动性。如果Hub停止,虚拟流动性不能再被更新,实际流动性不能再在卫星之间移动。这可能会让一些卫星几乎没有真正的流动性。因此,LP可能无法从存放资产的卫星或任何其他卫星提取他们的资产(因为虚拟流动性的计算将停止)。如果Hub恢复区块生产,虚拟流动性的更新将恢复,流动性将根据需要在链之间移动。停止的时间和LP的行动可能导致重大损失。因此,当务之急是Hub的验证器必须得到适当的激励,以确保一个健康、健壮的网络,并且愿意并能够仔细地协调更新。
作为一个独立的Cosmos-SDK应用链,需要一个去中心化的验证者网络来维持Hub的运作。作为基础的利益相关者,验证者将有权就智能合同参数变更、智能合同升级和财政支付等问题提出并进行有约束力的投票。
这些决定将由一个由验证者和制定者组成的 “去中心化自治组织”(DAO)来协调。该协议的CosmWasm智能合约将只能由合约的所有者地址来升级。而所有者地址将是Hub治理合同本身。经批准后,任何升级或支付都将自动执行。由于这个过程将是公开和透明的,所以应该很难批准恶意的或不安全的升级。
SLAMM治理的具体决策包括:
●批准部署CosmWasm,在其他链上建立卫星DEXs
●将单个池添加到共享的跨链池控制器中
●确定可接受的IBC代币路径
●设置一般池和特定池的价格曲线
●根据需要调整优化算法(即确保特定卫星上的特定对有最低限度的流动性)。
●修改参数更新的界限(即每个池子的参数在X秒内可以改变多少)。
参数界限对于包括放大参数在内的具体调整尤其重要,因为这些参数可能需要经常改变。要求对每个单独的存储池的放大参数进行投票将是很繁重的。相反,治理可以选择在特定范围内更改参数,这些参数在满足预定目标时分阶段实现。
SLAMM的复杂结构需要知识渊博和积极的管理者。理想情况下,将设计一个开源的、强大的风险管理框架来指导决策过程。这个框架可用于客观和公开地对任何具体修改或卫星部署的风险评分。池子的上限和其他分阶段的推出可能有助于限制任何重大升级的风险。
归根结底,SLAMM为多个主人服务:验证者、股东、有限合伙人和交易员,而治理中的每一个决策都会对每个利益相关者产生影响。安全的SLAMM可以确保其长期的生存能力。因此,当对升级的安全性或谨慎性有疑问时,应以保守的、渐进式的升级为主。
AMM只有在其流动资金池的深度上才有用。因此,利用已建立的DEX来建立SLAMM是有利的。任何推广都可以分阶段进行:
●在已建立的DEX(DEX 1)上创建一个提案,将其架构从独立的AMM修改为SLAMM模式
●假设提案通过,启动一个独立的应用链Hub。验证者将被要求以DEX 1的治理代币作为赌注,以操作一个完整的节点并参与共识。这些验证器将在区块链中提交新的区块,并获得DEX交换费用,以换取他们的工作。验证者还必须通过对提案进行投票来参与治理,他们的投票将根据他们的总股份进行加权计算。
●整合DEX 1作为SLAMM的第一颗卫星,并将对DEX 1的合约所有者地址的控制权转移给Hub
●创建在其他链上发射卫星的提案
●通过在池控制器中添加在不同SLAMM卫星部署上持有相同资产的池来连接它们
●为所有分配给控制器的池中持有的代币建立跨链桥接路径
●Hub验证器通过每个控制器周期性循环,为所有共享流动性的资金池重新平衡(虚拟)流动性
SLAMM架构目前是概念性的,但它提出了有趣的挑战,值得进一步研究。最直接的是,应该探索黑天鹅Hub链停止的缓解措施。如果这样的停止发生,LP必须能够在一系列的卫星上撤回他们的流动性,而不需要来自中心的任何协调。已经提出了一些缓解策略,但没有几个能满足所有的要求--特别是由于治理将随着Hub链的停止而停止。任何解决方案都应该是自动化的,并且可以立即行动。
其次,可以改进提议的跨链补充流动性的方法,特别是对不稳定的资产池。一种潜在的方法是让每个卫星DEX与信贷协议(或“货币市场”)整合,并在短期内借入流动性(直到Hub成功偿还贷款)。
最后,应该探索一种整合non-Cosmos链的模式。其他区块链生态系统,正在努力实现IBC的兼容性,包括以太坊、Polkadot、Avalanche和Fantom,都是明显的候选者。除此之外,SLAMM有可能利用桥梁或异步消息来整合包括比特币在内的非IBC链的流动性。
虽然SLAMM的目前是理论上的,但我们相信他们代表了AMM的最终目标。随着交易者和LP的用户体验的极大改善,他们可以帮助DEXs与中心化交易所的性能和资产种类相媲美。
最终,LP应该能够 “存款一次,LP无处不在”,而交易者应该能够在他们想交易的地方,获得他们想交易的资产。由于SLAMM具有提供即时终结性的能力,其流动性有可能用于专注于借贷、稳定币等方面的非交换DApps,以提供一个真正的跨链DeFi生态系统。我们相信这种独特的架构代表了迈向这个未来的最有效和最可能的一步,我们欢迎反馈和建议来改进它。
考虑一个以12万USDC和120 WETH代币开始的dAMM,而WETH的市值为1,000美元。“真正的”流动性由两颗卫星平均分配。尽管每颗卫星只有一半的流动性,但它们都保持着等于存款流动性总量的“虚拟储备”。
图11:dAMM卫星共享虚拟流动性
当WETH的价格移动到2000美元时,交易者和套利者将把交易池的余额移到每个卫星上的匹配位置。考虑一个假设的12万 USDC和120 WETH的单一池。不考虑费用,在这个价格下的新储备可以计算为:
或~169,705 USDC和84.85 WETH。为了实现这些储备,交易者已经存入了49,705 USDC的净值,并减少了35.15 WETH的净值。在这个假设的单一池中,剩余代币的总价值是~339,411美元。
表1
尽管每条链上只有6万USDC和60 WETH,dAMM为交易者提供的定价与12万 USDC和120 WETH的虚拟流动性一致。由于这两颗卫星向交易者提供了同样深度的流动性,上述例子中的金额将从这两颗卫星上存入/移除,从而导致以下状态:
图12:dAMM中的无常损失
当我们将每个卫星的实际流动性相加时,我们得出上面的红色总数,与假设的单一资金池相比,存在更大的不平衡,无常损失更大,为11.4%。
表2
与SLAMM相比,考虑一个类似的SLAMM部署,总共向两颗卫星提供了12万个USDC和120个ETH,使用恒定的产品定价曲线(以便更容易与dAMM进行比较)。中心预测B池的利用率将提高2倍,并相应地调整了虚拟流动性:
图13:SLAMM流动性分配
当WETH的价格涨到到2,000美元时,交易者将用卫星余额套利,我们最终再次得到与价格相匹配的虚拟储备:
然而,这一次,每颗卫星都有不同的K值,因此对交易的定价也不同;池B将对价格交易的影响较小。只要池B的交易量份额高于池aA,交易者平均将获得较低的滑点。在这些交易之后,资金池最终处于以下状态:
图14:SLAMM中的无常损失
当我们把这次的流动性相加时,我们最终的无常损失相当于单个池的损失:
表3
值得注意的是,虽然池A和池B中的真实资产看起来价值不同,但LP对这些资产的要求与虚拟流动性成正比;从池B中提款不会遭受额外的分歧损失。相对于LP在提款时的欠款而言,真实的流动性可能很低,因此在中心结算内部VLP记账时,LP提款可能需要进行异步调用。
责任编辑:Kate