作者:Avi Zurlo 來源:nil 翻譯:善歐巴,金色財經
自從Rollups 興起以來,區塊鏈擴展一直集中在模組化與整體式的爭論上。最初,這種二分法是推理區塊鏈可擴展性的有用心理模型,但兩個陣營都已經超越了它。
如今,模組化與整體式的對比為我們的可擴展性思維模型帶來了不必要的限制。
那麼,還有什麼選擇呢?
在本文中,我們展示了水平與垂直擴展始終是區塊鏈可擴展性的基礎框架,並解釋了採用水平與垂直如何帶來更好的擴展解決方案。
了解模組化與整體式
首先,一些定義:
模組化 鏈將區塊鏈的核心功能分為不同的層。
單片鏈將所有核心功能整合到一個互連的層中。
我們可以將「層」視為等同於「機器」-整體鏈有一個運行所有任務的驗證器節點,而模組化鏈有多個(2-3)個運行不同任務的全節點。
例如,Rollup 通常有兩個操作節點:用於執行的Rollup 全節點和用於結算+ 資料可用性(DA)的以太坊全節點。 validium 可能會利用三個操作節點:用於執行的Rollup全節點、用於結算的以太坊全節點以及用於DA 的替代資料可用性層全節點。
模組化將區塊鏈的任務劃分為至少兩個全節點。透過這樣做,模組化區塊鏈在建立每個區塊時可以利用多台機器的運算能力。
這是水平縮放的一種形式 。
模組化對於考慮區塊鏈擴展很有用,因為它是一種水平可擴展性。
另一方面,大多數單一陣營選擇透過軟體優化、實現平行虛擬機器、資料管道、更快的網路協定和(最值得注意的是)更強大的硬體來擴展。從本質上講,單體鏈試圖從單一全節點中擠出盡可能多的運算能力。
這是垂直縮放的一種形式 。
批評者表示,這種方法趨於集中化:如果依靠增加單一節點的能力來擴展,則不可避免地會遇到底層硬體的物理限制,並被迫增加硬體要求以進一步擴展。
然而,這種批評是錯誤的,因為並非所有的整體鏈都僅僅依賴垂直擴展。
例如,Near 是一個基於分片網路架構建構的整體L1 區塊鏈。這意味著近全節點負責所有任務(即執行、結算和資料可用性), 但 它們只負責近全局狀態的一小部分。因此,Near 透過根據狀態而不是任務劃分工作來利用多台機器的力量(就像模組化鏈一樣)。
我們可以看到,整體鍊和模組化鏈在它們實現的擴展技術方面都不受限制。兩者都可以水平和/或垂直縮放。
此外,模組化與整體式的爭論始終植根於水平與垂直擴展框架。從嚴格的技術角度來看,模組化偏向水平擴展,這是其設計所固有的,而整體偏向垂直擴展。
現在我們已經成功推出了模組化鏈,額外的擴展優勢不再在於「更加模組化」。現在的焦點是鍊如何利用水平或垂直擴展技術。
採用水平與垂直心理模型使我們能夠輕鬆推理每個鏈在過程中所做的權衡。
重構對話:水平與垂直擴展
垂直拓展
垂直擴展會增加每個節點的硬體利用率或硬體需求。在區塊鏈中,這通常是透過並行虛擬機器(即多執行緒進程)等軟體優化來完成的。
這裡一個流行的例子是 EVM 與SVM。
EVM 順序執行事務,而SVM 並行執行事務。 SVM 透過利用更多的CPU 核心來實現這一點,因此SVM 每秒可以比EVM 處理更多的交易。注意:這種類型的垂直縮放是Eclipse L2 背後的基礎。
在權衡方面,垂直擴展受到可用硬體的限制,由於硬體需求的增加而趨於集中化,並且與水平擴展相比可擴展性較差。
水平拓展
另一方面, 水平擴展透過將工作負載分散到多個節點上來增加系統可以存取的機器數量。如前所述,模組化鏈本質上是將任務分配到多台機器上。然而,鏈通常可以透過分片實現更大程度的水平擴展 。
=nil;這裡提供了一個有用的例子。
去年11月,=nil;基金會推出了名為 zkSharding的可證明分片架構,它是新的以太坊L2 =nil; 的基礎。 =nil; 設計的核心是將其全域狀態分割到多個分片上。每個分片均由=nil 的去中心化委員會運作;建立區塊並管理跨分片交易的驗證者。此外,每個分片都會產生一個有效性證明,該證明會發送到主分片進行聚合,然後在以太坊上發布和驗證。 =無;透過兩種方式利用水平擴展的力量:
-
首先,=nil;是一個模組化區塊鏈,它利用以太坊的強大共識和數據可用性保證,從而將任務分佈在多個全節點上。
-
第二,=nil;是一個分片區塊鏈,因此將部分狀態分佈在許多完整節點上。
這兩種技術都減少了任何單一機器需要承受的負載,並提高了網路的整體可擴展性。
那麼,橫向擴展的權衡有哪些呢?歸結為兩點:網路和共識的複雜性以及機器或分片之間的非同步通訊。
以太坊可擴展性的最終遊戲
水平或垂直擴展均不限於模組化或整體架構。這就是為什麼水平與垂直擴展框架提供了更多空間來探索新的解決方案,使模組化區塊鏈更具可擴展性。
例如,一種選擇是垂直縮放模組化堆疊的一層。一種流行的方法是實現並行虛擬機,從而擴展執行吞吐量。如上所述,Eclipse 正在利用SVM 和其他Rollup(例如Starknet)實作BlockSTM 來實現並行化。
但是,垂直擴展總是受到單一機器的限制,我們無法打破物理定律。
一種解決方案可能是選擇透過分片進行水平擴展。
目前的模組化設計才剛開始觸及水平擴展的全部潛力。透過分片,我們可以利用任意數量機器的能力(而不是以任務分割2-3 台機器)。
換句話說,許多機器可以並行運行相同類型的任務。這就是以太坊和Celestia 希望分別透過Danksharding 和資料分片實現的目標。但是,分片本質上並不局限於資料可用性層- 它也可以與執行相結合(如=nil; L2 的情況)。
如果我們將透過模組化堆疊實現的水平擴展與分片提供的水平擴展相結合,我們將獲得可用運算能力的大幅增加。
區塊鏈可擴展性的最終目標將合併水平和垂直擴展, 從而產生具有平行虛擬機器的分片區塊鏈。