以水平擴展為主體的模組化區塊鏈架構,以及以垂直擴展為主體的單體區塊鏈架構真的是我們對區塊鏈終極型態的想像嗎,或許將兩者結合才是最好的解答。 本文源自 Avi Zurlo 所著文章《Modular vs. Monolithic Is Dead》,由 Block Unicorn 整理、編譯及撰稿。
(前情提要:加密市場Q2展望:看漲比特幣,重點關注再質押、AI 與模組化賽道 )
(背景補充:在模組化戰局中,NEAR DA 能成為終級解決方案? )
自從 Rollups 的興起以來,區塊鏈的擴展套件一直集中在模組化與單體化的爭論上。最初,這種二元對立是一種有用的思維模型,用於推理區塊鏈的可擴展套件性,但是現在,這兩個陣營都已經超越了它。
如今,模組化與單體化的對比給我們的可擴展套件性思維模型帶來了不必要的限制。
那麼,還有什麼替代方案呢?
在本文中,我們將展示水平擴展套件與垂直擴展套件一直是區塊鏈可擴展套件性的基本框架,並解釋採用水平擴展套件與垂直擴展套件如何帶來更好的擴展套件解決方案。
理解模組化 vs. 單體化
首先,是一些定義:
- 模組化 鏈將區塊鏈的核心功能分離為不同的層。
- 單體化 鏈將所有核心功能整合到單一的、相互連線的層中。
我們可以將 「層」 視為 「機器」—— 單體化鏈有一個執行所有任務的單一驗證器節點,而模組化鏈有多個(2-3 個)執行不同任務的全節點。
例如,Rollup 通常有兩個執行節點:一個用於執行的 Rollup 全節點,以及一個用於結算 + 資料可用性(DA)的以太坊全節點。而 validium 可能會利用三個執行節點:一個用於執行的 Rollup 全節點,一個用於結算的以太坊全節點,以及一個用於 DA 的備用資料可用性層全節點。
模組化將區塊鏈的任務分配到至少兩個全節點上。通過這樣做,模組化區塊鏈在構建每個區塊時可以利用多臺電腦的計算能力。
這是 水平擴展套件 的一種形式。
模組化在思考區塊鏈擴展套件性時很有用,因為它是一種水平擴展套件的型別。
另一方面,大多數單體化陣營選擇通過軟體優化、實現並行虛擬機器、資料管道、更快的網路協議和(最值得注意的是)更強大的硬體來擴展套件。從本質上講,單體化鏈試圖從單個全節點中提取儘可能多的計算能力。
這是 垂直擴展套件 的一種形式。
批評者認為,這種方法趨於集中化:如果依靠增加單個節點的功率來擴展套件,則不可避免地會遇到底層硬體的物理限制,並被迫增加硬體要求以進一步擴展套件。
然而,這種批評是不正確的,因為並非所有的單體化鏈都只依賴於垂直擴展套件。
例如,Near 是一個基於分片網路架構構建的單體化 L1 區塊鏈。這意味著 Near 的全節點負責所有任務(即執行、結算和資料可用性),但它們只負責 Near 全域性狀態的一小部分。因此,Near 通過根據狀態而不是任務來分配工作,從而利用了多臺電腦的計算能力(就像模組化鏈一樣)。
我們可以看到,無論是單體化鏈還是模組化鏈,在它們實現的擴展套件技術方面都沒有限制。兩者都可以進行水平擴展套件和 / 或垂直擴展套件。
此外,模組化與單體化的爭論始終植根於水平與垂直擴展套件的框架中。從嚴格的技術角度來看,模組化傾向於水平擴展套件,這是其設計所固有的,而單體化則傾向於垂直擴展套件。
現在我們已經成功推出了模組化鏈,額外的擴展套件優勢不再在於 「更加模組化」。 現在的焦點是鏈如何利用水平或垂直擴展套件技術。
採用水平 vs. 垂直的思維模型使我們能夠輕鬆推理每個鏈在此過程中所做的權衡。
重新定義對話:水平 vs. 垂直擴展套件
在深入研究水平 vs. 垂直擴展套件框架之前,重要的是要承認它的起源可以追溯到 20 世紀 70 年代,當時分散式計算研究為水平擴展套件概念奠定了基礎。如今,所有的擴展套件技術都可以歸類為水平或垂直擴展套件。
垂直擴展套件
垂直擴展套件 會增加每個節點的硬體利用率或硬體要求。在區塊鏈中,這通常是通過並行虛擬機器(即多執行緒程式)等軟體優化來完成的。
一個常見的例子是 EVM 與 SVM 。
EVM 按順序執行事務,而 SVM 則是並行執行事務。SVM 通過利用更多的 CPU 核心來實現這一點,因此 SVM 每秒可以比 EVM 處理更多的事務。注意:這種垂直擴展套件型別是 Eclipse L2 背後的基礎。
在權衡方面,垂直擴展套件受到可用硬體的限制,由於硬體需求的增加而趨於集中化,並且與水平擴展套件相比可擴展套件性較差。
水平擴展套件
另一方面, 水平擴展套件 通過將工作負載分散到多個節點上來增加系統可以訪問的機器數量。如前所述,模組化鏈本質上是將任務分配到多臺機器上。然而,鏈通常可以通過 分片 實現更大程度的水平擴展套件。
=nil; 這裡提供了一個有用的例子。
去年 11 月,=nil; 基金會推出了一種可驗證的分片架構,稱為 zkSharding,它是新的以太坊 L2 的基礎。=nil; 設計的核心是將其全域性狀態劃分到多個分片上。每個分片均由 =nil; 的去中心化委員會執行,他們構建區塊並管理跨分片交易。此外,每個分片都會生成一個有效性證明,該證明會發送到主分片進行聚合,然後在以太坊上釋出和驗證。=nil; 通過兩種方式利用水平擴展套件的能力:
首先,=nil;是一個模組化區塊鏈,它利用以太坊的強大共識和資料可用性作為保證,從而將任務分配在多個全節點上。
其次,=nil;是一個分片區塊鏈,因此將部分狀態分佈在許多全節點上。
這兩種技術都減輕了任何單個機器需要承擔的負載,並提高了網路的總體可擴展套件性。
那麼,水平擴展套件的權衡有哪些呢?這可以歸結為兩點:網路和共識的複雜性以及機器或分片之間的非同步通訊。
以太坊可擴展套件性的終局之戰
水平擴展套件和垂直擴展套件均不侷限於模組化或單體化架構。這就是為什麼水平 vs. 垂直擴展套件框架提供了更多空間來探索新的解決方案,使模組化區塊鏈更具可擴展套件性。
例如,一種選項是垂直擴展套件模組化堆疊的一層。一種常用的方法是實現並行虛擬機器,從而提高執行吞吐量。正如上面提到的,Eclipse 正在利用 SVM 和其他 Rollups,比如 Starknet,實現 BlockSTM 以實現並行化。
但是,垂直擴展套件始終受限於單臺機器的限制,我們不能打破物理定律。
一種解決方案可能是選擇通過分片實現水平擴展套件。
當前的模組化設計才剛剛開始觸及水平擴展套件的全部潛力。通過分片,我們可以利用任意數量機器的計算能力(而不僅僅是 2-3 臺機器分擔任務)。
換句話說,許多機器可以並行執行相同型別的任務。這就是以太坊和 Celestia 希望分別通過 Danksharding 和資料分片實現的目標。但是,分片本質上並不侷限於資料可用性層 —— 它還可以與執行相結合(如 =nil; L2 的情況)。
如果我們將通過模組化堆疊實現的水平擴展套件與分片提供的水平擴展套件相結合,我們將獲得可用計算能力的大幅增加。
但我們可以做得更好……
區塊鏈可擴展套件性的最終目標將融合水平和垂直擴展套件,從而產生具有並行虛擬機器的分片區塊鏈。
在 =nil; 基金會,我們正在系統地朝著這個最終狀態設計邁進。=nil; 的 L2 通過利用模組化、水平可擴展套件的架構 (zkSharding) 和垂直擴展套件的驗證器實現(分片內並行化),採取了一條積極的擴展套件路線圖。
因此,=nil; 的設計可以在不犧牲狀態、流動性或使用者碎片化的情況下實現全球規模。
如果對水平擴展套件和 zkSharding 感到好奇的話,可以到 =nil; 基金會的 Discord 和 X 來加入對話。
📍相關報導📍
GPU-EVM初探:並行EVM賽道新勢力,使用EVM訓練AI代理