作者: Jon Charbonneau
編譯: 0x11, Foresight News
Kelvin 認為「ZK Rollup」 不是真正的ZK Rollup,我認為所有「Rollup」都不是真正的Rollup ,至少現在還不是。那麼問題是,我們如何使它們成為真正的Rollup?
當前的Rollup 大多是需要信任和許可的:
我將概述以下方面的情況:
- 強制交易包含機制:即使Rollup 運營商正在審查用戶,用戶也應該能夠強制包含他們的交易以抵抗審查。
- L2 定序器去中心化和(可選)共識:單排序器、PoA、PoS 領導者選擇、PoS 共識、MEV 拍賣、基於Rollup、效率證明等。
- Shared Sequencer & X-Chain Atomicity:這是真正有趣的全新東西。
- MEV-Aware 設計:我將簡要介紹FCFS 的一些變體。關於加密內存池,可以參考我最近的文章。
本文不討論提高Rollup 安全性的許多其他要求,包括降低升級密鑰的能力,實施穩健且無需許可的證明等。
Rollup 如何工作?
智能合約Rollup (SCR)
首先,簡要回顧一下SCR 的工作原理。今天在以太坊上使用的Rollup 都是SCR。在更高層次上,SCR 基本上只是:
- 輸入的有序數組(在L1 上,因此交易數據必鬚髮佈在數據可用性層上)
- 在它們上面運行的代碼(Rollup 節點軟件)
- 基於輸入的確定性輸出(Rollup 區塊鏈)
更具體地說,傳統的排序器通過將它們的狀態根和調用數據發佈到它們關聯的L1 智能合約來提交Rollup 塊,新塊被添加到Rollup 的頂端。鏈上合約運行Rollup 的輕型客戶端,保存區塊頭哈希。合約在收到有效性證明後或在欺詐證明窗口期結束後被確認結算。如果一個未最終確定的ORU 塊是無效的,可以通過提交一個回滾鏈的欺詐證明來孤立它(以及所有後續區塊)。證明有助於保護跨鏈橋:
交易包提交應該需要某種類型的保證金來防止惡意行為。如果提交了欺詐交易包(例如無效的狀態根),保證金將被燒毀並分配一些給欺證明的挑戰者。
SCR 具有「 合併共識」——一種可在鏈上驗證的共識協議。 Rollup 共識可以完全在L1 智能合約中運行。它不影響主鏈共識機制,也不需要主鏈共識機制的任何支持。
去中心化共識協議通常包含四個主要特徵(請注意,這是一種簡化,不能清楚地說明全部共識協議,例如,無領導協議):
- 區塊有效性函數——狀態轉換函數。區塊有效性在鏈下執行,通過有效性證明或欺詐證明來證明。
- 分叉選擇規則——如何在兩個原本有效的鏈之間進行選擇。 Rollups 旨在通過構造實現分叉自由,因此並不嚴格要求分叉選擇規則。
- 領導者選擇算法——允許誰將新區塊添加到區塊鏈。
- 抗女巫攻擊——PoW、PoS 等
鑑於1 和2 還存在爭議,去中心化排序器的最低要求就是某種形式的抗女巫攻擊+ 領導者選舉。 Fuel Labs 一直在做這方面的工作,他們認為PoS:
- 不應該應用於具備完整共識協議的Rollup(其中驗證器/ 排序器將對區塊進行投票)
- 應該只用於Rollup 中的領導者選擇
為什麼你應該有一個L2 本地共識,這一點也有很好的論據,稍後會詳細介紹。
主權Rollup(SR)
主權Rollup 仍然將交易數據發佈到L1 以獲得數據(DA)可用性和共識,但他們在Rollup 中處理客戶端的「結算」。 DA 層告訴你數據存在,但它們沒有定義Rollup 的規範鏈:
- SCR –「規範」Rollup 鏈由L1 智能合約決定。
- SR – 沒有決定「規範」Rollup 鏈的L1 智能合約。規範的Rollup 鏈可以由Rollup 節點自己決定(檢查L1 DA,然後在本地驗證分叉選擇規則)。
相關說明:有一個有趣的論點,即不存在全球規範鏈(只有橋能決定哪個鏈被認為是規範的)。這裡有一個反駁的觀點,其他關於Rollup 在主權和可組合性之前權衡的Twitter 線程。我鼓勵你篩選這些信息,以及了解最近關於比特幣主權Rollup 的話題。
上面的「規範」框架很容易理解,而且它不是本文的重點,我繼續使用它。有關一般Rollup 架構的更多背景信息,可以參考此處。
去中心化排序器
用戶發起的強制交易包含
智能合約Rollup
如上所述,定序器一般負責批量處理交易並將其發佈到L1 智能合約。不過,用戶也可以自己直接向合約中插入一些交易:
當然這是低效和昂貴的,因此排序器將打包交易並將它們一起提交。這分攤了許多交易的固定成本,並允許更好的數據壓縮:
定序器承諾最終會在L1 上發布這些交易,同時我們可以計算輸出以獲得軟確認:
當排序器將這些事務發佈到L1 時,會進一步鞏固輸出:
通常情況下,用戶在從L1 將資金橋接到L2 時只會自己包含交易。這作為L1 合約的輸入,告訴L2 它可以在L2 上鑄造由L1 上鎖定資產支持的資產。
如果我想把我的錢還給L1,我可以在L2 上銷毀它,然後告訴L1 把我的錢還給我。 L1 不知道L2 發生了什麼,因此需要提交證明以及解鎖我在L1 上資金的請求。
因為我是L2 過來的,所以排序器可以發起這個取款請求,提交給L1。但是,現在你信任L2 排序器的抗審查性(censorship resistance,CR)。你不再擁有與在L1 相同的保證,也許他們不喜歡你,或者排序器關閉,你的資產永遠停留在L2 上。
Rollup 可以通過各種措施在本地增加自己的抗審查。這可能包括擁有一個具有高質押價值的L2 共識集、包含列表的一些變體、添加閾值加密等,以最大限度減少L2 用戶審查的機會。這些都是不錯的做法,但理想情況下,我們還希望L2 用戶擁有與L1 相同的抗審查保證。
如果用戶受到審查,他們需要一些方法來強制退出Rollup 或強制將他們的交易納入L2。這就是為什麼L2 用戶應該保留諸如強制將他們的L2 交易直接包含到L1 合約中的能力。例如,被審查的用戶可能能夠自己直接向L1 提交一個單操作交易包。
如果L2 用戶的唯一選擇是將交易直接強制發送到L1,這並不理想。對於許多低價值用戶來說,這並不友好,尤其是在與L1 交互成本越來越高的情況下。更高級的設計可能能夠解決這個限制,強制在Rollup 之間進行原子交易。 Kalman Lajkó 在這裡進行了一項引人入勝的設計,我強烈推薦閱讀。它希望在具有共享證明者和 DA 層的系統中啟用交叉Rollup 強制交易。
主權Rollup
主權Rollup 的強制包含機制工作方式不同,如前所述,它們執行分叉選擇規則的方式與SCR 不同(Sovereign Labs 在發布的精彩帖子)。
在SCR 中,L1 智能合約執行Rollup 的分叉選擇規則。除了驗證ZK 證明之外,它還檢查該證明是否建立在之前的證明之上(而不是其他分叉),以及它是否處理了在L1 上發送的所有相關強制交易。
SR 可以將其ZK 證明發佈到L1 DA 層,供所有人查看為calldata/blob(即使L1 未驗證它們)。然後,你只需添加一條規則,即新證明只有在先前有效證明的基礎上才有效。這個規則可以在客戶端強制執行,但它會要求用戶掃描鏈的歷史。
calldata 可以綁定回L1 區塊頭,並且可以添加一條聲明說「我已經掃描了DA 層的證明(從區塊X 開始到區塊Y 結束),並且這個證明建立在最近的有效證明之上」。這直接在證明中證明了分叉選擇規則,而不是在客戶端強制執行。
由於你已經在掃描證明,因此你還可以證明你已經掃描了任何強制交易。任何人都可以在需要時將強制交易直接發佈到L1 DA 層。
交易終局性的層級和ZK 快速終局性
以太坊上的鏈上證明驗證通常非常昂貴,因此目前的ZKR(例如StarkEx)往往每隔幾個小時才將STARK 發佈到以太坊。相對於交易數量,證明的增長往往非常緩慢,因此這種批處理可以顯著節省成本。然而,這麼長的最終確定時間帶來的用戶體驗並不理想。
如果Rollup 只在鏈上發布狀態差異(而不是完整的交易數據),那麼即使是完整的節點也無法在沒有證明的情況下確保最終確定性。如果Rollup 的完整交易數據發佈在鏈上,那麼至少任何完整節點都可以與L1 一起完成。
通常,輕節點只會依賴中心化排序器實現軟確認。然而,ZKR 可以在p2p 層中快速生成和分發ZK 證明,供所有輕客戶端實時查看,同時以L1 速度為它們提供最終性。稍後,這些證明可以遞歸地打包發佈到L1。
這就是Sovereign Labs 計劃做的事情,類似地,Scroll 計劃在鏈上發布中間ZK 證明(但不驗證它們),因此輕客戶端可以相當快地同步。通過這兩種方式,Rollup 可以開始以L1 的速度完成終局性,而不是等待以節省Gas 成本。請注意,在這兩種情況下,你只是將最終確定時間降低到絕對最小值(L1 速度)。
任何排序器都不會比L1 更快實現最終確定性。不同的排序器設計可以做的最好的結果是為你提供比L1 更快的預確認,並具有不同級別的確定性(例如,具備去中心化共識集的L2 的預確認比單個可信排序器的更可靠)。
Patrick McCorry 最近還對Rollup 交易最終確定性等級進行了很好的概述。
- 根據誰向你提交(以及Rollup 結構是什麼),交易「最終性」有不同的級別
- 不同的參與者在給定時間對「真相」的認知程度不同(例如,L2 輕客戶端、全節點和L1 智能合約將在不同時間意識到相同的「真相」)
單排序器
當前大多數Rollup 都有一個排序器用於提交交易包。它提高了效率,但也帶來了較弱的實時活性和抗審查性。加上適當的保護措施後,這對於許多用例來說可能是可以接受的:
- 抗審查:如上所述,用戶強制包含交易的機制。
- 活性:如果主排序器出現故障,則可以使用某種熱備份選項(類似地為ZKR 證明者提供備份,而ORU 欺詐證明者應該是無需許可的)。如果備用排序器也出現故障,任何人都應該能夠介入。
例如,備用排序器可以由Rollup 治理機制選出,用戶可以獲得安全性、抗審查性和活性。即使從長遠來看,單個主動排序器也是一個可行的選擇。
Base 可能是一個新趨勢的開始。公司現在可以管理和優化他們的產品,就像他們對企業區塊鏈的胡說八道感到興奮一樣,但它現在實際上可以成為一個無需許可、安全和可互操作的鏈。
Base 最終打算將他們的排序器集去中心化,但重點是他們並不嚴格需要這樣做(或者他們可以在非常有限的範圍內,例如小型排序器集)。要明確的是,這需要Rollup 來實施必要的步驟,來確保它實際上是安全的,並維護抗審查性(刪除任意即時升級、實施穩健證明、強制交易包含、MEV 拍賣等)。
這將是對中心化/ 託管產品的巨大改進,而不是對最大去中心化產品的替代。 Rollup 只是擴展了設計空間。這也是大多數Rollup 團隊沒有將排序器去中心化作為首要任務的主要原因——其他項目更看重用戶安全、抗審查和減少對Rollup 運營商的信任。
然而,如果用戶/ 其他方需要介入以保持活性和「實時抗審查」(相對於「最終抗審查」,例如強制通過L1 進行交易),這仍然不是理想的選擇。根據強制交易包含機制,低價值用戶介入可能成本高昂或不切實際。對實時抗審查和活性的最大保證有高度偏好的Rollup 將尋求去中心化。運營單個受許可的排序器時也可能存在監管考慮。
權威證明(PoA)
對單個排序器的一個直接改進是允許少數地理分佈式排序器。排序器可以簡單地輪換,他們之間建立聯繫將有助於激勵誠實的行為。
這個概念應該不會太陌生——多重簽名橋通常有少數受信任的公司,或者類似的委員會,比如Arbitrum 的AnyTrust DA 。但重要的是,他們在這裡的權力要小得多(你不依賴Rollup 排序器來保證安全,這與多重簽名跨鏈橋運營商提取鎖定資金的方式不同)。總的來說,與單排序器相比,這種方案的抗審查和活性更好,但仍然不完美。
排序器拍賣又名MEV 拍賣(MEVA)
Rollup 也可以通過智能合約直接運行MEV 拍賣(MEVA) ,而不是根據質押分配排序器權利。任何人都可以競標交易的排序權,拍賣合約將排序權授予出價最高的人。這可以針對每個區塊進行,也可以持續一段較長的時間(例如,競標成為第二天的排序器的權利)。獲勝的排序器仍應提交一筆保證金,以保證如果他們隨後出現故障或作惡,可以實施處罰。
在實踐中,如果拍賣沒有直接納入協議,協議外的MEVA 是最自然的結果。如果根據質押權重確定排序權,就會出現某種形式的MEV-Boost/PBS 式拍賣系統,類似於我們今天在L1 以太坊上看到的。這種情況下,費用/MEV 可能會分配給質押者。如果拍賣被納入協議,那麼費用/MEV 可能會進入某種形式的Rollup DAO 金庫。
領導選舉的無許可PoS
無需許可即可作為排序器加入,但你必須質押代幣(可能是L2 的原生代幣)。質押機制可以通過智能合約或直接在Rollup 中建立在基礎層上。你可以使用此PoS 結合某種形式的鏈上隨機性的方式來進行領導者選擇,這與任何L1 大致相同。你對一個區塊進行排序的概率= 你佔總質押量的比例。可以通過削減等來對錯誤/ 惡意的排序器施加懲罰。
請注意,由於上述原因,這不需要排序器達成共識。 Rollup 使用L1 達成共識,因此不需要本地共識。質押決定哪些排序器可以提議區塊,但是他們不需要對其他排序器提議的區塊進行投票。
也可以授予任意時間長度的排序權。你可能有權對100 個連續的Rollup 塊或1000 個等進行排序。更長的周期可能更高效,並且在給定時間內只需要一個排序器。然而,授予擴大的壟斷權可能有其他外部性。
Dymension
Dymension 是一個實踐這些思路的項目。 Dymension Hub 將是Cosmos 中典型的誠實多數PoS L1。它的L2(「RollApps」)將使用它進行結算和共識,同時依賴Celestia 進行DA(因此這些L2 實際上是「Optimistic Chains」,而不是「Rollup」)。
根據他們的Litepaper ,去中心化RollApp 排序將需要在Dymension Hub 上抵押DYM(Dymension 的原生資產)。然後,領導者的選擇取決於抵押的DYM 的相對數量。這些排序器將從各自的Rollup 中獲得收入(費用和其他MEV),然後將相關的成本支付給Dymension Hub 和Celestia。
這種機制的結果是,這個堆棧中幾乎所有的價值捕獲都直接累積到DYM 代幣中。使用自己的原生代幣進行排序的Rollup(正如StarkNet 打算對STRK 所做的那樣)為他們自己的代幣附加了價值。這個設置啟發了一個問題:以太坊Rollup 是否只能使用ETH 進行排序器選舉?
在我看來,這大大降低了在此類結算層上部署L2 的動機。大多數L2 團隊自然希望他們自己的代幣能夠產生有意義的價值(而不是僅僅用於費用)。
用於領導人選舉和L2 共識的無許可PoS
如果需要,也可以使用L2 質押進行排序器選舉和本地共識。這正是StarkNet(STRK)計劃的代幣模型:
- PoS 排序器領導者選舉:如上所述,需要某種形式的領導者選舉。
- PoS 共識:激勵L2 驗證者在L1 最終確定之前達成臨時L2 共識,提供更強的預確認。這不是一個嚴格的要求,但卻是一個有吸引力的選擇。
此外,STRK 可以以某種形式用於:
- DA 的PoS 共識:激勵提供需要單獨共識的alt-DA。
- 證明:激勵證明者生產STARK。
交易流程如下:
- 排序:排序器對交易進行排序並提交一個區塊
- L2 共識:StarkNet 共識協議簽署提議的區塊
- 證明生產:證明者為共識同意的區塊生成證明
- L1 狀態更新:將證明提交給L1 以進行狀態更新
有關StarkNet 計劃的更多詳細信息,你可以參考以這一篇貼文。
L2 共識,還是只是L1 共識?
L2 可能會也可能不會實現自己的本地共識(即,L2 驗證者在將數據發送到L1 以獲得最終共識之前在其區塊上簽名)。例如,L1 智能合約可以根據其規則了解到:
- 用於領導者選舉和共識的PoS:「我只能接受由L2 共識簽署的區塊。」
- 用於領導者選舉的PoS:「這是被選中的排序器,此時允許提交區塊。」
Rollup 如果沒有本地共識,你需要做的是:
- 使Rollup 區塊提議無需許可。
- 創建一些標準來選擇為給定高度構建的最佳區塊
- 讓節點或結算合約執行分叉選擇規則
- 從L1 繼承共識和最終性
請注意,在任何一種情況下,L2 的價值都可以累積到Rollup 代幣中。即使L2 代幣僅用於某種形式的領導者選擇(而非共識投票),排序權的價值仍會累積到L2 代幣上。
L2 共識的缺點
現在讓我們討論在L1 之前擁有/ 不擁有本地共識的權衡。
Fuel Labs 團隊提出的一個論點認為L2 共識會降低抗審查性。 「這允許大多數驗證者審查新區塊,這意味著可以凍結用戶資金。不需要PoS 來保護Rollup,因為Rollup 是由以太坊保護的。」這是一個爭議地帶。如前所述,即使審查排序器依然可以提供抗審查性(例如,強制交易直接進入L1,或更複雜的設計,例如Kalman Lajkó正在研究的設計)。
另一種說法是,完全達成共識是「低效的」。例如,下面前一種情況似乎更容易:
- 一個時間段內,一個主排序器運行所有東西。
- 一個時間段內,一個主排序器運行所有東西,然後所有其他節點需要投票並同意。
當然,不同的排序器設計和共識機制存在很大差異。
此外,請注意, 如此處和此處所述,一些人對在排序器去中心化中使用PoS 表示擔憂。 L1 與L2 的複雜性可能使處理某些類型的攻擊更具挑戰性。
L2 共識的優勢
排序器的最大目標可能是在L1 的完全安全和保障之前為用戶提供更快的軟確認。查看StarkNet 的機制:
「強大而快速的L2 終局性——StarkNet 狀態只有在交易包被證明為L1 之後才成為最終狀態(可能需要幾個小時)。因此,L2 去中心化協議應該在下一交易包被證明之前就執行順序做出有意義的承諾。」
由多排序器的經濟安全支持的共識有助於在此期間提供更有力的保證:
「Starknet 共識必須是負責任的,因為違反安全和活性的行為會受到懲罰,任何部分參與者(包括惡意的多數)都會受到懲罰。」
Rollup 還可以靈活地在共識機制選項的範圍內嘗試不同的權衡點,因為它們最終總是可以回退到以太坊L1 的安全性和動態可用性。
在L1 排序的Rollups
上面的Rollup 都構建了特定的排序器,以某種形式創建Rollup 區塊。例如,PoS 無需許可即可加入,但在給定slot,只有選出的L2 排序器能夠提交區塊。也有一些相關方案不依賴任何L2 排序器,它們通過L1 本身來進行交易排序。
完全無政府狀態
Vitalik 早在2021 年就提出了這種「 完全無政府狀態」的想法。任何人都可以隨時提交交易包。它滿足了上面討論的去中心化排序器的兩個最低要求:
- 抗女巫攻擊:由L1 提供抗女巫攻擊(即交易費用和區塊大小/gas 限制)。
- 領導者選擇:領導者選擇是事後的。
這已經足夠了,因為L1 已經提供了安全性。如果L2 區塊已發佈到L1,則它們只有在無效或建立在無效區塊上(將被回滾)時才會被孤立。如果它們有效並發佈到L1,則它們具有與L1 本身相同的安全性。
Vitalik 指出了一個重要的問題:效率低下。多個參與者很可能並行提交交易包,但只有一個可以被成功包含。這會浪費大量精力來生成證明和/ 或在發布交易包到鏈上時浪費Gas。
Based Rollup
但是,PBS 現在可以使這種無政府狀態的設計變得可行。它允許更多有規律的排序,每個L1 區塊最多有一個Rollup 區塊,並且沒有浪費Gas(雖然可能浪費了計算資源)。 L1 區塊構建者可以只包含最高價值的Rollup 區塊,並根據搜索者輸入的出價構建區塊,類似於任何L1 區塊。 Z 在默認情況下許可ZK 證明可能是合理的,這樣做可以避免浪費計算。
這是Justin Drake最近提出的「 Based Rollups 」提案背後的核心思想。他使用該術語來指代由L1(「基礎」層)排序交易的Rollup。 L1 提議者只需確保在自己的L1 區塊中包含Rollup 區塊。這個簡單的方案可以立即擁有L1 的活性和去中心化。它們迴避了棘手的問題,例如在L2 排序器審查的情況下解決強制交易包含問題。此外,它們還消除了一些Gas 開銷,因為不需要排序器簽名驗證。
一個有趣的問題是關於這些L2 交易在哪裡進行處理。 L2 客戶端需要將這些交易發送到某個地方,以便L1 搜索者/ 構建者接收它們並創建區塊和數據塊。它們可能會被送到:
L1 Mempool – 它們可以與一些特殊的元數據一起發送,「知情」的搜索者/ 構建者來解釋。但是,這可能會增加L1 內存池的負載。
L2 的p2p Mempools – 這條思路似乎更站得住腳。搜索者/ 構建者除了通常的渠道外,還將開始檢查和解釋這些內容。
這裡的一個明顯缺點是Based Rollup 限制了排序器的靈活性。例如:
減少MEV:Rollups 可以通過FCFS 的變體、加密的內存池等變得有創意。
預確認:L2 用戶喜歡快速的交易「確認」。 Based Rollup 交易「確認」時間最多回落到與L1 持平(12 秒),或者等待更長時間才能發布完整交易包。
有趣的是,這正是早期Rollup 團隊正在做的事情:
Justin 指出,重新質押可能會有所幫助。
這些都是圍繞EigenLayer 的研究領域,至少在他們的白皮書中提到過。目前尚不清楚這種方案能否實際解決問題。為了重新質押以有效改善這些缺點,可能希望所有質押者都選擇運行它。通過讓想要執行此操作的質押者進入一個單獨的共享排序層(稍後會詳細介紹)來模擬這個想法似乎更合乎邏輯。
效率證明(PoE)
去年,Polygon Hermez 提出了一項名為PoE 的提案。這是專門用於L1 排序的ZK Rollup 的另一種變體。這裡的排序器是一個完全開放的角色,任何人都可以提交交易包(即完全無政府狀態)。 PoE 有兩個參與方,過程分為兩步:
排序器
排序器收集L2 用戶交易並通過發送L1 交易(包括所有選定的L2 交易數據)創建交易包。排序器將根據收到的經濟價值提交區塊,或為用戶實現更好的服務(例如,在每個L1 區塊中發布一個交易包,即使這會使L2 交易更昂貴,但用戶想要更快的交易)。
排序器將支付L1 Gas 費以發布交易包,並且協議定義了必須用MATIC 支付的額外費用。一旦發布,獲勝的交易包立即定義鏈的新頂端,任何節點都可以確定性地計算當前狀態。然後需要有效性證明來最終確定輕客戶端的狀態(包括L1 智能合約)。
聚合器
這裡的聚合器是ZK 證明者。同樣,這是一個任何人都可以參與的無需許可的角色。很簡單:
- 帶有交易數據的排序交易包在L1 上按它們在L1 上出現的位置排序。
- PoE 智能合約接受更新有效狀態的第一個有效性證明,包括一個或多個尚未被證明的提議交易包。
聚合器可以進行成本效益分析,以找出發布證明的正確頻率。如果他們贏了,他們將獲得一部分費用,但等待更長時間以發布新證明會將他們的固定驗證成本分攤到更多交易中。如果聚合器延遲發布證明(它不證明新狀態),那麼合約將執行還原操作。證明者浪費了計算資源,但他們會節省大部分的Gas。
費用按如下方式分配:
- 來自L2 交易的費用將由創建有效性證明的聚合器處理和分配。
- 所有的交易費用都會被發送到每個交易包對應的排序器。
- 排序器創建交易包的質押費用將被發送到聚合器,聚合器將此交易包包含在有效性證明中。
純分叉選擇規則
Rollkit SR 具有相似的「純分叉選擇規則」概念, 如此處所述,指的是沒有特權排序器的Rollup。節點遵從DA 層進行排序,並應用「先到先得」的分叉選擇規則。
L1 排序的經濟學
這些L1 排序設計具有重要的經濟影響,因為L2 交易的MEV 現在將在L1 區塊生產者級別捕獲。在「傳統的」L2 排序模型中,L2 交易的MEV 由L2 排序器/ 共識參與者/ 拍賣機制捕獲。在這種情況下,尚不清楚有多少MEV 會洩漏到L1。
這是好事還是壞事,難以說清:
這類方案可能是有意義的,特別是作為一種更簡單的Rollup 引導方法,但很難看到大多數Rollup 將如此多的MEV 放棄給L1。 Rollups 的一大好處確實是經濟收益——一旦DA 開始擴展並且成本下降,他們將只需要向L1 支付很少的費用。較慢的出塊時間和簡單的MEV 方法的缺陷對用戶來說似乎也不是最佳選擇。
激勵ZK 證明
請注意,上述PoE 的競爭可能圍繞最快的聚合器進行。 ZK 證明者市場有兩個經濟問題需要解決:
- 如何激勵證明者創建證明
- 如何使證明提交無需許可,使其成為一個競爭激烈且穩健的市場
讓我們考慮ZK 證明者市場的兩個簡單模型:
富有競爭的市場
一個無需許可的市場中,證明者都爭先恐後地為Rollup 排序器/ 共識產生的區塊創建證明。第一個創建證明的人可以獲得為證明者指定的任何獎勵。該模型可以高效地找到最適合該工作的證明者。
這看起來非常類似於PoW 挖掘。然而,這裡有一個獨特的區別:證明是確定性計算。結果是,與其他證明者相比具有小但一致優勢的證明者幾乎總能獲勝。那麼這個市場就很容易出現中心化。
在PoW 挖礦中,隨機性方面有更好的結果——如果我有1% 的挖礦算力,我應該得到1% 的獎勵。
這種競爭性證明模型在計算冗餘方面也是次優的——許多證明者將競爭並花費資源來創建證明,但只有一個人會獲勝(類似於PoW 挖礦)。
基於回合製的證明
證明者之間可以採取輪換的方式創建證明(例如,根據質押的代幣或聲譽)。這種方式可能更加去中心化,但在證明延遲方面效率較低(在一個證明者能夠更快更有效地創建證明的情況下,另一個「慢」證明者也有機會創建證明)。但是,它可以防止在只有一個證明者能夠創建證明時浪費計算資源。
此外,如果證明人的回合內未能提供證明(無論是惡意的還是無意的),網絡就會遇到問題。如果這些回合很長(例如,給定的證明者獲得幾個小時的壟斷權)並且證明者宕機,協議將很難恢復。如果轉換證明者的時間很短,其他證明者則可以介入。
也可以允許任何人發布證明,但只有指定的證明者才能在給定時間內獲得獎勵。因此,如果當前證明者失敗了,另一個證明者可以發布證明,但他們無法獲得獎勵。這是一種無私行為,花費資源進行計算而沒有任何回報。
Scroll 正在探索更多基於回合製的方法,將執行分配給隨機選擇的「rollers」(證明者):
還有很多有趣的問題,比如在排序時用戶層面的證明應該如何收費。可以在此處找到關於這些主題的更多討論:
- Scroll 的Ye Zhang 在《去中心化ZK Rollup 》一文中討論了這種基於抵押+ 排序MEVA 的回合製網絡的可能性
- 《 Scroll 架構概述》提供了roller 模型的更多詳細信息
- Starknet Decentralized Protocol IV – Proofs in the Protocol
- Starknet Decentralized Protocol VI – The Buffer Problem
共享排序
大多數早期的解決方案都假定每個Rollup 都需要自己弄清楚如何去中心化他們的排序器。正如我們在L1 排序方案中看到的那樣,但事實並非如此。許多Rollup 可以選擇一個共享排序器(SS)。這樣做的好處是:
- 省力:無需再擔心序器的去中心化問題,無需招募和管理驗證者。這是一種非常「模塊化」的方法——將交易排序剝離。 SS 從字面上看是一家SaaS 公司(排序器即服務)。
- 結合安全和去中心化:讓一個排序層建立強大的經濟安全(更強的預確認)和實時CR,而不是為每個單獨的Rollup 創建多個小型委員會。
- 快速交易:其他單個Rollup 排序器也可以做到這一點,但請注意,你仍然可以在這裡獲得那些超快的預確認。
- 跨鏈原子性——在鏈A 和鏈B 上同時執行交易。 (這個很複雜,所以我稍後會更深入講解)。
如前所述,簡單地使用原生L1 作為L2 的排序器從根本上有幾個缺點:
- 仍然受限於L1 的數據和交易排序吞吐量
- 失去為L2 用戶提供低於L1 區塊時間的快速交易的能力
L1 排序可以做的最好的事情是消除L1 的計算瓶頸(如果交易執行是吞吐量的瓶頸)並實現通信複雜性的改進。
那麼,我們能否設計專門且更高效的SS,而不是讓L1 來做……
Metro – Astria 的共享排序器
Metro 是SS 層的一個方案。你可以參考Evan Forbes 的研究帖子、 Modular Insights talk和Shared Security Summit talk了解更多詳情。由Josh Bowen 領導的Astria 團隊正在致力於實現Metro 方案。
執行與排序分離
當前的Rollup 節點實際上處理三件事:
這裡的關鍵是執行和排序的分離。而共享排序可以做到:
- 為許多選擇將其作為排序層的鏈排序交易
- 不執行(或證明)這些交易和生成結果狀態
排序是無狀態的。 SS 節點不再需要存儲所有不同Rollup 的完整狀態,他們刪除了執行計算,傳統排序器面臨的巨大瓶頸在這裡消失了。
當從共識中剝離執行時,效率會變得非常高。如果節點所要做的只是生成有序的交易塊並就該塊達成一致而不執行所有事情,那麼它們的效率會非常高。執行和證明可以在事後由不同的各方完成。
兼具排序器安全和去中心化
SS 節點可以保持相對輕量級,甚至可以水平擴展(通過選擇共識節點的隨機子集來對不同的交易子集進行排序)。排序層比傳統排序器更加去中心化,傳統的排序器需要掌握鏈的複雜狀態並負責執行。
此外,通過跨多個鏈匯集資源,無需在多個Rollup 中分割PoS 共識,而是將它們全部聚合在一個地方。與許多實現自己的排序器集的Rollup 相比,這種方案可能會產生更去中心化的排序器集,且不需要大量的質押資產。這很重要,因為:
- 排序:為Rollup 用戶提供實時抗審查(CR)和活性的第一道線。
- 執行和證明:可以在沒有強烈的去中心化需求的情況下在事後完成。
一旦同意交易排序,執行(和證明)可以在事後推遲到一個完全不同的鏈:
- 軟共識和排序:共享排序器為用戶提供快速預確認
- 共識&數據可用性:交易數據已在DA 層最終確定,供所有人查看
- 惰性執行和證明:任何人都可以在事後執行和證明交易
後續的執行層不需要去中心化,因為這不是CR 的來源。單排序器不是CR 的理想選擇,但這並不是因為它們作為執行者的角色,而是因為他們排序並包括交易。在這裡,SS 已經提供了有序的交易輸入,因此也就是CR。之後對狀態承諾的計算和比較就不需要去中心化了。
軟執行
用戶喜歡快速的軟執行:
這需要某種形式的共識(或中心化排序器)來提供出色的用戶體驗:
如果你只是依賴像Celestia 這樣的基礎層的共識,就不能提供這些圍繞排序和包容性的軟性承諾。如果SS 有一個具質押了高價值資產的去中心化委員會,它可以在快速區塊(低於L1 區塊時間)上提供相當強大的承諾。
因此,只要SS 創建一個區塊,用戶就可以得到軟確認。這種確認的強度取決於SS 的構建(權力下放、經濟安全、分叉選擇規則等)。一旦數據實際發佈到基礎層,你就可以將這些交易視為真正的最終交易。然後可以生成並提交狀態根和相關證明的最終計算。
Lazy Rollup
「Lazy Rollup」非常簡單。他們等到交易全部被排序並發佈到DA 層,然後他們下載這些交易,可選地應用分叉選擇規則來選擇交易的子集,執行交易處理,並確定交易狀態。然後可以生成區塊頭。
請注意,由於SS 無法以需要訪問完整狀態的方式生成區塊,因此它們不會檢查無效的狀態轉換。因此,使用SS 的「Lazy Rollup」狀態機必須能夠處理無效交易。當節點執行有序交易以計算結果狀態時,節點可以簡單地刪除無效/ 恢復交易。立即執行的傳統Rollup 沒有此限制。
在將交易包含在鏈上之前需要狀態訪問才能處理交易的Rollup 在這裡行不通。例如,如果Rollup 有一個區塊有效性規則,區塊包含的所有交易都是不會失敗的有效交易。如果Rollup 需要交易鍛而不是狀態訪問,那麼可以專門為這種類型的Rollup 創建一個特殊的SS(例如,類似於Fuel v2 或帶有私有內存池的Rollup)。
支付Gas
為了讓SS 運行,必須有某種機制讓用戶為他們的交易付費。你可以簡單地使用大多數Rollup 交易類型中已經包含的現有簽名和地址來支付SS 層上的Gas。或者,付款可能涉及SS 上的一些包裝交易,任何人都可以為包含的任意數據付費。這是一個開放的設計空間。
分叉選擇規則
Rollup 能夠繼承他們正在使用的SS 的分叉選擇規則。然後,Rollup 的全節點實際上是SS 的輕客戶端,檢查一些提交以指示哪個Rollup 區塊在指定高度是正確的。
但是,繼承SS 的分叉選擇規則是可選的——你可以簡單地要求Rollup 處理(不一定執行)它發佈到基礎層的所有事務數據。它會有效地繼承基礎層的CR 和活性,但是你會犧牲很多用戶喜歡的SS 特性。
MEV
假設一個Rollup 想要繼承其SS 的分叉選擇規則並獲得快速的軟執行,SS 自然會在MEV 方面處於非常核心的位置。它決定Rollup 的交易包含和排序。
然而,Rollup 不一定必須執行SS 提供的交易,或者按照提供的順序執行交易。你可以在技術上允許自己的Rollup 進行第二輪處理,以在執行後重新排序SS 發布的交易。但是,如上所述,這會失去使用SS 的大部分優點。
即使在這種情況下,SS 層也可能仍然存在MEV,因為它有權包含交易。如果你真的想要,你甚至可以允許你的Rollup 在第二輪處理中排除某些交易,但這會變得混亂,減少CR,並且失去大部分SS 的好處。
換出共享排序器
區塊鏈中難以分叉的是任何形式的有價值的共享狀態。看看ETH 與ETC 或類似的ETH 與ETH POW ,社會共識決定了「真正的以太坊」是什麼。我們都同意的「真實」狀態是有價值的。
然而,SS 實際上只是一個服務提供者——它們沒有與之關聯的有價值的狀態。使用給定SS 的Rollup 保留了分叉它的能力,以支持一些其他排序機制,只需要一個小的硬分叉(例如,如果SS 提取了太多價值)。
更具挑戰性的是網絡效應。如果許多Rollups 都開始使用SS 並且它們獲得了巨大的網絡效應,那麼分離可能會很痛苦,除非其他Rollups 也願意遷移。
Espresso 排序器(ESQ):由EigenLayer 保障
EigenLayer白皮書提到去中心化SS 是重新質押的潛在用例之一。這個SS 可以由ETH 重新質押保護,它將處理許多不同L2 的交易排序。
Well Espresso 剛剛在他們的共享排序器計劃中公佈了這一點。它可以利用EigenLayer 重新質押來確保其共識。為了提供一個漂亮的可視化效果,今天Rollup 是這個樣子的:
這就是他們使用Espresso 等SS 時的樣子:
Espresso 排序器(ESQ) 總體上與Metro 的思路非常相似。它們按照相同的核心原則工作——將交易執行從排序中剝離出來。除此之外,ESQ 還將為交易提供數據可用性。
HotShot 共識和Espresso DA(數據可用性)
作為背景,以太坊目前使用Gasper 達成共識(Casper FFG 作為最終工具+ LMD GHOST 作為其分叉選擇規則)。這里相關的TLDR 是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。
再仔細看看DA。在樂觀情況下,高帶寬節點將使數據對所有其他節點可用,並且每個單獨區塊的可用性也由隨機選出的小型委員會提供支持。鑑於小型委員會面臨DDoS 和賄賂攻擊的風險,只要有足夠比例的節點不妥協,可驗證信息傳播( VID) 就可以提供可靠(但較慢)的備份路徑來保證DA。
這個系統是為擴展性而構建的,因此ESQ 希望為L2 提供更便宜的DA。他們仍然會將他們的證明和狀態更新結算到L1 以太坊,但請注意,這將使默認情況下使用ESQ 的鏈不再是完整的「Rollups」(以太坊L1 不保證他們的DA )。它比數據可用性委員會(DAC) 的簡單實現更強大,但它的保證比真正的Rollup 更弱。
交易流程
- 排序器合約:HotShot 直接與其L1 排序器合約交互。它驗證了HotShot 共識,並為其他參與者提供了一個界面來查看已排序的區塊。該合約存儲了區塊提交的附加日誌,不是完整的區塊,任何人都可以根據提交的信息驗證區塊。
- L2 合約:每個使用ESQ 的L2 仍然有自己的以太坊L1 Rollup 合約。為了驗證發送到每個Rollup 的狀態更新(通過有效性/ 欺詐證明),每個Rollup 合約必須能夠訪問導致聲明的狀態更新的經過認證的區塊序列。它們與排序器合約交互以查詢這些。
轉發給SS 的交易將被排序,然後在L1 上最終確定之前發回Rollup 的執行者和證明者。 SS 還將提交給區塊信息連同用於驗證該塊的仲裁證書一起發送到其L1 排序器合約。這允許L1 Rollup 合約將Rollup 狀態更新證明與被證明為共識輸出的區塊提交的信息進行比較。
交易流程的完整視圖:
跨鏈原子性
正如Espresso 帖子中所述,SS 可以提供一些關於跨鏈原子性的令人興奮的用例:
跨多個Rollup 共享的排序層有望使跨鏈消息傳遞和橋接更便宜、更快、更安全。消除為另一個鏈的排序器構建輕客戶端的需要,節約了成本。通過消除給定Rollup 與其他Rollup 的共識保持實時獨立的需求,交叉Rollup 橋接也可以進一步節省成本。共享排序器還為橋接提供了安全優勢:共享排序器可以保證當且僅當事務在另一個Rollup 中完成時,它才能在一個Rollup 中完成。
此外,共享排序器增強了用戶表達跨不同Rollup 的事務之間的原子依賴性的能力。按照慣例,Alice 將獨立於Bob 的Rollup-B 交易t' 簽署和發布她的Rollup-A 交易t'。在這種情況下,Alice 的交易可能會在Bob 的交易之前很久就被排序,從而給Bob 留下一個長期的選擇來中止。這種可選性不平衡通過共享排序器得到緩解,Alice 和Bob 可以將兩個交易作為一個簽名包一起提交(即,排序器必須將這兩個交易視為一個交易)。
這對跨鏈MEV 產生了影響,因為鏈上活動最終會增長。典型的例子是「原子套利」。同一種資產在兩個不同的鏈上以兩種不同的價格進行交易。搜索者希望在沒有風險的情況下同時執行兩筆交易來實現套利。例如:
- Trade 1 (T1 ) – 在Rollup 1 (R1 ) 上以低價購買ETH
- Trade 2 (T2 ) – 在Rollup 2 (R2 ) 上以高價賣出ETH
對於原子套利,要么兩筆交易都被成交,要么都沒有成交。如果兩個Rollup 都選擇了同一個SS,那麼它可以為搜索者實現這種原子套利。這裡的SS 可以保證:
- T1 包含在R1 的指令流中,當且僅當:
- T2 也包含在到R2 的指令流中
假設Rollup 虛擬機按順序執行各自流中的所有事務(即,不存在無效指令,只是一些指令可以拋出錯誤而不影響狀態),那麼我們還可以保證:
- T1 在R1 上執行,當且僅當:
- T2 也在R2 上執行
但是,這仍然不是你在共享狀態機(例如,完全在以太坊L1 上)上進行交易時的保證。如前所述,SS 不持有這些Rollup 的狀態,它們不執行交易。你不能完全保證其中一項交易(在R 1 或R 2 上)不會在執行時恢復。
直接在這個基礎上構建更高級的原語是有問題的。例如,如果你嘗試在此SS 之上構建一個即時銷毀和鑄造的跨鏈橋接,它會在完全相同的區塊高度同時執行以下操作:
- 銷毀R1 上的輸入
- 在R2 上生成輸出
你可能會遇到以下情況:
- R1 上的銷毀可能會拋出意外錯誤,但
- R2 上的輸出不會因任何原因而失效,因此它會完全執行。
這將是一個大問題。
在某些情況下,只要這兩個事務都包含在輸入流中並被執行,你就可以確定這兩個事務的預期結果,但通常情況並非如此。
- 保證:T1 和T2 將包含在它們各自的流中,並且(可能)都將執行。
- 不保證:成功執行交易和由此產生的期望狀態。
這些「保證」可能足以滿足原子套利之類的需求,其中搜索者已經擁有在每條鏈上執行這些交易所需的資產,但這顯然不是共享狀態機的同步可組合性。對於像跨鏈閃電貸這樣的東西,它本身並不能提供足夠的保證。
與其他跨鏈消息傳遞協議結合使用時,可能仍然有用。讓我們看看與交叉Rollup 消息傳遞協議一起使用時如何促進NFT 跨鏈原子交換:
- T1 在R 1 上將ETH 從U1(用戶1)轉移到SC1(智能合約1)
- T2 在R2 上將NFT 從U2(用戶2)轉移到SC2(智能合約2)
- SC1 當且僅當它收到來自SC2 的確認NFT 已存入的消息時,才允許U2 提取ETH
- SC2 當且僅當它收到來自SC1 的確認ETH 已存入的消息時,才允許U1 提取NFT
- 兩個智能合約都實現了一個時間鎖,這樣如果任何一方失敗,雙方都可以收回他們的資產
此處的SS 允許兩個用戶在步驟1 中以原子方式提交。然後,你使用某種形式的跨鏈消息傳遞來驗證彼此的結果狀態並解鎖資產以執行交換。
如果沒有SS 以原子方式進行,兩方可以就價格達成一致。但隨後U1 可以提交交易,然後U2 可以等待並決定是否要中止交易。有了SS,他們就會被鎖定在交易中。
這幾乎是SS 跨鏈原子性用例的邊緣。總結:
- 此處提供的保證的精確強度和實用性仍未得到證實
- 這對於跨鏈原子套利可能非常有用,同樣可能對其他應用程序有用,例如跨鏈交換和NFT 交易
- 提供額外的加密經濟擔保(例如,提供債券作為抵押品)來承保某些類型的跨鏈交易可能會有所幫助
- 但是,你永遠無法無條件地保證交易結果(你可以通過在共享狀態機上以原子方式一起執行交易來獲得)
關於跨鏈原子性的其他有趣主題,我建議查看:
- Optimism's Superchain – 探索了SS 在OP 鏈中的使用。
- Anoma – Heterogeneous Paxos和Typhon是非常不同的方法。
- 前面提到的Kalman 的Cross Rollup Forced Transactions 。
共享排序器總結
總而言之,SS 的基本思想是:
顯然這幅圖並不科學,一切都是高度主觀的,並且非常依賴於確切的構造。 TLDR 如下:
- 中心化排序器– 如果你完全控制系統,通常很容易實現你想要的任何功能。然而,預確認能力有次優的保證,強制退出可能是不可取的,活性是次優的等。
- 去中心化的L2 排序器:具有分佈式質押排序器的Rollup 相對於只有單個排序器的Rollup 更具穩健性。但是,不同設計方案在諸如延遲之類的事情上需要進行權衡(例如,如果許多L2 節點現在需要在確認Rollup 區塊之前進行投票)。
- 在L1 排序:最大程度保證去中心化、抗審查和活性等。但是,它缺乏快速預確認、數據吞吐量限制等功能。
- 共享排序器:擁有去中心化排序器的功能,不需要引導你自己的排序器集。然而,與L1 排序相比,這種方案在L1 最終確定之前的過渡時期有較弱的保證。此外,共享層可以將許多Rollup 的委員會、經濟安全等聚合到一個地方(可能比單個Rollup 都有自己的委員會更強大)。
一旦L1 最終確定,所有Rollup 都會達到100% L1 安全性。在獲得L1 結算的完全安全和保障之前,大多數排序器設計只是試圖提供好用功能,但削弱了在過渡期間的保證。
SUAVE
去中心化構建器與共享排序器
當我們談論這些試圖處理許多其他鏈的交易的共享層時,差異可能會讓人非常困惑。特別是當SUAVE 通常被稱為「排序層」或者其他術語時,例如「用於Rollup 的去中心化區塊構建器」。需要明確的是,SUAVE與上述SS 設計有很大不同。
讓我們觀察一下SUAVE 如何與以太坊交互。 SUAVE 不會以任何方式被嵌入以太坊協議。用戶只需將他們的交易發送到其加密內存池中。 SUAVE 執行者的網絡然後會為以太坊(或類似的任何其他鏈)輸出一個區塊(或部分區塊)。這些區塊將與傳統的集中心化以太坊構建者的區塊競爭。以太坊提議者在它們之間做出選擇。
同樣,SUAVE 不會取代Rollup 選擇區塊的機制。例如,Rollup 可以實現一個PoS 共識集,其運作方式與以太坊L1 的運作方式大致相同。然後,這些排序器/ 驗證器可以選擇SUAVE 為它們生成的區塊。
這與上面描述的SS 非常不同,在SS 中,Rollup 可以完全消除去中心化排序器的需要。他們通過選擇Metro 或ESQ 等來外包排序功能,並且他們可以選擇繼承SS 的分叉選擇規則。 Ethereum、Arbitrum、Optimism 等不會因為選擇SUAVE 交易排序而改變分叉選擇規則。
SUAVE 不關心你的鏈的分叉選擇規則是什麼或者你的區塊是如何選擇的。它可以為任何鏈提供最有利可圖的排序。請注意,與前面描述的SS 節點不同,SUAVE 執行程序通常擁有完全狀態(儘管它們也可能滿足某些不需要狀態的偏好)。他們需要模擬不同交易的結果以創建最佳排序。
為了解差異,讓我們考慮一個用戶想要運行原子跨鏈套利的示例。提交給SUAVE 與提交給SS,他們可以獲得的保證有何區別:
SUAVE + 共享排序器
現在考慮一下,SUAVE 如何與Rollup 排序交互?甚至可能與SS 交互? Espresso 似乎確實相信SUAVE 與ESQ兼容。 ESQ 旨在與私有內存池服務兼容,例如可以充當構建器的SUAVE。它看起來類似於我們在以太坊上使用的PBS,現在:
- 共享提議者= 共享排序器
- 共享構建者= SUAVE
與PBS 一樣,構建者可以獲得提議者(此處為排序器)的盲目提交,以提議給定的區塊。提議者只知道從提議區塊中獲得的總效用(構建者的出價),而不知道內容。
綜上所述,我們再回過頭來看一個想做跨鏈套利的搜索者。 SUAVE 本身可以構建並發送到兩個不同的Rollup:
- Block 1 (B1 ) 其中包括Trade 1 (T1 ) – 在Rollup 1 (R1 ) 上以低價購買ETH
- Block 2 (B2 ) 包括交易2 (T2 ) – 在Rollup 2 (R2 ) 上以高價出售ETH
但很有可能B1 贏得了拍賣而B2 輸了(反之亦然)。如果將這兩個Rollup 選擇到同一個SS 中會發生什麼。
SS 節點不知道交易實際上在做什麼,所以它們需要有人(比如SUAVE,或其他MEV-aware 構建者)為它們構建一個完整的區塊,如果它們想要高效的話。好吧,SUAVE 執行者可以將B1 和B2 都提交給SS,條件是兩個區塊都被填充或殺死(原子地執行或刪除兩者)。
現在你可以在整個過程中獲得非常好的經濟保證:
- SUAVE = 共享構建者= 可以向你保證,如果B1 和B2 都包含並以原子方式執行,會發生什麼狀態。
- SS =共享提議者= 可以向你保證B1 和B2 都包含在內並以原子方式執行。
重新質押Rollup
我最近在Flashbots 論壇上發了一篇關於SUAVE 的潛在經濟安全模型的帖子。簡而言之, 我討論了為什麼從長遠來看,Rollup 對於SUAVE 來說可能是比重新質押更好的選擇。
Hasu 也對重新質押和Rollup 之間的權衡做出了一些非常深思熟慮的回應。以下是他回應的概要:
- Rollup 通過L1 保證安全性/ 抗審查/ 活性,但SUAVE 並沒有像大多數鏈那樣從中受益,因為SUAVE 鏈不適合普通用戶。事實上,Flashbots 正在研究如何主動限制用戶將資金橋接到SUAVE 的需求。理想情況下,鏈只需要搜索者/ 構建者在那裡保留足夠的運營資金。這可能比為用戶存儲大量資金而構建的傳統Rollup 的要求要低得多。此外,與普通用戶相比,在這條鏈的上下文中,通過L1 強制狀態轉換對於搜索者/ 構建者來說可能沒有那麼有價值。
- DA 很昂貴,至少今天是這樣。我們將看到EIP-4844 的影響,以及隨後對DA 需求可能的增長。我會注意到,對於代幣持有者來說,重新質押可能更「昂貴」(即,如果費用收入較低,並且需要對ETH 重新質押者進行通脹激勵以獲得足夠的經濟安全)。一種對用戶來說更貴,而另一種對代幣持有者來說更貴。
- SUAVE 需要將狀態轉換從其他域報告回主鏈(因此可以解鎖對執行者的有條件付款)。關於Rollup 從以太坊L1 和其他Rollup 讀取狀態的能力,它們具有很好的信任最小化屬性。
這裡有一個新想法:兩者都做怎麼樣?這就是重新質押Rollup。
這樣並沒有解決Hasu 提到的所有問題,但它仍然是一個非常有趣的新選擇,尤其是從長遠來看。
Rollup 可以使用這些EigenLayer 重新質押者來實現本地共識,而不僅是提供安全,但是鏈隨後匯總到以太坊(向以太坊發布數據和證明)。
如前所述,Rollup 可以決定實施他們自己的本地共識,以便在真正的L1 最終確定之前為短期預確認和重組阻力提供更有力的保證。好吧,為什麼我們不讓Rollup 共識集成為一組以太坊重新質押者呢?現在你有兩個選擇:
- 在L1 之前實現確定性:高價值、去中心化的重新質押共識提供了強大的短期重組阻力。
- 在L1 之後實現確定性:仍然是Rollup!它將其數據發佈到以太坊,並且可以發布ZK / 欺詐證明。
一旦L1 完成確定性,任何Rollup 都具有相同的安全性。這只是實現自己共識的Rollup 的一種變體。與其像前面描述的那樣在Rollup 上設置自己的驗證器並由自己的原生代幣提供保護,這種方案選擇讓以太坊重新質押者運行共識。
同樣,如果Celestia 採用某種形式的重新質押(目前Celestia 的L1 非常小,沒有智能合約功能),那將會很有趣。我之前曾寫過,對於Celestia 來說,嵌入Rollup 將是一個有趣的方向,而本地重新質押將是另一個令人著迷的工具,允許自由市場決定他們想要加入哪些功能。重新質押還可以幫助Celestia 的安全預算,因為alt-DA 層的價值累積模型仍未得到證實。
其他MEV 因素
最簡單的想法(一般Rollup 所做的)是使用簡單的FCFS 運行單個排序器,排序器按照它們收到的順序提交事務。你可以合理地相信單排序器遵守FCFS 排序,但它仍然會加劇潛在競爭和相關的負外部性,以及其他問題(不要實施PoW 來嘗試修復它)。因此,即使是中心化排序器也需要更有效地應對MEV。
上面的一些解決方案隱含地處理了MEV 的部分問題(例如,舉辦一個完全免費的公開拍賣),但顯然沒有Rollups 想說他們的用戶被夾在中間。所以,我們可能需要發揮創意,結合拍賣的好處和可編程的隱私。
這就是為什麼中心化排序器今天喜歡擁有私有內存池——試圖確保用戶不會被搶跑等。但這並不容易去中心化。如果你向許多排序器開放,你是否相信他們運行自己的私有內存池?即使你這樣做了,如果每個人都有自己的私人內存池並且你需要開始輪換領導者,那也可能產生新的問題。
加密內存池是解決其中許多問題的一個引人入勝的研究領域。我剛剛發布了一篇文章介紹它。在這篇文章中,我簡要概述了FCFS 提案的一些變體。
時間提升
意識到簡單FCFS(先到先得)的局限性和負外部性,Arbitrum 已經開始探索它的新變體。最近,他們提出了時間提升( Time Boost )機制。基礎知識:
- 受信任的中心化排序器繼續為用戶交易運行私有內存池
- 排序器在收到每個交易時加上時間戳
- 默認情況下,交易將在收到後500 毫秒執行
- 用戶可以選擇為他們的交易支付額外的優先權費用,給它一個「時間提升」,將時間戳減少最多500 毫秒
提升由以下公式計算:
F = 交易的優先費
g = 可提升的最大時間(500 毫秒)
c = 待定常數
當前搜索者只能通過盡量減少延遲(打開許多連接、物理上接近、基礎設施投資等)來表達他們對快速包含到Arbitrum 排序器的偏好。 Time Boost 反而會降低投資於上述策略的動機,因為搜索者現在可以通過他們的優先費用出價來表達他們對快速包含交易的偏好。
它比簡單的FCFS 有了明顯的改進,但在我看來仍然有一些缺點:
- 它減少了延遲競賽的動機,但並沒有消除它。最小化延遲將始終允許搜索者出價低於競爭對手,並且圖表的曲率使延遲邊緣對於高價值MEV 機會特別有價值。
- 尚不清楚內存池隱私和時間戳如何在單個排序器之外有效地去中心化。
- 搜索者的出價缺乏表現力。搜索者只能為更快的收錄出價,但他們無法表達更複雜的偏好,就像更靈活的顯式拍賣(例如,今天的以太坊L1)中的情況一樣。
- 相關的是,如果在此級別實施,將無法恢復失敗的競價。
FBA-FCFS
Flashbots 的Xin 去年為Arbitrum 提出了一個替代方案( FBA-FCFS )。這種實現Themis 的頻繁批量拍賣風格的變體。在提案中:
- 節點向領導者報告部分排序,然後領導者將這些聚合成一個無序的批次。在設定的批次時間「公平粒度」(例如500 毫秒)內,假設所有事務都同時發生。
- 領導者然後通過某種形式的拍賣解決批次內的弱排序。
與時間提升提議類似,有一些想法嘗試保證相對較快的交易包含(建議<500 毫秒)並防止通過受信任的節點搶跑。同樣,它允許搜索者通過費用表達他們的偏好,從而減少了延遲競爭的動機)。
在給定批次的末尾,「快速搜索者」存在剩餘的延遲優勢,而其他「慢速搜索者」無法競爭:
這是此類拍賣的一個很好理解的方面。更長的批次時間可能進一步使延遲邊緣相關的時間百分比下降,儘管批次價值可能更高。較長的出塊時間會對MEV 產生其他影響。
延遲邊緣總結:
- 時間提升:較低的延遲總是有利的(較低的延遲= 平均總是可以有較低的出價)。
- FBA-FCFS:較低的延遲有時是有利的(當「慢」和「快」搜索者之間的小差異顯示相關信息時)。
關於延遲時間:
- 時間提升:所有用戶交易在收到時默認延遲500 毫秒。
- FBA-FCFS :批處理時間為500 毫秒,因此可以將這個時間窗口內收到的用戶交易包含在其中。
FBA-FCFS 帶來了更多的可變性(例如,交易可能會根據接收時間滑到下一批),但不支付優先費用的普通用戶交易的收錄時間平均應該更短。時間在Time Boost 模型中被連續處理(沒有區塊的概念),而時間在FBA-FCFS 模型中被離散化。
延遲和去中心化
請閱讀Phil 的這篇文章。
結論
希望現在你對排序器去中心化的路徑和相關障礙有一個不錯的認識。這是Rollup 在未來幾年內成熟所需要應對的眾多挑戰之一。
其他一些有趣的探索領域包括:
- 不同層的交互:隨著排序器去中心化,它們如何與交易供應鏈的不同部分交互?什麼類型的拍賣(例如,SUAVE)應該插入去中心化排序器集(例如,共享排序器)?
- 交易費用機制:多維資源定價與狀態定價
- L2 費用市場:收取「L2 原生」費用(例如,L2 擁堵)和「L1 原生」費用(例如,支付L1 DA)
- ZK 證明者市場:如何正確激勵ZK 證明者的去中心化和無許可市場,這是L2 費用的一個重要子集。
- Rollup 商業模式:Rollup 代幣和構建它們的團隊如何積累價值並實現可持續性。
- 可升級性和治理:去中心化它們並減少信任假設,同時保持靈活性。
- 欺詐和ZK 證明:建立更強大的機制,例如多證明者。
感謝Ben Fisch 、Josh Bowen 、Cem Özer 、Kelvin Fichter 、Zaki Manian 、Hasu 、Robert Miller 、Tarun Chitra 、Sreeram Kannan 以及其他人圍繞該主題的投入和討論。