主页 > 波宝钱包官网 > 波宝pro|ZK 生态》Opside上线NCRC协议,实现Rollup原生跨链通讯 | 动区动趋-最具影响力的区块链新闻媒体

波宝pro|ZK 生态》Opside上线NCRC协议,实现Rollup原生跨链通讯 | 动区动趋-最具影响力的区块链新闻媒体

波宝pro 波宝钱包官网 2023年08月23日

ZK-RaaS 网路 Opside 推出 NCRC 协议,该方案继承了 native bridge 绝对的安全性,也避免了第三方桥所带来的系统複杂度和信任成本。 (前情提要:面临Rollup时代,Opside如何共建ZK生态? ) (背景补充:Opside 的 ZK-PoW 是什么?可「挖矿」卖零知识证明给L2、AI )

本文目录

  • TL; DR
  • 为什么我们需要无需信任的跨 Rollup 通讯?
  • Opside 的解决方案: Native Cross Rollup Communication
    • NCRC 的前提条件
    • Rollup Recognition Contract(RRC)
    • 相容 native bridge 的 smart contract 与 service
    • 原生跨 Rollup 交易的流程
  • NCRC 已经在 Opside 测试网上线!

TL; DR

Opside 的 NCRC(Native Cross Rollup Communication) 协议提供了一种无需信任的 Rollup 互操作性解决方案。NCRC 协议并不是在各个 Rollup 上额外新增一个第三方桥,而是在系统层面改造了 ZK-Rollup 自带的 bridge(native bridge),从而直接使用各个 ZK-Rollup 的 native bridge 来实现跨 Rollup 通讯。这样的做法更加简洁和彻底,既继承了 native bridge 绝对的安全性,也避免了第三方桥所带来的系统複杂度和信任成本。

为什么我们需要无需信任的跨 Rollup 通讯?

Rollup 能够显着提高区块链网路的可扩充套件性、降低交易成本并提高整体效率,它们受到越来越多的关注和使用。Opside 为 Web3 应用提供 ZK-RaaS 服务,任何开发者都可以通过 Opside Rollup Launchbase 建立自己的 Rollup。在这个多 Rollup 的时代里,我们预计会有越来越多的 Rollup 共存,因此不同的 Layer 2 之间的无缝互操作性变得至关重要。目前,Rollup 之间运作相对孤立,缺乏即时的跨链通讯和资产互通。这种隔离导致了碎片化的格局,其中资产在特定的 Rollup 内被隔离,限制了它们在不同网路之间的自由流动和利用。

缺乏高效的跨 Rollup 通讯不仅限制了各个 Rollup 的潜力,还影响了整体使用者体验。使用者在尝试在 Rollup 之间转移资产或执行跨链交易时面临繁琐而耗时的流程。这种次优的体验削弱了 Rollup 的吸引力,并在一定程度上阻碍了二层扩容的广泛採用。

目前的跨 Rollup 桥接方案大部分是在 Rollup 链上部署新的一套跨链合约,然后通过多链流动性激励机制来提供资产的跨链。这些方案并不是通用的讯息跨链,同时带来了中心化和信任的风险。

为了释放多 Rollup 时代的全部潜力,迫切需要一种无需信任的通用的跨 Rollup 通讯协议。

Opside 的解决方案: Native Cross Rollup Communication

实际上,每一个 ZK-Rollup 都自带一个 L1<>L2 的 bridge,我们称之为 Native bridge。与第三方 bridge 採用流动性方案不同,Native bridge 是唯一的 「mint-burn」 跨链机制。它由零知识证明来保证安全性,同时也是无需信任的。一个 Rollup 上所有的资产,都来自 native bridge 的 deposit 交易,同时也都由 native bridge 来提供最终的安全性背书。

我们坚信奥卡姆剃刀原理,「如无必要,勿增实体(Entities are not to be multiplied beyond necessity.)」。第三方桥拥有更加便宜和快捷的跨链体验,但也带来了更多的信任成本和安全风险。前不久的 Multichain 事件,就是一个案例。因此,在一开始,Opside 的跨 rollup 通讯的灵感就简单得出奇:直接使用 native bridge 来实现多 rollup 互操作性,而不是新增一个第三方的桥。这就有了现在的 NCRC(Native Cross Rollup Communication) 协议。

NCRC 的前提条件

多个 Rollup 之间实现 NCRC 需要满足以下 2 个前提条件:

  • 这些 Rollup 属于 ZK-Rollup 型别
  • 这些 Rollup 在相同的 L1 上

满足以上 2 个条件的 ZK-Rollups,在理论上,拥有和 L1 一样的安全性。同样地,这些 Rollup 之间的 native bridge 的安全等级是一样的,且无需信任对方。所有的 NCRC 交易都是被 validity proof 所验证的,这也是 NCRC 的安全性保证的根本来源。

Rollup Recognition Contract(RRC)

截至 2023 年 8 月,已经有多个 ZK-Rollups 主网上线了,包括 Polygon zkEVM、zkSync Era、Linea 等。然而,这些 ZK-Rollups 之间是独立不相关的,使用者的资产也因此碎片化。造成这种问题的根本原因在于,它们在 L1(以太坊主网)上的合约是不相关的。它们感受不到对方的存在,更无法实现原生 Rollup bridge 的直接通讯。

