作者:YBB Capital Researcher Ac-Core
字數:本文超10000 閱讀時長: 18 minute
前言
ETH的主體敘事方向已由Layer1 轉向了Layer2,如果還將其理解為“一鍵發幣”的ERC-20敘事,我們不妨放大格局展開想像,一場屬於“一鍵發鏈” 的瘋狂即將到來!依托目前無人能及的生態和居高不下的TVL,Arbitrum 一直引領著Layer2 之間的戰爭,但這暫時的勝利能持續很久嗎?與Arbitrum Orbit 再上一層的Layer3 方案不同,OP Stack是能夠一鍵創建Layer2的“超級鏈”。本篇內容以OP Stack架構、OP裡的ZK元素、Rollup的安全性問題三部分進行全面解析。
OP Stack 開啟“超級鏈宇宙”
YBB Capital Researcher Ac-Core 自製
下輪牛市的敘事從哪開始?是從高性能的Layer1,繼續堆高的Layer3,ZK系的Layer2,還是OP Stack的超級鏈?這是一個非常有趣且值得深思的問題。以太殺手這個稱號仍然是萬眾公鏈不可逾越的究極目標,而在這個龐大的巨人裡還暗藏著很多不可忽視的超級內核,其中一個便是:OP Stack。
什麼是OP Stack?
OP Stack 可理解為一組開源的軟件組件,使任何人都可以使用Optimistic rollups 在以太坊之上構建自己的Layer2 區塊鏈。它將大部分計算和存儲移至鏈外,同時依賴以太坊來確保安全性和最終性,從技術層面來講,Optimism 主要體現在它切實地為用戶節省了大量鏈上費用。 OP Stack由四個主要組件組成:
主網:OP Mainnet 是一個廉價且快速的以太坊Layer2 網絡,與以太坊虛擬機EVM相兼容;
合約:實現OP Stack核心邏輯和功能的智能合約。 OP合約包括狀態轉換系統(STS)、欺詐證明者(FP)、狀態承諾鏈(SCC)以及規範交易鏈(CTC);
服務:提供Layer1 和Layer2 之間的數據可用性、數據同步和通信服務;
工具:促進基於OP Stack 的區塊鏈的開發、測試、部署、監控和調試。
超強的開放性:
OP Stack 將被打造為可分叉模塊化擴展區塊鏈的基礎設施,為實現這一遠景需將各類Layer2 整合成一個單一的超級鏈(Superchain),把原本相互孤立的Layer2 集成到一個具備互操作性和組合性的系統中,啟動Layer2 就像今天將智能合約部署到以太坊一樣簡單,讓敘事變化由“一鍵發幣”走向“一鍵發鏈”。本質上而言,超級鍊是一個可橫向擴展的區塊鍊網絡,與各鏈之間共享以太坊的安全性、通信層以及開發套件。
YBB Capital Researcher Ac-Core 自製
OP Stack (Over Powered Stack)將成為超級鏈背後統一的模塊化開發堆棧,且它們之間是無數可相互鏈接、可通信的區塊鏈。 OP Stack堆棧由專門的Optimism Collective 負責整體的開發和維護,並支持用於部署新匯總網絡的共享開源系統。與此同時它也是一套標準化的開源模塊。這樣一聽它豈不是一個完全基於以太坊安全性的Cosmos!當初說好的ETH與ATOM兩者互補,現在卻讓OP Stack成為了Cosmos殺手?接下來讓我們把OP Stack的定義給拆解一下:
模塊是任何開發人員可以插入OP Stack 的數據位。而這套超級鏈的"標準化" 意味著對一個模塊的標準有共識,並且它可以被所有人實現。同時完全開源意味著它可以免費提供給任何人進行開發迭代和消息請求。開發人員有能力在一個鏈的不同執行層、共識層、結算層和數據可用性層進行切換模塊。
好比dYdX 選擇離開以太坊轉向Cosmos 應用鏈,其根本原因是他們希望自己鏈上的共識層有更大的模塊化,我認為這是一個很好的開始,讓更多獨立的Dapps選擇更符合自身的公鏈進行開發,其中最具有代表性的是Luna,雖然出於一些原因它被毀滅了。值得慶幸的是OP Stack 解決了這個問題,它的設計可以用更容易的方式進行代碼分叉,讓開發人員可以很容易地抽像出區塊鏈的不同組成部分,並通過插入不同的模塊來修改它。
OP Stack 設計原則:
效能:可以使用OP Stack構建任何東西並一鍵發行區塊鏈;
簡潔:利用可複用的代碼和現成開發套件,以增強安全性和降低維護的複雜性,達到整體降低門檻的作用;
可擴展:Optimism Collective 將會完整開源OP Stack的主要代碼。
在架構上,OP Stack可自下而上分為六層,分別是DA Layer數據可用層、Sequencing Layer 排序層、Derivation Layer衍生層、Execution Layer執行層、Settlement Layer 結算層、Governance Layer治理層。 OP Stack 的每一層都是模塊化的API 組建,可以隨意進行組合和解耦。其中最為關鍵的是DA數據可用層、執行層和結算層,三者構成了OP Stack的主要工作流程。
DA數據可用性層:是OP Stack的原始數據來源,可使用單個或多個數據可用性模塊來獲取輸入數據,目前以太坊是最主要的DA層,但未來也會有更多的鏈加入進來;
執行層:OP Stack中的狀態結構,可為EVM 或其他VM提供可能性,增加了在以太坊上發起的Layer2 交易的支持,同時為每筆交易增加額外的Layer1 數據費用,向以太坊發布交易的綜合成本。
結算層:OP Stack上Layer2交易數據的去處,在Layer2確認後將信息發送到目標區塊鏈,以此最終結算。未來也有望接入ZK等有效性證明機制,以打通不同鏈之間的隔閡,甚至可以鏈接OP系Layer2和ZK系Layer2之間的孤島。
我們觀察到近期OP生態發展出了一些帶有ZK元素的項目,不妨大膽想像一下,如某個Optimistic rollup 想把自己改造成ZK rollup,沒問題!只要把它的欺詐證明模塊換成結算層的有效性證明模塊即可。如果某條鏈想把Celestia 用於其數據可用性層。沒問題!把以太坊換成Celestia 就行。想把執行層的EVM 換成另一種虛擬機,可惜的是這只能是OP Stack 的一個技術可能性。正如這種超級鏈局面的出現而誕生出一個熱梗——“Polygon:我要做ZK Layer2的Cosmos!Optimism:我要做OP Layer2的Cosmos! Cosmos:那我是誰?”
OP Stack 法則:
YBB Capital Researcher Ac-Core 自製
以太坊的無限區塊空間是實現大規模應用的關鍵一步,但這種擴散也帶來了分裂,無權限部署也迎來了新挑戰,如今,每個新的OP Stack 鏈都在自己的領域中獨立生長,沒有分享標準和改進的直接方法。用戶和建設者也面臨著巨大的挑戰:根據安全性、質量和中立性對眾多不同的鏈進行單獨評估。為了實現超級鏈,需將OP Stack 從獨立、分散的區塊空間轉變為一個統一的鏈集體,共同致力於開放、去中心化的區塊空間。 “鏈法則”為樂觀主義治理和超級鏈制定了指導原則。樂觀主義治理從管理單個鏈轉變為管理多個鏈共享的標準,從而定義了成為超級鏈一部分所需的屬性,同時優先保護用戶在超級鏈上進行交易。從根本上講,“鏈法則”是一份社會契約(而非法律契約),因此積極的社區討論至關重要。它的存在將使超級鏈能夠保證以下特性:
確保區塊空間保持同質、中立和開放: 對鏈法的承諾就是對保護鏈的用戶、開發者和其他利益相關者的承諾。無論大小的鏈,如果是超級鏈的一部分,都可以在樂觀主義治理的支持下,可信地證明其區塊空間的同質性、中立性和開放性;
受益於不斷改進: 共享升級意味著超級鏈可以始終獲得最好的技術,而無需自己操心維護;
提供更好更可用的基礎設施: 由於超級鏈中的所有鏈都可信地致力於一個標準,因此它們可以共同努力,確保索引和排序等關鍵服務的可用性和經濟性。
值得思考的問題:
OP Stack能否反哺OP?
OP Token到底有什麼用途,如果以Basechain的方式,他們會把一部分收入反哺給到Optimism Collective,那麼“國庫”的收入來源會依托自身的“價值”,依靠創造更多的敘事來最終反饋到幣價上,使得OP在二級市場的表現邏輯與ATOM類似,但這種方案或許是目前最優的,如有更多的鏈條效仿Basechain的方式進行反哺,Optimism Collective終將受益。這種感覺是否讓我們想到UNI?兩者項目本身都具有雄厚實力但Token自身除了投票和治理外並沒有其他價值用途。與此不同的是,目前Layer2都面臨著中心化排序器問題,即使Layer2 代幣僅用於某種形式的領導者選擇(而非共識投票),但排序權的價值仍會累積到Rullop代幣上。
與此同時OP團隊在7月25日的時候發布了Law of Chain提案,所有採用OP Stack的鏈啟動共享治理模型和排序器,希望將“利潤反哺”這個模式進行規範化,從而為整個OP繫帶來更多收益(如上述OP Stack法則),這相比於Cosmos的共享安全模型,堪稱異曲同工之妙。
OP Stack 和ZK Stack的區別:
OP Stack:多鏈單選擇
通過上文我們不難發現OP Stack採用的與Cosmos相似的多鏈模式,但選擇方面只有一個,因為OP Stack 追求各個鏈都需驗證其他鏈的交易,否則就需要在Layer1 上等待數天才會有結果,所以單一且共享的排序器,集中式的MEV分配以及受法約與管理的保護是唯一讓Optimistic rollups 在不同鏈之間實現無縫互操作性的可能。
ZK Stack:多鏈多選擇
與OP Stack不同的是,ZK Stack同樣可以多個鏈,但它可有多種選擇,可選自己的排序器,按自己方式去處理MEV,且受數學和代碼的保護(注意:OP Stack是受法約與管理的保護)。這是因為如果ZK採用指定共享或極少量的線程集,那它們彼此之間單依數學即可盲目的信任,使零知識證明失去價值。
OP Stack裡的ZK元素
YBB Capital Researcher Ac-Core 自製
OP Stack 是一套完全開放的架構,會讓生態裡出現zkvm、zkmips、zkwasm、zkevm成為可能,但相比於“ 正統的ZK ” ,OP Stack 裡也產生了一些不一樣的ZK元素。這讓我們情不自禁地聯想到,也許在不久的將來能出現一次OP rollup 與ZK rollup 的夢幻聯動。
為OP實現零知識證明(ZKP):
根據最新的進展,Mina的背後團隊計劃採用他們自己的plonk系統+ kzg承諾+ folding 算法nova 來實現OP Stack 上的zkmips vm 。雖然這僅是一個最新提案會存在較多不成熟的地方,但這也是非常值得我們去探索的。該項目團隊的使命是讓Layer2與Layer1及OP各個鏈之間通過零知識證明來實現安全低延遲的跨鏈通信。這是一個針對良好支持的指令集架構(ISA)的零知識證明(ZKP),它可以證明Optimism容錯程序的行為,為能夠證明任何基於OP Stack的區塊鏈系統奠定了基礎。
YBB Capital Researcher Ac-Core 自製
完成這項任務意味著需要實現一個零知識證明(ZKP)系統,該系統可以使用golang 編譯器(如MIPS、RISC-V 或WASM)支持的指令集架構(ISA)來證明OP 防錯程序[2 ] 。此外,該證明系統還必須證明標準配置OP Stack 鏈的兩個區塊之間狀態轉換,從而證明其在實踐中是可行的。除了證明ISA 的標準執行軌跡外,對防錯程序的支持還引入了額外的要求[1] 。
具體來說,防錯程序引入了Pre-image Oracle [3] 的概念,它使用特殊的System call [4] 將外部數據加載到程序中。每個Fault Proof VM [5] 都負責實現某種機制,通過這種機制,某些數據的哈希值被放置在內存中的特定位置,且被系統調用被執行,然後該哈希值的預映像被加載到內存中供程序使用。 Pre-image Oracle也用於引導程序的初始輸入。
去中心化排序器的嘗試:
Espresso Systems於2023年7月21日發推文官宣關於構建OP Stack 領導選舉的去中心化排序驗證的提案已被接受,並成為OP Stack 和Superchain 的貢獻者。其中該項目的主要協議HotShot是一種高速的共識協議,可使用重新抵押來使以太坊驗證者能夠參與該協議,旨在達到與以太坊驗證器集相同的規模。同時該項目還開發了Espresso Sequencer ,這與功能齊全的Zk-rollup 實現了集成,特別是Polygon zkEVM 的分支。
什麼是領導選舉?
領導選舉[6]是指在分佈式系統中使用不同的領導者負責創建下一個規範狀態轉換的能力。在區塊鏈中,領袖選舉可以讓不同的區塊生產者在不同的時間產生區塊,同時領導選舉算法可以是競爭性的也可以是無競爭性的。
在工作量證明情況下,競爭性領導選舉算法是指在同一時間內有許多潛在的單位爭相成為領導者。無競爭領導者選舉算法是指在某一特定時間點只有一個已知的領導者,在以太坊Gasper的情況下,無競爭性領導選舉算法是指在特定時間點只有一個已知的單位,並沒有其他方式讓另一個潛在單位在那個時間成為領導者。
在將提議者網絡和構建者網絡分離的情況下(即區塊構建者網絡只負責選擇交易排序,提議者網絡只負責簽署區塊),會將原本負責在某一時刻產生區塊的單一實體轉變為許多可能存在的實體,且讓它們在競爭這某一時刻內構建者網絡中最具盈利的潛力區塊,與此同時由於MEV的存在,會導致這種競爭性再次回歸。
我們在理解不同的OP Stack 鏈之間領導選舉機制的各種二階效應是非常困難的。就目前而言,把領導選舉作為一種機制是最受歡迎的,因為它可以讓排序更加的去中心化。需注意的是這種方案也無法保障排序器是絕對去中心化,所以在考慮去中心化排序器問題時要額外的小心謹慎。
Rollup們真的安全嘛?
以太坊的工作原理:
以太坊的原理是,每個節點都存儲且執行用戶提交給它的每筆交易,這種高級別的安全方式也導致整個網絡十分昂貴,所以需要為整個網絡擴容而採取了Rollup解決方案。簡單來說Rollup = Layer1的一組合約+ Layer2的自身網絡節點,即鏈上智能合約+ 鏈下聚合器,將結算,共識,數據可用性均依賴以太坊,自己僅負責執行Rollup。
鏈上智能合約,表示了它的信任模型就是以太坊上的一個智能合約,借用了以太坊的安全性;
鏈下聚合器,表示它會鏈下執行並聚合交易,將大批量的交易進行壓縮,並最終放上以太坊主網,達成更快且更便宜的目的。
Layer2網絡節點又有很多部分組成,其中排序器(Sequencer)組件最為重要。它負責接收Layer2上的交易請求,以此決定他們的執行次序並將交易序列進行打包批次(Batch),最終傳送給Rollup項目在Layer1上的合約。需要注意的是在開始下文前需明確一個事實:如下圖參考,目前以太坊所有Layer2 Rollups的排序器都是中心化的。
圖源:官方推文截圖
中心化的排序器問題:
Layer2的全節點可以通過兩種方式獲得交易序列:一是直接從排序器獲取,二是讀取排序器發送到Layer1的交易批次(Batch)但後者擁有更強的不可修改屬性。由於交易執行會改變區塊鏈賬本的狀態,為確保一致性,Layer2全節點除了需要獲得交易次序,還必須與排序器同步賬本狀態。因此,排序器的任務不僅是將交易批次發送到Layer1的Rollup合約,還要將交易執行後的狀態更新結果StateRoot/StateDiff傳送至Layer1,通俗來講排序器的工作是將交易處理和排序為添加到區塊鏈中的塊,負責批量處理交易並將其發佈到Layer1 智能合約。
對於Layer2的全節點來說,只要獲取了Layer1上Rollup的交易序列和最初的StateRoot,就能夠還原出Layer2的區塊鏈賬本,併計算得出最新的StateRoot。反之,Layer2全節點自己計算得到的StateRoot與排序器發佈到Layer1的StateRoot不一致,就意味著排序器存在欺詐行為。綜上相比Layer2自身的網絡,Layer1會更加去中心化、去信任(Trustless)和更安全。
YBB Capital Researcher Ac-Core 自製
OP Stack:
那麼問題來了,Layer2 可不可以偽造一些不存在或是一些錯誤的交易,好比將Layer2的Token資產轉移到排序器的運行者地址,再將這些Token資產轉移到Layer1上,從而盜取用戶資產?答案是:如果想這樣做完全是可以的。所以在面對排序器可能存在的欺詐風險時,不同類型的Rollup採用了不同方式的應對措施。
我們拿Optimistic Rollup舉例,它允許Layer2全節點提供欺詐證明(Fraud Proof),證明排序器在Layer1發布的數據是錯誤的。但對於沒有欺詐證明的Optimism來說,如果它真想通過排序器來盜走Layer2的用戶資產,只需讓排序器運行者偽造交易指令,並將其他人在Layer2的資產轉移至自己的地址,最後通過Rollup自帶的Bridge合約,來把盜來的幣轉移至Layer1。
為解決這種可能存在的問題,目前解決方案一是靠社區成員和社交媒體等輿論監督達成所謂的“共識”,二是依靠OP做為官方的信用背書。所以綜上理論,OP Rollup的安全性至少依靠要有一個能發布欺詐證明的誠實Layer2全節點來保證,既上文“OP Stack 和ZK Stack的區別”小節中提到的:OP Stack是多鏈單選擇。
YBB Capital Researcher Ac-Core 自製
ZK Stack:
下面我們來探討一下ZK Stack,在ZK rollup網絡中,存在著Prover節點,它專門負責為排序器發布交易批次,同時生成有效性證明。這些有效性證明在Layer1上有專門的驗證合約。只要交易批次及其對應的StateRoot/StateDiff的證明通過Verifier合約驗證,交易便得到最終確認。它與OP Stack有所不同的是,ZK rollup在解決排序器欺詐問題時除了依賴Layer2全節點外,還利用了Validity Proof(有效性證明)。 ZK rollup的官方橋樑也只會允許通過有效性證明驗證的提款交易執行,從安全性方面來看,這顯然比Optimism要可靠得多,即上文中“OP Stack 和ZK Stack的區別”小節中提出的:ZK Stack是多鏈多選擇。
從理論來考慮,ZK rollup的安全由Layer1上的Verifier合約保證或可以說是由Layer1節點完成交易最終確認。與OP rollup的安全性靠最少單個能發布欺詐證明的誠實Layer2全節點相對比,他們都是繼承了Layer1(ETH)的安全性,但事實或許嚴格意義來講並非如此,不過這已是目前最優解決方案,相比於其他公鏈,以太坊經歷這麼多年的發展歷程,安全性毋庸置疑是最值得信賴的。
如同區塊鏈三角問題,一個“產品”的綜合用戶體驗似乎也存在著一個三角問題:安全,簡單,高效。 ZK Stack相比OP Stack,它更加相信依靠數學和代碼來提升整體的安全性質,因此大幅提升了整體的複雜性。所以關於ZK也存在幾點老生常談的話題:
YBB Capital Researcher Ac-Core 自製
延遲問題:ZK rollup還需要解決Layer2節點向Layer1發布數據的延遲問題。類似於快遞運輸需要準備包裝盒一樣,所以每次排序器或Prover向Layer1發送數據都會產生固定的成本;
速度問題:ZK rollup面臨著一個挑戰,即生成有效性證明的速度較慢。儘管排序器可以在1秒內執行數千筆交易,但為這些交易生成有效性證明可能需要幾個小時的時間;
成本問題:為了降低整體成本,很多ZK rollup方案採取了“聚合多個Proof,再一次性發到Layer1上”的策略。這意味著Prover不會立即在生成一個Proof後就發送到Layer1,而是等待多個Proof都生成完畢後,將它們聚合在一起,並一次性發給Layer1上的Verifier合約;
數量問題:如果發起的交易筆數不夠多,排序器可能會延遲向Layer1發布數據。舉個例子,在市場不活躍的時期,某些Rollup網絡可能每半小時才向Layer1發送一次交易批次。
關於更適合的去中心化的排序器解決方案問題,模塊化或許是最優的解決方式,因為模塊化等同於更大的可定制化,在目前的去中心化工具中主要以以下五種為主:
- Single Sequencer & POA - Based rollup
- DVT x Sequencer - Shared Sequencer
- Bootstrap a New Sequencer Set
我們相信在不僅的將來,以上諸多問題可以通過技術來進一步解決。好比降低有效性證明的生成時間,Optimism承諾近期會發布欺詐證明系統,以及以太坊的Danksharding方案也將大幅降低Rollup的數據成本,去中心化排序器難題也在會攻克,共同為上述問題提供出有效的解決方案。
結尾:敘事走向
YBB Capital Researcher Ac-Core 自製
超鍊和超擴展一直是被大家所重點關注的擴展方向,雖目前而言,各個項目仍處於早期發展階段,但整體都為以太坊帶來了更為強大的故事敘事。我們現在可以看到,OP Stack已經獲得了較多的採用,眾多明星公鏈也加入其中,比如Coinbase、opBNB、Zora、Worldcoin等眾多公鏈都給予了OP Stack很好的品牌背書。包括近期在6月26日晚,zkSync 宣布推出用於構建定制ZK rollup 的模塊化開源框架ZK Stack ,這也被許多人認為是zkSync 團隊用來對付OP Stack 頭號的殺手鐧。一邊是具有先發優勢的OP Stack,一邊是具有數學優勢的ZK Stack,總而言之Layer2的任何價值都可以積累到Rollup的代幣中來,Layer2 擴容之戰才剛剛開始,關於Layer2這場沒有硝煙的戰爭你是如何看待呢?
解釋文獻:
[1] https://github.com/ethereum-optimism/optimism/blob/develop/specs/fault-proof.md#fault-proof-program
[2] https://github.com/ethereum-optimism/ecosystem-contributions/issues/61
[3] https://github.com/ethereum-optimism/optimism/blob/develop/specs/fault-proof.md#pre-image-oracle
[4] https://en.wikipedia.org/wiki/System_call
[5] https://github.com/ethereum-optimism/optimism/blob/develop/specs/fault-proof.md#fault-proof-vm
[6] https://github.com/ethereum-optimism/ecosystem-contributions/issues/63
參考文章: