共享排序器正在飛速發展,是時候對它是什么及其存在的原因進行深入分析了。這篇文章分析的對象僅限于 Optimistic Rollup,歡迎 ZK 關注者前來指教。
排序器是什么?
排序器是 Optimistic Rollup 中的半信任化角色。雖然交易可以由主鏈本身進行排序,但這并不經濟,用戶必須單獨提交其 Rollup 交易對應的主鏈交易,并支付主鏈上費用。排序器通過允許 Rollup 交易共享單個主鏈交易來為用戶解決這些問題。
排序器聚合鏈下的多筆用戶交易來補充主鏈的排序,并將它們作為單個交易集合提交到主鏈,交易成本在用戶間分攤。排序器還可以壓縮交易集合,進一步節省主鏈數據可用性成本。與依賴 排序器的用戶相比,自主排序的用戶將為包含在 Rollup 中的交易支付更多費用。
但是,排序器可以對交易集合中的交易排序進行控制。它可以選擇不包含用戶交易,從而迫使用戶自行排序,支付更高的主鏈成本。它還可以通過重新排序和插入提取的方法在交易集合中提取 MEV。它們實際上擁有對 Rollup 的優先寫入權限。值得注意的是,因為排序器可以與合約交互,所以只有絕對可靠的交易才能通過鏈上機制可靠地強制執行,不可靠的交易在強制排序時很可能會失敗。
這使得排序器成為 Rollup 用戶的半信任方。雖然排序器無法阻止用戶訪問 Rollup,但他們可以延遲用戶的訪問,導致用戶承擔額外的費用,并從用戶的交易中提取價值。通過去中心化進一步約束排序器的行為是一個活躍的研究課題。
排序和執行有什么區別?
排序器是主鏈排序的補充,它不計算 Rollup 的狀態,實際上它可能會選擇對無效交易進行排序。Rollup 節點必須解析和清理排序數據,導出 Rollup 的有效歷史記錄,并執行歷史記錄以生成最新狀態。排序器則完全不參與此過程。
不過,正如我的朋友 Fred 不斷提醒我的那樣,一旦交易被排序,結果就是確定的。這意味著所有 Rollup 節點將根據排序器生成的順序達成一致結果。給定已知歷史,Rollup 有一個正確的狀態。一旦節點找到這個狀態,一個或多個提議者會將其提交給主鏈的 Rollup 合約。
Uniswap社區新提案建議在Scroll測試網上部署Uniswap V3:11月29日消息,以太坊L2擴容方案Scroll已在Uniswap社區提交“在Scroll測試網上部署Uniswap V3”的提案,預計全面部署將需要2-3周時間。目前該提案在社區討論階段,快照投票將于12月1日開啟。據悉,包括Lens、theGraph、Covalent、Empiric、Blockwallet、Ledger、Safe、Orbitor等數十個項目已承諾部署至Scroll測試網。團隊預計將有100余個項目部署在無許可測試網上部署。[2022/11/29 21:09:18]
理論上,任何節點都可以是提議者,不需要任何權限。提議者將狀態連同保證金一起提交給主鏈。如果欺詐證明結果是狀態無效,保證金就會被沒收。該合約在計時器結束后接受證明,然后其中包含的用戶交易在主鏈上執行。執行節點通過欺詐游戲確保提議者誠實,我們傾向于將執行節點稱為「Rollup 全節點」或「驗證者」。
換句話說,一旦排序被提交到主鏈,狀態就變成最終的和不可變的。提議者計算并報告最終狀態給 Rollup 合約,以維護 Rollup 到主鏈的資產橋的利益。提議者不會創造狀態,他們只是計算并證明它。Rollup 合約不會創建或最終確定 Rollup,它只是從提議者那里獲得 Rollup 狀態。
為什么要將排序和提議分離?
這是一個復雜的問題。從根本上說,將它們分開是因為它們本身是分開的。這聽起來像是同義反復,但似乎每個人都花了很長時間才意識到這一點。我們驀然回首,才發現 Rollup 的思想歷史多年來一直在 Plasma 和狀態通道中曲折發展。在基于比特幣的 proto-Rollup 早期,并沒有排序器,用戶只需將他們的交易發布到主鏈。之后,這種設計消失多年,最終因為 Barry 的工作重新出現。在 Barry 和 Celestia 之間,Rollup 的研究主要集中在 Rollup 橋與主鏈的交互上。在 Sovereign Rollup 出現之前,甚至沒有人意識到我們其實在構建更好的 Mastercoin。
基于ZK Rollup的DEX ZigZag上線zkSync與Polygon跨鏈橋測試版:3月14日消息,基于 ZK Rollup 的訂單簿式 DEX ZigZag 宣布上線 zkSync 與 Polygon 跨鏈橋的測試版。該測試版現已支持 zkSync 上 ETH 和 Polygon 上 WETH 的小額跨鏈轉賬測試,待代碼穩定后會增加測試額度并進行 UI 開發。[2022/3/14 13:55:10]
拋開出處不談,排序器解決了一個特定的問題:用戶交易成本最小化。然而,這個過程中又引入了一個新問題:排序器可以同時對同一交易產生多個排序結果。如果排序完全由主鏈完成,將會有一個單一的規范排序,但用戶交易費用會更昂貴。我們選擇使用排序器來改善 Rollup 中的用戶體驗。
假設存在很多個排序器,因為有多個提議者。排序器們可以提交相互沖突的排序,我們現在需要一種機制來「規范」主鏈上的特定排序批次。當前的 Rollup 通過一個單一的、特定的、已知的、半可信的排序器來實現這一點。選擇單個排序器使我們能夠解決這個問題,直到去中心化排序器到來。因為我們想要多個提議者,但只需要一個 排序器,所以必須將這兩個角色分開。
數據依賴性是另一個重要的原因:提議者需要排序,但是排序器不需要狀態。提議者依賴于排序器工作的輸出,但是排序器不依賴于提議者。因為數據依賴是單向的,所以需要在角色之間劃定界限,并允許參與者專注于單一角色。
為了回答最初的問題,我們將提議者和排序器分開,因為它們本身是分開的。提議者在排序器的下游工作。Rollup 將信任和權威授予了排序器,而提議者只是一個普通工作人員。
排序器、提議者和驗證者現狀
Arbitrum 和 Optimism 是兩種常見的 ORU 方案。我想簡要介紹一下他們中的主要角色,不會涉及到代碼,只是規范和文檔。Optimism 的討論將僅限于(尚未部署的)Bedrock 設計。
Arbitrum
Balancer聯合創始人:100%專注于以太坊 擴展方案Zk Rollups最有前途:10月28日,Balancer聯合創始人兼CTO Mike McDonald發推闡述其對Balancer以及擴容解決方案的看法。他表示,重要的是要明確我們100%專注于以太坊。 盡管Balancer已經為一些第三方提供了小額贈款,幫助他們在其他L1網絡上實施Balancer協議,但這只是處于研究目的,所有的內部努力仍在以太坊上。與此同時他還表示,Zk Rollups是最有前途的擴展方案,并且也是Balancer目前在內部探索的唯一的擴展路徑。 話雖如此,但從L2演示應用邁向具有有意義的資金鎖定狀態的共存的L2仍然需要大量時間和持續開發。[2020/10/28]
除了批處理和壓縮用戶交易外,Arbitrum 排序器還運行一個完整的節點。交易被直接發送到排序器,它在交易排序時創建一個可信的 WebSocket 提要。Arbitrum 將此提要作為「軟」確認來源。排序器對排序結果作出承諾,用戶通常可以依賴該排序。節點、MEV 搜索者或其他參與者可以使用此提要來預先計算 Rollup 狀態。
排序器會定期將經過排序的壓縮交易發布到主鏈。主鏈最終確定代表 Rollup 的「硬」確認。一旦主鏈確定了排序,它就成為 Arbitrum 鏈上不可更改的部分,其中排序的所有交易都成為最終狀態,結果狀態也成為最終狀態。
自然地,因為排序器設置交易順序,所以它具有優先寫入權限。排序器可以控制排序的內容,從而控制 Rollup 歷史中交易的排序。當然,用戶可以通過主鏈上的 delayed inbox 強制包含交易。搜索者已經竭盡全力將 WebSocket 交易提要的延遲降到最低,因此他們很可能會形成一個強大的 MEV 市場來對 Arbitrum 交易進行排序。
有 13 個經過許可的 Arbitrum 提議者,他們中每一個都在名為「RBlock」的特定承諾中托管了 ETH。用戶可以選擇依賴一定比例的質押來做出關于 Rollup 的最終決定,而無需運行 Rollup 完整節點。雖然 Arbtirum 驗證者可以識別欺詐,但只有提議者可以通過欺詐證明質疑承諾的有效性。實際上,只有提議者可以成為完整的驗證者。
V神:沒有分片的Rollups仍可將吞吐量提高100倍:V神發推特稱,原始的ETH2路線圖分三個階段:階段0,PoS(即將推出);階段1,數據分片,而非計算分片;階段2,分片tx處理。但是,該路線圖有一個有趣的現象:分片的應用程序本身需要階段2,但是分片的Rollups僅需要階段1,因為Rollups僅將鏈用于數據,而不用于計算。因此,我們很快就會擁有實現6400倍吞吐量所需的工具。因此,這是“分片之上的Rollups”,也就是說,Rollups已經存在于分片之前,而沒有分片的Rollups仍可將吞吐量提高100倍。[2020/10/5]
正義,就像一個排序器,是盲目的,它必須帶著劍
Optimism
與 Arbitrum 一樣,除了批處理和壓縮用戶交易外,Optimism 排序器也運行一個完整的節點。交易直接發送到排序器,排序器在排序時創建可信的預確認。Optimism 用戶可以使用這些確認作為最終軟確認的來源。排序器對排序作出承諾,用戶通常可以依賴該排序。節點、MEV 搜索者或其他參與者可以使用這些確認來預先計算 Rollup 狀態。
排序器會定期將經過排序的壓縮交易發布到主鏈。主鏈最終確定代表 Rollup 的「硬」確認。一旦主鏈確定了序列,它就成為 Optimism 鏈歷史中不可更改的一部分。其中排序的所有交易都成為最終狀態,結果狀態也成為最終狀態。
自然地,因排序器設置交易順序,所以它具有優先寫入權限。排序器可以控制排序的內容,從而控制 Rollup 歷史中交易的排序。當然,用戶可以通過在主鏈強制包含交易。作為 MEV 拍賣概念的發起者,一個用于排序 Optimism 交易的強大 MEV 市場似乎將要形成。
Optimism 有 1 個經過許可的提議者。該提議者簽署了對主鏈的特定承諾,稱為「狀態輸出」或「L2 輸出根」。用戶在做出關于 Rollup 的最終決定時可以選擇依賴提議者 ,而無需運行 Rollup 全節點。雖然 Optimism 驗證者可以識別欺詐,但只有一個經過許可的挑戰者可以通過簽名來挑戰承諾的有效性。挑戰者可以隨時刪除一個 L2 輸出根,無需欺詐證明。實際上,只有獲得許可的挑戰者才能成為完整的驗證者。
公告 | 路印上線基于zkRollup的最新一代去中心化交易平臺網頁版:路印上線基于zkRollup的最新一代去中心化交易平臺的網頁版,該版本基于路印協議3.1.1,定位為公測Beta1。(路印Loopring)[2020/2/28]
小結
當前兩個主要的 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
作者:Zen,PANews5月18日,Game Dosi正式發布,并同步開售會員服務,包括黃金和白金級NFT通行證,這些通行證可以提供提前體驗新游戲等福利.
1900/1/1 0:00:00作者:ardizor,加密KOL;翻譯:金色財經0xxz空投成就了百萬富翁,但高昂的鏈上費用卻讓一些人望而卻步。我整理出了13個零成本潛在空投項目。千萬不要錯過.
1900/1/1 0:00:00原文作者:黑米,白澤研究院ERC-6551 是一種新標準,于 2023 年 5 月 7 日在以太坊主網上發布.
1900/1/1 0:00:00BRC-20 代幣標準由于最近 meme 代幣的熱潮而獲得關注度和流行性。據 brc-20.io 稱,BRC-20 代幣的市值現已達到 858,775,461 美元.
1900/1/1 0:00:00在幣圈,有一類奇葩的虛擬代幣項目頗受追捧,人們通常叫它“土狗”。這些項目一般團隊匿名,沒啥技術含量,強調草根文化,甚至會明說“代幣沒有價值”.
1900/1/1 0:00:00美國時間 5 月 16 日,參議院審議 AI 監管議題的聽證會上,氣氛一派祥和。這是以 ChatGPT 為代表的生成式 AI 科技爆炸性進步后,美國國會舉辦的第一場聽證會,可能奠定未來美國如何監.
1900/1/1 0:00:00