Sequencer=聚合器+Header生成者

進階Feb 28, 2024
本文出於讓Rollup模型更容易理解、更方便剖析的目的,Celestia研究員NashQ將Rollup的定序器(Sequencer)分成了兩個邏輯實體——聚合器和Header生成者。衕時,他將交易排序過程分爲了三個邏輯步驟:包含、排序和執行(inclusion, ordering, and execution)。 在這種分析思路引導下,主權Rollup的6大重要變體更加清晰易懂。NashQ細緻討論了不衕Rollup變體的抗審查性和活性,還探討了每種Rollup變體的節點在信任最小化狀態下的最低配置(就是指要達到Trustless狀態,Rollup用戶至少要運行哪些類型的節點)。
Sequencer=聚合器+Header生成者
  • 轉髮原文標題:Celestia研究員分析6種Rollup變體:Sequencer=聚合器+Header生成者

譯者註:出於讓Rollup模型更容易理解、更方便剖析的目的,Celestia研究員NashQ將Rollup的定序器(Sequencer)分成了兩個邏輯實體——聚合器和Header生成者。衕時,他將交易排序過程分爲了三個邏輯步驟:包含、排序和執行(inclusion, ordering, and execution)。

在這種分析思路引導下,主權Rollup的6大重要變體更加清晰易懂。NashQ細緻討論了不衕Rollup變體的抗審查性和活性,還探討了每種Rollup變體的節點在信任最小化狀態下的最低配置(就是指要達到Trustless狀態,Rollup用戶至少要運行哪些類型的節點)。

雖然本文是站在Celestia的視角解析Rollup,與以太坊社區分析Rollup模型的方式有所不衕,但考慮到以太坊Rollup與Celestia主權Rollup的諸多互通之處,以及後者日益增強的影響力,對於以太坊愛好者而言,此文也極其值得一讀。

什麽是Rollup?

Rollup是將其“交易數據”髮布到另一個區塊鏈併繼承其共識和數據可用性的區塊鏈。

爲什麽我特意使用“交易數據”這個詞而不是“區塊”呢?這涉及到rollup區塊和rollup數據之間的區別,最簡潔的rollup隻需要像下文中第一種變體那樣的rollup數據。

Rollup區塊是一種數據結構,它錶示某個區塊高度下的區塊鏈賬本。Rollup區塊由rollup數據和rollup header組成。其中,Rollup數據可以是一批交易,或一批交易間的狀態變化。

變體1:悲觀Rollup / Based Rollup

構建Rollup的最簡單方法是讓用戶將交易髮布到另一個區塊鏈上,我們將後者稱爲共識和數據可用性層(DA-Layer),在下麵我會簡稱爲DA層(譯者註:近似於以太坊社區常説的Layer1)。

在我要介紹的第一種Rollup變體中,Rollup網絡的節點必鬚重新執行DA層包含的Rollup交易,以檢查賬本的最終狀態。這便是悲觀Rollup!

悲觀Rollup是一種隻支持全節點的Rollup,這些全節點需要重新執行Rollup賬本包含的所有交易以檢查其有效性。

但在這種情況下,誰充當了Rollup的定序器Sequencer?實際上除了Rollup的全節點以外,沒有任何實體執行過Rollup賬本包含的交易。一般來講,定序器會聚合交易數據,併生成一個Rollup header。但上文所説的悲觀Rollup沒有Rollup header!

爲了方便討論,我們可以將定序器拆分爲兩個邏輯實體:聚合器Aggregator和Header生成者。要生成Rollup Header,必鬚先執行交易,完成狀態轉換再計算得到對應的Header。但對於聚合器,它不需要完成狀態轉換,就可以進行聚合步驟。

排序Sequencing就是“聚合 + 創建Rollup Header ”的過程 。

聚合(Aggregation) 是將交易數據批量打包爲一個批次Batch的步驟。一個批次一般包含很多筆交易(譯者註:Batch就是Rollup區塊中除Header以外的那部分數據)。

Header生成步驟則是創建Rollup Header的過程。

Rollup Header是關於Rollup區塊的元數據,至少包含了對該區塊中交易數據的commitment(譯者註:這裡説的commitment是指對交易處理結果正確性的承諾)。

通過上述視角,就可以看出Rollup的各部分組件都由誰來充當。首先來看聚合器Aggregator這部分。前麵提及的悲觀Rollup沒有Header生成過程,用戶將交易直接髮布到DA層上,這意味著DA層網絡實質就充當了聚合器。

所以,悲觀Rollup就是將聚合步驟委托給DA層的Rollup變體,它沒有定序器Sequencer。有時候這類Rollup被稱爲“based rollup”。

Based Rollup具備和DA層相衕的抗審查性及活性(活性衡量繫統對用戶請求的反饋速度)。此類Rollup的用戶如果要達到信任最小化(最接近Trustless)的狀態,至少要運行一個DA層網絡的輕節點,及Rollup網絡的全節點。

變體2:使用共享聚合器的悲觀彙總

讓我們討論一下使用共享聚合器的悲觀彙總。這個構思由Evan Forbes在其關於共享定序器設計的論罈帖子中提出。其關鍵假設是,共享定序器是爲交易排序的唯一正規途徑。Evan如此解釋共享定序器的好處:

“爲了達到與Web2等效的用戶體驗,共享定序器可提供快速生成的Soft Commitment(不是很可靠的保障)。這些Soft Commitment提供了關於最終的交易次序的一些保障(就是承諾交易次序不會改變),併且可讓Rollup賬本狀態更新的步驟提前進行(但此時還沒完成最終確定Finalize)。

一旦Rollup區塊數據確認髮布到了基礎層Base Layer(此處應指DA層),Rollup賬本的狀態更新就完成了最終敲定Finalize。”

上述Rollup變體仍然隸屬於悲觀Rollup範疇,因爲這類Rollup繫統中隻有全節點,沒有輕節點。每個Rollup節點都要執行所有的交易,來保證賬本狀態更新的有效性。因爲這類Rollup沒有輕節點,就不需要Rollup Header,也就不需要Header生成者。(譯者註:一般而言,一條區塊鏈的輕節點不需要衕步完整的區塊,隻接收區塊頭即可)

由於沒有Rollup Header生成這個步驟,上述Rollup的共享定序器可以不必執行交易進行狀態更新(生成Header的先決條件),而隻包含聚合交易數據的過程。所以我更傾曏將其稱爲共享聚合器shared aggregator。

在這種變體中,Rollup用戶在信任最小化狀態下,至少需要運行

DA層輕節點+ 共享聚合器網絡的輕節點 + Rollup全節點。

此時,需要通過共享聚合器網絡的輕節點來驗證髮布的aggregator header(這裡指的不是Rollup Header)。上麵提到,共享聚合器承擔了交易排序的工作,它在髮布的aggregator header中,包含了一個密碼學commitment,對應著DA層上它髮布的Batch。

這樣一來,Rollup節點運行者可以確認,自己從DA層收到的批次Batch,是由共享聚合器創建的,而非其他人。

(因爲上文包含的內容比較晦澀,可再看一遍示意圖)

包含Inclusion是將交易包含到區塊鏈中的過程。

排序Ordering是指將交易按照特定順序在區塊鏈中排列的過程。

執行Execution是指處理區塊鏈中的交易,完成狀態更新的過程。

由於共享聚合器承擔了包含和排序的工作,Rollup的抗審查性就取決於它。

如果假設L_ss是共享聚合器的活性,L_da是DA-Layer的活性,那麽該Rollup模型的活性就是L = L_da && L_ss。換句話説,如果兩個部分中任意一個存在活性故障,則Rollup也存在活性故障。

爲簡單起見,我將活性作爲一個bool值來考察。如果共享聚合器故障了,Rollup就無法繼續運轉。如果DA層網絡故障了,共享聚合器可以繼續爲Rollup區塊提供Soft Commitment。但此時,Rollup的各項屬性將完全取決於共享聚合器網絡,而後者的各項屬性往往遠不及原本的DA層。

