一文詳解Scroll zkEVM方案:怎樣實現去中心化的願景?

原文作者:Young,Scroll 研究員;Babywhale,Foresight News

今年 2 月底,基於 ZK Rollup 的以太坊 Layer 2  網路 Scroll 正式推出了向所有使用者開放的 Alpha 測試網,並表示將在未來幾個月內改進 zkEVM 效能。就在推出新測試網的一週後,Scroll 宣佈以 18 億美元估值完成了 Polychain Capital、紅杉中國等參投的 5000 萬美元融資。

2022 年 6 月,筆者在《三分鐘讀懂 Scroll:ZK Rollup 擴容新銳選手》中簡單介紹了 Scroll 的設計框架。Scroll 旨在建立「EVM 等效」的 zkEVM 擴容網路,實現以太坊上應用的無縫遷移。

7 月,Scroll 推出了需要申請資格的 Pre-Alpha 測試網,截至 Alpha 測試網推出時,Pre-Alpha 測試網已處理了超 1540 萬筆交易,共確認了超 180 萬個區塊,提交了 64.1 萬批有效性證明,且共有超 10 萬名使用者參與。而 Alpha 測試網開放至今,共有約 2, 145, 099 個錢包地址,處理了約 10, 102, 684 筆使用者交易,生成了 886, 701 個區塊,平均區塊時間約為 3 秒。

本文中,筆者將介紹 Scroll 透過怎樣的機制實現在去中心化的前提下繼承以太坊主網的安全性。

Scroll 的架構

Scroll 架構主要由 3 部分組成:節點網路、證明網路和 Rollup 合約。

節點網路(Scroll Node)

Scroll 的節點網路包含三部分:定序器(Sequencer)、協調器(Coordinator)和中繼器(Relayer)。

定序器(Sequencer)

定序器(Sequencer)提供 JSON-RPC(JSON 是一種輕量級的資料交換格式,它可以表示數值、字串、序列及名 / 值對集合。JSON-RPC 是一種無狀態的,輕量級的遠端程序呼叫協議)介面並接受 L2 交易。每隔幾秒鐘,它就會從 L2 mempool 檢索一批交易,並執行它們以生成新的 L2 區塊和一個新的狀態根。Scroll 的定序器實現是透過 fork 被廣泛使用的以太坊節點 Go Ethereum(Geth),並以此實現更好的相容性和承經得起時間考驗的安全性。

協調器(Coordinator)

一旦生成新的區塊,協調器(Coordinator)就會收到通知,並從定序器接收該區塊的 Execution trace。然後,協調器將 Execution trace 分配給一個從去中心化的證明網路中隨機選擇的證明者生成證明。

中繼器(Relayer)

中繼器(Relayer)用於觀察部署在以太坊和 Scroll 上的跨鏈橋和 Rollup 合約。它主要有兩個職責,其一是監視 Rollup 合約,跟蹤 L2 區塊的狀態,包括其資料可用性和有效性證明。其二是監視部署以太坊和 Scroll 上的跨鏈橋合約的存款和提取活動,並將訊息從一方傳遞到另一方。

證明網路(Roller Network)

Rollers 作為網路中的證明者,負責為 ZK Rollup 生成有效性證明。Roller 可以利用像 GPU、FPGA 和 ASIC 等硬體裝置來減少驗證時間和驗證成本。

下圖展示了 Roller 如何為每個區塊生成有效性證明,有以下步驟:

  • Roller 首先將從協調器那裡收到的執行 Trace,轉換為電路 witness。
  • 為每個 zkEVM 電路生成證明。
  • 使用證明聚合,將來自多個 zkEVM 電路的證明合併為一個單一的區塊證明 Rollup 和跨鏈合約。

值得一提的是,Scroll 團隊成員表示 Scroll 計劃於主網上線前上線證明網路測試網。證明網路的去中心化一方面為以太坊合併後無處安放的 GPU 礦機找到了暫時的用武之地。另一方面,未來主網對證明者的激勵可能可以刺激零知識證明專用晶片的開發,並最終被大量 ZK 專案廣泛採用,形成繼 Pow ASIC 礦機後的又一實體產業鏈。

Rollup 和跨鏈橋合約

Scroll 透過 Rollup 和跨鏈橋合約連線到以太坊。這樣確保了 L2 交易的資料可用性,並允許使用者在 L1 和 L2 之間傳遞資產和資訊。

Rollup 合約

Rollup 合約從定序器接收 L2 狀態根和區塊。它將狀態根儲存在以太坊狀態中,L2 區塊資料作為以太坊 calldata。這為 Scroll 區塊提供了資料可用性,並利用以太坊的安全性來確保包括 Scroll 中繼器在內的索引器能夠重建 L2 區塊。一旦確定 L2 區塊有效性的證明被 Rollup 合約驗證,相應的區塊就被認為在 Scroll 上已經完成。

跨鏈橋合約

