超鏈和超擴展一直是被大家所重點關注的擴展方向,雖目前而言,各個專案仍處於早期發展階段,但整體都為乙太坊帶來了更為強大的故事敘事。

作者:Ac-Core,YBB Capital Researcher

字數:本文超 10000 閱讀時長: 18 minute

封面:YBB Capital Researcher Ac-Core 自製

前言

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 防錯程式 [1] 。 此外,該證明系統還必須證明標準配置 OP Stack 鏈的兩個區塊之間狀態轉換,從而證明其在實踐中是可行的。 除了證明 ISA 的標準執行軌跡外,對防錯程式的支援還引入了額外的要求 [2] 。

具體來說,防錯程式引入了 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

参考文章:https://mp.weixin.qq.com/s/ezSpKkoUoyFtoYd2cLoOzw

免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 本文內容僅用於資訊分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。