共享排序器正在飛速發展,是時候對它是什么及其存在的原因進行深入分析了。這篇文章分析的對象僅限于 Optimistic Rollup,歡迎 ZK 關注者前來指教。
排序器是什么?
排序器是 Optimistic Rollup 中的半信任化角色。雖然交易可以由主鏈本身進行排序,但這并不經濟,用戶必須單獨提交其 Rollup 交易對應的主鏈交易,并支付主鏈上費用。排序器通過允許 Rollup 交易共享單個主鏈交易來為用戶解決這些問題。
排序器聚合鏈下的多筆用戶交易來補充主鏈的排序,并將它們作為單個交易集合提交到主鏈,交易成本在用戶間分攤。排序器還可以壓縮交易集合,進一步節省主鏈數據可用性成本。與依賴 排序器的用戶相比,自主排序的用戶將為包含在 Rollup 中的交易支付更多費用。
但是,排序器可以對交易集合中的交易排序進行控制。它可以選擇不包含用戶交易,從而迫使用戶自行排序,支付更高的主鏈成本。它還可以通過重新排序和插入提取的方法在交易集合中提取 MEV。它們實際上擁有對 Rollup 的優先寫入權限。值得注意的是,因為排序器可以與合約交互,所以只有絕對可靠的交易才能通過鏈上機制可靠地強制執行,不可靠的交易在強制排序時很可能會失敗。
這使得排序器成為 Rollup 用戶的半信任方。雖然排序器無法阻止用戶訪問 Rollup,但他們可以延遲用戶的訪問,導致用戶承擔額外的費用,并從用戶的交易中提取價值。通過去中心化進一步約束排序器的行為是一個活躍的研究課題。
排序和執行有什么區別?
排序器是主鏈排序的補充,它不計算 Rollup 的狀態,實際上它可能會選擇對無效交易進行排序。Rollup 節點必須解析和清理排序數據,導出 Rollup 的有效歷史記錄,并執行歷史記錄以生成最新狀態。排序器則完全不參與此過程。
不過,正如我的朋友 Fred 不斷提醒我的那樣,一旦交易被排序,結果就是確定的。這意味著所有 Rollup 節點將根據排序器生成的順序達成一致結果。給定已知歷史,Rollup 有一個正確的狀態。一旦節點找到這個狀態,一個或多個提議者會將其提交給主鏈的 Rollup 合約。
Aave V3 MVP版本部署至Scroll主網”的提案已通過溫度檢查投票:6月19日消息,Snapshot投票頁面顯示,AAVE社區以99.97%的支持率通過了“在Scroll主網部署Aave V3最小可行產品(MVP)版本”提案的溫度檢查投票。根據該提案,Scroll主網將于今年8月初上線,并計劃將Aave V3作為其主網上首批DeFi DApp之一。最初部署的版本將支持WETH、USDC和wstETH三種抵押資產和USDC一種可借入資產。
該提案將進入ARFC階段進行進一步討論、風險參數評估網絡分析以及最終定稿提案。如果ARFC階段投票成功,則將提案作為AIP提交以進行投票和鏈上治理批準。[2023/6/19 21:46:57]
理論上,任何節點都可以是提議者,不需要任何權限。提議者將狀態連同保證金一起提交給主鏈。如果欺詐證明結果是狀態無效,保證金就會被沒收。該合約在計時器結束后接受證明,然后其中包含的用戶交易在主鏈上執行。執行節點通過欺詐游戲確保提議者誠實,我們傾向于將執行節點稱為「Rollup 全節點」或「驗證者」。
換句話說,一旦排序被提交到主鏈,狀態就變成最終的和不可變的。提議者計算并報告最終狀態給 Rollup 合約,以維護 Rollup 到主鏈的資產橋的利益。提議者不會創造狀態,他們只是計算并證明它。Rollup 合約不會創建或最終確定 Rollup,它只是從提議者那里獲得 Rollup 狀態。
為什么要將排序和提議分離?
這是一個復雜的問題。從根本上說,將它們分開是因為它們本身是分開的。這聽起來像是同義反復,但似乎每個人都花了很長時間才意識到這一點。我們驀然回首,才發現 Rollup 的思想歷史多年來一直在 Plasma 和狀態通道中曲折發展。在基于比特幣的 proto-Rollup 早期,并沒有排序器,用戶只需將他們的交易發布到主鏈。之后,這種設計消失多年,最終因為 Barry 的工作重新出現。在 Barry 和 Celestia 之間,Rollup 的研究主要集中在 Rollup 橋與主鏈的交互上。在 Sovereign Rollup 出現之前,甚至沒有人意識到我們其實在構建更好的 Mastercoin。
用于帳戶抽象的加密基礎設施Pimlico已上線Scroll:5月23日消息,用于帳戶抽象的加密基礎設施Pimlico已上線基于ZK Rollup的以太坊擴容網絡Scroll,成為Scroll上ERC-4337錢包的首批基礎設施提供商,支持錢包使用ERC-20代幣贊助用戶操作。[2023/5/23 15:20:13]
拋開出處不談,排序器解決了一個特定的問題:用戶交易成本最小化。然而,這個過程中又引入了一個新問題:排序器可以同時對同一交易產生多個排序結果。如果排序完全由主鏈完成,將會有一個單一的規范排序,但用戶交易費用會更昂貴。我們選擇使用排序器來改善 Rollup 中的用戶體驗。
假設存在很多個排序器,因為有多個提議者。排序器們可以提交相互沖突的排序,我們現在需要一種機制來「規范」主鏈上的特定排序批次。當前的 Rollup 通過一個單一的、特定的、已知的、半可信的排序器來實現這一點。選擇單個排序器使我們能夠解決這個問題,直到去中心化排序器到來。因為我們想要多個提議者,但只需要一個 排序器,所以必須將這兩個角色分開。
數據依賴性是另一個重要的原因:提議者需要排序,但是排序器不需要狀態。提議者依賴于排序器工作的輸出,但是排序器不依賴于提議者。因為數據依賴是單向的,所以需要在角色之間劃定界限,并允許參與者專注于單一角色。
為了回答最初的問題,我們將提議者和排序器分開,因為它們本身是分開的。提議者在排序器的下游工作。Rollup 將信任和權威授予了排序器,而提議者只是一個普通工作人員。
排序器、提議者和驗證者現狀
Arbitrum 和 Optimism 是兩種常見的 ORU 方案。我想簡要介紹一下他們中的主要角色,不會涉及到代碼,只是規范和文檔。Optimism 的討論將僅限于(尚未部署的)Bedrock 設計。
Arbitrum
除了批處理和壓縮用戶交易外,Arbitrum 排序器還運行一個完整的節點。交易被直接發送到排序器,它在交易排序時創建一個可信的 WebSocket 提要。Arbitrum 將此提要作為「軟」確認來源。排序器對排序結果作出承諾,用戶通常可以依賴該排序。節點、MEV 搜索者或其他參與者可以使用此提要來預先計算 Rollup 狀態。
Cardano生態項目dcSpark聯創:今年將推出ZK-Rollup L2:金色財經報道,Cardano生態項目dcSpark聯合創始人兼首席技術官Sebastien Guillemot在社交媒體發布2023年計劃,包括推出零知識證明Rollup Layer 2、和Paima Studios合作推出一個Layer2GameFi項目、以及實現EVM側鏈Milkomeda的去中心化等。
據此前報道,EVM側鏈Milkomeda在今年八月交易量突破了750萬筆。dcSpark去年還推出了首版Flint錢包并在Plutus平臺上創建并運行了5個智能合約。[2023/1/2 22:20:49]
排序器會定期將經過排序的壓縮交易發布到主鏈。主鏈最終確定代表 Rollup 的「硬」確認。一旦主鏈確定了排序,它就成為 Arbitrum 鏈上不可更改的部分,其中排序的所有交易都成為最終狀態,結果狀態也成為最終狀態。
自然地,因為排序器設置交易順序,所以它具有優先寫入權限。排序器可以控制排序的內容,從而控制 Rollup 歷史中交易的排序。當然,用戶可以通過主鏈上的 delayed inbox 強制包含交易。搜索者已經竭盡全力將 WebSocket 交易提要的延遲降到最低,因此他們很可能會形成一個強大的 MEV 市場來對 Arbitrum 交易進行排序。
有 13 個經過許可的 Arbitrum 提議者,他們中每一個都在名為「RBlock」的特定承諾中托管了 ETH。用戶可以選擇依賴一定比例的質押來做出關于 Rollup 的最終決定,而無需運行 Rollup 完整節點。雖然 Arbtirum 驗證者可以識別欺詐,但只有提議者可以通過欺詐證明質疑承諾的有效性。實際上,只有提議者可以成為完整的驗證者。
正義,就像一個排序器,是盲目的,它必須帶著劍
V神:Rollup二層網絡尚存在兩大問題,但慢慢會得到改善:2月28日消息,在今晚的社區問答中,關于用戶尚未向rollup二層網絡大規模遷移的問題,以太坊聯合創始人vitalik解釋稱,當前的rollup尚存在兩個問題,一是現在的應用還很簡單,基礎設施生態不多,二是跨rollup交易的問題還沒解決,此外,很多服務還不支持rollup,例如交易所,但這些問題會慢慢得到改善。[2021/2/28 18:01:22]
Optimism
與 Arbitrum 一樣,除了批處理和壓縮用戶交易外,Optimism 排序器也運行一個完整的節點。交易直接發送到排序器,排序器在排序時創建可信的預確認。Optimism 用戶可以使用這些確認作為最終軟確認的來源。排序器對排序作出承諾,用戶通常可以依賴該排序。節點、MEV 搜索者或其他參與者可以使用這些確認來預先計算 Rollup 狀態。
排序器會定期將經過排序的壓縮交易發布到主鏈。主鏈最終確定代表 Rollup 的「硬」確認。一旦主鏈確定了序列,它就成為 Optimism 鏈歷史中不可更改的一部分。其中排序的所有交易都成為最終狀態,結果狀態也成為最終狀態。
自然地,因排序器設置交易順序,所以它具有優先寫入權限。排序器可以控制排序的內容,從而控制 Rollup 歷史中交易的排序。當然,用戶可以通過在主鏈強制包含交易。作為 MEV 拍賣概念的發起者,一個用于排序 Optimism 交易的強大 MEV 市場似乎將要形成。
Optimism 有 1 個經過許可的提議者。該提議者簽署了對主鏈的特定承諾,稱為「狀態輸出」或「L2 輸出根」。用戶在做出關于 Rollup 的最終決定時可以選擇依賴提議者 ,而無需運行 Rollup 全節點。雖然 Optimism 驗證者可以識別欺詐,但只有一個經過許可的挑戰者可以通過簽名來挑戰承諾的有效性。挑戰者可以隨時刪除一個 L2 輸出根,無需欺詐證明。實際上,只有獲得許可的挑戰者才能成為完整的驗證者。
小結
動態 | 路印協議在以太坊主網啟動采用zkRollup對以太坊進行擴容的DEX:路印協議LOOPRING宣布啟動Loopring v3上的首個DEX,同時也是首個采用zkRollup對以太坊主網進行擴容的項目。[2019/12/23]
當前兩個主要的 Rollup 都集中在同一種設計上,它可能會變得非常混亂。他們經常對同一個概念使用不同的名稱,但他們的設計幾乎相同。
共享排序器
在對排序器有了新的理解后,讓我們繼續討論我真正想談的內容:共享排序器。當 Rollup 共享同一個排序器時會發生什么?
不同的 Rollup 是什么意思?
借用 Ben 的定義,我們應該將 Rollup 視為狀態、狀態轉換函數和證明系統。Rollup 有合約和賬戶,它有一個虛擬機來處理交易以更新這些合約和賬戶,而非主權 Rollup 有一個證明系統來運行與主鏈的橋接。每個組件有多種設計,它們可以在一定程度上混合搭配。
但是,有些組件比其他組件更平等。總的來說,我們大概應該把狀態看作是鏈的本質。鏈不傾向于改變它們的狀態。畢竟,以太坊開發者多次更改虛擬機,多次更改共識機制,但只更改過一次狀態。狀態即是 Rollup,虛擬機和證明系統的存在是為了支持它。因此,不同的 Rollup 具有不同的狀態。它們可能共享一個證明系統或一個 STF,但兩個 Rollup 永遠不可能共享相同的狀態。
提取、檢查和過濾
Rollup 從主鏈歷史中獲取它們的狀態。為了做到這一點,每個 Rollup 都必須定義一個「提取」函數。提取函數將主鏈歷史分為 Rollup 歷史和 non-Rollup 歷史。STF 處理 Rollup 歷史以創建 Rollup 狀態。實際上,提取功能變成了一個「鏡頭」,Rollup 通過它檢查主鏈。
Rollup 使排序器能夠選擇提取函數下一次運行的輸出。排序器選擇 Rollup 節點下一步將看到和處理的數據,因此對 STF 的操作和下一個狀態有一定的控制。
在排序器創建主鏈數據視圖后,Rollup 節點運行過濾功能。因為排序器不一定知道它所服務的 Rollup 的狀態,所以允許在其排序中包含無效交易。提取后,Rollup 節點會看到這些無效交易,并將其刪除。當給定無效交易時,Rollup 節點不會出錯(就像主鏈那樣),而是簡單地忽略它并繼續。L1 必須禁止垃圾信息以保持共識,而 Rollup 則不需要。
共享排序器為兩個或多個 Rollup 的提取函數提供輸入。因此,它為兩者設置新的歷史記錄,控制 STF 的輸入。它可以單獨為每個 Rollup 執行此操作,也可以同時為兩者執行此操作。單獨設置歷史記錄時,它的工作方式與未共享的排序器完全相同。
然而,當同時為兩個 Rollup 創建新的歷史記錄時,共享排序器可以通過原子「鏈接」兩個 Rollup 的歷史記錄來行使一些額外的權力。排序器同時為每個 Rollup 生成序列,并確保兩者都確認或都不確認。這允許排序器對兩條鏈的歷史進行控制,因此對 Rollup 的下一個狀態有一定程度的控制。
原子包含(不是原子執行)
在這一點上,我必須重申,排序器可以對其產生的排序行使很大的自由裁量權。這意味著雖然用戶可以使用共享排序器在多個 Rollup 上進行交易,而無需與主鏈進行交互,但他們不一定依賴 排序器在這些交易之間產生任何特定的關系。共享排序器的支持者設想了一種新結構,用戶可以在其中指定包含的原子性,即可以強制排序器通過共享強制排序機制同時對多個 Rollup 中的一組交易進行排序。這將允許用戶確保所有這些原子交易都包含在 Rollup 歷史中,或者全部不包含。
這并不像看起來那么好。因為只有絕對可靠的交易才能強制排序,只有絕對可靠的交易集才能保證在原子包含時原子執行。正如我們之前所說,包含和執行是分開的。Rollup 在包含之后和執行之前通過過濾器功能過濾掉無效交易。假設排序器獲取用戶的原子集,并導致一個交易失敗或失效。該交易將在排序后被過濾,并且不會執行。這意味著原子包含不足以保證原子執行,除非涉及的所有交易都是絕對可靠的。
具體而言,可以原子執行簡單的發送和取款,但任何容易出錯的東西,如交換或 DeFi 交互,都不能。不幸的是,大多數高價值交互都包含 1 個或多個容易出錯的交易,因此似乎很難使原子包含發揮作用。這有效地排除了通過共享排序器進行交叉 Rollup 的 DeFi 可組合性。共享排序器不是靈丹妙藥,用戶的資產可能被鎖定在異步跨鏈模型中,直到流程結束。
Rollup 組合的原子執行
還記得之前談到的排序器如何在將排序發布到主鏈之前提供可信的執行保證嗎?您可以設想一個共享排序器針對多 Rollup 系統做同樣的事情。共享排序器可以運行每個 Rollup 的完整節點,并使用它們來確定交易是否成功。然后它可以承諾它不會產生原子交易集不全部成功的排序。
當然,這個系統是值得信任的。你會相信排序器不會說謊。您現在可能在想「我們可以通過限制排序器的行為將其轉換為免信任的系統嗎?」 我很高興 / 悲傷 / 困惑地說答案是「是的,但是」。是的,但我們這樣做的方法是組合每個 Rollup 的 STF,以創建一個執行所有組合 Rollup 交易的單個 STF。也就是說,我們必須使所有 Rollup 之間的所有虛擬機原子化。這相當于使它們成為相同的 Rollup。所以是的,我們可以實現不受信任的原子執行,方法是通過將多個 Rollup 合并為一個。這可能是個好主意 1, 但我懷疑它的可行性。
偶然性關系的原子執行
我在別處寫過這個,另一個可靠的選擇是在交易和 Rollup 狀態之間集成顯式的偶然關系。這會將評估突發事件的負擔轉移到提議者身上,因為他們必須根據他們對遠程 Rollup 的信任來計算和提議狀態根。但是,我認為我們可以通過重復應用過濾器功能來簡化它。假設偶然性在某個交易和區塊中是明確的,我們可以運行兩次過濾器,一次假設預測的狀態有效,一次假設預測的狀態無效。這可以擴展到 n 個預測狀態,代價是對過濾器函數進行 2^n 次評估.
在這個世界上,提議者可以證明 2^n 個根,每個根都有明確的偶然關系。例如,提議者可以證明「根是 X 取決于遠程 Rollup 狀態 A,否則是 Y」,而不是說「根是 X」。這樣,提議者就不會永遠評估遠程 Rollup 區塊。相反,他們會根據來自其他狀態的假設信息,多次評估自己的過濾函數和狀態。這真的很酷,因為它保留了 Rollup 的分離,同時仍然允許復雜的即時交叉 Rollup 通信。
結論
排序器是鐘表匠巧奪天工之作,它設置 Rollup 歷史記錄,然后看著它滴答滴答地走到它的命定狀態。Optimism 和 Arbitrum 并無多大差別,但兩者安全性確有不同。沒有人知道排序器是做什么的。共享排序器可以進行原子包含,但不能進行原子執行,如果沒有 Rollup 組合或其他一些執行機制,就無法將原子包含納入原子執行。所有這些關于共享排序器實現無縫互操作性的吹噓都是垃圾科學。
Foresight News
企業專欄
閱讀更多
金色薦讀
金色財經 善歐巴
Chainlink預言機
區塊律動BlockBeats
白話區塊鏈
金色早8點
Odaily星球日報
MarsBit
Arcane Labs
深潮TechFlow
Tags:ROLROLLOPTOPTIroll幣可以roll坐騎嗎TROLL BNBopticalnetworkPepe Optimus
作者:顧劼寧 上海曼昆律師事務所資深法律顧問香港將于將于 2023 年 6 月 1 日開始實施的虛擬資產服務提供者發牌制度(以下簡稱“ VASP 發牌制度”).
1900/1/1 0:00:00致力于賬戶抽象和交互抽象的A3S Protocol 近期在 Arbitrium 主網正式上線.
1900/1/1 0:00:00作者:TokenBrice Solidly/Velodrome分叉如雨后春筍般出現,特別是在流行的第二層,如Arbitrum或zkSync.
1900/1/1 0:00:00隨著以太坊生態系統的發展,在保持其高安全性的同時,在以太坊 Layer 1 上擴展交易吞吐量和降低成本將、變得異常困難.
1900/1/1 0:00:00原文作者:Packy McCormick,Not Boring 原文編譯:Sleepy, BlockBeats我一直在思考,如今構建一個 App 已經不是什么難事.
1900/1/1 0:00:00由于BTC網絡并不支持圖靈完備的智能合約,因此自BTC誕生起,長期以來被用于點對點轉賬及價值儲存外的其他場景并不太多.
1900/1/1 0:00:00