先决条件和兼容性

NCRC先决条件

为了在多个Rollup之间启用NCRC,需要满足以下两个先决条件:

  • 这些Rollup必须属于ZK-Rollup类型。

  • 这些Rollup必须位于同一个L1上。

满足这两个条件的Rollup在理论上具有与底层L1相同的安全级别。类似地,这些Rollup之间的原生桥接的安全级别是相同的,并且它们之间不需要信任。所有的NCRC交易都通过有效性证明进行验证,作为NCRC安全保障的基本来源。

Rollup Recognition Contract (RRC)

截至2023年8月,几个ZK-Rollup已经在主网上启动,包括Polygon zkEVM、zkSync era、Linea等等。然而,这些ZK-Rollup是独立且无关的,导致用户资产的碎片化。这个问题的根本原因在于它们在L1(以太坊主网)上的合约是无关的。它们互相不知道对方的存在,也无法通过原生Rollup桥接直接进行通信。

因此,我们需要采取的第一步是在L1上部署一个专用合约,使各个Rollup能够发现和识别彼此。这就是所谓的RRC(Rollup Recognition Contract)。RRC负责管理NCRC中所有参与的ZK-Rollup,包括添加、暂停和退出Rollup。在RRC中,每个Rollup被分配一个专用的Rollup ID,而L1的ID保持固定为0。

当通过Rollup上的原生桥接启动跨Rollup交易时,地址可以指定目标Rollup ID:

  • 如果Rollup ID为0,则表示将消息跨链到L1,例如提现操作。

  • 如果Rollup ID不为0,则表示将消息发送到另一个Rollup。

Lumoz将在每个L1层上部署一个RRC合约,并允许相应的ZK-Rollup自由加入或退出。该RRC合约将用于维护每个Rollup ID的信息,包括L1上的桥接合约地址。值得注意的是,RRC合约仅提供数据检索服务,不直接与跨链资产进行交互。

与原生桥接智能合约和服务的兼容性

通常情况下,Rollup的原生桥接分为三个组件:L1上的桥接合约、L2上的桥接合约,以及负责消息中继的桥接服务。NCRC协议在底层利用这些组件,并添加了更高层次的封装。主要的修改如下:

  • L2上的桥接合约:在保留原有方法的基础上,新增了一个名为bridgeAsset的方法。该方法允许用户在destinationNetwork参数中指定目标Rollup的ID。

  • L1上的桥接合约:封装了一个新方法,用于处理新的bridgeAsset方法的跨链消息。基于RRC合约中找到的Rollup ID,桥接合约定位目标Rollup的信息,并将跨链资产转移到目标Rollup的桥接合约中。跨链资产在目标Rollup中被存入。

  • 桥接服务:负责消息中继,并向用户收取跨Rollup交易的费用。

一旦Rollup完成了上述与NCRC相关的兼容性适配,它可以在RRC中注册,加入原生的跨Rollup通信网络。

Last updated