共享排序器正在飛速發展,是時候對它是什么及其存在的原因進行深入分析了。這篇文章分析的對象僅限于OptimisticRollup,歡迎ZK關注者前來指教。
排序器是什么?
排序器是OptimisticRollup中的半信任化角色。雖然交易可以由主鏈本身進行排序,但這并不經濟,用戶必須單獨提交其Rollup交易對應的主鏈交易,并支付主鏈上費用。排序器通過允許Rollup交易共享單個主鏈交易來為用戶解決這些問題。
排序器聚合鏈下的多筆用戶交易來補充主鏈的排序,并將它們作為單個交易集合提交到主鏈,交易成本在用戶間分攤。排序器還可以壓縮交易集合,進一步節省主鏈數據可用性成本。與依賴排序器的用戶相比,自主排序的用戶將為包含在Rollup中的交易支付更多費用。
但是,排序器可以對交易集合中的交易排序進行控制。它可以選擇不包含用戶交易,從而迫使用戶自行排序,支付更高的主鏈成本。它還可以通過重新排序和插入提取的方法在交易集合中提取MEV。它們實際上擁有對Rollup的優先寫入權限。值得注意的是,因為排序器可以與合約交互,所以只有絕對可靠的交易才能通過鏈上機制可靠地強制執行,不可靠的交易在強制排序時很可能會失敗。
這使得排序器成為Rollup用戶的半信任方。雖然排序器無法阻止用戶訪問Rollup,但他們可以延遲用戶的訪問,導致用戶承擔額外的費用,并從用戶的交易中提取價值。通過去中心化進一步約束排序器的行為是一個活躍的研究課題。
排序和執行有什么區別?
排序器是主鏈排序的補充,它不計算Rollup的狀態,實際上它可能會選擇對無效交易進行排序。Rollup節點必須解析和清理排序數據,導出Rollup的有效歷史記錄,并執行歷史記錄以生成最新狀態。排序器則完全不參與此過程。
不過,正如我的朋友Fred不斷提醒我的那樣,一旦交易被排序,結果就是確定的。這意味著所有Rollup節點將根據排序器生成的順序達成一致結果。給定已知歷史,Rollup有一個正確的狀態。一旦節點找到這個狀態,一個或多個提議者會將其提交給主鏈的Rollup合約。
Scroll:目前沒有代幣以及任何空投活動:8月9日消息,以太坊Layer2解決方案Scroll發文表示,近期發現在Twitter、Discord和Telegram上冒充Scroll的賬戶有所增加。我們想重申,沒有Scroll代幣,Scroll沒有運行任何形式的空投活動。請用戶保持警惕。[2023/8/10 16:16:29]
理論上,任何節點都可以是提議者,不需要任何權限。提議者將狀態連同保證金一起提交給主鏈。如果欺詐證明結果是狀態無效,保證金就會被沒收。該合約在計時器結束后接受證明,然后其中包含的用戶交易在主鏈上執行。執行節點通過欺詐游戲確保提議者誠實,我們傾向于將執行節點稱為「Rollup全節點」或「驗證者」。
換句話說,一旦排序被提交到主鏈,狀態就變成最終的和不可變的。提議者計算并報告最終狀態給Rollup合約,以維護Rollup到主鏈的資產橋的利益。提議者不會創造狀態,他們只是計算并證明它。Rollup合約不會創建或最終確定Rollup,它只是從提議者那里獲得Rollup狀態。
為什么要將排序和提議分離?
這是一個復雜的問題。從根本上說,將它們分開是因為它們本身是分開的。這聽起來像是同義反復,但似乎每個人都花了很長時間才意識到這一點。我們驀然回首,才發現Rollup的思想歷史多年來一直在Plasma和狀態通道中曲折發展。在基于比特幣的proto-Rollup早期,并沒有排序器,用戶只需將他們的交易發布到主鏈。之后,這種設計消失多年,最終因為Barry的工作重新出現。在Barry和Celestia之間,Rollup的研究主要集中在Rollup橋與主鏈的交互上。在SovereignRollup出現之前,甚至沒有人意識到我們其實在構建更好的Mastercoin。
拋開出處不談,排序器解決了一個特定的問題:用戶交易成本最小化。然而,這個過程中又引入了一個新問題:排序器可以同時對同一交易產生多個排序結果。如果排序完全由主鏈完成,將會有一個單一的規范排序,但用戶交易費用會更昂貴。我們選擇使用排序器來改善Rollup中的用戶體驗。
跨鏈流動性聚合器Router Protocol已集成Scroll測試網:6月27日消息,跨鏈流動性聚合器Router Protocol已集成Layer2解決方案Scroll測試網,支持開發人員構建IDApp,以擴展到Scroll,同時Scroll內的項目也可以通過Router Protocol訪問多個區塊鏈網絡。[2023/6/27 22:01:55]
假設存在很多個排序器,因為有多個提議者。排序器們可以提交相互沖突的排序,我們現在需要一種機制來「規范」主鏈上的特定排序批次。當前的Rollup通過一個單一的、特定的、已知的、半可信的排序器來實現這一點。選擇單個排序器使我們能夠解決這個問題,直到去中心化排序器到來。因為我們想要多個提議者,但只需要一個排序器,所以必須將這兩個角色分開。
數據依賴性是另一個重要的原因:提議者需要排序,但是排序器不需要狀態。提議者依賴于排序器工作的輸出,但是排序器不依賴于提議者。因為數據依賴是單向的,所以需要在角色之間劃定界限,并允許參與者專注于單一角色。
為了回答最初的問題,我們將提議者和排序器分開,因為它們本身是分開的。提議者在排序器的下游工作。Rollup將信任和權威授予了排序器,而提議者只是一個普通工作人員。
排序器、提議者和驗證者現狀
Arbitrum和Optimism是兩種常見的ORU方案。我想簡要介紹一下他們中的主要角色,不會涉及到代碼,只是規范和文檔。Optimism的討論將僅限于Bedrock設計。
Arbitrum
除了批處理和壓縮用戶交易外,Arbitrum排序器還運行一個完整的節點。交易被直接發送到排序器,它在交易排序時創建一個可信的WebSocket提要。Arbitrum將此提要作為「軟」確認來源。排序器對排序結果作出承諾,用戶通常可以依賴該排序。節點、MEV搜索者或其他參與者可以使用此提要來預先計算Rollup狀態。
Vitalik Buterin:并不認為zkPorter具有比Optimistic Rollup更強的安全保證,且沒有緊密耦合性:以太坊聯合創始人Vitalik Buterin針對Matter Labs披露的zkPorter擴容方案表示:并不認為zkPorter具有比Optimistic Rollup更強的安全保證,寧愿將資產放在Optimistic Rollup中,而不是鏈下數據可用性系統中。zkPorter鏈下數據可用性的安全級別要低于基礎鏈,且沒有緊密耦合性(Tight coupling)。另一方面,分片中的數據可用性層將受到整個以太坊網絡的保護,并兼具緊密耦合性。如果某些應用程序同時使用鏈下數據可用性也是可以的,但前提是鏈下數據在基于分片的數據可用性可用之前明確為臨時措施,但是我認為這沒有必要。[2021/4/14 20:17:45]
排序器會定期將經過排序的壓縮交易發布到主鏈。主鏈最終確定代表Rollup的「硬」確認。一旦主鏈確定了排序,它就成為Arbitrum鏈上不可更改的部分,其中排序的所有交易都成為最終狀態,結果狀態也成為最終狀態。
自然地,因為排序器設置交易順序,所以它具有優先寫入權限。排序器可以控制排序的內容,從而控制Rollup歷史中交易的排序。當然,用戶可以通過主鏈上的delayedinbox強制包含交易。搜索者已經竭盡全力將WebSocket交易提要的延遲降到最低,因此他們很可能會形成一個強大的MEV市場來對Arbitrum交易進行排序。
有13個經過許可的Arbitrum提議者,他們中每一個都在名為「RBlock」的特定承諾中托管了ETH。用戶可以選擇依賴一定比例的質押來做出關于Rollup的最終決定,而無需運行Rollup完整節點。雖然Arbtirum驗證者可以識別欺詐,但只有提議者可以通過欺詐證明質疑承諾的有效性。實際上,只有提議者可以成為完整的驗證者。
以太坊ZK Rollup擴容方案Hermez發布白皮書:由以太坊擴容解決方案技術團隊iden3推出基于ZK Rollup概念的擴容網絡Hermez發布白皮書,據白皮書介紹,Hermez允許在以太坊公共區塊鏈之上擴展支付和代幣轉移,它的設計考慮了ETH、DAI、USDT和WBTC等代幣。Hermez通過將每筆交易壓縮到約10個字節來改善區塊鏈的可擴展性,預估可以提升到2000 筆每秒的交易速度。[2020/10/10]
正義,就像一個排序器,是盲目的,它必須帶著劍
Optimism
與Arbitrum一樣,除了批處理和壓縮用戶交易外,Optimism排序器也運行一個完整的節點。交易直接發送到排序器,排序器在排序時創建可信的預確認。Optimism用戶可以使用這些確認作為最終軟確認的來源。排序器對排序作出承諾,用戶通常可以依賴該排序。節點、MEV搜索者或其他參與者可以使用這些確認來預先計算Rollup狀態。
排序器會定期將經過排序的壓縮交易發布到主鏈。主鏈最終確定代表Rollup的「硬」確認。一旦主鏈確定了序列,它就成為Optimism鏈歷史中不可更改的一部分。其中排序的所有交易都成為最終狀態,結果狀態也成為最終狀態。
自然地,因排序器設置交易順序,所以它具有優先寫入權限。排序器可以控制排序的內容,從而控制Rollup歷史中交易的排序。當然,用戶可以通過在主鏈強制包含交易。作為MEV拍賣概念的發起者,一個用于排序Optimism交易的強大MEV市場似乎將要形成。
Optimism有1個經過許可的提議者。該提議者簽署了對主鏈的特定承諾,稱為「狀態輸出」或「L2輸出根」。用戶在做出關于Rollup的最終決定時可以選擇依賴提議者,而無需運行Rollup全節點。雖然Optimism驗證者可以識別欺詐,但只有一個經過許可的挑戰者可以通過簽名來挑戰承諾的有效性。挑戰者可以隨時刪除一個L2輸出根,無需欺詐證明。實際上,只有獲得許可的挑戰者才能成為完整的驗證者。
BitFunder創始人Jon E. Montroll已被美國聯邦調查局逮捕:美國聯邦調查局逮捕了已關閉的BitFunder的創始人Jon E. Montroll,他曾試圖掩蓋平臺客戶被黑客竊取的6000枚比特幣,因偽證罪和妨礙司法公正兩項罪責,Jon E. Montroll將面臨最高30年的監禁。美國證券監管機構也對BitFunder提出指控。[2018/2/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組合或其他一些執行機制,就無法將原子包含納入原子執行。所有這些關于共享排序器實現無縫互操作性的吹噓都是垃圾科學。
金色財經區塊鏈4月30日訊比特幣自誕生以來就被譽為是一種革命性的技術,甚至有可能改變傳統“金融層”交易的方式。最近,比特幣網絡上出現了一項帶來更多可能性的創新,甚至將影響整個加密社區“文化層”.
1900/1/1 0:00:00在今年2月中旬,我們專門制作了一期關于Ordinals以及BTCNFT的視頻。 在尋找相關資料的過程中,我們發現一個有意思的現象,那就是對Ordinals最上頭的其實是一群原BSV社區的人,盡管.
1900/1/1 0:00:001.a16z近期投資項目一覽跟隨smartmoney投資很重要。加密領域的一大smartmoney就是a16z.
1900/1/1 0:00:00UBS上個月將元宇宙加入了其長期投資清單。UBS是瑞士最大、最重要的銀行,成立于1998年,由瑞士銀行聯盟和瑞士銀行公司合并而成。但它的根源可以追溯到1862年溫特圖爾銀行成立之時.
1900/1/1 0:00:00近日,NFT?OG「Franklin」、「麻吉大哥」以及黃立成相繼宣布退出NFT領域。BAYC巨鯨「Franklin」在宣布退出NFT領域后,更是大量拋售BAYC。NFT市場正在悄然發生著巨變.
1900/1/1 0:00:00“價值投資一場空,梭哈佩佩住皇宮。”從寂寂無名到躋身市值前?100?,PEPE?譜寫暴富神話的同時,也徹底點燃?Meme?行情.
1900/1/1 0:00:00