
由于以太坊的 gas 费越来越高,各种 DeFi 协议已将其服务迁移到 L2 解决方案,或直接在以太坊兼容的链上启动,而不是以太坊本身。由于 L2 解决方案的出现,许多 DeFi 协议正在采用后一种方法。
然而,尽管将现有的以太坊 dapp 移植到兼容 EVM 的链 (如 xDai,BSC) 很容易,但用户体验仍然很棘手。
在本文中,我们将深入研究用户在另一条链上使用 dapp 时所面临的问题,以及链间交易桥 (简称“ITB”) 如何解决这个问题,然后就应该进行案例研究了。
来自用户 POV 的问题
如果用户主要在自己的桌面上使用以太坊 dapp,那么其很有可能安装了 Metamask。为了第一次与非以太坊链上的 dapp 交互,用户需要更改 Metamask 中的一系列设置。这个过程是这样的 :

大多数用户在这个过程中会中途退出,这并不奇怪。
在另一端,我们只有手机用户。对于这类用户,如果他们使用的移动钱包不支持 dapp 所在的链,则就根本不能使用它。例如,如果用户正在使用 Argent,就不能使用 Pancakeswap (在 BSC 上等同于 Uniswap) 或 Venus(在 BSC 上等同于 Compound)——仅仅是因为钱包不支持 BSC。
此外,有时一个协议在另一个链上有不同的设置。例如,以太坊、Fantom、BSC 链上的货币市场 Cream Finance,每个链上都有单独的资产列表供用户借贷 (Fantom 上有 19 个资产,BSC 上有 33 个资产,以太坊上有 50 多个资产)。因此,用户需要切换他们的网络设置,以查看每个链所支持的资产,从而创建一个 UX 噩梦。
对新用户来说,最麻烦的是,给定的代币可能在不同的链上有不同的变体。例如,xDai 上的 USDC 和 BSC 上的 USDC 是完全不同的、不兼容的代币。

在 Component Finance 上将 USDC 交换到 USDC (BSC)
最后一个问题是,您需要为每个链持有不同的 gas 代币——BSC 链持有 BNB, xDAI 链持有 xDAI, Fantom 链持有 FTM 等等。每个链的 gas 费也相差很大 :1 Gwei 通常在 xDai 上是可以的,而 BSC 强制执行最低 10 Gwei 的规定。对许多用户来说,gas 费已经很困难了,而添加多个基础代币到组合中只会让情况变得更糟。
在审阅本文时,Metamask 实现了 EIP-3085,以允许 dapp 开发人员在他们的网站上添加按钮。用户可以点击按钮,在他们的 Metamask 上添加一个新的链设置,然后切换到那个链——确实是一个显著的改进。
链间交易桥如何解决这些问题
ITB 的目标是让用户访问一个非以太坊 dapp 网站,连接自己的钱包 (Metamask 和移动钱包),并开始使用 dapp,就像该应用程序在以太坊上一样。就是这样。用户不需要知道 dapp 在哪条链上。只需访问该站点,即可像使用任何现代 web 应用程序一样使用它。
这个功能现在已经可以使用了。
在后台,当用户发送一个交易时,它会自动传递到智能合约所在的链上。这就是为什么这种技术被命名为“链间交易桥”的原因。“此外,使用这种技术,任何非以太坊链上的 gas 费都由 dapp 开发者承担,交易通常在几秒钟内被确认。

你可能会想,这听起来好得令人难以置信。
在下一节中,将在实际环境中查看一个示例。众所周知,我们是第一次在 Perpetual Protocol 中使用这种技术。
如果迫不及待想自己尝试一下,请登录 https://perp.exchange。
链间交易桥是如何工作的
首先,在解释 ITB 如何工作之前,理解什么是永久协议将会有所帮助。
Perpetual Protocol 是一种去中心化的交易所,用户可以在其中连接钱包,直接对资产的价格走势进行推测,如果需要的话还可以利用杠杆。要开立杠杆头寸,用户需要存入 USDC 并将其用作该头寸的抵押品。如果用户开了一个多头仓位,而标的资产的价格上涨了,这对用户来说是一笔有利可图的交易 (反之就是亏损)。
因为所有的事情都发生在 Perpetual Protocol 的链上,所以交易会在区块链上消耗大量的 gas (即计算能力)。为了提供给用户一些背景信息,如果在以太坊上交易,每笔交易将花费大约 100 美元的 gas 费。因此,我们将智能合约迁移到 xDai 链,这是一个与以太坊兼容的链,每笔交易平均成本为 0.005 美元。
不幸的是,当 2020 年 12 月协议推出时,并没有多少人知道 xDai Chain。前面提到的问题 (设置 Metamask; 用户需要原生代币来支付另一条链上的 gas 费),这肯定会给采用带来很大挑战性。
为了克服这个问题,Perpetual Protocol 的开发人员提出了 ITB 的想法,使用户甚至无需意识到就可以在另一条链上进行交易。正如 AggroTrader 在 Twitter 上所说 :

有两个组成部分使 ITB 成为可能-元交易和入匝道 / 出匝道流程。
元交易
通常,当我们发送交易时,钱包会将签名的交易提交到区块链,如下图所示。

然而,对于元交易,钱包将把签名消息和其他参数传递给自动中继器。然后,中继器将事务提交给其他区块链。用户无需做任何事情就能从更便宜、更快的链中受益。

入匝道 / 出匝道流程
下一步是入匝道 / 出匝道流程,用户依靠此流程向 xDai 链存入和提取他们的资金。
单程有三个步骤 :
1. 授予在以太坊上移动 USDC 的权限
入匝道流程的最终目标是将用户的 USDC 迁移到 xDai 链,因此第一步是要求用户允许我们的智能合约代表他们移动 USDC。
2. 将代币转移到 xDai 桥
接下来,用户需要将他们想要存入的 USDC 金额转移到 xDai 桥的以太坊侧。网桥将保护已存入的 USDC,直到用户要求从 xDai 链中提取资金。
完成此步骤后,用户无需支付 gas 费。
3. 授予在 xDai 链上移动 USDC 的权限
一旦存入的 USDC 金额计入用户在 xDai 链上的地址,用户需要授予我们在 xDai 链上的智能合约权限,以便在 xDai 链上使用其 USDC。从现在开始,我们使用元交易来执行用户对 xDai 链的交易。
现在,用户可以开始使用 Perpetual Protocol 进行交易,而无需支付 gas 费 (他们只需要在钱包上签名,就像下面这样)!

出匝道过程大致相同,只是方向相反。用户批准 USDC 移动到 xDai 桥的 xDai 一侧。反过来,xDai 桥的以太坊侧将在以太坊上的 USDC 释放回用户的钱包。
链间交易桥的缺点
每个设计都需要权衡,ITB 也不例外。
ITB 有两个缺点 :
1) 硬件钱包支持有限
由于技术限制,Trezor 用户不能使用 ITB,Ledger 功能非常有限。当连接到 Metamask 时,这些流行的硬件钱包都不能与 ITB 一起工作。但是开发者可以使用上述新的 Metamask 功能 (EIP-3085) 来切换网络设置,这样硬件钱包用户在将资金发送到二级链后就可以使用 dapp(由于元交易,仍然没有 gas 费)。
2) 有限的适用范围
只有特定类型的 dapp 可以采用 ITB,如合成资产交易、衍生品交易或保证金交易。对于其他服务,如现货交易,用户希望交易结束后在同一链上接收交换资产,所以 ITB 不会工作,除非所有交换资产已经在二级链上。
结语
我们相信 ITB 是在这个多链世界中创造无缝 UX 时缺失掉的关键。它允许用户与 dapp 交互,就像 dapp 驻留在以太坊上一样。此外,通过结合 Metamask 的最新功能,这项技术可以覆盖几乎所有类型的钱包。