Scroll主網上線一文了解Scroll架構

來源:Scroll 編譯:金財經xiaozou

編按:以太坊zkEVM L2方案Scroll 2023年10月10日在推特上發布世界語內容「La estonteco estas malfermita」(未來是開放的)。同時區塊鏈顯示器顯示,UTC+8時間2PM左右Scroll產生創世區塊,正式主網上線。

Scroll團隊曾經發文介紹Scroll架構,金色財經xiaozou翻譯以犒讀者。

Scroll是一個用來擴展以太坊的與EVM等效的zkRollup。從技術上講,Scroll基於兩個重要部分建構。核心部分是zkEVM,用來證明L2 EVM執行的正確性。一年多來,我們一直在與以太坊基金會的PSE(隱私和擴展探索)團隊一起公開進行Scroll建造。但是,為了將zkEVM轉變為一個十足的以太坊上的zkRollup,我們還需要圍繞它來建構一個完整的L2架構。

本文,我們將概述Scroll的整體架構。更具體地說,我們將介紹Scroll的初始版本,其由中心化排序節點和去中心化證明網路組成。我們致力於在未來將排序節點集合去中心化,在以後的文章中我們會分享相關設計。

1、Scroll架構

目前的Scroll架構包含三個基礎設施組件(參見圖1):

· Scroll節點:在使用者交易中建構L2塊,再將它們提交到以太坊基礎層,並在L1和L2之間進行訊息傳遞。

· Roller網路:產生zkEVM有效性證明,以證明交易被正確執行。

· Rollup和橋合約:為Scroll交易提供資料可用性,驗證zkEVM有效性證明,並支援使用者在以太坊和Scroll之間轉移資產。

在接下來的內容中,我們將詳細介紹各組件的作用。

rcAIVYtfCauuQwVuGEPr9Jqa8PdMGON5yId1yQuE.png

(1)Scroll節點

Scroll節點是應用程式和使用者與Scroll互動的主要方式。它由三個模組組成:Sequencer(排序器)、Coordinator(協調器)和Relayer(中繼器)。

Sequencer提供了一個JSON-RPC介面並接受L2交易。每隔幾秒鐘,它就會從L2記憶體池中檢索一批交易,並執行這些交易以產生一個新的L2區塊和一個新的狀態根。我們的排序器部署基於的是Go-Ethereum(Geth),這是比較流行的以太坊節點實作方式。透過對Geth進行分叉,我們可以獲得最佳的兼容性,並繼承經受住了時間考驗的安全性。

一旦產生了一個新的區塊,Coordinator就會收到通知,並從Sequencer接收該區塊的執行軌跡。然後,它將執行踪跡分派給從roller池中隨機選擇的Roller,以產生證明。

Relayer監視部署在以太坊和Scroll上的橋樑和rollup合約。它有兩個主要職責。首先,它監視rollup合約,以追蹤L2區塊的狀態,包括它們的資料可用性和有效性證明。其次,它監視部署在以太坊和Scroll上的橋合約中的存取款事件,並將訊息從一方轉發給另一方。

(2)Roller網絡

Roller在網路中扮演prover角色,負責為zkRollup產生有效性證明。 Roller應利用GPU、FPGA和ASIC等加速器來縮短驗證時間、降低驗證成本。圖2顯示了Roller是如何為各區塊產生有效性證明的。這個過程包括以下步驟:

· Roller首先將從Coordinator接收到的執行蹤跡轉換為電路見證。

· 它為各zkEVM電路產生證明。

· 最後,它使用證明聚合將來自多個zkEVM電路的證明組合成單一區塊證明。

aIssqqpyNngtLotVzJnvEDaHXPdK0rrn0Oi2d2G4.png

(3)Rollup和橋合約

Scroll透過Rollup和橋智能合約連接到以太坊基礎層。它們共同確保了L2交易的數據可用性,並讓用戶可以在L1和L2之間傳遞資產和訊息。

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

部署在以太坊和Scroll上的橋合約支援用戶在L1和L2之間傳遞任意訊息。在此訊息傳遞協議之上,我們也建立了一個無需信任的橋接協議,支援用戶雙向橋接ERC-20資產。為了從以太坊向Scroll發送訊息或資金,用戶將調用橋合約上的sendMessage交易。 Relayer將在L1上索引此交易,並將其傳送至Sequencer以包含在L2區塊中。在L2橋合約上將訊息從Scroll發送回以太坊也使用了類似的過程。

2、Scroll zkRollup的工作流程

將這三個架構元件放在一起,我們現在就可以解釋Scroll zkRollup的工作流程了,如下圖所示。

FwvC4SXmXqCBC8zWfkaYP8vn42RE5vak7vil9Yvp.png

Scroll中的L2塊生成,然後提交到以太坊基礎層,並按以下步驟獲得最終確定性:

· Sequencer產生區塊序列。對於第i個區塊,Sequencer產生執行踪跡T並將其發送給Coordinator。同時,它也將交易資料D作為呼叫資料提交給以太坊上的Rollup合約,以獲得資料可用性,並將產生的狀態根和對交易資料的承諾作為狀態提交給Rollup合約。

· Coordinator隨機選擇一個Roller來為各區塊蹤跡產生有效性證明。為了加快證明生成過程,不同區塊的證明可以在不同的Roller上並行生成。

· 在為第i個區塊產生區塊證明P之後,Roller將其發送回Coordinator。每k個區塊後,Coordinator將向另一個Roller分配一個聚合任務,將k個區塊證明聚合為單一聚合證明A。

· 最後,Coordinator將聚合證明A提交給Rollup合約,透過對先前提交給Rollup合約的狀態根和交易資料承諾驗證聚合證明,最終確定i+1到i+k之間的L2區塊。

上圖顯示了Scroll區塊將透過多個步驟在L1上實現最終確定性。每個L2區塊在最終完成前將通過以下三個階段。

· Precommitted(預先提交)階段表示一個區塊已被Sequencer提議並發送給Rollers。雖然預先提交區塊還不是Scroll L2鏈的規範內容,因為它們還沒有發佈在以太坊基礎層上,但信任Sequencer的用戶可以選擇對它們採取預期行動。

· Committed(已提交)階段表示該區塊的交易資料已發佈到以太坊的rollup合約上。這確保了區塊數據是可用的,但不能證明它是以有效的方式執行的。

· Finalized(最終確定)階段表示該區塊中交易的正確執行已通過驗證以太坊鏈上的有效性證明得以證明。最終確定的區塊將被視為Scroll L2鏈的規範組成部分。

將所有這些結合在一起,Scroll就能夠在L2上執行原生EVM字節碼了,同時也繼承了基礎層以太坊的強大安全保障。

Total
0
Shares
Related Posts