ZK-RaaS網絡Opside推出NCRC協議,允許無需信任的原生跨Rollup通信
TL; DR
Opside 的 NCRC( Native Cross Rollup Communication) 協議提供了一種無需信任的 Rollup 互操作性解決方案。NCRC 協議並不是在各個 Rollup 上額外添加一個第三方橋,而是在系統層面改造了 ZK-Rollup 自帶的 bridge(native bridge),從而直接使用各個 ZK-Rollup 的 native bridge 來實現跨 Rollup 通信。這樣的做法更加簡潔和徹底,既繼承了 native bridge 絕對的安全性,也避免了第三方橋所帶來的系統復雜度和信任成本。
NCRC 已在測試網上线,用戶可以直接體驗。
為什么我們需要無需信任的跨 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 是完全一致的。用戶在 Rollup 1 上發起到 Rollup 2 的跨鏈交易,整個流程將自動完成,包括以下步驟:
首先,跨 Rollup 交易發起者 User 1 在 Rollup 1 上調用 native bridge 的 bridgeAsset 方法,發起跨鏈交易。該交易中的 destinationNetwork 參數被設置為 Rollup 2 的 Rollup ID。這個 Rollup ID 將被用於檢索對應的 L1 層橋合約地址。若 Rollup ID 為 0 ,則代表目標網絡為L1。
接着,這筆交易被 Rollup 1 的 sequencer 1 打包。跨 rollup 交易的費用,由交易發起者 User 1 承擔,並支付給所在的 Rollup 1 的 sequencer 1 。Rollup 1 的 Bridge service 將跨鏈資產先轉移到在 L1中的 Rollup 1 橋合約。此時 Rollup 1 和L1分別完成了資產的 burn 操作與 release 操作。
為了完成資產的跨 Rollup 轉移,Rollup 1 的 Bridge 服務調用 RRC 合約來查詢參數 destinationNetwork 對應的目標 Rollup 2 信息,從而獲取到 Rollup 2 在 L1 層的橋合約地址。然後,Rollup 2 的橋合約將直接接管這些資產,並通過 bridgeAsset 方法將資產映射到 Rollup 2 中。
最終,這筆交易在成功打包並生成證明後,會被 Rollup 2 的 Bridge 服務執行 claimAsset 操作。最終,Rollup 1 發出的跨鏈資產安全地到達 Rollup 2 指定的地址。
值得一提的是, 在整個跨鏈過程中,用戶的資產流經:Rollup 1 -> Rollup 1 在L1的橋合約-> Rollup 2 在L1的橋合約-> Rollup 2 。也就是說,用戶的資產沒有經過任何第三方協議,而是復用了 Rollup 自帶的 native bridge,整個流程都是安全且無需信任的。
當用戶在 Rollup 1 上執行跨鏈操作,選擇 Rollup 2 作為目標,技術流程實際上涉及 Rollup 1、L1 以及 Rollup 2 這三者。然而,用戶在此過程中並不需要感知 L1 的存在,他們的體驗只是從 Rollup 1 直接跨到了 Rollup 2 。背後的實際情況是 跨鏈資產在 L1 中進行了 2 次橋接操作,使得用戶感受到的是 Rollup 1 到 Rollup 2 的無縫連接。在這個過程中,L1 上的操作將自動處理,用戶不需要有其他的操作。對用戶而言,他們所在的當前 Rollup 可以實現向 L1 和任意其他 Rollup 進行跨鏈操作。這種設計使得用戶體驗更加流暢,同時隱藏了底層復雜性。
NCRC 已經在 Opside 測試網上线!
Opside 目前已經在測試網上實現了原生跨 Rollup 通信。現在任何人都可以在官網體驗。我們也歡迎用戶、开發者來幫助我們發現可能存在的 bug 和安全性風險,也歡迎提任何有價值的建議。
我們相信,一個無需信任的原生跨 Rollup 通信,不僅能安全地共享所有 Rollup 的流動性,也將提供更加強大的多 Rollup 互操作性,從而為去中心化應用和 DeFi 協議开闢新的可能性。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
星球日報
文章數量
7691粉絲數
0