說明:本文是基於Celestia 官方教程做的筆記整理和註釋。原文: Learn Modular
編譯:《 深入探究模塊化區塊鏈》by Echoic
一、單鏈(Monolithic blockchains)
單鏈包含四個組件
- 執行層:確保所執行的交易進行正確的狀態更新。執行層必須確保被執行的交易是有效的,即交易的結果是有效的狀態機轉換。
- 結算層:確保有一個使得執行層能夠驗證證明、解決欺詐糾紛的環境,並作為執行層之間的橋樑。
- 共識層:確保交易的順序達成一致。
- 數據可用性層:確保交易數據的可用性。
單片區塊鏈在單個層上同時完成上述的所有事情。
單鏈的限制
- 低效的交易驗證:節點必須重新執行交易以檢查有效性。
- 資源約束:區塊鏈受單個節點的資源容量約束。
- 可擴展性:為了提高吞吐量,必須在一定程度上犧牲安全性或去中心化。
單鍊和模塊化區塊鏈的對比
二、模塊化區塊鏈基礎知識
(1) 模塊化區塊鍊是什麼
指將「執行層、結算層、共識層、數據可用性層」四個組件中至少一個組件完全外包給外部鏈的區塊鏈。
由於在單片鏈上為數百萬或數十億用戶提供服務過於復雜且解決能力有限,人們提出了分片和Layer2 解決方案,後來逐漸演變成模塊化區塊鏈。模塊化的實現最初方案是rollups,後來這個概念進一步擴大成模塊化區塊鏈。
模塊化區塊鏈能夠最大限度地降低運行節點的成本。
(2) 模塊化區塊鏈的第一原則
- 去中心化:模塊化區塊鏈通過降低用戶操作節點和驗證網絡的成本來優先考慮網絡安全。
- 安全:在存在惡意驗證者的情況下,去中心化的用戶網絡最終負責維護區塊鏈的安全性。
- 可擴展:擴展使模塊化區塊鏈能夠增加容量,而不會增加用戶驗證和保護網絡的成本。
如果區塊鏈可以增加它處理的交易數量,而不會增加節點驗證交易的成本,那麼它就是可擴展的。模塊化區塊鏈堆棧中使用的欺詐證明、有效性證明和數據可用性採樣等技術使節點能夠比完整節點更有效地驗證交易,同時保持同等的安全性。
可擴展性公式定義
(3) 模塊化區塊鏈的優勢
- 具有主權:儘管使用了其他層,但新的模塊化區塊鏈可以像Layer1 一樣具有主權。這允許區塊鏈在未經任何底層許可的情況下響應黑客攻擊並推送升級。
主權(Sovereignty):在代幣、協議的功能和升級、網絡和協議的治理、生態系統的建設和基礎設施具有更高的主動權
- 方便推出新的區塊鏈:由於模塊化區塊鏈不需要處理所有功能,新區塊鏈可以簡單地將現有的模塊化區塊鏈用於他們希望卸載的組件。
像Optimint 這樣的Rollups “SDK”與Cosmos SDK 相結合將有助於促進新區塊鏈的創建,而無需引導安全驗證器集
- 提高可擴展性:通過模塊化可以在不犧牲安全性或去中心化的情況下實現擴展。
(4) 關於Celestia
Celestia 與之前的區塊鏈設計不同,後者將執行作為核心功能,但Celestia 設計者認為執行是新鏈的工作(指基於Celestia 創建的新鏈來負責處理執行),而Celestia 專注於基礎層(共識和數據可用性),這樣可以從基礎層緩解單片鏈的最大瓶頸:吞吐量和狀態膨脹。
Rollups 和Celestia 的區別在於Rollups 專注於執行(無結算、共識和數據可用性層),Celestia 專注於共識和數據可用性(無執行和結算)。
數據可用性層對吞吐量的重要性:吞吐量分為數據吞吐量和交易吞吐量,數據吞吐量與數據可用性層密切相關,因為它們的主要工作是為數據提供高容量。狀態膨脹:指支付一次GAS費會讓你的數據在以太坊區塊鏈上永久保存,從而導致一個無限的、不斷增長的狀態,其中甚至有很多無用數據。
三、模塊化區塊鏈的三種架構
(1) Layer 1 & Layer 2
最初構建樸素的模塊化堆棧是為了向Layer1 提供可擴展性。在這個堆棧中, Layer1 提供所有關鍵功能,包括執行,而Layer2 只專注於執行。 Layer1 允許Layer2 發佈區塊,同時充當連接Layer2 的樞紐。
在大多數情況下, Layer2 的容量也取決於Layer1 的容量。因此, Layer1 和Layer2 堆棧的這種實現對於可擴展性來說不是最理想的。
(2) 執行、結算和數據可用性
優化模塊化區塊鏈堆棧可以提供的更多好處,通過模塊化區塊鏈將各個功能解耦:
- 執行層
- 應用程序所在的環境和執行狀態更改的環境,位於模塊化堆棧的頂部,其作用與Layer2 相同。
- 結算層
- 執行層的可選中心,用於驗證證明、解決欺詐糾紛。用於在執行層和結算層之間建立信任最小化橋樑,並提供了一種執行層之間相互連接的方式。
- 執行層可以選擇將其完整的區塊發佈到結算層,之後結算層將構建自己的區塊,包括來自執行層的交易,並將交易數據發佈到共識和數據可用性層。這只是結算層在模塊化堆棧中發揮作用的多種方式之一。
- 因為沒有執行功能,所以結算層只發布交易數據,而不是整個區塊的內容。
信任最小化橋樑:兩個區塊鏈之間的橋樑不需要中間人、委員會或誠實的多數假設來確保資金不會被盜。例子是以太坊和建立在其之上的Rollups 之間的橋樑。
- 共識和數據可用性層
- 共識就交易順序達成一致,數據可用性驗證交易數據是否可供下載。在多數情況下這兩層之間互相協作,例如專門研究數據可用性的模塊化區塊鏈需要達成共識才能對數據進行排序,否則無法確定數據的歷史記錄。
(3) 執行和數據可用性
在前兩個模塊化堆棧中,執行層只專注於執行,並將剩餘的功能卸載到其他層。然而,由於模塊化區塊鏈的用途很靈活,因此執行層不僅限於將其塊發佈到結算層。例如,可以創建一個不涉及結算層的模塊化堆棧,只涉及共識和數據可用性層之上的執行層。
由於不涉及結算層,因此只有數據可用性層負責為交易排序和數據可用性提供安全性。這使執行層能夠獲得將共識與執行分離的全部可擴展性優勢,因為沒有中間層將交易數據轉發到基礎層(共識和數據可用性層)。
四、模塊化結算層
由於模塊化區塊鏈僅處理一部分功能,因此可以進行更多的解耦,比如解耦出結算層,可以通過模塊化區塊鏈進行結算層的優化和專業化。
模塊化堆棧中的結算層可以專注於結算,同時將其餘組件(如共識和數據可用性)外包給其他模塊化區塊鏈。通過引入欺詐或有效性證明,結算層可以增強輕客戶端的安全性,允許他們驗證有效或無效塊。
結算層為rollups 提供的功能
- Proof Verification 和Dispute Resolution:rollups 發布其證明以供外部驗證的地方,這對於依賴交互式欺詐證明的OP-Rollups 特別有用。
- 促進橋接的中心:如果rollups 通過一個共同的結算層,它們可以相互橋接。
- 流動性來源:存在於同一個結算層的流動性可以被頂部的所有rollups 使用。
模塊化堆棧中的結算
五、模塊化可擴展性
站在可擴展性的角度,可以進行執行層、數據可用性層、結算層的模塊化劃分。
1. 執行層
Rollups 本身就是一種區塊鏈,將其塊發佈到基礎層以確保有效性和數據可用性。隨著時間的推移,出現了兩種主要的Rollup 設計,optimistic 和zk-rollups。
(1) Optimistic Rollups
Optimistic Rollups 將其區塊發佈到基礎層,基礎層接收區塊並樂觀地假設交易是正確的。為了允許在懷疑區塊無效的情況下挑戰Rollups 塊,提供了一個爭議窗口(dispute window),如果一個塊受到挑戰,則使用欺詐證明(fraud proof)來驗證它是否無效。一旦爭議窗口關閉,就不能對區塊提出挑戰。
Optimistic Rollups 提供的可擴展性:
- 將執行從Layer1 移走,一旦交易在Optimistic Rollups 上執行, Layer1 就不需要重新執行它們,因為它們自動被假定為正確的,從而減輕了Layer1 執行的負擔。
- 減輕Layer1 的狀態增加。通過將應用程序和交易轉移到不同的鏈上, Layer1 可以降低其狀態增長的速度。大量的狀態增加會增加對節點的硬件要求,這會對去中心化產生負面影響。
(2) ZK-Rollups
對於發佈到Layer1 的每個Rollups 區塊都會附帶一個有效性證明(validity proof),以證明該區塊的正確性。一旦驗證了有效性證明,交易就被認為是最終的,不需要爭議窗口來判斷Rollups 區塊的有效性。
ZK-Rollups 提供的可擴展性:
- 減輕Layer1 的執行瓶頸和狀態增長,提供與Optimistic rollups 類似的可擴展性優勢。此外,ZK-Rollups 還通過使用有效性證明為計算驗證提供可擴展性。
- 在大多數區塊鏈中,區塊生產者執行交易並將它們放入一個區塊中,隨後由節點重新執行以驗證正確性。有效性證明允許節點有效地驗證交易而無需重新執行它們——它們只需驗證有效性證明。
2. 數據可用性層
通過分離共識和執行,數據可用性層也可以進行可擴展性優化,而不受提供結算層功能的限制。關鍵技術是數據可用性採樣,通過多輪抽樣小隨機塊,它允許節點無需下載整個塊來驗證可用,從而減少輕節點的帶寬。
3. 結算層
現在的結算層仍然承受著應用程序及其相應的基於用戶的交易活動的負擔,這導致結算層擠滿了來自個人用戶和執行層的交易。結算層可以使用與執行層和數據可用性層相同的技術進行擴展,但目前結算層的擴展效果還不理想。
六、創建新的區塊鏈
隨著Cosmos SDK 及其相應的共識引擎Tendermint 等SDK 的興起,與之前的區塊鏈相比,現在已經可以更輕鬆地創建新的區塊鏈,而區塊鏈創建的下一次演變將由模塊化架構實現。例如,一個新的區塊鏈將能夠使用SDK 創建,並且能夠立即使用現有的模塊化區塊鏈。新的區塊鏈可以使用在數據可用性層之上啟動的結算層,由於執行層不需要共識機制,因此它們不需要大量的驗證集或進行代幣分配。新的區塊鏈將能夠毫不費力地啟動,而無需花費大量時間或金錢成本。
在數據可用性層上啟動結算層的區塊鏈像獨立的區塊鏈一樣具有主權,而結算層之上的Rollups 不具有主權,它們依賴結算層來驗證他們的交易。
原始的Rollups 類型的執行層在部署到結算層時,需要對以太坊虛擬機進行兼容。而現在解耦了數據可用性層,可以不處理來自執行層的任何交易或狀態更新,僅發布原始交易數據,使得新的Rollups 可以很快地部署到沒有兼容限制的數據可用性層。
主權區塊鏈(Sovereign blockchain):通過社會共識對自身及其應用進行獨立控制的區塊鏈。主權鏈有能力應對黑客攻擊並推動升級。
附錄
現有模塊化區塊鏈的產品