部署在以太坊和 Scroll 上的跨鏈橋合約允許使用者在 L1 和 L2 之間傳遞任意的資訊。在這個訊息傳遞協議的基礎上,我們還建立了一個無需信任的跨鏈協議,允許使用者在兩個方向上橋接 ERC-20 資產。從以太坊向 Scroll 傳送訊息或資金,使用者需要在跨鏈橋合約上呼叫 sendMessage 交易。中繼器將在 L1 上對該交易進行索引,並將其傳送給定序器,將其包含在 L2 區塊中。從 Scroll 向以太坊傳送訊息,在 L2 跨鏈橋合約的流程和上述過程類似。

Scroll 如何實現 ZK Rollup?

Scroll 中的 L2 區塊被生成後提交給以太坊,並按以下步驟順序最終完成:

  • 定序器的角色是生成區塊。對於第 i 個區塊來講,定序器生成執行 Trace:T,並將其傳送給協調器。定序器還將交易資料 D 作為 CallData 提交到以太坊的合約中,保證資料可用性以及由此生成的狀態根和對 Rollup 合約的交易資料的承諾作為狀態。
  • 協調器會隨機選擇一個證明者為每個 Block trace 生成一個有效性證明。為了加快證明生成過程,不同區塊的證明可以由不同的證明者並行生成。
  • 在為第 i 個塊生成區塊證明 P 之後,證明者會將其傳送回協調器。每隔 K 個區塊,協調器向另一個證明者分派一個聚合任務,將 k 個區塊證明聚合為一個聚合證明 A。
  • 最後,協調器向 Rollup 合約中提交聚合證明 A,透過對先前提交給 Rollup 合約的狀態根和交易資料 commitment 進行驗證,最終可以確定從 i  1 到 i k 的 L2 Block。

上圖說明了 Scroll 區塊將在多步驟的過程後在 L1 上最終完成。每個 L2 區塊將經過以下三個階段,直到最終確定:

預提交。預提交示 block 已由定序器提出併傳送給證明者。儘管預提交的區塊還不是 Scroll L2 鏈的規範部分,但是由於它們尚未釋出在以太坊上,因此信任定序器的使用者可以選擇預期對它們採取的行動。

提交。提交表示該區塊的交易資料已經發布在以太坊的 Rollup 合約上。這確保了區塊的資料可用性,但不能證明它是以有效的方式執行的。

終結。終結狀態表示該區塊中的交易已經被正確執行,並且透過了以太坊上的有效性證明驗證。最終完成的區塊被認為是 Scroll L2 鏈的規範部分。 

Scroll 與其他 ZK Rollup 方案的區別

總體而言,Scroll 與已上線主網的 Polygon zkEVM、StarkNet 以及 zkSync Era 最大的區別在於 Scroll 更接近原生以太坊實現,對 EVM 開發者來說更加友好。

Scroll vs Polygon zkEVM

二者在實現方面存在一些技術差異,。一是 Scroll 直接 fork 被廣泛使用的以太坊節點實現 Geth 生成 Layer 2 的區塊,接近原生以太坊實現。Scroll 設計了不同的子電路來證明 Geth 執行跟蹤中的每個操作碼,並且更容易驗證電路與原生以太坊具有完全相同的行為。而 Polygon zkEVM 則使用新的組合語言重寫每個 EVM 操作碼,然後為其底層狀態機生成證明。

另一個區別是,Scroll 對 zkEVM 電路和聚合電路都使用 SNARK。Polygon zkEVM 是使用 STARK 作為他們的 zkEVM 電路,並使用 SNARK 作為聚合電路來聚合 STARK 證明。

Scroll vs StarkNet

與 StarkNet 相比,Scroll 以 EVM 等效性為目標,希望原生 zkEVM 解決方案以實現位元組碼級相容性,對以太坊開發者更加友好;而 StarkNet 是一個對於 ZK 友好而對開發者不友好的方案。故 StarkNet 建立開發者和專案生態具有一定的學習成本,也存在不小的挑戰。

Scroll vs zkSync

相較於 Scroll 對 EVM 位元組碼級的相容性,zkSync 是在語言級別相容 EVM 的,故對於智慧合約的開發者而言,需要對部署帶有 BlackBlox 的編譯器的額外信任,也需要更多的時間來進行安全審計。

Scroll 的去中心化夢想

Scroll 團隊成員張燁曾發表了一篇名為《Scroll 背後的理念》的文章。這篇文章詳細描述了 Scroll 的願景:除了 Scroll 專案本身,團隊更加希望為以太坊的 zkEVM 研究做出貢獻。

文章中提到,相比於「閉門造車」,Scroll 從一開始就做出了與社羣共同發展的決定,並且也一直在踐行這一點,包括由社羣驅動開發 zkEVM、開展零知識證明方面的公共教育、維護 Python 版本的 zkEVM 規範等。

除了上述方面的社羣化運作,Scroll 還強調了更多方面的去中心化,包括定序器、證明者等等。總體而言,Scroll 更希望成為一個類似於以太坊一樣,雖然有核心開發團隊,但仍然在底層技術和基礎設施層面開放的協議,並最終推動 zkEVM 生態的蓬勃發展以及主網與 zkEVM 的相容,乃至以太坊 Layer 1  本身想要達到的最終目標。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *