風險提示:防範以"虛擬貨幣""區塊鏈"名義進行非法集資的風險。——銀保監會等五部門
資訊
發現
搜索
登錄
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
查看行情
萬字詳談Rollup的去中心化路徑
ECN以太坊中国
特邀专栏作者
2023-04-20 02:37
本文約22202字,閱讀全文需要約32分鐘
“你不是真正的Rollup ”

引介

原文作者:Jon Charbonneau

一級標題

引介

Kelvin 認為ZK-rollup 是假的,但我認為任何"rollup"圖片描述

圖片描述



來源: L2 Beat

在本文中,我會對以下幾個方面進行概述:

  • 強制交易打包機制—— 即便出現rollup 運營者審查用戶的情況,用戶也應該能夠強制打包其交易,以實現抗審查。

  • L2 定序器去中心化和(可選) 本地共識—— 單一型定序器、PoA、PoS 領導者選舉、PoS 共識、MEV 拍賣、基於基礎層的rollup、PoE,等等。

  • 共享定序器和跨鏈原子性—— 這是真正有趣和完全新的東西。

  • MEV 可捕獲設計二級標題

  • 一級標題

二級標題

智能合約Rollup (SCR)

首先,簡單複習一下SCR 的工作原理,這是我們當前在以太坊上常見的rollup。從高層次來說,一個SCR 基本上包括:

1. 一批有序的輸入數組(在L1上,所以交易數據必須在DA 層發布)。

圖片描述

圖片描述

cr: How Rollups *actually* work - Kelvin Fichter

更具體地說,傳統的定序器通過向其在L1 的智能合約發布rollup 區塊的狀態根和calldata(最終以data blob 的形式)來對rollup 區塊生成承諾。新的區塊不斷擴展rollup 對區塊頭。鏈上合約運行一個rollup 的輕客戶端,將其區塊頭的哈希值保存起來。在收到有效性證明後,或在欺詐證明窗口期過後,該智能合約就會敲定結算。如果一個未被敲定的ORU 區塊無效,它(以及所有後續的區塊)會因為欺詐證明對提交而被回滾,最後成為孤塊。證明幫助保護橋接:

交易batch 的提交應該需要應用某種類型的保證金/押金規則,以抑制惡意行為的發生。例如,當一個欺詐性的batch 被提交了(即無效的狀態根),押金將被銷毀,並按某種比例分給欺詐挑戰者。

SCR 具有“合併的共識” - 即可在鏈上驗證的共識協議。 Rollup 協議可以完全在L1 智能合約中運行。它不影響主鏈的任意共識規則,也不需要這些規則的支持。

去中心化共識協議通常包括四個主要特徵(注意,以下是一個非常簡化的版本,並沒有完全列出共識協議的各種類型。比如無領導協議):

1. 區塊有效性函數- 狀態轉換函數。區塊有效性在鏈下執行,然後通過有效性證明或者欺詐證明機制來證明其有效性。

2. 分叉選擇規則- 如何在兩條原本有效的鏈之間選擇。 Rollup 旨在從構造上實現無分叉,所以不嚴格要求有一個複雜的分叉選擇規則。

3. 領導者選舉算法- 選出一位領導者,ta 可以通過添加新區塊以擴展鏈頭,從而使區塊鏈不斷延伸。

4. 抗女巫機制- PoW、PoS 等

可以認為1 和2 已經實現了,那麼對於去中心化一個定序器的最低要求便是某種形式的抗女巫攻擊+ 領導者選舉。 Fuel Labs 一直都是這個陣營的支持者,他們認為PoS:

  • 不應該用於rollup 中的完全共識協議(即rollup 驗證者/定序者將對區塊進行投票)

  • 二級標題

  • 二級標題

主權Rollup (SR)

SR 仍然將交易數據發佈到L1 上用於DA 和共識,但SR 會在rollup 中處理“結算” 客戶端(James Prestwich 說叫“結算層”顯得很蠢,我本來就已經很蠢了,所以無所謂) 。 DA 層告訴你數據是存在的,但是它不會定義rollup 的規範鏈(canonical chain) 是哪一條:

  • 圖片描述

  • 圖片描述

來源: Celestia

二級標題

一級標題

二級標題

用戶發起的強制交易打包

智能合約Rollup

如上所述,定序器通常負責批處理交易並將它們發佈到L1 智能合約。但是,用戶也可以自己直接在合約中插入一些交易:

當然,這是低效且昂貴的,所以定序器將負責批處理交易,並在常規的過程中一起提交這些batch。這將在許多交易中攤銷固定成本,從而實現更好的壓縮:

定序器承諾最終在L1 上發布這些交易,同時我們可以計算輸出,以獲得更軟的預確認(softer pre-confirmation):

當定序器將這些交易發佈到L1 時,輸出被敲定:

通常情況下,用戶只會在從L1 橋接資產到L2 時需要自己提交交易。這被添加為L1 合約的輸入,它告訴L2 可以鑄造由相應L1 鎖定資產支持的資金了。

如果我想把我的錢提回L1,我可以在L2 上銷毀它,並告訴L1 把我的錢還給我。 L1 不知道L2發生了什麼(L1 並沒有執行這些交易),所以需要在請求解鎖我在L1 上的資金的同時提交一份證明。

因為我來自L2,所以定序器可以發起這個提款請求並提交給L1。然而,這樣做的話就說明需要信任L2 定序器的抗審查能力(CR, censorship resistance),也就是說不再獲得L1 的同樣安全保證。也許這些定序器不喜歡你,或者定序器宕機了,所以你只能永遠卡在L2 上了。

圖片描述

圖片描述

來源: Starknet 逃生艙口研究

但是,如果L2 用戶的唯一選擇是將交易直接強制包含到L1 中,這並不理想。這對於許多低價值用戶來說可能是不可行的,特別是當L1 的交互成本越來越高時。更高級的設計可能能夠繞過這個限制,在rollup 之間強制進行原子交易。 Kalman Lajkó 正在研究一個迷人的設計,強烈推薦大家閱讀。它希望在具有共享證明和共享DA 層的系統中啟用跨rollup 強制交易打包。

主權Rollup

強制打包在SR 中的運作不同,因為如前所述,它們執行的分叉選擇規則與SCR 不同(Sovereign Labs 寫了一篇關於這方面的帖子)。

在SCR 中,L1 智能合約執行rollup 的分叉選擇規則。除了驗證ZK 證明之外,它還檢查該證明是否建立在之前的證明(而不是其他的證明分叉) 之上,以及它是否處理了所有在L1 上發送的相關強制打包交易。

SR 可以將它的ZK 證明發佈到L1 DA 層,以calldata/blobs 的形式向所有人公開(即使L1 沒有驗證它們)。然後,只需添加一個規則,即新證明只有建立在前一個有效證明的基礎上才有效。該規則可以在客戶端強制執行,但它隨後會要求用戶掃描鏈的歷史,直至創世區塊或者某個檢查點。

二級標題

二級標題

交易敲定的層級& ZK 用於快速敲定

以太坊上的鏈上證明驗證通常非常昂貴,因此目前的ZKR (如StarkEx) 傾向於每隔幾個小時才向以太坊發布一次STARK。相對於交易的數量,證明的增長往往非常緩慢,因此這樣對交易生成batch 可以有效地節省成本。然而,這麼長的敲定時間並不理想。

如果一個rollup 只是在鏈上發布狀態差異(而不是完整的交易數據),那麼即使是全節點也不能在沒有證明的情況下確保這種最終確定性。如果rollup 的完整交易數據被發佈到鏈上,那麼至少任意全節點都可以與L1 一起敲定交易。

通常情況下,輕節點只依賴於中心化的定序器進行軟確認。然而,ZKR 可以在p2p 層快速生成並分發ZK 證明,以便所有輕客戶端實時查看,並以L1 速度為它們提供最終確定性。稍後,這些證明可以遞歸地批處理並發佈到L1。

這就是Sovereign Labs 計劃要做的,還有其他類似方案,比如Scroll 計劃在鏈上發布中間的ZK 證明(但不驗證它們),因此輕客戶端可以相當快地同步。使用這兩種結構,rollup 可以以L1的速度開始敲定區塊,而不是等待將batch 發送上鍊以節省開銷。但是請注意,在這兩種情況下只是將“硬敲定時間”降低到絕對最小值(L1 速度)。

不同的定序器設計永遠不會比L1 區塊時間更快地敲定。不同的定序器設計所能做的最好的事情就是提供比L1 區塊時間更快的預確認,不同設計提供的確定性水平不同(例如,你可能會相信具有高價值質押的去中心化共識集的L2 的預確認,而不是相信單一型需信任的定序器的預確認)。

Patrick McCorry 最近也對rollup 交易最終確定性的層級進行了很好的概述。現在你可能已經明白了基本的概念:

二級標題

二級標題

單一型定序器

目前,大多數rollup 都有一個需許可的定序器來提交交易batch。這是非常高效的,但實時活性和抗審查能力都較弱。如果有適當的保障措施,這對許多用例來說可能是可以接受的:

  • CR 活性

  • 活性— 如果一些主要的定序器宕機了,所具備的一些熱備份選項(類似ZKR 證明器和ORU 欺詐證明的備份應該是無許可的)。如果備用定序器也宕機了,任何人都可以頂上。

例如,備用定序器可以由rollup 的治理選出。通過這種設置,用戶獲得了安全性、抗審查和活性。即使從長遠來看,單個活躍型的定序器也可能是一個可行的選擇。

Base 很可能是一種趨勢的開始。公司現在可以管理和優化他們的產品,就像他們對企業區塊鏈的炒作一樣,但現在它實際上可以成為一個無需許可的、安全的和可互操作的鏈。

Base 打算最終去中心化他們的定序器集,但關鍵是他們並不嚴格地“需要” 去中心化,而其他方案並不是(或者只需要非常有限範圍內的去中心化,如一個小規模的定序器集)。需要明確的是,這需要rollup 來實現必要的步驟,來確保rollup 是安全的且維護抗審查性(移除任意的即時升級功能、實現健壯的證明、強制交易打包、MEV 拍賣等)。而當前的rollup 並不安全。

二級標題

二級標題

權威證明(PoA)

二級標題

二級標題

圖片描述

圖片描述

二級標題

二級標題

領導者選舉的無需許可PoS

任何人都可以作為定序者無需許可地加入,但前提是必須質押(可能是L2 的原生代幣)。質押機制可以通過智能合約在基礎層建立,也可以直接在rollup 中建立。 Rollup 可以使用這個PoS + 某種形式的鏈上隨機性,以此實現領導者選擇機制(像一些L1 做的那樣)。

任何人獲得區塊排序權的概率= ta 的質押佔總質押的比例。可以通過丟失獎勵、怠工懲罰和罰沒對錯誤/惡意定序器施加懲罰。

請注意,由於上述原因,這不要求定序器達成共識。 Rollup 使用L1 作為共識,因此不需要本地共識(local consensus)。質押權重在輪換機制中起主導作用,決定了哪些定序器可以提議區塊,但他們不需要對其他定序器提議的區塊進行投票。

這可以給任意長度的epoch 授予排序權。某個參與者可能有權為100 個連續的rollup 區塊排序,或者1000 個,等等。更長的周期可能效率更高,並且在給定的時間裡只需要一個定序器。然而,給擴展的壟斷者授權也會帶來其他外部效應。或者,領導者可以像普通L1 那樣交替使用每個區塊。

Dymension

Dymension 就是這樣一個項目。 Dymension Hub 將是Cosmos 中典型的使用誠實大多數PoS 機制的L1。它的L2 (“RollApp”) 將使用它來結算和達成共識,同時依賴Celestia 作為數據可用性存儲(因此這些L2 實際上是“optimistic chain” 而不是“rollup”)。

根據他們的Litepaper,去中心化的RollApp 排序將需要質押DYM (Dymension 的原生資產) 在Dymension Hub 中。領導者選舉由相應的DYM 質押數量決定。這些定序器將從各自的rollup 中獲得收入(費用和其他MEV),然後向Dymension Hub 和Celestia 支付相關的基礎成本。

二級標題

二級標題

領導者選舉& L2 共識的無需許可PoS

如果需要,也可以在L1 敲定之前將L2 質押用在定序器選舉和L2 本地共識上。

  • PoS 定序器領導者選舉— 如上所述,某種形式的領導者選舉是必要的。

  • PoS 共識— 激勵L2 驗證者在交易被L1 敲定之前達成臨時的L2 共識,提供更強的預確認。如上所述,這點不嚴格要求,但它是一個有吸引力的選擇。

此外,STRK 可以以某種形式用於:

  • DA 的PoS 共識證明

  • 證明1. 定序

交易流程如下:

1. 定序— 定序器排序交易並提議一個區塊

2. L2 共識— StarkNet 共識協議對已提議的區塊簽名

3. 證明生成— 證明者為已達成共識的區塊生成證明

4. L1 狀態更新二級標題

二級標題

需要L2 共識嗎, 還是只需要L1 共識?

正如我們所看到的,L2 可能實現也可能不實現它自己的本地共識(即,L2 驗證者在將其區塊發送給L1 以獲得最終共識之前對它們進行簽名)。比方說,L1 智能合約可以基於自己設的規則做不同的反應:

  • 使用領導者選舉和本地共識的PoS— “我只接受L2 共識簽名過的區塊。”

  • 使用領導者選舉的PoS— “目前只有選定的定序器能夠提交區塊。”

如果rollup 沒有本地共識,需要做的就是:

  1. 使rollup 區塊提議過程無需許可。

  2. 創建一些標準,為給定的區塊高度選擇最佳的區塊

  3. 讓節點或結算合約強制執行分叉選擇規則

  4. 繼承L1 的共識和最終確定性

注意,不管是哪種情況,L2 的價值都可以累積到rollup 代幣中。即使L2 代幣只是用於某種形式的領導者選舉(而不是共識投票),排序權產生的價值仍然會累積到L2 代幣中。

L2 共識的缺點(只有領導者選舉)

現在讓我們來討論在L1 敲定之前具有/不具有本地共識之間的權衡。

Fuel Labs 團隊提出的一個論點是,L2 本地共識會降低抗審查能力。 “這使得大多數驗證者可以審查新區塊,這意味著用戶資金可能會被凍結。Rollup 不需要PoS 來守護,因為rollup 是由以太坊保護的。” 這裡是一個有點灰色的區域。如前所述,即使定序器出現審查交易的情況,rollup 仍然可以提供抗審查方案(例如,直接強制交易打包進入L1,或更複雜的設計,如Kalman Lajkó 正在研究的那個)。

。例如:"效率低下"。例如:

  • 一次只有單個定序領導者在單個盒子中運行所有東西,

  • 一次只有單個定序領導者在單個盒子中運行所有東西,然後所有其他節點需要對該提議投票以及達成共識,

前者比後者簡單得多。

當然,這因所選擇的特定的定序器設計和共識機製而有很大不同。

此外,請注意,有些人對在定序器去中心化中使用PoS 提出了擔憂,如這里和這裡。 L1 與L2 的錯綜複雜的關係可能使處理某些類型的攻擊更具挑戰性。

添加L2 共識的優點(加上領導者選舉)

對於定序器來說,最大的目標可能是在L1 提供的完全安全保障之前給用戶提供更快的軟確認。看一下StarkNet 的機制要求:

“強健和快速的L2 最終確定性是StarkNet 的目標。由於只有在交易batch 被L1 證明之後,StarkNet 的狀態才會被敲定(可能需要幾個小時)。因此,在下一個batch 被證明之前,L2 去中心化協議應該就規劃好的交易執行順序做出有意義的承諾。”

添加某種形式的共識(由許多定序者提供的經濟安全支持) 有助於在這期間提供更強的保證(rollup 區塊的預先確認是沒問題的):

二級標題

二級標題

L1 負責排序的Rollup

以上所有方法都賦予了定序器以某種形式創建rollup 區塊的特權。例如,PoS 是無需許可加入的,但給定slot 被選擇的L2 定序者是當時唯一能夠提交區塊的一方。另外,也有一些相關的提議,建議不給任何L2 定序器以特權。這些設計依賴於L1 本身來進行交易排序。

完全“無政府狀態”

Vitalik 早在2021 年就提出了這個“完全無政府狀態”的想法。允許任何人在任何時間提交交易batch。第一筆擴展rollup 的交易會被接受。它滿足了上面討論如何去中心化定序器的兩個最低要求:

  • 抗女巫— 由L1 提供的抗女巫能力(即交易費用和區塊大小/gas 上限)。

  • 領導者選舉— 領導者選舉是隱性且延後的。

這就足夠了,因為L1 已經提供了安全性。如果L2 區塊已經發佈到L1 上,那麼只有當它們是無效的或構建在無效塊之上時(將被回滾),它們才會變成孤塊。如果它們是有效的,並且發佈到L1,那麼它們具有與L1 本身相同的安全保證。

Vitalik 指出這種方案有一個很大的問題是,它的效率會非常低。多個參與者可能並行提交batch,並且只有一個會被成功打包。這在生成證明時浪費了大量的精力,或者說發布交易batch 花費了許多不必要的gas。想要知道你的交易是否會很快被打包,這是非常麻煩的,而且效益很低。

基於基礎鏈的Rollup (Based Rollups)

然而,現在可以通過PBS 使這種無政府狀態的設計可行。它允許更嚴格的排序,每個L1 區塊最多一個rollup 區塊,因而不會浪費gas。 (儘管可能有浪費的計算)。 L1 構建者可以只打包最高價值的rollup 區塊,並根據搜索者的輸入出價構建該區塊,這與任何L1 區塊類似。為了避免計算的浪費,默認情況下也可以合理地使ZK 證明過程需許可(具有相應的機制允許無需許可地回滾)。

這就是Justin Drake 最近提出的“基於基礎鏈的Rollup” 的核心理念。他使用這個術語來指代由L1 (“基礎”層) 主導排序的rollup。 L1 提議者只需確保在他們自己的L1 區塊中納入rollup 區塊(大概是通過構建者)。這是一個簡單的設置,可以立即提供L1 活性和去中心化。他們可以避免一些棘手的問題,比如在L2 定序器正在審查的情況下解決強制打包交易的問題。此外,由於不需要定序器簽名驗證,因此可以減少一些gas 開銷。

L1 交易池

  • L1 交易池— 它們可以與一些特殊的元數據一起發送給“知情的” 搜索者/構建者來解釋它們。但是,這可能會顯著地增加L1 交易池上的負載


  • 為每個L2 提供的新的p2p 交易池— 沿著這個思路的一些解決方案似乎更有說服力。除了他們平常的渠道之外,搜索者/構建者將開始檢查和解釋這些新交易池的交易。

  • 一個明顯的缺點是基於基礎鏈的Rollup 限制了定序器的靈活性。例如:

  • MEV 緩解— Rollup 可以創造性地使用FCFS、加密交易池等各種變體。


  • 預確認— L2 用戶喜歡快速交易“確認”。基於基礎鏈的Rollup 最多會回到L1 區塊時間( 12 秒),或者等待更長的時間來發布完整的交易batch。

有趣的是,這正是早期rollup 團隊正在構建的:

https://twitter.com/DZack 23/status/1635503593070657536? s= 20 

Justin 指出,再質押(restaking) 可能會有所幫助。

https://twitter.com/jon_charb/status/1635898303106756609? s= 20 

這些都是EigenLayer 的研究領域,至少在他們的白皮書中提到過。目前還不清楚這是否是一個切實可行的解決方案。為了通過再質押有效地改善這些缺點,可能會寄望於所有的質押者都選擇運行它。因此,這個想法這樣來實現似乎更合乎邏輯:讓想要這樣做的質押者子集選擇進入一個單獨的共享排序層(稍後會詳細介紹)。

效率證明(Proof of Efficiency, PoE)

定序器

定序器

聚合器

聚合器

聚合器

聚合器在這裡指的是ZK-證明器。同樣,這是一個無需許可的角色,任何人都可以競爭。非常簡單:

  • 攜帶交易數據的已排序的batch 按照它們在L1 上出現的位置在L1 上排序。

  • PoE 智能合約接受更新到了最新有效狀態的第一個有效性證明,這個有效狀態包括一個或多個尚未被驗證的已提議的batch。