因此,我们要做的第一步,是在 L1 上部署一个特殊的合约,来让 Rollup 互相发现和识别。我们称之为 RRC(Rollup Recognition Contract)。RRC 负责管理所有参与 NCRC 的 ZK-Rollups,包括 Rollup 的新增、暂停、退出等。RRC 中的每个 Rollup,都会有一个专属的 Rollup ID,L1 的 ID 则固定为 0。

Rollup 上的地址在 native bridge 发起跨 Rollup 交易时,可以指定目标的 Rollup ID:

  • 如果 Rollup ID 为 0,则表示把讯息跨到 L1,例如 withdrawal
  • 如果 Rollup ID 不为 0,则表示要把讯息跨到其他 Rollup

Opside 将在每一个 L1 层都部署了一个 RRC 合约,并允许对应的 ZK-Rollup 无需许可地加入或者退出。这个 RRC 合约将用于维护各个 Rollup ID 对应的 Rollup 资讯,包括 L1 上的 bridge 合约地址等。值得一提的是,RRC 合约只是负责提供资料检索服务,不会跟跨链资产产生直接联络。

相容 native bridge 的 smart contract 与 service

一般来说,一个 Rollup 的 native bridge 分成 3 个模组:L1 上的 bridge 合约、L2 上的 bridge 合约,以及一个 bridge service 负责传递资讯。NCRC 协议在底层複用了这些模组,并在其基础上做了更高阶的封装。主要的改动如下:

  • L2 上的 bridge 合约:在保留原有方法的基础上,添加了新的 bridgeAsset 方法,允许使用者在 destinationNetwork 引数中指定目标 Rollup 的 ID
  • L1 上的 bridge 合约:封装一个新方法来处理新 bridgeAsset 方法的跨链讯息。bridge 合约会在 RRC 合约中根据 Rollup ID 寻找到目标 Rollup 的资讯,并将跨链资产转移到目标 Rollup 的 bridge 合约中。跨链资产在那里被 deposit 到目标 Rollup
  • bridge service:负责传递资讯,并向用户收取跨 Rollup 交易的手续费

当一个 Rollup 完成以上 NCRC 相关的相容适配之后,就可以将该 Rollup 注册到 RRC,从而加入原生跨 Rollup 通讯网路。

原生跨 Rollup 交易的流程

对于使用者来说,NCRC 的操作方式和 rollup 的 native bridge 是完全一致的。使用者在 Rollup1 上发起到 Rollup2 的跨链交易,整个流程将自动完成,包括以下步骤:

首先,跨 Rollup 交易发起者 User1 在 Rollup1 上呼叫 native bridge 的 bridgeAsset 方法,发起跨链交易。该交易中的 destinationNetwork 引数被设定为 Rollup2 的 Rollup ID。这个 Rollup ID 将被用于检索对应的 L1 层桥合约地址。若 Rollup ID 为 0,则代表目标网路为 L1。

接着,这笔交易被 Rollup1 的 sequencer1 打包。跨 rollup 交易的费用,由交易发起者 User1 承担,并支付给所在的 Rollup1 的 sequencer1。Rollup1 的 Bridge service 将跨链资产先转移到在 L1 中的 Rollup1 桥合约。此时 Rollup1 和 L1 分别完成了资产的 burn 操作与 release 操作。

为了完成资产的跨 Rollup 转移,Rollup1 的 Bridge 服务呼叫 RRC 合约来查询引数 destinationNetwork 对应的目标 Rollup2 资讯,从而获取到 Rollup2 在 L1 层的桥合约地址。然后,Rollup2 的桥合约将直接接管这些资产,并通过 bridgeAsset 方法将资产反射到 Rollup2 中。

最终,这笔交易在成功打包并生成证明后,会被 Rollup2 的 Bridge 服务执行 claimAsset 操作。最终,Rollup1 发出的跨链资产安全地到达 Rollup2 指定的地址。

值得一提的是,在整个跨链过程中,使用者的资产流经:

Rollup1 -> Rollup1 在 L1 的桥合约 -> Rollup2 在 L1 的桥合约 -> Rollup2。

也就是说,使用者的资产没有经过任何第三方协议,而是複用了 Rollup 自带的 native bridge,整个流程都是安全且无需信任的。

当用户在 Rollup1 上执行跨链操作,选择 Rollup2 作为目标,技术流程实际上涉及 Rollup1、L1 以及 Rollup2 这三者。然而,使用者在此过程中并不需要感知 L1 的存在,他们的体验只是从 Rollup1 直接跨到了 Rollup2。背后的实际情况是 跨链资产在 L1 中进行了 2 次桥接操作,使得使用者感受到的是 Rollup1 到 Rollup2 的无缝连线。在这个过程中,L1 上的操作将自动处理,使用者不需要有其他的操作。对使用者而言,他们所在的当前 Rollup 可以实现向 L1 和任意其他 Rollup 进行跨链操作。这种设计使得使用者体验更加流畅,同时隐藏了底层複杂性。

NCRC 已经在 Opside 测试网上线!

Opside 目前已经在测试网上实现了原生跨 Rollup 通讯。现在任何人都可以在官网体验 https://pre-alpha-assetshub.opside.network/ 。我们也欢迎使用者、开发者来帮助我们发现可能存在的 bug 和安全性风险,也欢迎提任何有价值的建议。

我们相信,一个无需信任的原生跨 Rollup 通讯,不仅能安全地共享所有 Rollup 的流动性,也将提供更加强大的多 Rollup 互操作性,从而为去中心化应用和 DeFi 协议开闢新的可能性。

标签: NCRC   ZK-RaaS   Layer2   ZK Rollup   Rollup   Opside   波宝pro   RaaS