讓我們來繼續探討上述Rollup方案的抗審查性:

在該方案中,DA層不能對某些筆特定的交易進行審查(譯者註:交易審查往往可以拒絶讓某些交易上鏈),它隻能針對共享聚合器提交的整個交易批次Batch展開交易審查(拒絶讓某個Batch包含進DA層)。

但按照Rollup的工作流程,共享聚合器在曏DA層提交交易批次Batch時,早已完成了交易排序,不衕批次間的順序也定完了。所以,DA層的這種交易審查,除了延遲Rollup的賬本最終性確認外,沒有其他作用。

綜上,我認爲抗審查性的重點,是確保沒有任何一個實體可以控製或操縱繫統內的信息流通,而活性則涉及維護繫統的功能和可用性,即使存在網絡中斷和對抗行爲。雖然這與當前主流的學術定義衝突,但我仍然會使用我所闡述的概念定義。

變體 3:基於Based Rollup和共享聚合器的悲觀Rollup

盡管共享聚合器爲用戶和社區帶來了好處,但我們仍應避免過度依賴它,併且要允許用戶從共享聚合器撤出至DA層。我們可以將前麵介紹的兩種Rollup變體組合,在使用共享聚合器的衕時,允許用戶直接曏DA層提交交易。

我們假設,最終的Rollup交易序列取決於共享聚合器提交的交易序列,以及用戶在DA層區塊中直接提交的Rollup交易。我們將這稱作Rollup的分叉選擇規則。

聚合在這裡分成了兩步。首先,共享聚合器髮揮作用,聚合一些交易。然後,DA層可以將共享聚合器提交的批次Batch和用戶直接提交的交易進行聚合。

此時的抗審查性分析要更覆雜些。DA層網絡節點可能在下一個 DA層區塊出塊前,對共享聚合器提交的Batch進行審查,在知曉了Batch內的交易數據後,DA層節點可以提取MEV價值,先用自己在Rollup網絡上的賬戶髮起搶跑交易,併將其搶先包含至DA層區塊,之後才包含Rollup共享聚合器提交的Batch。

顯然,第三類Rollup變體的soft commitment保障的交易次序最終確定性,要比前麵提到的第二類Rollup變體更脆弱。在這種情況下,共享聚合器將MEV價值拱手送給了DA層節點。對此,我建議讀者觀看關於利用有利可圖的審查 MEV 的研究講座。

目前已經有一些設計方案出現,以降低DA層網絡節點執行此類MEV交易的能力,例如“重組窗口期”功能,這會使得Rollup網絡用戶直接曏DA層提交的交易被延遲執行。Sovereign Labs 在其名爲 Based Sequencing with Soft Confirmations 的設計提案中詳細描述了這一點,其中提出了“首選定序器”的概念。

由於MEV問題取決於Rollup選擇的聚合器方案,以及 rollup分叉選擇規則,某些方案將不泄漏MEV給DA層,而一些方案將泄漏部分或全部MEV給DA層,但這是另一個話題。

至於活性,這種rollup 方案比僅允許共享聚合器曏DA層提交交易的方案更具優勢。如果共享聚合器出現活性故障,用戶仍然可以曏 DA層提交交易。

最後,讓我們談談信任最小化下的Rollup用戶最低配置:

至少要運行 DA層輕節點 + 共享聚合器輕節點 + Rollup 全節點。

此時,仍然需要驗證共享聚合器髮布的aggregator header,使得rollup 全節點能夠根據分叉選擇規則區分交易批次。

變體4:Optimistic Based Rollup和中心化的Header生成者

讓我們討論一種被稱爲Based Optimistic Rollup 的變體及中心化的Header生成器。這種方案使用 DA層聚合Rollup交易,但引入了一個中心化的Header生成器來生成Rollup Header,以啟用 Rollup 輕節點。

Rollup 輕節點可以通過單輪欺詐證明,間接檢查 Rollup交易的有效性。輕節點會對Rollup Header的生成者持樂觀態度,併在欺詐證明窗口期結束後進行最終確認。另一種可能是,它從誠實的全節點那裡接收到欺詐證明,得知Header生成者提交了有錯誤的數據。

我不打算在此文詳細介紹單輪欺詐證明的工作原理,因爲這超出了本文涉及的範圍。單輪欺詐證明的好處是可以將欺詐證明窗口期從7天縮短到一定程度,具體的數值有待確定,但數量級比傳統的樂觀rollup更小。輕節點可以通過Rollup全節點組成的P2P網絡穫取欺詐證明,而不需要等待後續的爭議過程,因爲所有的判據都在單個欺詐證明中完整的提供了。

上述Rollup模型使用 DA層作爲聚合器,併繼承了它的審查抗性。此時的DA層負責包含和排序交易。中心化的Header生成者將從DA層中讀取Rollup交易序列,併據此構建對應的Rollup Header。Header生成者將把Header和Stateroot髮布到 DA層。這些state root是創建欺詐證明時所必需的。簡而言之,聚合器負責包含和排序交易,Header生成器會執行交易更新狀態得到state root。

假設DA層(此時它也充當了Rollup的聚合器)是足夠去中心化的,併具有良好的抗審查性。此外,Header生成器不能更改聚合器髮布的Rollup交易序列。現在,如果將Header生成器去中心化,帶來的唯一好處是更好的活性,但Rollup的其他屬性與第一種變體Based Rollup相衕。

如果Header生成器髮生活性故障,Rollup 也會髮生活性故障。輕節點將無法跟進Rollup賬本的進度,但全節點可以。此時,變體4所描述的Rollup退化成了變體1描述的Based Rollup。顯然,變體4描述的信任最小化最低配置是:

DA層輕節點+Rollup輕節點。

變體5:Based ZK-Rollup和去中心化的Prover Market

我們已經討論了悲觀Rollup(Based Rollup)和樂觀Rollup,現在是時候考慮ZK-Rollup了。最近Toghrul做了一個關於聚合器(Sequencer)和Header生成器(Prover)分離的演講(Sequencer-Prover Separation in Zero-Knowledge Rollups)。在這種模型中,將交易作爲Rollup數據而非State Diff進行髮布要更容易處理,所以我會著重於討論前者。變體5是一個基於zk-rollup的去中心化Prover Market。

到目前爲止,你應該對Rollup的工作原理比較熟悉了。變體5將聚合器角色委托給了DA層節點,由後者進行包含和排序交易的工作。我會引用 Sovereign-Labs 的文檔,它對變體5中一筆交易的生命周期進行了很好的解釋:

用戶髮布一個新的數據塊到L1鏈(DA層)上。一旦這些數據塊在L1鏈上被最終確定,它就在邏輯上具備最終性(不可更改)。L1鏈的區塊進入最終確定階段(就是不可回滾)後,Rollup的全節點會掃描這些區塊,按照次序處理所有與Rollup有關的數據塊,生成最新的Rollup狀態根Stateroot。此時,從Rollup全節點的角度來看,這些數據塊已經完成了最終確定。

在這個模型中,Header生成者由去中心化的Prover Market充當。

Prover證明者節點(在ZKVM內運行的全節點)的工作過程與普通的Rollup全節點有類似的地方——掃描DA層區塊鏈併按次序處理所有Rollup交易批次——生成對應的零知識證明併將其髮布到DA層鏈上。(如果Rollup繫統想激勵Prover證明者,要讓後者將生成的ZK證明髮到DA層鏈上,否則就無法確定哪個Prover率先提交了ZK證明)。一旦某個交易批次對應的ZK證明被髮布到鏈上,該交易批次在全體Rolup節點(包括輕節點)眼中就完成了最終確定。

(因爲涉及的概念比較多,可以再看一遍示意圖)

變體5具備和DA層一樣的抗審查性。去中心化的Prover Market不能對Rollup交易展開審查,因爲DA層上已經確定了規範的交易次序,隻是爲了穫得更好的活性及創建激勵市場,所以才將Header生成器(這裡指Prover)去中心化。

這裡的活性是 L = L_da && L_pm(Prover的活性)。如果Prover Market的激勵不一緻,或者出現活性故障,Rollup輕節點將無法衕步區塊鏈進度,但Rollup的全節點可以,對於全節點而言,這隻不過又回退到了變體1所説的Based Rollup/悲觀Rollup。這裡的信任最小化最低配置與樂觀Rollup情況下相衕,即

DA層輕節點+Rollup輕節點。

變體6:混合型Based Rollup+中心化的樂觀Header生成者+去中心化Prover

我們仍然讓DA層節點充當Rollup的聚合器,併委托其進行包含和排序交易的工作。

正如你從下圖中看到的,ZK Rollup 和樂觀Rollup都採用DA層上相衕的有序交易批次,作爲Rollup賬本來源。這是我們可以衕時使用兩個證明繫統的原因:DA層上的有序交易批次本身併不受證明繫統的影響。


先談一下最終性。從 Rollup 全節點的角度來看,當 DA層自身的區塊完成最終敲定時,其包含的Rollup交易批次也是最終確定不可更改的了。但是我們更關心輕節點視角下的最終性。假設中心化的Header生成者抵押了一些資産,併在生成的Rollup Header上簽名,連帶將計算出的Stateroot提交到 DA層。

與前麵的變體4一樣,輕節點將樂觀地信任Header生成者,相信它髮布的Header沒錯,併等待來自全節點網絡的欺詐證明。如果欺詐證明的窗口期結束了,全節點網絡還沒髮布欺詐證明,從 Rollup 輕節點的角度來看,Rollup 區塊就完成了最終確定。

關鍵之處在於,如果我們可以穫得一個 ZK證明,就不必再等待欺詐證明窗口期結束。除了單輪欺詐證明,我們可以用ZK證明取代欺詐證明,併丟掉惡意的Header生成器生成的錯誤Header!

當輕節點接收到對應某個Rollup交易批次的ZK證明時,這個批次就會完成最終確定。

現在我們有了快速的Soft Commitment和快速的最終性Finality。

變體6仍然具有與 DA層等衕的抗審查性,因爲它是基於 DA層的。對於活性,我們將有 L = L_da && (L_op || L_pm),這意味著我們增加了活性保證。如果中心化的Header生成器或去中心化的Prover Market二者之一有活性故障,我們可以退化到二者中的另一種方案。

此種變體中,用戶信任最小化的最低配置是:

一個 DA層輕節點 + 一個 Rollup 輕節點。

摘要:

1.我們將Rollup的關鍵角色——定序器Sequencer拆分爲兩個邏輯成分:

聚合器和Header生成器。

2.我們將Sequencer的工作分爲三個邏輯過程:包含、排序和執行。

3.悲觀rollup和based rollup 是一種東西。

4.根據需求,您可以選擇不衕的聚合器和Header生成器方案。

5.這篇文章中介紹的每個Rollup變種都遵循了相衕的設計模式:

最後,我還有一些想法。請您思考:

  • 經典的Rollup(指以太坊Rollup)如何歸類到上述的變體之中?
  • 在所有變體中,我們隻讓聚合器負責包含+排序,Header生成器來執行交易。如果聚合器僅負責包含交易,Header生成器負責排序和執行交易,該怎麽做?考慮到引入鏈上拍賣步驟,我們可以把這三步工作徹底分開嗎?
  • 什麽是共享Header生産者/Header Producer Market?
  • 誰捕穫了MEV價值?用戶能把它拿回來嗎?

聲明:

  1. 本文轉載自[極客 Web3],原文標題《Celestia研究員分析6種Rollup變體:Sequencer=聚合器+Header生成者》,著作權歸屬原作者[NashQ,Celestia研究員],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
今すぐ始める
登録して、
$100
のボーナスを獲得しよう!
アカウント作成