聚合器可以自由地運行自己的成本效益分析,以找到發布證明的適當頻率。如果他們贏得了比賽,他們會得到一部分費用,但如果等待更長的時間以發布新的證明,他們的固定驗證成本將攤銷到更多的交易中。如果聚合器晚發布了一個證明(它並沒有證明一個新的狀態),那麼合約將只執行一個複原函數。證明器浪費了計算,但他們會省下大部分gas。

費用的分配方式如下:

  • L2 交易的費用將由創建有效性證明的聚合器處理和分配。

  • 所有交易費用將發送給每個batch 相應的定序器。

  • 定序器為獲取創建單個batch 的權限而存入的費用將被發送到聚合器,聚合器將該batch 包含到有效性證明中。

純分叉選擇規則

Rollkit SR 有一個非常類似的“純分叉選擇規則”概念,如這裡所述,指的是沒有特權定序器的任意rollup。節點聽從DA 層的規則進行排序,並應用“先到先得” 的分叉選擇規則。

L1 排序經濟學

這些L1 排序設計對經濟學有很重要的影響,因為L2 交易產生的MEV 現在將在L1 區塊生產者級別被捕獲。在“傳統的” L2 排序模型中,L2 交易產生的MEV 由L2 定序器/共識參與者/拍賣機制捕獲。目前還不清楚在這種情況下,有多少MEV 會洩漏到基礎層。

對於這是好事還是壞事,很難說:

  • 好處— 這有些像“L1 經濟聯盟” (例如,ETH 可以捕獲更多價值)。

  • 壞處一級標題

一級標題

激勵ZK 生成

作為一個簡短的題外話,請注意,上面在PoE 中描述的競爭市場可能圍繞最快的聚合器形成中心化局面。 ZK 證明者市場大體上有兩個經濟問題需要解決:

  • 如何激勵證明者創建這個證明

  • 二級標題

  • 二級標題

競爭市場

在一個極端,你可以有一個開放的競爭模式。在一個無許可的證明者市場中,所有的證明者都爭先恐後的為rollup 定序器/共識產生的區塊創建一個證明。第一個創建證明的人可以獲得指定給證明者的任何獎勵。在尋找最佳證明者方面,這種模式是非常高效的。

這看起來非常類似於工作量證明挖礦。然而,這裡有一個獨特的區別—— 證明是確定性的計算。因此,一個具有較小但始終如一的優勢的證明者幾乎“總是” 會贏。這個市場很容易形成中心化的局面。

二級標題

二級標題

基於輪換的機制(如質押權重)

或者,可以在證明者之間輪換,讓他們每個人都有機會(例如,基於一些質押,亦或是基於聲譽)。這樣可能更加去中心化,但可能會帶來證明延遲這樣的低效率情況(“慢” 的證明者將有機會創建證明,而另一個證明者可能已經有能力更快更有效地創建證明)。然而,它可以防止許多證明者競相創建一個證明而浪費了計算,畢竟最終只會有一個證明有效。

此外,如果輪到的人不能產生證明(無論是惡意的還是偶然的),就出現問題了。如果輪次的時間很長(例如,當時輪到的證明者可以壟斷好幾個小時的證明生成),並且證明者宕機了,協議將很難恢復。如果輪次時間很短,其他證明者可以介入並趕上主要證明者未能生成證明的地方。

你也可以允許任何人發布證明,但只有指定的證明者才能在給定的時間內獲得獎勵。所以如果這些指定的證明者宕機了,另外的證明者可以發布證明,但他們無法獲得獎勵。這將是無私的,因為花費資源進行計算卻沒有回報。

Scroll 正在探索更多基於輪換的方法,將執行跟踪分配給隨機選擇的“roller” (證明者):

還有許多有趣的問題,即在排序時應如何在用戶層面上收取證明費用。關於這些主題的進一步討論可以在這裡找到:

- Scroll 的Ye Zhang 在他的文章《去中心化的zk-Rollup》 中討論了在不需要L2 共識的情況下,這種基於質押+ MEV 拍賣來獲取排序權的輪換roller 網絡的可能性

- 《Scroll 架構的概覽》提供了一個關於可能的roller 模型的更多細節

共享排序

一級標題

共享排序

躺平

  • 躺平— 不要再擔心如何去中心化你的定序器了,這很難!嵌入這個選項就好了。不需要招募和管理一個額外的驗證者子集。雖然總會遇到很多打著“模塊化”名號的融資宣講稿,這確實是一種非常“模塊化”的方法—— 將交易排序剝離到單獨的一層。 Shared Sequencing (共享排序) 實際上是一個SaaS (排序即服務) 公司。

  • 匯集安全性和去中心化— 讓單個排序層建立強大的經濟安全性(更強的預確認) 和實時抗審查,而不是為每個單獨的rollup 執行許多小委員會。

  • 快速交易確認— 其他單一型rollup 定序器也可以做到這一點,但請注意,共享排序情況下用戶還可以獲得超快的亞L1 區塊時間預確認。

  • 跨鏈原子性— 在鏈A 和鏈b 上同時執行事務(這個很複雜,所以我將在下文更深入地展開)。

  • 簡單地使用本地L1 作為許多L2 的定序器,基本上有幾個缺點:

  • 仍然僅限於L1 的數據和交易排序吞吐量

  • 失去了為L2 用戶提供快於L1 區塊時間的快速交易確認的能力(儘管在最終達成L1 共識之前有較弱的保證)

  • 二級標題

    二級標題

Metro - Astria 的共享定序器

二級標題

將執行與排序分離

當前的Rollup 節點實際上處理了三件事:

這裡的關鍵屬性是“執行和排序分離”。這樣情況下共享定序器:

  • 為那些選擇將其作為排序層的各種鏈的交易排序

  • 不執行(或證明)這些交易但對其生成結果狀態

  • 排序是無狀態的—— 共享定序器節點不再需要為所有不同的rollup 存儲完整的狀態。它們移除了執行計算。傳統定序器目前面臨的巨大瓶頸已經不復存在。

    當把執行從共識中抽離出來時,共識的效率就會變得特別高。這個過程只是被限制在信息廣播層(因此變得很快)。如果節點所要做的只是生成已排序的交易區塊,並在不執行所有操作的情況下就該區塊達成共識,那麼節點可以非常高效。執行和證明可以在排序共識達成後由另一方負責。

匯集定序器安全性和去中心化

共享定序器節點可以保持相對輕量級,甚至可以在水平上進行擴展(通過選擇一個隨機的共識節點子集來排序不同的交易子集)。結果—— 可能會使這個排序層更加去中心化。而傳統的定序器則需要存儲著鏈的大狀態並對其實現完整的執行。

此外,我們將許多鏈上的資源匯集起來—— 不需要在許多rollup 之間分割PoS 共識。把它們都集中在一個地方。與許多自己實現定序者子集的rollup 相比,這種方式可能會產生一個更加去中心化的定序者子集(抗審查),在這個子集上質押了更多可被罰沒的價值(抗重組)。這很重要,因為:

  • 排序—— 是為rollup 用戶提供實時抗審查性和活性的第一道防線。

  • 執行和證明—— 可以在排序完成,沒有強烈的去中心化要求。我們只需要一個誠實方就夠了。

  • 一旦交易排序的共識達成,執行(和證明) 可以延遲到一個完全不同的鏈去進行:

  • 軟共識和排序— 共享定序器為用戶提供快速的預確認

  • 確認的共識和DA — 交易數據已在DA 層上被敲定,供所有人查看

  • 輕鬆執行和證明— 任何人都可以對確認後的交易狀態執行和生成證明

  • 在執行層進行的工作不需要去中心化,因為這不是抗審查的來源。單一型定序器對於抗審查來說並不理想,但這其中不利於抗審查的點與定序器的執行流程無關。它們的審查權來自於它們能夠排序並打包交易的權限。而在執行層,共享定序器已經提供了排序好的交易輸入,因此也提供了抗審查性。那麼之後對狀態承諾的計算和比較就不需要那麼去中心化了。

軟執行

快速軟執行的第一步是用戶喜歡的:

這需要某種形式的共識(或者一個中心化的定序器) 來提供這樣的出色用戶體驗:

如果你只是依賴於像Celestia 這樣的基礎層的共識,你就不能很好地保證這些關於排序和打包的軟承諾。如果共享排序層具有一個質押了大量價值的去中心化委員會,那麼它可以在快速出塊(亞L1 區塊時間) 上提供相當強的承諾。

因此,一旦共享定序器創建一個區塊,用戶就可以得到軟確認。任何人都可以下載已達成共識的交易,並提前地將它們應用到狀態中。這種確認的強度取決於共享定序器的構造(去中心化、經濟安全、分叉選擇規則等)。一旦數據實際發佈到基礎層,就可以將這些交易視為最終被敲定。然後可以生成狀態根和相關證明的最終計算並提交。

懶人Rollup (Lazy Rollups)

“懶人Rollup” 非常簡單。這些rollup 等到它們的交易全部被排序並發佈到DA 層,然後它們就可以下載這些交易,可選地應用一個分叉選擇規則來選擇一個交易子集,執行交易處理,並將這些交易應用到狀態中。然後就可以生成區塊鍊鍊頭並進行廣播。

注意,因為共享定序器不能以一種訪問完整狀態的方式產生區塊,所以它們沒有檢查無效的狀態轉換的功能。因此,使用共享定序器的“lazy rollup” 的狀態機必須能夠處理無效交易。節點在執行已排序的交易以計算結果狀態時,可以簡單地刪除無效的/回滾的交易。實施即時執行的傳統rollup 就沒有這種限制。

如果rollup 要求訪問狀態來壓縮交易,再將它們打包上鍊,在這裡是行不通的。例如,在這裡rollup 有一個區塊有效性規則,其中區塊中包含的所有交易都是有效的。如果rollup 需要壓縮交易,但不需要狀態訪問,那麼可以專門為這種類型的rollup 創建一個特殊的共享定序器(例如,類似Fuel v2 或具有私人交易池的rollup)。

支付gas

要讓這個共享定序器運行,必須有某種機制讓用戶為他們的交易打包到L1 中而付費。可以簡單地使用大多數rollup 交易類型中已經包含的現有簽名和地址來支付共享排序層的gas 費用。這將要求共享定序器了解不同實現所需的最小狀態,例如:解析簽名、nonce,從帳戶中減去氣體,等等實現。或者,支付可以涉及共享定序器上的一些封裝交易,任何人都可以為打包的任意數據付費。這是一個開放的設計空間。

分叉選擇規則

Rollup 能夠繼承它們所使用的共享定序器的分叉選擇規則。然後,rollup 的完整節點實際上是共享定序器的輕客戶端,它們檢查某些承諾,以表明對於給定的區塊高度,哪個rollup 區塊是正確的。

然而,繼承共享定序器的分叉選擇規則是可選的—— 你可以簡單地要求rollup 處理(不一定執行) 提交到基礎層的所有交易數據。它將有效地繼承基礎層的抗審查性和活性,但這將犧牲許多用戶喜愛的共享定序器所擁有的功能。

MEV

假設一個rollup 想要繼承其共享定序器的分叉選擇規則並獲得快速的軟執行,從MEV 方面來說,這個共享定序器自然會處於一個非常中心化的位置。它決定rollup 將遵守怎樣的交易打包和排序。

然而,並不是說rollup 必須執行共享定序器提供的交易,或者按提供的順序執行。從技術上講,你可以允許自己的rollup 運營節點執行第二輪處理,以便在執行之後對共享定序器發布的交易重新排序。然而,如上所述,你將會失去大部分首先使用共享定序器的良好特性,因此這種情況似乎不太可能發生。

即使在這種情況下,共享排序層仍然可能存在MEV,因為它有權打包交易。如果你真的想,你甚至可以允許你的rollup 在第二輪處理中排除某些交易(例如,利用一些有效性條件來排除某些交易類型),但這當然會變得混亂,減少了抗審查性,並再次失去共享定序器的好處。

交換共享定序器

區塊鏈中難以分叉的是任何形式的有價值的共享狀態。看看像ETH vs. ETC 或類似的ETH vs. ETH POW,社會共識決定了什麼是“真正的以太坊”。我們都同意的“真實” 狀態是有價值的。

二級標題

二級標題

Espresso Sequencer,ESQ — 由EigenLayer 提供安全保證

你可能已經看到EigenLayer 白皮書提到去中心化的共享定序器是再質押的潛在消費者之一。這個共享定序器可以由ETH 再質押者保護,並且它可以處理許多不同L2 的交易排序。

好吧,Espresso 剛剛公開宣布他們的共享定序器計劃。它可以利用EigenLayer 再質押者來為其共識提供安全保障。為了更好地可視化,下圖為當前rollup 的樣子:

下圖為rollup 有了像Espresso 這樣的共享定序器之後的樣子:

Espresso Sequencer (ESQ) 與Metro 的總體思路非常相似。它的工作原理是一樣的—— 將交易執行從排序中剝離出來。除此之外,ESQ 還將為交易提供數據可用性。

HotShot 共識& Espresso 數據可用性(DA)

簡單說一下背景,以太坊目前使用Gasper 作為其共識機制(Casper FFG 作為敲定工具+ LMD GHOST 作為分叉選擇規則)。與此相關的“太長不讀” 是:即使在大多數節點可能退出網絡(動態可用性) 的悲觀條件下,Gasper 也能維持網絡活性。它有效地運行兩個協議(Casper FFG 和LMD Ghost),這兩個協議共同維護一個具有敲定前綴的動態可用鏈。但是維持網絡實時活性的同時,Gasper 犧牲了交易的快速最終確定性(在網絡允許的情況下盡可能快地確認交易的能力)。

總的來說,ESQ 包括:

  • HotShot —ESQ 是建立在HotShot 共識協議之上的,它優先考慮快速的最終確定性(樂觀的響應能力) 而不是動態的可用性,不像Gasper。它還能像以太坊一樣,可以將支持的驗證者數量擴展到令人難以置信的水平。

  • Espresso DA — ESQ 還為鏈提供可選的DA 選項。該機制也用於擴大他們的共識。

  • 定序器智能合約— 這個智能合約作為輕客戶端驗證HotShot 共識並記錄檢查點(對已排序交易日誌中的點的承諾)。此外,它還負責管理ESQ 的HotShot PoS 共識的質押者。

  • 網絡層— 使參與HotShot 和Espresso DA 的節點之間能夠進行交易和共識消息的通信。

  • Rollup REST API — L2 rollup 用於與Espresso 定序器集成的API。

交易流程

交易流程

交易流程

  • 定序器合約— HotShot 直接與其L1 定序器合約進行交互。這個合約驗證了HotShot 共識,並為其他參與者提供了一個接口來查看它已排序的區塊。該合約存儲的是一個只能追加的區塊承諾日誌,而不是完整的區塊。然而,任何人都可以根據承諾驗證任何區塊。

  • L2 合約— 每個使用ESQ 的L2 仍然有自己的以太坊L1 rollup 合約。為了驗證發送給每個rollup 的狀態更新(通過有效性/欺詐證明),每個rollup 合約必須能夠訪問已認證的區塊序列,這些排序過的區塊帶來確定的狀態更新。 Rollup 合約與定序器合約連接以查詢這些。

二級標題

二級標題

跨鏈原子性

正如Espresso 文章中提到的,一個共享定序器可以提供一些和跨鏈原子性相關的令人興奮的用例:

“跨多個rollup 的共享排序層有望使跨鏈消息傳遞和橋接更便宜、更快、更安全。無需為另一條鏈的定序器構建輕客戶端是一個免費的好處,沒有成本,這為前期創造了潛在的節省空間。通過移除給定rollup 獨立地同步其他rollup 共識的需要,跨rollup 橋接也可以實現持續的節省。共享定序器還為橋接提供了安全優勢:它可以保證當且僅當(甚至同時) 一筆交易在另一個rollup 中被敲定時,該交易才會在它所在的rollup 中被敲定。

另外,共享定序器增強了用戶在不同rollup 交易之間表達原子依賴關係的能力。通常來說,Alice 會在Bob 的rollup-B 交易t' 之外簽署和發布她的rollup-A 交易t。在這種情況下,Alice 的交易可能會在Bob 的交易之前很長時間被排序,讓Bob 有一個長時間的中止選項(例如,中止交易)。這種可選性失衡可以通過共享定序器來緩解,其中Alice 和Bob 可以將兩個交易作為一個已簽名的捆綁包一起提交(即,定序器必須將這兩個交易視為一個)。 ”

隨著鏈上活動最終開始增長(我希望),這對跨域MEV 有影響。典型的例子是“原子套利”。同樣的資產在兩條不同的鏈上以兩種不同的價格進行交易。搜索者希望通過在沒有執行風險的情況下同時執行兩筆交易來從中套利。例如:

  • 交易1 (T 1) — 在Rollup 1 (R 1) 上低價購買ETH

  • 交易2 (T 2) — 在Rollup 2 (R 2) 上高價出售ETH

要實現原子套利= 要么兩個交易都被填充,要么兩個都沒有被填充。如果兩個rollup 都選擇到相同的共享定序器中,那麼它可以為搜索者實現這種原子套利。在這里共享定序器可以保證:

  • T 1 被包含在到R 1 的指令流中,當且僅當:

  • T 2 也包含在到R 2 的指令流中

假設rollup 虛擬機依次執行各自流中的所有交易(即沒有無效指令,只是一些指令可能會拋出錯誤,但不影響狀態),那麼我們也可以保證:

  • T 1 在R 1 上執行,當且僅當:

  • T 2 也在R 2 上執行

然而,這和在共享狀態機(例如,完全在以太坊L1 上) 上進行交易仍然是不一樣的保證。如前所述,共享定序器不持有這些rollup 的狀態,並且它們不執行交易。因此不能完全保證某個交易(在R 1 或R 2 上) 在執行時不會回滾。

直接在此基礎上構建更高級的原語是有問題的。例如,如果試圖在此共享定序器之上構建一個即時“銷毀-鑄造” 的跨鏈橋接功能,該功能同時在完全相同的區塊高度上執行以下操作:

  • 燒毀R 1 的某個輸入

  • 在R 2 上鑄造一個輸出

你可能會遇到這樣的情況:

  • R 1 上的銷毀行為可能會拋出一個意想不到的錯誤,例如被別的交易執行導致無效,但是

  • R 2 上的鑄造行為不會因為任何原因而無效,所以它會完全執行。

你可以看到這將是一個多麼大的問題。

可能在某些情況下,只要這兩個交易都包含在輸入流中並因而被執行,就可以確定這兩個交易的預期結果,但情況往往不是這樣的。這是一個懸而未決的問題,這個過程可以:

保證— T 1 和T 2 將包含在各自的流中,並且(可能) 兩者都會執行。

不保證— 成功執行兩個交易和由此產生的預期狀態。

這種“保證” 對於原子套利(搜索者已經擁有在每條鏈上執行這些交易所需的資產) 來說可能是足夠的,但它顯然不是共享狀態機的同步可組合性。對於像跨鏈閃電貸這樣的東西來說,這種保證本身是不足夠的。

但是,當與其他跨鏈消息傳遞協議結合使用時,這在其他設置中可能仍然有用。讓我們看看在與跨rollup 消息傳遞協議一起使用時,如何促進跨鏈原子NFT 交換:

- T 1 將ETH 從U 1 (用戶1) 移動到R 1 上的SC 1 (智能合約1)

- T 2 將NFT 從U 2 (用戶2) 移動到R 2 上的SC 2 (智能合約2)

- 當且僅當SC 1 首先收到來自SC 2 確認已存入NFT 的消息時,它才會允許U 2 贖回ETH

- 當且僅當SC 2 首先收到來自SC 1 確認已存入ETH 的消息時,它才會允許U 1 贖回NFT

- 兩個智能合約都實施了一個時間鎖,這樣如果任何一方失敗,各方都可以收回他們的資產

這裡的共享定序器允許兩個用戶在步驟1 中進行原子提交。然後,使用某種形式的跨rollup 消息傳遞機制來驗證彼此的結果狀態,並解鎖資產以執行交換。

如果沒有共享定序器使其以原子的方式進行,雙方可以商定一個價格。但是U 1 可以提交他們的交易,U 2 可以等待並決定他們是否想要中止交易。而有了共享定序器,他們的交易是被鎖定的。

共享定序器實現的跨鏈原子性的內容大概就這麼多。總結:

  • 這裡所提供的保證的確切強度和有用性仍未得到證實

  • 這可能對跨鏈原子套利非常有用,同樣也可能對其他

安全
MEV
分叉
智能合約
PoS
跨鏈
ETH
Celestia
Arbitrum
NFT