
作者: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 的情況)。
如果我們將通過模塊化堆棧實現的水平擴展與分片提供的水平擴展相結合,我們將獲得可用計算能力的大幅增加。
區塊鏈可擴展性的最終目標將合併水平和垂直擴展, 從而產生具有並行虛擬機的分片區塊鏈。