我们很高兴地宣布,我们正在开发 Hermez zk-rollup 的一项新功能,它可能提升整个 rollup 生态系统内部的 Layer 2 通信。
Hermez 将在 2021 年初上线 zk-rollup 网络的第一个版本,并首次实现 Layer 2 交易的大规模迁移机制。
大多数人都已经意识到了在 Layer 1 和 Layer 2 之间进行切换的可用性问题以及因此产生的超高 gas 费的问题。
随着越来越多针对不同用例的 Layer 2 方案涌现,可用性问题会变得更加严重,因为用户在从一条 rollup 链向另一条 rollup 链或 Layer 1 智能合约转移代币时需要支付高昂的交易费。这种情况可能会降低用户资金的流动性,打击用户对 Layer 2 方案的兴趣。
在当前范式下,如果 Bob 想要在 Layer 2 方案之间(例如,从 RollupA 向 RollupB)转移资金,他需要先将资金从 RollupA 提取到 Layer 1 上,再将资金从 Layer 1 存入 RollupB。这样一来,Bob 就需要支付两次 gas 费,可能会让 Bob 觉得不划算。
这一问题的解决方案很简单,但是实现起来很复杂。Hermez 实现很接近 Barry Whitehat 所提出的概念。
通过大规模迁移,用户能够像处理 Layer 2 用户之间的代币转移那样处理外部 Layer 1 智能合约。
这些 Layer 1 智能合约需要先有一个 Layer 2 地址。用户需要知道这个地址,才能将资金转移到该地址内。
Hermez 协议可以将同一个 Layer 1 智能合约在 Layer 2 上的目标地址所收到的 Layer 2 转账进行分组和提取。
用户的资金要去往的目的 rollup 智能合约会使用标准的 Hermez 功能从 Layer 1 上提取同一批转账的总金额。虽然该合约需要支付提款手续费,但是这笔手续费可以分摊到同一批次的所有转账上,因此成本并不高。
接收方的 L2 网络协调员需要处理 L1 的取款交易,并从信息中分解出资金的流向,再汇入到与初始 rollup 的聚合账户对应的新 rollup 上。
所有这些之所以能够实现,是因为 Hermez 协议在聚合提款交易中包含了在目标 rollup 上重构 Hermez Layer 2 中的原始转账所需信息,以及对应的账户信息。这可以在目标 Layer 2 中通过电路处理(circuit processing)的方式来实现(如果支持的话)。
假设有一组用户(包括 Bob)都想将代币转移到另一条 rollup 链上。现在,他们每个人都需要为各自的交易支付 Layer 1 提款手续费。有了大规模迁移机制之后,Hermez 就可以在一笔 Layer 1 交易中处理多笔交易。所有转账交易都能得到执行,转账者需要向 Hermez Layer 2 支付交易费。另外,目标 rollup 可能会向这些转入交易收取少量费用。Bob 对此很满意。
第一版 Hermez 网络发布时,Layer 2 方案不会具备入站处理的能力,但是该功能会在下一版本实现。事实上,对于那些在不同版本的 Hermez 网络之间进行迁移的用户来说,大规模迁移机制非常有用。另外,该机制也可以用来连接其它 Layer 2 方案。
这一新机制所带来的可能性将为 Layer 2 生态系统乃至整个以太坊社区创造巨大价值。