深入了解模塊化區塊鏈
作者: Alec Chen
來源: Volt Capital
“模塊化區塊鏈”的想法正在成為圍繞可擴展性和區塊鏈基礎設施的一種分類定義敘事。
這個理論很簡單:通過分解layer 1區塊鏈的核心組件,我們可以在單個層上進行100倍的改進,從而產生一個更可擴展、可組合和去中心化的系統。在我們詳細討論模塊化區塊鏈之前,我們必須了解現有的區塊鏈架構以及區塊鏈當前應用面臨的限制。
來源: Ethereum Foundation
什么是區塊鏈?
我們簡要回顧一下區塊鏈的基礎知識。區塊鏈中的區塊由兩個組件組成:區塊頭和與之關聯的交易數據。區塊通過“完整節點”進行驗證,“完整節點”解析並計算整個區塊數據,以確保交易是有效的,用戶發送的幣不會超過他們的账戶余額。
讓我們簡要概述組成區塊鏈的功能“層”。
執行層
交易和狀態更改最初在這裏處理。用戶通常還通過這一層與區塊鏈進行交互,包括籤署交易、部署智能合約和轉移資產。
解決層
解決層是驗證rollup執行和解決爭議的地方。這一層在整體鏈中不存在,是模塊化堆棧的可選部分。與美國法院系統類似,可以把解決層想象成美國最高法院,為糾紛提供最終仲裁。
共識層
區塊鏈的共識層通過全節點下載和執行區塊內容的網絡提供排序和最終性,並就狀態轉換的有效性達成共識。
數據可用性層
驗證狀態轉換是否有效所需的數據應該發布並存儲在這一層。在惡意區塊生產者保留交易數據的攻擊事件中,這應該很容易驗證。數據可用性層是區塊鏈可擴展性三難困境的主要瓶頸,稍後我們將探討其原因。
例如,以太坊是單片區塊鏈,這意味着基礎層處理上面提到的所有組件。
來源: ResearchGate
區塊鏈目前面臨一個被稱為“區塊鏈可擴展性三難困境”的問題。與分布式系統的布魯爾定理類似,區塊鏈體系結構通常在去中心化、安全性或可擴展性方面做出妥協,以便為其他兩個方面提供強有力的保證。
安全是指網絡在受到攻擊時的運行能力。這一原則是區塊鏈的核心原則,永遠不應該妥協,所以真正的權衡通常是在可擴展性和去中心化之間。
讓我們在區塊鏈系統的語境中定義去中心化:為了讓區塊鏈去中心化,硬件需求不能成為參與的限制,驗證網絡的資源需求應該很低。
可擴展性是指區塊鏈的吞吐量除以其驗證成本:即區塊鏈處理不斷增加的交易量,同時保持較低的驗證資源需求的能力。有兩種主要方法可以提高吞吐量。首先,可以增加區塊的大小,從而增加區塊中可以包含的交易的容量。不幸的是,更大的區塊大小導致網絡中心化,因為運行完整節點的硬件需求增加,以響應更高的計算輸出需求。特別是單片區塊鏈,由於吞吐量的增加與驗證鏈的成本增加相關,導致去中心化程度降低,因此會遇到這個問題。其次,你可以將執行移出鏈,將計算的負擔從主網絡上的節點轉移出去,同時利用允許驗證鏈上計算的證明。
通過模塊化架構,區塊鏈有可能通過關注點分離原則开始解決區塊鏈可擴展性三難問題。通過模塊化的執行和數據可用性層,區塊鏈能夠擴展吞吐量,同時通過打破計算和驗證成本之間的相關性,維護使網絡不可信和去中心化的屬性。讓我們通過引入錯誤性證明(Fault Proofs)、Optimistic Rollup以及它們與數據可用性問題的關系來探討如何實現這一目標。
錯誤性證明與Optimistic Rollup
V神在《Endgame》一文中表示,中心化和去中心化之間的一個可能的妥協是,為了可擴展性的目的,區塊生產的未來集中於池和專門的生產者,而重要的事,區塊驗證(讓生產者誠實)要保持去中心化。這可以通過將區塊鏈節點拆分為完整節點和輕客戶端來實現。與此模型相關的有兩個問題:區塊驗證(驗證計算是否正確)和區塊可用性(驗證所有數據是否已經發布)。讓我們首先探索它在區塊驗證中的應用。
全節點下載、計算和驗證區塊中的每個交易,而輕客戶端只下載區塊頭並假定交易是有效的。然後,輕客戶端依賴完整節點生成的錯誤性證明來進行交易驗證。這反過來又允許輕客端自主地識別無效交易,使它們能夠在幾乎與完整節點相同的安全保證下運行。默認情況下,輕客戶端假定狀態轉換是有效的,並且可以通過接收錯誤性證明來質疑狀態的有效性。當一個節點的狀態受到錯誤性證明的挑战時,通過一個完整節點重新執行相關交易來達成共識,從而削減不誠實節點的權益。
來源: https://ethereum.org/en/developers/docs/scaling/optimistic-rollups/
輕客戶端和錯誤性證明模型在誠實的少數假設下是安全的,即至少存在一個誠實的完整節點,並且提交錯誤性證明的鏈處於完整狀態。這個模型特別適用於分片的區塊鏈(比如合並後的以太坊架構),因為驗證器可以選擇在一個分片上運行完整節點,在其他分片上運行輕客戶端,同時在所有分片上維護N個安全保證中的1個。
Optimistic Rollup利用這個模型安全地將區塊鏈執行層抽象為定序器,這是一種功能強大的計算機,捆綁並執行多個交易,並定期將壓縮的數據發送回父鏈。將這個計算移出鏈(相對於父鏈)可以使交易吞吐量增加10-100倍。我們怎么能相信這些鏈下定序器是善意的呢?我們引入了債券和代幣,操作人員必須持有它們來運行定序器。由於定序器將交易數據發送回父鏈,我們可以使用驗證器(檢查父鏈及其rollup之間的狀態不匹配的節點)來發布錯誤證明,並隨後削減惡意定序器的利益。因為Optimistic Rollup利用了錯誤性證明,所以它在網絡中存在一個可靠的驗證者的假設下是安全的。這種錯誤性證明的使用就是Optimistic Rollup的由來——假定狀態轉換是有效的,直到在解決層處理的爭議期間被證明有效。
這就是我們在最小化信任的同時擴容的方法:允許計算變得中心化,同時保持對計算的驗證是去中心化的。
數據可用性問題
錯誤性證明是解決去中心化區塊驗證的有效工具,而完整節點則依賴於區塊可用性來生成錯誤性證明。惡意的區塊生產者可能選擇只發布區塊頭,保留部分或全部對應數據,從而阻止完整節點驗證和識別無效交易,從而生成錯誤性證明。對於完整節點來說,這種類型的攻擊是微不足道的,因為它們可以輕松地下載整個區塊,並在注意到不一致或保留數據時離开無效鏈。但是,輕客戶端將繼續跟蹤潛在無效鏈的區塊頭,從完整節點分叉。(請記住,輕客戶端不會下載整個區塊,並假定狀態轉換在默認情況下是有效的。)
這是數據可用性問題的本質,因為它與錯誤性證明有關:輕客戶端必須確保所有交易性數據在驗證之前在一個區塊中發布,這樣,完整節點和輕客戶端必須自動就規範鏈的同一個區塊頭達成一致。
解決方案
看起來我們又回到原點了。輕客戶端如何確保不違背輕客戶端的初衷,在不需要中心化硬件、不下載整個區塊的情況下釋放區塊中的所有交易數據?
實現這一點的一種方法是通過一種稱為糾刪碼的數學原語。通過復制一個區塊中的字節,糾刪碼可以重建整個區塊,即使有一定比例的數據丟失。該技術被用於執行數據可用性抽樣,允許輕客戶端通過隨機抽樣區塊的一小部分來概率地確定區塊的整體已發布。這允許輕客戶端確保所有的交易數據都包含在一個特定的區塊中,然後才接受它有效,並遵循相應的區塊頭。然而,對於這種技術有一些注意事項:數據可用性抽樣具有很高的延遲,與誠實的少數假設相似,安全保證依賴於有足夠的輕客戶端執行抽樣,從而能夠概率地確定區塊的可用性。
數據可用性抽樣的簡化模型
有效性證明和零知識Rollup
去中心化區塊驗證的另一個解決方案是,在狀態轉換時不需要交易數據。與此相反,有效性證明比錯誤性證明更悲觀。通過消除爭議過程,有效性證明可以保證所有狀態轉移的原子性,但需要對每個狀態轉移都進行證明。這是通過利用新的零知識技術SNARKs和STARKs完成的。與錯誤性證明相比,有效性證明需要更多的計算強度來換取更強的狀態保證,影響可擴展性。
零知識證明是利用有效性證明而不是錯誤性證明進行狀態驗證的證明。它們遵循一個類似於Optimistic Rollup的計算和驗證模型(盡管模式是有效性證明而不是錯誤性證明),通過定序器/驗證器模型,定序器處理計算,驗證器生成相應的證明。例如,Starknet在啓動過程中使用了中心化定序器,並在路线圖上逐步去中心化开放定序器和驗證器。由於定序器上的脫鏈執行,零知識rollup(ZK rollup)的計算本身是不受控制的。然而,由於這些計算的證明必須在鏈上驗證,最終性仍然是證明生成的瓶頸。
需要注意的是,使用輕客戶端進行狀態驗證的技術只適用於錯誤性證明架構。由於通過有效性證明保證狀態轉換是有效的,因此節點驗證區塊不再需要交易數據。然而,有效性證明的數據可用性問題仍然存在,而且更加微妙:盡管狀態得到了保證,但有效性證明的交易數據仍然是必要的,這樣節點才能夠更新並服務於向最終用戶的狀態轉換。因此,利用有效性證明的rollup仍然受制於數據可用性問題。
我們發展到哪裏了
回想一下V神的論點:所有的道路都通向中心化的區塊生產和去中心化的區塊驗證。雖然我們可以通過區塊生成器硬件的進步指數級地提高rollup吞吐量,但真正的可擴展性瓶頸是區塊可用性,而不是區塊驗證。這引出了一個重要的見解:無論我們使執行層多么強大,或者我們使用什么證明模型,我們的吞吐量最終都會受到數據可用性的限制。
我們目前確保數據可用性的一種方法是在鏈上發布區塊鏈數據。Rollup實現利用以太坊主網作為數據可用性層,定期在以太坊上發布所有的rollup區塊。這種臨時解決方案面臨的主要問題是,以太坊當前的架構依賴於通過下載整個區塊來保證數據可用性的完整節點,而不是輕客戶端執行數據可用性抽樣。當我們增加區塊大小以獲得額外的吞吐量時,這不可避免地會導致對完整節點驗證數據可用性、中心化網絡的硬件需求增加。
在未來,以太坊計劃轉向利用數據可用性採樣的分片架構,由完整節點和輕客戶端組成,從而確保網絡安全。(注:以太坊分片技術上使用KZG承諾而不是錯誤性證明,但數據可用性問題是相關的。)然而,這只能解決部分問題:Rollup架構面臨的另一個基本問題是,rollup區塊作為calldata轉儲到以太坊主網。這就帶來了後續的問題,因為大規模使用calldata成本高昂,不管rollup交易批處理大小如何,都會以每字節16 gas的成本對L2用戶造成阻礙。
Validium是另一種提高可擴展性和吞吐量同時保持數據可用性保證的方法:可以將顆粒級交易數據(相對於原始數據)發送到數據可用性委員會、PoS守護者或數據可用性層。通過將數據可用性從以太坊calldata轉移到鏈下解決方案,Validium繞過了與增加rollup使用量相關的固定字節gas成本。
Rollup架構還帶來了一種獨特的見解,即區塊鏈本身不需要提供執行或計算,而只需要排序區塊並保證這些區塊的數據可用性的功能。這是Celestia背後的設計原則,這是第一個模塊化區塊鏈網絡。Celestia以前被稱為LazyLedger,一开始是一個“惰性區塊鏈”,將執行和驗證留給其他模塊化層,只專注於通過數據可用性抽樣為交易排序和數據可用性保證提供數據可用性層。中心化的區塊生產和去中心化的區塊驗證器是Celestia設計的核心前提:即使是手機也能作為一個輕客戶端參與,確保網絡安全。由於數據可用性抽樣的特性,將rollup插入到Celestia作為數據可用性層能夠支持更高的區塊大小(也就是吞吐量),因為Celestia輕節點的數量在增長,同時保持相同的概率保證。
現在的其他解決方案包括StarkEx、zkPorter和Polygon Avail。StarkEx是目前唯一用於生產的Validium。無論如何,大多數有效性都包含對數據可用性源的信任的隱含假設,無論這是通過可信的委員會、守護者還是通用的數據可用性層進行管理。這種信任也表明,惡意操作者可以阻止用戶資金被提取。
目前的進展
Celestium架構
模塊化區塊鏈架構是當前加密領域中備受爭議的話題。由於與碎片化解決方案和數據可用層相關的安全問題和額外的信任假設,Celestium提出的模塊化區塊鏈架構的設想遭到了重大挫折。
與此同時,區塊鏈堆棧的所有方面都取得了重大進展:Fuel Labs正在執行層开發並行化虛擬機,而Optimism團隊正在研究分片、激勵驗證和去中心化定序器。Hybrid Optimistic和零知識解決方案也在开發中。
以太坊合並後的發展路线圖包括統一解決層和數據可用層的計劃。具體來說,Danksharding是以太坊路线圖中一個有前景的开發,旨在將以太坊L1數據碎片和區塊空間轉換和優化為“數據可用性引擎”,從而允許L2 rollup實現低成本、高吞吐量的交易。
Celestia的無主見架構還允許廣泛的執行層實現將其用作數據可用層,為WASM、Starknet和FuelVM等替代的非EVM虛擬機奠定基礎設施。這種用於各種執行解決方案的共享數據可用性允許开發人員在Celestia集群之間創建信任最小化的橋梁,解鎖跨鏈和跨生態系統的可組合性和互操作性,就像在以太坊和它的rollup之間可能實現的那樣。
由Starkware首創的Volitions為鏈上和鏈下的數據可用性困境引入了一個創新的解決方案:用戶和开發人員可以選擇使用Validium將交易數據發送到鏈下,或者保持交易數據在鏈上,每個都有其獨特的優點和缺點。
此外,Layer 2解決方案的使用和普及开啓了layer 2: 分形擴展(fractal scaling)。分形擴展允許將特定於應用程序的rollup部署在layer 2——开發人員現在可以在部署應用程序時完全控制其基礎設施,從數據可用性到隱私。部署在layer 3還可以解鎖所有layer 3應用程序在layer 2上的互操作性,而不是像應用程序特定的主權鏈(例如Cosmos)那樣昂貴的基鏈。
與web基礎設施從內部部署的服務器進化到雲服務器類似,去中心化的web正在從單片區塊鏈和豎井式共識層進化到模塊化、特定於應用程序的共享共識層鏈。無論哪種解決方案和應用最終會流行起來,有一點是明確的:在模塊化的未來,用戶將是最終的贏家。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
coincaso
文章數量
3500粉絲數
0