目前,彙總主要有兩種類型:
- 基於彙總,Rollup中交易的順序由 L1 決定:Rollup塊是L1 交易,塊的順序與這些交易在 L1 上出現的順序相同。
- 順序彙總(Sequenced Rollup)中,交易順序由鏈下機制決定,例如中心化序列器或BFT共識。Rollup歷史記錄定期提交到L1層,但排序決策顯然由鏈下機制做出。
順序滾動的主要優勢在於其延遲遠低於以太坊 L1 流動性。基於 L2 的滾動的主要優勢在於其能夠與以太坊 L1 流動性實現同步組合。交易可以通過直接包含完整的 L2 區塊,並在其前後執行操作(包括斷言後操作,如果斷言失敗,則會回滾所有內容,包括 L2 區塊),從而能夠同時使用 L1 和 L2 流動性。
本文將論證在一定限制條件下,將兩者結合起來是可行的。
設計
L2 模塊有三種類型:
- 常規序列塊:這些序列塊需要序列器證書(例如,中央服務器簽名、三分之二委員會投票通過等)才能生效,並且它們經常出現。
- 時隙結束的序列塊:這些需要序列器證書,並帶有一條特殊消息,表明只有在當前時隙期間(並且如果 L1 父塊匹配)才能在其上構建基礎塊並將其包含在 L1 中。
- 基於塊:任何人都可以構建和包含它們,但只能構建在以槽位結束的序列塊之上(或者,有可能構建在另一個基於塊之上)。
L2 序列器的任務是進行時序控制。通常情況下,它們會以極低的延遲發佈順序Rollup塊。然後,在接近槽位末尾時,它們會發佈一個槽位結束順序塊——發佈時間足夠早,以便構建者可以創建一個基礎塊並將其包含在內;但又足夠晚,以最大限度地減少延遲較高的時間段。最後,一旦確認 L1 塊已成功發佈,它們就會立即開始為下一個槽位創建順序塊。
如果在給定的槽位中,沒有包含基礎塊(要麼是因為沒有人按時來構建,要麼是因為提議者缺席或有缺陷),則序列器會直接在前一個槽位的槽位結束塊之上構建下一個槽位。
特性
- 這種設計僅兼容那些在 L1 層回滾時也願意回滾的 L2 層。這是因為如果一個基礎塊回滾,任何構建在其上的順序塊也會回滾。即使在理論上理想的 L1 層最終機制下,等待包含該基礎塊的 L1 層完成也會造成過長的延遲。
- 正常情況下,L1區塊發佈前後的延遲應該很短。L2區塊發佈其時隙結束區塊後,構建者立即在其上構建基礎區塊,很快提議者就會生成包含這些基礎區塊的L1區塊,然後驗證者在提議者提出後立即進行驗證,從而為新的序列區塊的到來掃清障礙。
- 請注意,過晚發佈槽位結束區塊並不會造成安全風險:最壞的情況只是沒有人會基於該區塊進行構建。然而,過早發佈下一個槽位的第一個已排序區塊則存在安全風險,因為如果排序者基於一個被重組的區塊進行構建,那麼他們構建的區塊也會被重組。
- 最長的延遲出現在提案人缺席的情況下,因為證明人會等待確認沒有提案人出現,然後才會發佈證明。
- 這種設計無法獲得基於彙總的無需許可的優勢,因為構建一個基於區塊需要來自時隙結束的已排序區塊的序列器證書。要實現無需許可,最簡單的方法是在 L1 層引入強制包含通道。基於區塊的構建者可以負責將所有交易包含在強制包含收件箱中。






