本文最早于 2023 年 3月 9日 ,作为《PAKA 跨链研报》系列的第 5.10 章节发布。
作者:MiddleX
与我交流:
Twitter:@middlex0
VX:xuezhijie156
SwapBridge ,也称流动性互换桥,其应用场景是用户在多条链之间交换原生资产。与 WrapBridge 相比,SwapBridge 是更常见的资产桥用例,因为多数情况下,用户希望在目标链获得原生资产,而非 wrap 资产。
SwapBridge 的数量非常之多,各自都有自己的一套技术描述语言、分层结构模型、概念命名系统,这为研究者带来了不小的麻烦。为了我们的研究分析更加方便,本文会使用自己的一套描述系统,统一去描述各类跨链桥。该描述系统事实上也是一个研究框架。
为了您能够更好的阅读本研报,我们强烈建议您,先通过阅读本章,充分熟悉该框架。
为了更高效的完成交换,跨链兑换往往需要用到媒介资产。媒介资产是指与大多数其他资产建立了流动性的资产,它充当了类似于现实经济中货币的作用。众所周知,货币作为交易媒介,可以避免复杂且不可靠的物物交换。
我们用 M 来表示媒介资产,当用户需要将资产 A 交换为资产 B 时,如果
资产 A、资产 B 在同一条链上,那么过程将是:A→M→B 。
资产 A 和资产 B 不在同一条链上,过程会复杂一些。假设资产 A 所在的 X 链的媒介资产是 M(X) ,资产 B 所在的 Y 链的媒介资产是 M(Y) ,那么用户将资产 A 交换为资产 B 的过程会是这样的:A→M(X) ⇒ M(Y)→B 。
SwapBridge 要完成的是该过程的中间部分:M(X) ⇒ M(Y) ,至于该过程的首尾部分,也就是 A→M(X) 和 M(Y)→B ,往往由 A 链和 B 链本地的 DEX 完成。我们可以用下图来更完整的描述这个过程:
假如用户需要把以太坊上的 UNI 交换为 BSC 链上的 CAKE,那么过程可能是:
用户的 UNI 在以太坊上的 Uniswap 中换成 USDT ;
通过 SwapBridge ,以太坊的 USDT 被换成 BSC 链上的 BUSD ;
然后 BUSD 通过 BSC 链上的 Pancakeswap 被交换为 CAKE 。
这个例子中,我们选取了 USDT 作为 M(Ethereum),而 BUSD 作为 M(BSC),在实际情况中,一条链上的媒介资产可能不止一种。例如,在以太坊上,除了 USDT 之外,USDC、ETH、WETH、DAI 也是常见的媒介资产,具体交易过程中,选择哪种媒介资产,取决于 SwapBridge 的路由策略,一般情况下,SwapBridge 会根据流动性分布情况,为用户选择合适的媒介资产,以相对较低的损耗为用户完成兑换。
在上面的例子中,M(X) 和 M(Y) 是不同的资产,但 M(X) 和 M(Y) 也有可能是相同资产,比如可能都是 USDT,或都是 USDC,USDC/USDT 本身就是原生的多链资产。例如用户需要把以太坊上的 UNI 交换为 Polygon 上的 MATIC ,那么过程可能是这样的:
用户的 UNI 在以太坊上的 Uniswap 中换成 USDC ;
通过 SwapBridge,以太坊的 USDC 被换成 Polygon 链上的 USDC(原生 USDC,非 wrapped 资产);
然后 USDC 通过 Polygon 链上的 Quickswap 被交换为 MATIC 。
这种情况更有利于流动性的构建,因为不同链上的 USDT ,或是不同链上的 USDC ,其价格属性基本是一致的(尽管不同链的安全预期不尽相同,但不同链上的 USDT 都来自 Tether ,不同链上的 USDC 都来自 Circle ,他们都包含了其发行者的承兑承诺),几乎没有价差。这带来了两个便利:
LP 可以仅提供单边流动性。SwapBridge 可以在不同链上调度这些流动性。LP 大多数情况下不介意自己提供的流动性被传输到其他链上;
不同链上的 USDC 可以恒定 1:1 兑换,USDT 也是如此。这既省去了用合约代码实现 AMM 算法的复杂性,也省去了建立 AMM 的冗余流动性成本。
SwapBridge 的核心部分完成的是 M(A)⇒M(B) 的过程,两端的 DEX 是 SwapBridge 的扩展部分。有的 SwapBridge 会内置扩展部分,有的 SwapBridge 只提供核心部分,扩展部分会交给聚合器。
SwapBridge 的扩展部分大同小异,无非是在各自支持的链上聚合已有的 DEX ,但核心部分的设计却有多种多样不同的设计方案。因此,我们在后文的项目举例分析中,将只分析核心部分,忽略扩展部分。
为了便于分析,我们将 SwapBridge ,分为三个层:
AMT 层:规定了 SwapBridge 所涉及的跨链消息如何传输及如何验证。 SwapBridge 可能使用现有的 AMB 桥作为 AMT 层,也可能自建或者定制 AMT 层。
合约层:SwapBridge 需要在每条支持的链上部署合约,以实现其对跨链消息的执行逻辑,不同的 SwapBridge 对其合约做了不同的命名,但其中要编写的执行逻辑没有太大差别。
流动性层:规定了 swap 桥如何构建流动性,调节流动性,以满足用户的兑换需求。这是 SwapBridge 最值得展开分析的部分,是 SwapBridge 在设计时最需要花心思的地方。也正是流动性层的机制,决定了 SwapBridge 项目之间最根本的不同。
后文的举例中,我们将主要着墨于流动性层,对 AMT 层与合约层仅做简要介绍。
SwapBridge 根据流动性模式,可以分成 AMM 和订单薄两种模式。
每一笔跨链兑换,都有一个执行价格,在不考虑 Gas 费和手续费的情况下,这个执行价格决定了用户每个单位的原资产可以兑换为多少个目标资产。在 AMM 模式中,执行价格由 AMM 算法计算得出;在订单薄模式中,执行价格一般由 LP(Liquidity Provider,流动性提供者) 报价(挂单)并由用户确认(吃单)而产生。
AMM 模式对交易者而言,存在滑点问题、MEV 问题;对 LP 而言,存在无常损失问题,这些问题在订单薄模式中是不存在的。在订单薄模式下的交易中,所见即所得,交易价格在交易之前已经确定。但相比于 AMM ,订单薄模式对 LP 的专业性要求较高,往往需要 LP 维护一个安全的热钱包环境并有能力编写或配置报价算法。
根据 AMM 所在位置的不同,可以将其分为两种模式。
桥上 AMM :指跨链桥直接根据两端的流动性分布,计算执行价格并完成兑换;
桥下 AMM :指在跨链桥所支持的链上部署 AMM Pool ,并配合 wrap/unwrap 逻辑来实现资产跨链兑换。 在桥上 AMM 中,有一种相对特殊的情况 —— 在多条链上使用相同的媒介资产并支持跨链过程中恒定 1:1 兑换。这也可以被理解为是一种 AMM(恒定和 AMM),但它和常规的 AMM(包括恒定乘积 AMM 及其各种改进版)特性大不相同,我们将其单独列为一个类别:恒定兑换模式。
所以,后文我们会将 SwapBridge 划分四个类别来分析
桥下 AMM 模式
桥上 AMM 模式
恒定兑换模式
订单薄模式
在此基础上,我们会探讨 SwapBridge 的两种进阶形态:聚合器和枢纽链。
2.1 Symbiosis V1
2.2 O3swap(O3 InerChange)
2.3 Thorswap (Thorchain)
2.4 Synapse Protocol
Symbiosis Finance 是 Binance Lab 参投的一个跨链桥项目,早期投资者还有 Blockchain.com,Spartan,Avalanche(Avatar),DAO Maker,KuCoin 等,团队成员主要来源于欧洲,产品界面颇有极客风。
Symbiosis 的 AMT 层是一个无许可的 MPC 网络,称为 Symbiosis Relayers 网络,具有内置的加密经济激励机制。任意主体都可以通过质押 SIS 成为 Symbiosis Relayer 。
在 Symbiosis V1 中,如果用户需要将以太坊上的 USDC 兑换为 BSC 上的 BUSD ,那么过程可能会有两种路径:
• 路径 ① :先 wrap 再 swap
• 路径 ② :先 swap 再 unwrap
由于以太坊上的 Gas 远高于 BSC,Symbiosis V1 在为用户选择路径时会倾向于选择 路径 ① ,把 swap 的过程放在 Gas 费较低的 BSC 链上,以帮用户降低跨链兑换的整体费用。
AMM pool 会有流动性调节的功能。假设资产总是从以太坊跨到 BSC ,而非相反,那么 sUSDC/BUSD 的兑换比就会增大,这意味着需要更多的 sUSDC 才能换到 1 个 BUSD 。这种情况会鼓励套利者进行反向操作,用 BUSD 购买打折的 sUSDC ,然后 unwrap 到以太坊上变现。同理,假设资产总是从 BSC 跨到以太坊,而非相反,也会鼓励套利者进行反向操作,重新平衡流动性。
Symbiosis Docs: https://docs.symbiosis.finance
O3 Swap 是由 O3Labs 团队打造的资产跨链协议,其 AMT 层为 Poly Network 。O3Labs 团队 2017 年创立于东京, 是全球最早的加密钱包开发团队之一。
与 Symbiosis V1 不同的是,用户在 O3swap 中的每笔跨链兑换,都包含了分别在源链和目标链上的两次 swap 。
例如,如果用户在 O3swap 中要把以太坊上的 USDC 换成 BSC 上的 USDC ,过程会是这样的:
如果用户想要在 BSC 上获取 BUSD ,就还需要再在 BSC 链本地的 DEX(例如Pancakeswap)中做一步 swap 。O3swap 没有为 pUSDC/BUSD 建立流动性。O3swap 建立流动性的交易对,全部是 A/pA 形式,没有 A/pB 形式。
当 LP 想要向某条链上的 A/pA 池子提供流动性时,需要按照当前池中两种资产的比例,向池中提供 A 与 pA 两种资产。LP 如果仅提供 A ,那么系统会自动通过“Barter”功能,将其中一部分转换为 pA 。
A 与 pA 的转换有两种方式,一种是通过 A/pA 的 AMM 池进行 Swap ,另一种是通过 O3 Bridge 的 wrap/unwrap 功能直接 1:1 转换 A 与 pA ,这在 O3swap 的文档中,被称为 peg/unpeg ,另外 O3swap 还提供在一条链上直接 1:1 转换 A 与 pA 的功能,称之为 Barter 。
由于 peg/unpeg 和 Barter 功能的存在,A/pA AMM 池中任何方向上的不平衡都很快被套利者抹平。
在 Symbiosis V1 中,每次跨链兑换,仅会用到目标链上的 AMM 池子;而在 O3swap 中,每次跨链 swap ,会用到源链和目标链上的两个 AMM 池子。我们将前者称为单边 AMM 模式,后者称为双边 AMM 模式。
单边 AMM 模式和双边 AMM 模式都需要桥梁在每条支持的链上部署 AMM 池。从流动性部署的成本来看,两者没有区别的,但双边 AMM 的模式无疑增加了一次 swap 操作的 Gas 费用。此外,双边 AMM 模式,用户进行两次 swap ,就会存在两次 price impact ,用户最终能获得的资产数量会减少。
但我们见到的双边 AMM 模式在项目中的采用率比单边 AMM 的要更高,甚至 Symbiosis 在其 V2 版本中也不再用单边 AMM 了,这点让笔者有些不解。可能是由于双边 AMM 模式中,桥上的逻辑更简单,只有 burn-mint 一个逻辑,不需要 wrap 和 unwrap 两个逻辑。
O3swap docs : https://docs.o3swap.com/
Thorchain 的团队成员大多来自 Swish Labs,背后的投资机构包括:Delphi Digital,Multicoin Capital,X21 Capital,Zee Prime Capital 等。
Thorswap 算是 Thorchain 的一个核心产品,而 Thorchain 作为一个 PoS 型 MPC 网络,也是 Thorswap 的 AMT 层。Thorchain 的 work token 是 Rune 。
Thorswap 放弃了以稳定币作为媒介资产的路径,而是以 Rune 作为媒介资产。在 Thorswap 中,从 X 链上的资产 A ,到 Y 链上的资产 B ,必须经过 Rune 作为中转资产,才能完成兑换:
由于 Thorswap 所支持的链中,有不少不支持智能合约,因此 Thorswap 的流动性池是由 Thorchain 的验证人直接托管的,他们控制着各链上托管账户的私钥。为了避免验证人合谋盗取资产,Throchain 要求验证人做抵押,抵押总金额为所有流动性池中的 RUNE 的 2 倍,由于流动性池中还有等值的非 RUNE 资产,所以验证人在 Throchain上的抵押金额与他们托管的流动性价值相等。
以 RUNE 作为媒介资产,好处是:
增加了 RUNE 的价值捕获能力;
所有链统一使用一种媒介资产,避免不同媒介资产之间的兑换。
但也带来了问题:
当 RUNE 价格下跌时,套利者会从系统取走流动性,流动性的下降可能会给 RUNE 的价格带来负面预期,造成价格下跌,从而形成恶性循环,死亡飞轮。
Thorswap 选择让所有资产都与 RUNE 建立流动性,而不能复用现有媒介资产的流动性,为自己找了一条更困难的流动性获取路径。不过,Thorswap 选择这条路径的原因,可能是大多数其支持的链(如 BTC、BCH)上没有 DEX ,也就不存在可复用的流动性。
Thorswap Docs: https://docs.thorchain.org/
Synapse 最初的名称是 Nerve,只是 BSC 上的一个稳定币 DEX , 发展至今已成为支持 14 条公链的资产跨链协议 。Synapse 一词的含义是神经突触,这似乎表达了 Synapse 将多条链连接为一个神经网络的愿景。
**Synapse 使用限定的媒介资产:nUSD 和 nETH 来传导跨链价值。**nUSD 和 nETH 是在以太坊上通过资产储备创建的 wrapped 资产。
Synapse 在以太坊上部署了 Nexus Pool ,在其中质押 ETH ,可以获得 nETH ,在其中质押 USDT、USDC、DAI 这三种稳定币中的任意一种或多种资产都可以获得 nUSD ,质押相对短缺的稳定币可以获得较多的 nUSD ,而质押相对过剩的稳定币获得的 nUSD 数量会打折。而用户存入单个稳定币,具体能获得多少 nUSD ,应该是模拟在该 Pool 中,用这些稳定币能兑换多少 [1/3USDC+1/3USDT+1/3DAI] 。
Synapse 的文档资料中没有更明确的信息,根据笔者与社区中 Synapse 开发者的讨论内容,这里的相对短缺和过剩,应该是以平均数量作为标准的,这意味着 Synapse 假设 USDT、USDC、DAI 的价值是相等的,完美的平衡状态是三者各占 1/3 的状态。然而实际上稳定币之间也会存在微小的价差,这样的假设会给套利者留下一些空间。
除了以太坊之外,Synapse 在其他支持的链上也部署了 Nexus Pool ,这是一个 nUSD/Stablecoin 流动性,多数情况下这是一个多资产池,例如在 BSC 链上,synapse 部署的是 nUSD/BUSD/USDT/USDC 的 4pool 。在支持的链当中,有一部分是以太坊的 Rollups ,它们上面还会有 nETH/ETH 的流动性。
在 Synapse 中,用户如果想将 Polygon 上的 USDC 交换为 BSC 上的 BUSD ,那么过程是这样的
但如果用户的兑换涉及到以太坊,则过程会不太一样。
如果要将以太坊的 USDC 换成 BSC 上的 BUSD,过程是这样的:
如果要将 BSC 上的 BUSD 换回以太坊上的 USDC ,过程则是这样的:
也就是说,Synapse 中,若不涉及以太坊的跨链 swap ,则是双边 AMM 模式,若涉及以太坊的跨链 Swap ,则是单边 AMM 模式。
LP 可以为每条链上的 nUSD/stablecoin 池中提供流动性以获得 nUSD-LP 通证,LP 可以按照当前池中各资产的比例,等比例的提供 nUSD 和各个 stablecoin ,确保不会改变池中各资产的现有比例,就像他们在单链 DEX 上做的那样;
LP 也可以仅提供其中一种。如果仅提供其中一种资产,就会推动池子中的资产比例发生改变,如果 LP 的行为推动池子的资产比例向理想比例接近,那么 LP 会获得更多的 nUSD-LP 通证,如果 LP 的行为推动池子的资产比例向理想比例远离,那么 LP 获得的 nUSD-LP 数量会打折扣。
什么是理想比例呢?以 BSC 上的 4pool 为例,nUSD/BUSD/USDT/USDC 的理想比例应该是 1/2nUSD+1/6BUSD+1/6USDT+1/6USDC 。LP 提供单资产流动性能获得多少 nUSD-LP ,应该是模拟 LP 提供的资产,能从池中兑换出多少 [1/2nUSD+1/6BUSD+1/6USDT+1/6USDC] 。
取回流动性时同理,LP 可以销毁 nUSD 按照池中资产现有比例等比例取出流动性,也可以取出其中的单一资产,如果 LP 取出资产的行为让池子中的资产比例更接近理想比例,那么 LP 会取回更多的资产,反之取回的资产数量则会打折扣。
所以对于 LP 而言,提供流动性时,应该选择流动性相对短缺的资产,而撤回流动性时,应该选择流动性相对过剩的资产,如果当前流动性是平衡的(各资产比例为理想比例),不存在相对短缺与相对过剩,按照池中的分布等比例的提供/取回多资产是最佳策略。
但是,如果 LP 要提供的流动性金额不是太多的话,其实不用考虑这么复杂,因为上述因素的影响不是太大,Synapse 采用类似 Curve 的 stableswap 做市算法,池子中的基础流动性也很充裕,LP 提供单个资产的流动性,给池子的平衡性带来的影响是微乎其微的。
Synapse 的 AMT 层是一个被称为 Synapse Chain 的 PoS 网络,Synapse Chain 本身是以太坊的一个 Op Rollup ,work token 为 SYN 。Synapae 希望随着其跨链业务的发展,Synapse Chain 能从一个桥接链发展为一个枢纽链,以允许应用程序直接部署在 Synapse Chain 上。
Synapse Docs https://docs.synapseprotocol.com/
3.1 symbiosis V2
3.2 cBridge 2.0
3.3 AllBridge Core
3.4 Chainflip
在桥上 AMM 中,一个交易对的两种资产的流动性分别在两条链上,桥梁直接根据流动性分布及做市算法计算执行价格,并为用户完成兑换。相比桥下 AMM,桥上 AMM 模式没有反应中间物,一步到位!不过,这也意味着,如果交易失败,就需要回撤整个跨链兑换。
“桥上”是个抽象概念,AMM 在桥上,意味着执行价格是通过跨链计算得出的,具体来说,有几种情况:
执行价格在源链和目标链上的桥合约中计算。计算之前,源链上的流动性数量会和用户在源链上发起的交易一同通过 AMT 层跨链传入目标链;
执行价格由 AMT 层的外部验证人集计算。计算完成后传入目标链,触发目标链上的池子向用户释放资产;
执行价格在桥接链上计算。与上一条的情况其实相同,本质上还是桥接链的验证人在计算。
执行价格在中继链上计算。桥梁将自身支持的链中选择一条作为中继链,并在这条链上完成计算,这种情况下,源链将参数通过 AMT 层传入中继链,中继链计算完成后,再通过 AMT 层传入目标链,触发目标链上的资产释放。
Symbiosis V2 采用了完全不同于 V1 的形式,在 V2 中,有一个中继链,称为 S-chain(结算链),执行价格的计算将在 S-chain 上完成,当前被选定的 S-chain 是 BSC 。
Symbiosis V2 依然借助了 wrap 资产(sToken)作为计算的媒介。
Symbiosis V2 在每条支持的链上选择一种稳定币作为媒介资产,每条链上媒介资产都在 S-chain 上对应一个 sToken 。
Ethereum→USDC
BSC→BUSD
Avalanche→USDC.e
Polygon→USDC
Telos→USDC
Boba Ethereum→USDC
Boba Avalanche→USDC.e
Boba BNB→USDC
KAVA→USDC
需要注意的是:不同链上的媒介资产即便相同,在 S-chain 上也是不同的 sToken ,例如 Ethereum 上的 USDC 和 Polygon 上的 USDC 在 S-chain 上是不同 sToken 。
**sToken 实际上是各条链上的流动性在 S-chain 上的一种记账表示。**以太坊上有多少USDT ,就会在 S-Chain 上有多少个 sUSDT-Ethereum ,二者的数字始终保持一致。如果以太坊上的 USDT 流动性被添加或者被撤回,S-Chain 上的 sUSDT-Ethereum 也会对应的增减。
在此基础上,Symbiosis V2 在 S-chain 上建立了一个由各种不同的 sToken 组成的多资产 AMM 池。Symbiosis V2 目前支持九条链(含作为 S-chain 的 BSC ),因此 S-chain 上的 AMM 池是一个 9pool ,有 BUSD 和 8 种 sToken ,社区里形象的称其为八通达。
在 Symbiosis V2 中,如果要将以太坊上的 USDC 换成 BSC 上的 BUSD ,过程是这样的:
9pool 可以帮助用户完成 9 条链间任意方向的资产交换,且由于不同方向上的兑换资金量的不同造成的不平衡,会有套利者来抹平。
Symbiosis Docs: https://docs.symbiosis.finance/
3.2 cBridge 2.0
cBridge 是由 Celer Network 推出的资产跨链桥,cBridge 1.0 曾经采用基于哈希时间锁的原子交换(本地验证)以及订单薄模型来实现跨链兑换,但现在已经不再采用,原因是原子交换始终需要用户操作两个以上的步骤才能获得资产,用户体验不友好。
现在 cBridge 2.0 已改用外部验证和乐观验证组合的模式,其 AMT 层是一个被称为 SGN(State Guardian Network)的 PoS 网络以及 Celer IM,而且现在的 cBridge 是 AMM 模式。
cBridge 支持在不同的链间交易 USDT、USDC、ETH 等资产,但仅能支持同质资产之间的互换,USDT 只能换 USDT,ETH 只能换 ETH 。
当然不是所有链上都有 ETH ,也不是所有链上都有 USDT ,这就需要在跨链时,必须选定一个共同的媒介资产来进行交易。
假如 Ethereum 上的 USDC 要换成 Polygon 上的 USDC ,cBridge 会通过部署在 Ethereum 上的 USDC 池和 Polygon 上的 USDC 池中的流动性来为用户完成兑换。
这里有一个问题,Ethereum 上的 USDC 和 Polygon 上的 USDC ,必须是相对均等的,才能让 USDC(Ethereum)/USDC(Polygon)的兑换比接近 1:1 ,事实上,按这个逻辑,cBridge 所支持的每条拥有 USDC 池的链中的 USDC 储备都必须大致接近。这带来了不小的浪费:不同链上的跨入规模不一样,对池中储备量的需求也不同。那些不需要那么多储备的链也必须在池中储备足够多的 USDC 。
面对这个问题,cBridge 在类似 Curve 协议的 Stablecoin AMM 曲线的基础上,增加了每条链的权重参数:w 值,就是下面公式中的:wi 和 wj
假如 wi=wj=1 ,那么这就是单纯的 Curve 协议的曲线,此时两边资产的理想价值比例是 1:1 ,cBridge则会为某种资产在不同链上赋予不同的 w 值,改变理想的价值比例。
w 值较高的链只需相对较低的储备,w 值较低的链则需要更多的储备。w 值需要 cBridge 开发团队手动设置,可以通过治理调整。
这需要 cBridge 团队根据经验判断某种资产在每条链上未来一段时间的跨入跨出情况。
如果某种资产在一条链的跨出总是大于跨入,那么流动性就会倾向于在这条链上堆积,为该资产在该链设定较低的 w 值可以促进冗余的流动性流到其他 w 值较高的链上去。
相反,如果某种资产在一条链的跨出总是小于跨入,那么流动性会倾向于枯竭,为该资产在该链设定较高的 w 值可以吸引其他链上的流动性流入进来。
举个例子,在 cBridge 中,Optimism 上的 ETH 跨出总是大于跨入,这是因为 Optimism Bridge 从以太坊上桥接 ETH 时,不需要等待时间,而要桥接回去时,需要等待 7 天左右。这造成了流动性倾向于在 Optimism 上堆积,因此 cBridge 为 ETH 在 Optimism 上设置了较小的 w 值。
总之,cBridge 的非对称储备算法对于流动性在不同链上更加合理的分布有重要意义。
我们以 USDC 为例,cBridge 支持的链中,共在 11 条链上有 USDC 储备池,LP 可以向这些 11 条链上的 USDC 等比例的提供流动性,但这无疑操作过于繁琐,cBridge 并没有支持这样的操作。cBridge 只支持 LP 提供单链上的 USDC ,如果要在多链提供 USDC ,那就需要逐个操作。
不过,LP 提供单链流动性,可能面临这样的情况,我们以 USDC 为例说明:
如果在 USDC 过剩的链上提供 USDC 的流动性,则这些流动性会被套利者转移到其他链上,套利交易遵循 AMM 算法,因此被转移后,LP 的 USDC 数量会变少,LP 遭受了损失。
所以系统鼓励 LP 为相对短缺的资产提供流动性,以促进多链流动性的平衡,假设流动性在多链上是平衡的,那么 LP 最佳的策略是等比例的向 11 条链提供流动性。
但实际上,和 Synapse 的情况相似,LP 如果不是提供巨量流动性的话,不用考虑这么复杂,手里的资产在哪条链上,就在哪条链上提供流动性,对平衡性的影响不会太大,能被套利的空间也微乎其微。如果 LP 要提供巨量流动性的话,才需要考虑如何在各链上相对均匀的提供。
需要注意的是,cBridge 不会为 LP 提供 LP Token,而是通过 SGN 网络追踪 LP 提供的流动性去向,LP 取回流动性时,可能需要从其他的多条链上取回,而且和最初提供时的数额不太一致。
cBridge Docs https://cbridge-docs.celer.network/
Allbridge 成立于 2021 年,创始人是著名加密企业家 Andriy Velykyy ,截至目前,Allbridge 已完成 200 万美金的种子轮融资。
AllBridge Core 是一个跨链的稳定币交易解决方案,目前支持
USDC (Ethereum、Polygon、Solana)
USDT (Ethereum、Polygon、BSC、Tron)
BUSD (BSC)
DAI (Ethereum)
四种稳定币在 5 条链上的跨链兑换。
AllBridge 中的跨链兑换要经过一个虚拟媒介:称为 virtual dollar value ,可以将其理解为类似于 Wrapped Token 一样的反应中间物,但并不存在实体,只是一个计算的媒介。
例如要把以太坊上的 USDC 换成 BSC 上的 BUSD ,Allbridge 会先把 USDC 换算为 virtual dollar value ,然后再换算为 BUSD 。virtual dollar value 与所有稳定币的初始价格比都 1:1 ,但随着交易的进行会发生滑动。具体滑动数值的计算是个复杂的数学过程,本文中不宜展开,有兴趣的朋友可以在 Allbridge Core Docs 中了解详情。
可选 AMT 层
Allbridge 的 AMT 层是可选的,目前支持两个选项,分别是 AllBridge 自身和 Wormhole 。
Allbridge Core Docs
Chainflip 总部位于柏林,团队成员分布在世界各地,于 2021 年 8 月 和 2022 年 5 月分别完成了 600 万和 1000 美元的融资。
Chainflip 的 AMT 层是一个 MPC 网络,称为 State Chain ,Chainflip 中,跨链兑换的执行价格计算是在 State Chain 上完成的。
Chainflip 是一个正在开发中的项目,产品尚未上线。根据 Chainflip 文档中的描述,Chainflip 计划使用类似于 Uniswap V3 的 AMM 算法来执行跨链兑换,在 Chainflip 中称为:Just In Time AMM,简称 JIT AMM 。
我们知道,Uniswap V3 的区间做市算法是 AMM 算法发展史的一个里程碑,该算法某种程度上把 AMM 和订单薄的性质融合起来了。**LP 在 AMM 中可以提供对称的流动性(与当前池中资产等比例),也可以提供不对称的流动性(向池中提供不等比例的流动性)。如若将不对称的流动性推到极致,那就是单边流动性(为一个交易对提供单资产流动性)。而提供单边流动性的性质相当于挂单,所以 Uniswap V3 实际上支持 LP 挂止盈卖出单和限价买入单。
Chainflip Docs https://docs.chainflip.io/
一种资产在每条链对流动性的需求不同,强行要求每条链储备相同价值的流动性,是会造成巨大的流动性浪费的。所以我们发现几乎所有的桥上 AMM 模式的 SwapBridge ,都在努力解决一个问题:如何实现流动性的不对称性。
Symbiosis V2 是通过为各链上的流动性建立一个类似 Balancer 的多资产池来实现这一点;
cBridge 则是在对称的 AMM 曲线的基础上,为不同链上的流动性设置了不同的权重参数,实现了流动性的不对称性;
Allbridge Core 加入了一个虚拟价值中介,虚拟价值中介与各稳定币的兑换比,与各链上的储备无关,只与兑换历史有关,因此不再要求各链储备具有对称性;
Chainflip 则采用 JIT AMM ,天然允许提供不对称的流动性。
4.1 Multichain
4.2 XY Finance
4.3 Hyphen(Biocomy)
4.4 Stargate
AMM 尽管有调节流动性的功能,但导致桥梁变的复杂,无论是复杂的反应中间物和反应过程,还是复杂的跨链计算。一些项目开始使用更加简单直接的方式:如果两边的资产一致,那就始终让他们可以 1:1 兑换。
正如前文所言,这种形式也可以理解为一种特殊的 AMM : 恒定和AMM。如果始终恒定 1:1 兑换,两边的流动性之和自然也是不会变的。
恒定兑换模式的优势是流动性的使用率会更高,不会像各类恒定乘积 AMM 及其各种改进版(Balancer 的多资产 AMM、DODO 的 PAMM ,Curve 的 Stable AMM 等),始终存在一部分只是参与计算,但极少被使用的流动性。而且恒定兑换模式天然允许不对称的流动性提供,因为兑换价格是一个恒定值,两边流动性的分布不会影响价格。
但恒定兑换模式也有其制约,它仅支持相同资产在不同链上的版本之间的兑换,其他类型的兑换都要以此为媒。正如:只能支持 USDC 与 USDC 之间的恒定兑换,如果两边分别是 USDC 和 USDT ,那么是不能粗暴的 1:1 处理的。
恒定兑换还有一个更重要的问题,那就是作为一个恒定和 AMM ,他并不具备流动性调节的功能。随着兑换的进行,一端的流动性可能会耗尽,而且永远不会有套利者重新平衡流动性的套利空间。所以 SwapBridge 项目如果采用这种方式,往往会配备其他的流动性再平衡措施。
Mulitichain 是一座 wrap+swap 的混合资产桥,其 AMT 层是 Multichain 自身基于 Fusion 构建的 MPC 网络。
当用户需要桥接的资产在目标链上没有原生资产时,Multichain 将触发 wrap 流程,用户获得的是 anyToken,例如用户将 USDC 从以太坊桥接到 Moonbeam 时,用户获得的是 anyUSDC ;
当用户需要桥接的资产在目标链上有原生资产时,Mulitichain 将触发 swap 流程,用户将直接获得目标链上的原生资产,例如用户将 USDC 从以太坊桥接到 Polygon 时,用户会在 Polygon 上获得原生的 USDC ;
当用户需要桥接的资产在目标链上没有原生资产,但是有目标链官方认可、资产发行方认可、或是约定俗成的默认 wrap 资产时,也会触发 swap 流程。例如用户将 ETH 从以太坊桥接到 Near 时,用户会在 Near 上获得 nETH(Near 官方跨链桥 Rainbow Bridge 所发行的 ETH 映射资产)。
我们以 USDC 从以太坊换到 Polygon 上为例,过程会是这样的:
请注意,其中没有 swap ,每个环节都是 1:1 的兑换。
在这个过程中,anyUSDC 是反应中间物,对用户而言是感知不到的。只有在交易失败时,用户可能会收到它:
如果 burn-mint 环节失败,用户手里会保留 anyUSDC(Ethereum) ;
如果最后一步 convert 环节失败,用户手里会保留 anyUSDC(BSC)
用户可以用反应中间物,随时重试失败的环节,或者回退到初始状态。
burn-mint 环节一般不会失败,除非 AMT 层出现问题,比较常见的失败是最后一步 convert 环节由于目标链流动性不足而失败。
但 Multichain 没有流动性再平衡措施,所以在最后一步的 convert 环节,很有可能出现 Polygon 链上 USDC 储备不足的情况,遇到这种情况,用户会收到 anyUSDC( Polygon),无法完成后面的过程。此时用户如果希望继续兑换,只能等待有人从 Polygon 跨出而锁入 USDC,或者 LP 添加流动性时,才有可能完成。
LP 可以通过提供流动性来获取收益,LP 可以提供单链流动性,提供流动性获得的 LP Token 就是 anyToken ,实际上提供流动性的过程就是将 Token convert 为 anyToken 的过程。同理,取回流动性实际上就是 anyToken convert 为 Token 的过程。
LP 的流动性可能被移动到其他链上,不过数量始终不会变的,这与 cBridge 中的情况不同。但流动性的移动可能会导致 LP 提供流动性的链储备不足,无法足额取回,这时,LP 可以将 anyToken 通过 burn-mint 转移到其他储备充足的链上,以在其他链上取回流动性。
其实如果用户在跨链兑换过程中,因最后 convert 环节失败而收到 anyToken ,那么用户持有 anyToken 其实也在被动的提供流动性。
Multichain Docs https://docs.multichain.org/
XY Finance 团队成员主要来自以太坊基金会、imtoken、IBM 等企业,其创始人 Wilson Huang 是浸淫区块链领域超过 8 年的行业老炮。XY Finance 在 2021 年年底的私募融资和 IDO 中,共筹集了超过 2000 万美元。
XY Finance 将其产品分为 X swap 和 Y pool 。X swap 是用户界面,Y pool 是背后的流动性支持。
在 XY Finance 中,任意跨链兑换都需要通过两边共同的媒介资产来完成。XY Finance 共支持三种媒介资产,USDC、USDT、ETH 。
XF Finance 的 AMT 层是自身的 Consensus 链,实际上是一个 MPC 网络。LP 在任意 XY Finance 支持的链上提供流动性都将在 Consensus 链上获得 LP Token(xyUSDC、xyUSDT、xyETH)
XY Finance 采用恒定兑换模式,1 USDC 始终可以兑换 1 USDC 。为了应对 Y Pool 的失衡,XY Finance 会给那些推动流动性转移到流动性较低的链上的交易奖励 $XY(XY Finance 自身的代币)。
Consensus 链会记录每条链上的流动性余额,并通过特定算法计算每个交易对流动性再平衡做出的贡献。
但实际上,XY Finance 假定的平衡状态是各链上的流动性余额处于平均状态。$XY 的激励实际上是推动各条链上的流动性平均化,而非推动其达到最合理状态。
XY Finance Docs https://docs.xy.finance/
Hyphen 是由 Biconomy 推出的 SwapBridge 。Biconomy 成立于 2019 年,是较早的参与解决从 Layer2 到 Layer1 转账痛点的项目,除了大大缩短了转账时间,还提出了一种「元交易」(Meta Transactions) 的解决方案用于解决链上 Gas 费用昂贵的问题,元交易的本质是允许 dApp 的开发者代替其用户去支付交易费用。
Hyphen 将 LiquidtiyPoolManager 合约(后文简称 LPM 合约)部署在所有受支持的账本上。LPM 合约中存储了所有的流动性。任何人都可以向 LPM 合约中存款来提供流动性。
Hyphen 的 AMT 层是由执行节点(Executor Node)组成的 MPC 网络。用户需要跨链兑换时,会在源链将资产存入 LPM 合约,Hyphen 网络的执行节点会监听存入事件,并转发给目标链上的 LPM 合约,目标链上的 LPM 合约接收到之后,就会释放资产到用户提供的目标链地址。执行节点并不需要提供流动性,所有流动性都在 LPM 合约中。
Hyphen 最早的时候,曾采用过 AMM 模式。但现在的 Hyphen 采用的是恒定兑换模式。在此基础上,Hyphen 采用“动态费用算法”来推动流动性的再平衡。
在 Hyphen 中,每一笔 swap 除了常规的 Gas 费、手续费之外,还会涉及到两笔动态费用 —— deposit 奖励和 transfer 费用。
在 Hyphen 中,每一笔跨链兑换实际上是由两笔交易构成,源链上的 deposit 交易(用户向 LPM 合约付款),和目标链上的 transfer 交易(LPM 向用户付款)。
Hyphen 会对每一笔 deposit 交易进行奖励,每一笔 transfer 交易进行收费。
Hyphen 把在没有任何跨链兑换时,LP 提供的流动性的自然分布视为平衡状态。而不断进行的跨链兑换将使流动性进行重新分布,有的链的流动性相比平衡状态时减少,Hyphen 称其为流动性负债状态,有的链的流动性相比平衡状态时增加,Hyphen 称其为流动性过剩状态。
如果源链处于流动性负债状态,用户的 deposit 行为实际上改善了这种负债状态,那么用户会获得 deposit 奖励,奖励金额 = 用户的 deposit 金额/流动性负债率 * IP 池总资金,用户获得的最大奖励不会超过 IP 池总资金。
如果源链不处于流动性负债状态,则没有 deposit 奖励。
当目标链流动性处于平衡状态或负债状态的时候,如果用户要继续该链转账,使用这些流动性,加剧流动性负债,Transfer 费用在 0.1%-10% 之间,其中 0.1% 给 LP ,其余的会放到一个激励池里,Hyphen 称其为 IP 池。当目标链流动性处于过剩状态时,且用户的交易不足以使其变为负债状态,那么 transfer 费用为 0-0.1% ,全部给 LP 。
整体上来看,如果用户的 swap 推动了流动性的再平衡,一般 deposit 奖励会大于 transfer 费用,该交易整体上是被奖励的,反之,则 deposit 奖励小于 transfer 费用,该交易是被额外收费的。
Hyphen Introduction: https://docs.biconomy.io/products/hyphen-instant-cross-chain-transfers
Stargate 于 2022 年 3 月推出,是 LayerZero Labs 建立在 LayerZero 协议标准上的首个跨链应用,专攻资产跨链传输。
Stargate 与 Hyphen一样,通过动态费用机制来鼓励用户和套利者来平衡流动性,Stargate 将该机制称为“Delta 算法”
在 Stargate 中,每条链都会为其他链设定一个权重,该权重由开发者进行初始设置,并可以通过治理来调整。
假设 Stargate 一共支持三条链,分别是 X、Y、Z
那么:
在链 X 上,有 W(Y) 和 W(Z) 两个权重参数
在链 Y 上,有 W(X) 和 W(Z) 两个权重参数
在链 Z 上,有 W(X) 和 W(Y) 两个权重参数
根据这些权重参数,每条链上的流动性会被划分为不同的分区:
在链 X 上,流动性会划分为 Y 和 Z 两个分区
在链 Y 上,流动性会划分为 X 和 Z 两个分区
在链 Z 上,流动性会划分为 X 和 Y 两个分区
在一笔从 X 到 Y 的 swap 中,用户会向 X 链的 Y 分区(Y zone on X)存入流动性,并从 Y 链的 X 分区(X zone on Y)取出流动性,Delta 算法会将其理解为 Y zone on X 欠的一笔流动性债务。随着交易的不断进行,债务会不断出现和消失。
如果用户的跨链兑换交易在增加债务,那么用户会被收取额外的费用,如果用户的跨链兑换交易在消除债务,那么用户会获得补贴。
如果只是为了实现动态费用,并不需要做流动性的软分区。**分区的意义在于保证交易被提交后不会因流动性不足而失败,也就是 Stargate 提出的“跨链兑换三难问题”中的“即时最终性”。**因为当 X 链 和 Y 链 同时向 Z 链跨链时,只需判断各自分区的流动性够不够就可以了,不用担心自己分区内的流动性被另一条链来的交易抢用而导致交易失败。但这种分区的方案,似乎流动性效率偏低。假设从 X 到 Y 有一笔 大额交易,本来 Y 链上的总流动性是足够的,但是对应分区(X zone on Y)的流动性如果不足,那就只能拒绝交易。为了保证交易不会失败,而牺牲流动性效率,值得吗?
Delta 算法资料有限,笔者可能理解有偏差,欢迎读者联系指正。
Stargate Docs https://stargateprotocol.gitbook.io/
Delta 算法论文 https://www.dropbox.com/s/gf3606jedromp61/Delta-Solving.The.Bridging-Trilemma.pdf
我们看到,恒定兑换类型的 SwapBridge 设计的核心是流动性再平衡机制。
在 Multichain 中,没有流动性再平衡机制,如果 swap 时,目标链上的流动性不足,用户将不得不收到反应中间物:anyToken,以在流动性充足时重试交易;
在 XY Finance 中,流动性再平衡机制是为那些推动流动性再平衡的交易提供 $XY 激励;
在 Hyphen 和 Stargate 中,流动性再平衡机制是动态费用模型,推动流动性平衡的交易会获得奖励,加剧流动性不平衡的交易会被额外收取费用。
我们还发现,这些项目对“平衡状态”的定义并不相同。
在 xy Finance 中,对“平衡状态”的定义是“平均状态”,系统的激励措施实际上是在推动每条链上的流动性倾向于相等;
在 Hyphen 和 Stargate 中,对“平衡状态”的定义是,在没有任何交易时,LP 提供的流动性的自然分布状态。即便没有再平衡措施,LP 也倾向于更加合理的提供和调节流动性,因为这样能够使他们获得的交易手续费最大化,因此认定 LP 提供流动性的自然状态是平衡状态,是有其合理性的。
5.1 Connext
5.2 Hashflow
5.3 Orbiter
5.4 Orion Bridge
由于区块链的非实时性,AMM 所支持的交易,始终无法避免滑点问题和被 MEV 机器人套利的问题,而订单薄可以做到所见即所得,也就是说,在交易之前,价格会首先被确定。
此外,订单薄模式中,桥梁无需考虑流动性再平衡的问题,LP 会自行优化自己的流动性配置,以免错过订单。LP 之间的竞争还会促进 LP 为用户提供更优的价格。
因此我们看到,一些 SwapBridge 的项目采用了订单薄的模式来为用户提供资产跨链服务。
Connext 在成立之初是一只小而美的技术团队,总部在美国,其创始人 Arjun Bhuptani 曾是 Moloch DAO 的 Co-Founder 。Connext 得到了以太坊基金会的资助,并得到了加密领域一些顶级投资者的支持,包括 Polychain Capital、Consensys Ventures、1kx 等机构,累计融资 1570 万美金。
Connext 和 cBridge 一样,都曾采用基于本地验证(哈希时间锁)的交易模式,但也由于同样的原因(需要用户进行两次操作,体验较差),放弃了这种模式。
现在的 Connext,已经完成 Amarok 升级,开始采用 Nomad 作为 AMT 层。或者也可以理解为 Connext 是 Nomad 的一个快速通道(Nomad 自身是慢速通道),而 Nomad 是 Connext 的争议解决层。升级后,其流动性依旧由 Router 提供,属于订单薄模式。
用户会先将资产锁定在源链,Router 观察到此交易之后,会向 Sequencer 报价,所有 Router 都可以报价,如果 Router 的储备不足,也可以只提供部分的流动性;
**Sequencer 是 Connext 中的一个链下角色,负责收集 Router 的报价,避免 Router 在链上报价的 Gas 浪费。**Sequencer 会为用户选择最佳的报价并将其发布到链上;
报价本质上是一笔未签名的交易,被发布到链上后用户会进行确认,确认后 Router 需对其签名,签名后交易生效,用户立即收到款项,如果 Router 被选中后不签名,会被 Slash 。
在约 40min 之后,用户在源链锁定资产的交易被 Nomad 传输到目标链,Nomad 将创建相应数量的 wrap 资产,并利用目标链上的本地流动性交换为其原生版本,然后支付给垫付流动性的 Router 。
由于 Router 为用户垫付流动性的行为产生了资金占压成本,因此会被用户以跨链费用的方式补偿。
目前 Connext 桥梁中共有 9 个 Router 为用户提供流动性服务。
Connext docs https://docs.connext.network/
Amarok 升级 https://blog.connext.network/announcing-the-amarok-network-upgrade-5046317860a4
Hashflow 是一座新兴的订单薄模式的 SwapBridge ,目前的 LP 主要来自审核过的做市商,随着审核的逐渐开放,将会有更多的做市商加入。创始人兼 CEO Varun Kumar ,毕业于美国斯坦福大学航空工程博士,联合创始人兼 CTO Victor Ionescu ,毕业于英国牛津大学数学和计算机科学学士,过去曾在 Facebook 跟 Airbnb 担任资深工程师。
Hashflow 的资方当中包含了不少大型做市机构,我们可以预见,Hashflow 将聚合大量来自他们的流动性。在 Hashflow 中,LP 通过运行各自的做市算法(PMM)来提供流动性,用户发起的每一笔交易都将有多个 LP 试图提供流动性,用户可以选择最优的价格成交。
交易分为两个步骤,分别是交易撮合和交易执行。交易撮合在链下完成,用户发起交易后,LP 会提供报价,用户确认报价后,交易撮合完成。交易执行在链上完成,该过程需要借助 AMT 层进行跨链消息的传递和验证。Hashflow 目前使用 Wormhole 作为 AMT 层。
为了降低提供流动性的门槛,Hashflow 做了创新。LP 可以创建集合账户,其他用户可以向其中投注资金参与做市,所有做市操作由集合账户的创建者来完成。
Hashflow Docs https://docs.hashflow.com/
Orbiter 是一座专注于 EVM 生态的 SwapBridge 。2022 年 11 月 ,Orbiter 完成宣布首轮融资,投资方包括 Tiger Global、Matrixport、A&T Capital、StarkWare、Cobo、imToken、Mask Network、Zonff Partners 等,融资金额未披露。项目方还表示,Vitalik 曾向其捐赠 16 ETH 。
在 Orbiter 中有两个角色,sender 和 maker 。sender 就是发起交易的人,maker 就是 LP 。当在链下 maker 同意与 sender 进行交易之后,sender 可以在源链上直接向 maker 的账户支付资金,然后 maker 在目标链上向 sender 的收款账户支付资金。不过这里面没有报价过程,Orbiter 仅支持同质资产的跨链兑换,兑换比恒定为 1:1 。
Orbiter 在每条链上都部署了一个 MDC 合约,maker 需要在每条链上的 MDC 合约中抵押资金,这是用于保障 maker 忠实履约的保证金。如果在 sender 支付后,maker 意图欺诈,不进行支付或者不足额支付,经过仲裁确认属实后,目标链上的 MDC 合约会将 maker 的保证金支付给 sender 。
这种机制下,一个 maker 能够接的单笔订单金额是有上限的,不能超过其抵押的保证金。
当 sender 发起仲裁请求时,Orbiter 将依靠 SPV 合约来进行仲裁。
Orbiter 在每条支持的链上部署了其余链的 SPV 合约,目标链上的 MDC 合约会通过SPV 合约传回的消息来确认 sender 是否在源链上进行了正确的支付,进而判断 maker 是否进行了欺诈。
SPV 合约实际上为 Orbiter 支持的各条链之间建立了一个 AMT 层。
Orbiter Docs https://docs.orbiter.finance/
Orion Protocol 成立于 2018 年,除开种子轮的 40W 美金,最近的一次是 2020 年 7 月的融资,筹集了 345 万美元。
Orion Protocol 的主要模块有三个,包括 Swap、Trade、Bridge 。Swap 模块是一个类似于 1inch 的聚合 DEX ,仅支持同一链的资产交换,比 1inch 强大之处在于可以聚合来自 CEX 的流动性;Trade 模块是一个类似于 dydx 的订单薄交易系统,同样,仅支持同一链的资产交换。
与本文主题有关的是 Bridge 模块(我们就称其为 Orion Bridge 吧),这是一个跨链兑换模块。
Orion Bridge 采用哈希时间锁来保障交易的安全性。用户可以创建原子交易,交易经纪人将提供流动性,充当公共交易对手方。如果交易经纪人在接单后,不完成交易,会导致用户的资金卡住,必须等到时间锁结束后才能取回。所以交易经纪人需要质押 $ORN(也可以从其他 $ORN 持有者手中搜集委托),如果发生恶意卡单,交易经纪人的 $ORN 会被 Slash 。
Orion Whitepaper https://www.orionprotocol.io/hubfs/whitepaper.pdf
AMM 是 DeFi 的原创,而且是 DeFi 发展过程中的一个具有重要意义的创新,而订单薄则是相对古老的存在。AMM 模式是一种相对“民主”的模式,任何人都可以提供流动性,而订单薄模式中,由于技术门槛和资金门槛的存在,提供流动性这门生意往往成为一些“金融贵族”的专属。
在订单薄模型中,至少需要 LP :
为私钥维护一个安全的热钱包环境;
保证运行可靠性;
管理各接入链的 RPC;
管理流动性;
调整费用配置文件等等。
尽管 Hashflow 的“集合账户”功能可以一定程度上降低 LP 门槛,但订单薄模式中,招募 LP 的工作是一件 to B 的业务,而非 to C 的业务,这对于某些缺乏相关商业资源的项目方而言,可能不具备优势。
订单薄模式的优势也很显著,在 LP 充分竞争的情况下,订单薄模式对价格的反应更加敏捷也更加准确,而 AMM 总是给套利者留下空间。从交易体验层面,订单薄模式还具备无滑点,无 MEV,没有无常损失的优势。
6.SwapBridge 聚合器
6.1 Rango
6.2 Bugee
6.3 Li.Fi
6.4 ChainHop
6.5 Chainge Finance
在单链 DEX 领域,我们看到有 1inch 这样的聚合器,在 SwapBridge(也就是跨链 DEX)领域聚合器同样也是一门不错的生意。对用户而言,使用聚合器进行兑换是更好的选择,因为聚合器可以自动提供最优路线,免去了用户在多个桥之间对比选择的烦恼。
Rango 是目前支持广度较大的聚合器,集成了 26 座桥,覆盖 40 多条链(包括 EVM系、Cosmos 系、波卡、Carnado、Near),同时在各链上累计集成了超过 100 个 DEX 。Rango 希望任何资产都可以在这里一站式完成跨链交换。
根据 Rango 团队在 2022 年 2 月的报告,Rango 过去 6 个月的跨链交易金额达到了 12 亿美元。
Rango Docs https://docs.rango.exchange/ Rango WhitePaper https://rango.exchange/docs/rango-whitepaper.pdf
6.2 Bugee
Bungee 的原名为 FundMovr,我们在 5.2.5.1 中提到过这个项目,是由 Socket(原 Movr Network)支持的跨链聚合器。
Bungee 目前聚合了 Hop.Exchange,Refuel Bridge,Anyswap,Polygon Bridge,Hyphen,Arbitrum Bridge,Celer,Optimism Gateway,Across,Stargate 共计 10 座 SwapBridge 。覆盖的链不算太多,主要集中于 EVM 系。
Bungee 的特色在于支持点对点的匹配结算,如果网络内有两笔交易,资产类型相同,方向刚好相反,Bungee 会直接撮合两者,交易金额较小的一方可以直接获得点对点的支付,交易金额较大的一方可以获得部分点对点支付,差额部分再通过聚合器内的桥梁完成。点对点结算可以提高部分交易的速度,并降低其开销。
Bungee Docs https://docs.socket.tech/
Li.Fi(曾名为 Li.Finance)是一个主要服务于 dApp 和钱包等应用的跨链聚合协议模块。2022 年 7 月, Li.Fi 宣布完成了 550 万美元融资,由 1kx 领投,参投方包括 Dragonfly Capital、Lattice Capital、Scalar Capital、6th Man Ventures、Coinbase Ventures、BairesDAO 和 AngelDAO 等。
据官网信息显示,目前集成 Li.Fi 协议的应用包括了 ParaSwap、CowSwap、DODO 以及钱包 Steak Wallet 和 Alpha Wallet ,甚至包括了加密货币托管和资产管理平台 Cobo 。
Li.Fi 本身并不是一个应用,而是一个面向应用的服务,Li.Fi 为 dApp、钱包、DeFi 协议等提供跨链兑换的功能赋能,让用户能在这些产品中直接实现跨链兑换,而无需去一个新的界面。为此 Li.Fi 开发了 SDK、API、Widget 等便于集成的工具。
Li.Fi 自己开发的前端产品为 transferto 。
目前 Li.Fi 已经聚合了 Connext、Hop、Celer cBridge、Multichain、Hyphen、Optimism Gateway、Polygon Bridge (PoS)、AVAX Bridge、Arbitrum Bridge、Across、Stargate、Omni Bridge、Gnosis Bridge、Portal 共 11 座 SwapBridge ,覆盖 18 条公链。
Li.Fi Docs https://docs.li.fi/
Chainhop 最早是建立在 cBridge 之上的一座 SwapBridge。但现在 Chainhop 进一步 聚合了 Multichain、Stargate、Across Bridge、Hyphen Bridge、Hop Bridge 共 6 座 SwapBridge ,从而发展成了一个聚合器,可以为用户搜索跨链交易的最佳路径。
为了提供更好的交易价格,Chainhop 的路由算法支持多跳交易,例如,当用户请求在 Fantom 上将大量 ETH 兑换成 Optimism 上的 USDC 时。ChainHop 可能首先将 ETH 桥接到以太坊,然后在以太坊上完成 ETH-USDC 交换(通常 price impact 要小得多),最后将 USDC 桥接到 Optimism 。
Chainhop Docs https://docs.chainhop.exchange/
Chainge Finance 是在交易深度上做的最足的一个聚合器。与此同时,Chainge APP 是一个多链钱包,内置了跨链兑换的功能。
Chainge 不但支持 Chainhop 式的多跳交易,还可以实现自动拆单。
当有大额订单时,Chainge 可以将订单拆分给多个流动性池,共同完成交易。这包含三个层面:
在 SwapBridge 这一层,由于桥的流动性储备可能不足,或者在 AMM 机制下,price impact 太大,又或者某些桥设定了单笔交易额的限制,如果不能满足大额订单的兑换,Chainge 会将订单拆分给不同的 SwapBridge 来分担;
在 DEX 这层,在执行兑换时,将订单拆分给单链上的多个 DEX 来完成交易,以减小整体的 price impact ;
结合多跳交易机制,将订单拆分给多个链上的 DEX 来完成交易,以减小整体的 price impact 。
自动拆单的机制让 Chainge 面对大额交易时有巨大的优势。
Chainge 还有一个独家功能,那就是支持一键兑换多链上的资产,Chainge 文档中称其为“跨链漫游”,比如我在Ethereum、Polygon、Optimism 三条链上都有 ETH,我想把这些 ETH 全部兑换为 Ethereum 上的 USDT ,在 Chainge 中,不需要分别操作,而是可以一键完成,这个过程不用担心 Gas 费种类多的问题,因为 Gas 费是用全局 Gas 代币 $CHNG 支付的。用户在跨链兑换过程中可以只关心有哪些资产,不用关心这些资产分别在哪些链,感兴趣的朋友可以去 Chainge APP 体验一下,非常酷的功能。
Chainge 目前除了自己自身的 SwapBridge 模块以外,还聚合了 Multichain、cBridge、Rainbow、Arbitrum Bridge、Optimism Bridge,Avalanche Bridge 共 6 座桥,覆盖 35 条链,在各链上累计聚合了 57 个 DEX 。
Chainge Docs https://chainge-finance.gitbook.io/chainge-finance/get-started-1/introduction
聚合器的出现改变了 SwapBridge 之间的竞争格局。
其一,聚合器吸引了大量的用户,成为了 SwapBridge 的主要流量来源, SwapBridge 项目自身能吸引多少用户已不再重要。SwapBridge 之间的竞争变成纯粹的资本效率竞争,看谁的做市算法更优秀,看谁能吸引更多的 LP 资金,最终看谁能为用户提供更优的价格。
其二,在没有聚合器的前提下,支持更多链的 SwapBridge 可以获得更多用户,但有了聚合器,支持的链的数量变的不重要,如果一个 SwapBridge 在少数几条链上具备绝对的流动性优势,那就可以在聚合器的流量分配中占据一席之地。
在用户端,竞争主要在聚合器之间展开,为了吸引更多的用户,聚合器需要
尽可能支持更多的链(通过聚合更多的 SwapBridge) ;
尽可能支持更多的资产(通过聚合更多的 DEX) ;
尽可能提供最优的交易价格(除了聚合更多的 SwapBridge 和 DEX ,还可以通过提供“多跳”、“拆单”、"点对点匹配"等功能实现) ;
尽可能快的找到最优路径(需要强劲的服务器,在链下模拟交易) ;
尽可能被集成在更多应用中,以获得流量 。
总之,SwapBridge 聚合器是一个快速发展的领域,各项目正在各个方面上激烈的赛跑,我们文中所列的一些数据,可能随时在发生变化。
7.1 Catalog
7.2 Qredo
7.3 Pancakeswap
7.4 Permaswap
还有一种方法可以解决跨链资产兑换的问题,那就是跨链桥将中继链或将桥接链打造为流动性枢纽(我们称该链为枢纽链),将所有其他链的资产 wrap 到枢纽链上,并在枢纽链上建立流动性以支持交易。我们认为这种情况已经不属于 SwapBridge 的范畴,而应该理解为一个单链 DEX 应用与 WrapBridge 的组合,其模式有点类似于我们通过中心化交易所来完成跨链交换:充币→交易→提币。
但我们不能否认,这种模式也能解决跨链资产兑换的问题,甚至能比其他方式解决的更好。因此,我们依旧会列举这方面的一些有特色的项目案例。
7.1 Catalog
Catalog 基于 Ren Bridge 开发一个产品。我们知道 Ren Bridge 是一座跨链桥,而Ren Protocol 是一个 MPC 网络,也是 Ren Bridge 的桥接链。Catalog 正是部署于 Ren Protocol 之上的虚拟机环境 RenVM 中。
通过 Ren Bridge ,用户可以将其他链的资产充入 Ren Protocol ,进而在 Catalog 中进行交易,也可以在交易完成后,再通过 RenBridge 将资产提到目标链。
截止目前,Catalog 正在开发中, 还未正式上线。
Catalog Introduction https://medium.com/renproject/introducing-catalog-3a260c9d973b
“Not your keys, not your coins” 是区块链账户的基本规则,但这对于数字资产的持有人而言有莫大的单点风险,丢失私钥就丢失了一切,对于个人而言如此,对于持有价值上亿美元的基金而言也是如此。因此大型基金倾向于把自己的加密资产交给专门的托管机构来管理。Qredo 起初就是一家资产托管机构。
在拥有大量托管资产的基础上,Qredo 希望能够进一步帮助客户机构进行资产的交易。于是 Qredo 推出了自己的 MPC 网络,该网络目前有 6 个节点,随着后续发展会不断扩充。这些节点在提供资产托管服务的同时,为托管其中的资产提供交易服务。
用户可以将任意资产充入 Qredo 网络,成为 qToken,并在其中交易。Qredo 的流动性模式为订单薄,任何主体在存入满足最低数量的要求的资产之后,质押 $QRDO 代币可成为做市商。用户发起交易时,会向所有做市商发出报价请求(RFQ),报价被选中并成交的做市商将从交易中获得 0.005% 的手续费用。
截止撰文,Qredo 还处于早期阶段,相关功能还在开发中。
Qredo Docs https://developers.qredo.com/
Pancakeswap 是 BSC 链上的旗舰 DEX 协议,由一小群匿名的工程师开发于 2020 年 9 月推出,虽然外界并不知道创始人的具体身份以及项目融资情况,但是项目依然大获成功。
起初,PancakeSwap 只是利用 BSC 来实现价格低廉的代币交换,其交易 Gas 费几乎只有 Uniswap 的 1/50 ,但随着 BSC 链上聚集了来自大量其他链的 wrap 资产,Pancakeswap 已经成为一个多链资产流动性枢纽。
Permaswap 是 everVision 团队基于 Arweave 建立的一个 SCP(基于存储共识的范式)应用。SCP 应用是一种很有意思的范式,可以使得应用具备 Web3 特性的同时,具有堪比 Web2 的高性能,感兴趣的朋友可以通过这里了解。
在 Arweave 上进行交易序列化存储可以为 SCP 应用提供多对多原子交易。该功能使得任何交易可以作为一个整体,不存在一个方向上成功而另一个方向上失败的可能性。
通过 everPay 的跨链功能,用户可以将资产充入 Permaswap ,或从 Permaswap 提走。在 Permaswap 中,用户将可以享受快捷的交易体验。
Permaswap 以订单薄的方式建立流动性,任何人都可以成为 LP ,设置报价算法并提供流动性。LP 需要质押 $PSN ,如果提供报价但超时不签名,导致交易失败的话,会被 Slash 。
Permaswap 也是一个正在开发中的项目。
Permaswap Whitepaper https://mirror.xyz/permaswap.eth/ustZcDgavlm4xmYI26thEAj8W2cXlZpRkG5Jqz0iS14
其实我们在 Symbiosis V2 中也看到了一些枢纽链的影子,S-chain 事实上充当了枢纽链的角色,但 S-Chain 只是有限的几种稳定币的交易平台,作为一个中间过程的载体,帮助用户完成从源链到目标链的兑换。
本小节中所涉及到的枢纽链则不同,它们不仅希望在自身平台上建立几种主流媒介资产的流动性,而是有野心为更多的资产建立流动性。可以说,这些项目希望将自身的经营模式打造为更接近中心化交易所的模式。
我们终于对种类繁多的 SwapBridge 有了一个全面的认识。
流动性是 SwapBridge 永恒的主题,我们根据流动性模式对 SwapBridge 进行了分类:
• 桥下 AMM 模式在链上用 wrap 资产与原生资产组流动性池 • 桥上 AMM 模式直接用多链上的资产储备组流动性池 • 订单薄模式则由 LP 直接提供流动性,并与用户交易
流动性效率是 SwapBridge 的关键成功因素。整体上看:
在 LP 的专业程度满足条件且 LP 充分竞争的前提下,订单薄模式的流动性效率是高于AMM的(Uniswap V3 除外),而且订单薄模式对 LP 的流动性资金不是独占的,LP 理论上可以用同一份资金为多个订单薄做市。限制订单薄模式被采用的主要因素是 LP 的专业门槛和资金门槛。
在 AMM 模式中,允许提供不对称流动性的项目要比必须提供对称流动性的项目的流动性效率要高。因为不对称的流动性更能真实的反应不同方向上跨链需求强度的差别。桥下 AMM 大多要求对称的流动性,桥上 AMM 和恒定兑换模式则大多允许不对称的流动性,只是各自的方案不尽相同。我们相信仍会有项目前赴后继,探索更高流动性效率的方式,我们将持续关注那些有突出创新的项目。下表是我们对现有项目和方案的一个梳理。
此外,聚合器已成为交易者的主要入口并向 SwapBridge 输出流量,枢纽链模式正在以全然不同的方式提供跨链兑换服务。