區塊鏈的模塊化趨勢
站在2022年的當下看Crypto的發展趨勢,在這個時候去做一個L1新公鏈難免有點牽強,模塊化區塊鏈的敘事不可忽視。
The Merge之後,Ethereum的發展路線越來越傾向於模塊化區塊鏈(Modular Blockchain)的方向。模塊化區塊鏈與單片區塊鏈(Monolithic Blockchain)的區別主要在於:單片區塊鏈在一個基礎共識層同時實現執行、結算、共識和數據可用性四個功能,而模塊化區塊鏈則分為多個模塊負責這些功能實現。事實上,並非只有以太坊在規劃模塊化的架構:最早提出模塊化區塊鏈思路的Celestia正基於Cosmos生態為Rollups搭建一個數據可用性層;Tezos也正在擁抱以Rollup為中心的路線圖;NEAR也正在對數據可用性分片進行設計。本文主要討論以太坊的模塊化趨勢。
以太坊的擁堵現狀,已經反映了單片區塊鏈的弊端——可擴展性差、不可定制、費用高。單片區塊鏈的問題在於:在共識層必須執行許多不同的任務,並且僅針對其中一項功能進行優化無法有效提高區塊鏈的性能。形像地說,單片區塊鏈就像一個由4塊木板構成的木桶,它的容量(性能)取決於最短的那根,只要有一個屬性短板整體性能就有短板,而“區塊鏈不可能三角”又限制了所有屬性同時實現極致發展的可能,所以單純地基於單片區塊鏈的思路做擴容是無法解決以太坊的困境的。
模塊化混合擴容:layer1(data sharding)+layer2(rollups)
實際上模塊化區塊鏈本質上是一種混合擴容的方案。在第六屆區塊鏈全球峰會上,Vitalik的演講主題是《以太坊第二層協議生態的崛起》,會上Vitalik認為以太坊生態系統中不單純是Layer1擴容或者Layer2擴容,採取的是混合擴容的方式。而模塊化區塊鏈的本質就類似layer1和layer2混合擴容。
以太坊的模塊化架構
以太坊的模塊化架構設計主要分為四層:執行層、結算層、共識層、數據可用性層。目前很多情況下,行業內也會把執行層和結算層統一稱執行層,共識層和數據可用性層統一稱為共識層。
執行層(Execution Layer):負責處理鏈上交易、執行鏈上訂單並驗證轉賬和智能合約的執行,主要將以Rollup為主。模塊化區塊鏈發展到一定階段後,用戶通常是基於執行層與區塊鏈進行交互,包括簽名交易、部署智能合約以及轉移資產等。執行層解決了區塊鏈的可擴展性。
結算層(Settlement Layer):結算層用於驗證Rollup等執行層的執行結果以及解決爭議,並結算出狀態承諾。
共識層(Consensus Layer):共識層通過全節點網絡下載和執行區塊的內容,就狀態轉換的有效性達成共識,從而提供排序和最終確定性,並以PoS機制驗證出塊。
數據可用性層(Data Availability Layer):保證交易數據可以被使用(保證存儲且可驗證與可用)。需要將驗證狀態轉換有效性所需的數據發布並存儲在這一層,一旦遭遇惡意區塊提議者扣留交易數據的事件,數據可用性層的數據可用作驗證。
在The Merge後可預見的短中期階段,以太坊的結算層、共識層和數據可用性層是統一的。未來的Danksharding將會把以太坊L1的數據分片(Data Sharding)轉變為數據可用性引擎、信標鏈作為共識層、原來的以太坊主網成為一個執行層,更多的執行層則是L2的Rollups。此外,在目前L2的基礎上,行業裡已經開始探索定制化的L3也將是執行層的擴展。
如果說當下的以太坊還只是理論性“世界計算機”,那麼模塊化區塊鏈則是以太坊成為“世界計算機”的工程化方案。
以太坊接下來的規劃
眾所周知,The Merge是關於從PoW轉換為PoS,Beacon Chain和原以太坊主鏈合併。 The Merge之外,以太坊其實還同時並行推進著The Surge、The Verge、The Purge、The Splurge。這些升級的推出順序尚不確定,因為它們是相互獨立、平行進行的。
The Surge是關於引入分片,屆時將允許以太坊網絡通過分片來實現大規模擴展。
The Verge是關於Verkle Trees,以幫助優化以太坊上的存儲並幫助減少節點大小。這次升級將致力於通過Verkle Trees優化存儲,這是一種數學證明,是Merkle Trees的升級。通過減少驗證者需要在其電腦上存儲的數據量來運行操作,節點規模將縮小,並允許更多用戶成為驗證者。這將進一步使網絡去中心化,提高安全性。
The Purge將減少驗證者所需的硬盤空間,因為消除了歷史數據和技術債務。這意味著存儲簡化,從而減少網絡擁堵。
The Splurge是對以太坊網絡的一系列微調,包含各種較小的升級,讓以太坊網絡更絲滑。
Vitalik表示,以太坊在完成以上5個關鍵階段後可以實現10萬TPS,真正成為他當初設想的“世界計算機”。
以上五個並行的關鍵階段的命名雖然押韻,但可能還是挺難理解以太坊在未來三四年的具體規劃。如果把其中的更關鍵更具體的升級事件拎出來講,也許更能看清以太坊的模塊化趨勢:
1、Proto-danksharding(EIP-4844)
Proto-danksharding是一個提議,用於實現構成完整Danksharding規範的大部分邏輯和基礎規則(例如:交易格式、驗證規則等),但這個階段尚未實現任何分片。在Proto-danksharding階段,所有驗證者和用戶仍然必須直接驗證完整數據的可用性。
Proto-danksharding引入的主要特徵是新的交易類型,稱為“攜帶blob的交易”。攜帶blob的事務類似於常規事務,主要區別是它還攜帶一個稱為blob的額外數據。 Blob大概128kb,比類似大小的Calldata便宜很多。但是EVM執行無法訪問blob數據,EVM只能查看對blob的承諾。
目前以太坊的區塊大小是由Gas容量決定,在EIP-4844實施後Blob的數量將會成為決定區塊大小的另一個維度。 Blob是一種二元數據結構,大小約為128kb,以太坊區塊對每個區塊中可以容納的Blob做了限制,目標Blob數量是8個,最大可以為16個,因此每個區塊將額外增加1-2MB(128*8-128*16)的存儲空間。
Blob主要用於存儲Layer2的數據,在此之前Layer2數據的存儲是通過Calldata實現的。在引入Blob後,區塊內可用於存儲的空間將得到大幅增加。但由於Blob數據較大,如果每個區塊額外增加1MB的Blob數據,那麼以太坊區塊鏈一個月就會多出數TB的數據,為了解決數據量快速增加的問題,這些Blob數據將會採取離線存儲的方式,而且30天后會自動刪除。
由於Blob的數據沒有與現有以太坊交易的Gas使用量競爭,因此仍然可以獲得很顯著的擴容效果。如果要比較簡單地理解Proto-Danksharding的這個EIP-4844提議,可以理解為——以太坊layer1在保持1MB的區塊大小的基礎上,通過採取30天短期、離線存儲的方式以Blob這種形式來存儲Layer2的數據,以此實現擴容效果。
2、Danksharding
Danksharding是為以太坊提出的新分片設計。以前計劃的分片是狀態分片(State Sharding),後來決定以Rollups為中心的路線圖,實施layer1(data sharding)+layer2(rollups)模塊化混合擴容方案後,實施的是數據分片(Data Sharding)。數據分片本質上是模塊化區塊鏈的思路,將以太坊分成多個數據分片,每個數據分片連接一個或多個Rollup,Rollup作為執行層,以太坊作為共識層和數據可用性層。
Danksharding引入的核心機制主要:PBS和DAS。
PBS(Proposer builder separation)是指構建區塊時區塊提議者(Proposer)和區塊構建者(builder)分離。由Proposer提議區塊,Builder競拍交易的排序權併計算區塊頭,Proposer根據Builder的計算結果打包交易並將區塊頭寫入區塊完成出塊。在PBS之前的區塊提議者(Merge前是Miner,Merge後是Validator)可以通過查看mempool中有哪些交易並採取一些策略來獲得MEV的機會以最大化他們的挖礦收益。引入PBS機制後,這種角色分離機制結合Builder排序權的競拍機制可以一定程度上解決MEV問題,最後的MEV收益相當於會被全網驗證者共享。除此之外,PBS還有助於解決分片與信標鏈的同步問題、以太坊網絡的抗審查問題等。
DAS(數據可用性抽樣,Data Availability Sampling)是解決區塊鏈狀態爆炸的有效方法。讓驗證節點檢查區塊可用性,通過使用DAS檢查,輕客戶端可以通過僅下載一些隨機選擇的塊來驗證一個塊是否已發布。由於DAS可以對區塊數據做並行化驗證,所以未來數據分片(Data Sharding)的數量即使很多,也不會增加單個驗證節點的負擔,反而會刺激更多驗證節點加入,從而保證驗證節點的充分去中心化。
最終,Danksharding能夠通過PBS實現以太坊的中心化出塊,通過DAS實現去中心化驗證,並且具備一定程度的抗審查性,從而確保以太坊成為可擴展的共識層和數據可用性層,並且能夠承接住執行層的更多Rollups。 (PS:中心化出塊、去中心化驗證也是Vitalik在Endgame中提出的對以太坊未來發展的構想。)
總結
我其實一直覺得以太坊創始團隊是很有情懷的,有很多細節讓我覺得他們會不忘初心、砥礪前行。
在以太坊歷次升級中,有三個升級讓我印象深刻,分別是:437萬區塊高度的拜占庭硬分叉、728萬區塊高度的君士坦丁堡硬分叉、906.9萬區塊高度的伊斯坦布爾網絡升級。
很有意思的是,拜占庭、君士坦丁堡和伊斯坦布爾是同一個城市。這個城市橫跨歐亞,北瀕金角灣、南臨馬爾馬拉海、東與小亞西亞半島隔海相望、只有西邊與陸地相連。拿破崙曾對這座城市慷慨陳詞:“如果世界是一個國家,他的首都一定是伊斯坦布爾”。這座古城因為以太坊的緣故,與區塊鏈世界構建了微妙的聯繫,這三次升級的命名也傳遞了一種訊息——以太坊始終如一。
也許以太坊的模塊化區塊鏈之路不會走得那麼快,但可以確定的是,無論大主題的The Merge、The Surge、The Verge、The Purge、The Splurge等旨在實現10萬TPS的五階段,還是具體的關鍵升級Proto-danksharding、Danksharding,最終目的都是要推動以太坊實現“世界計算機”的初衷。
參考文章:
https://notes.ethereum.org/@vbuterin/proto_danksharding_faq
https://vitalik.ca/general/2021/12/06/endgame.html