以太坊仍在致力於並行 EVM 的補充計劃,但比特幣很快就會推出自己的並行 VM 第 2 層。

首先我們來了解一下爲什麼以太坊無法實現並行EVM。

爲了保持網絡一致性和安全性,EVM 在其設計中具有一個關鍵特性:交易按順序執行。順序執行可確保交易和智能合約可以以確定的順序執行,從而更易於管理和預測區塊鏈的狀態。這種設計選擇優先考慮安全性,減少了與並行執行相關的潛在複雜性和漏洞。然而,在交易請求負載較高的情況下,這種順序執行可能會導致網絡擁塞和延遲,類似於單車道高速公路。

單純增加通道是否可行?參考現有的所謂並行虛擬機解決方案,包括像 Near 這樣的分片鏈。這些鏈提出通過引入更多虛擬機來擴展智能合約,從而實現區塊鏈的擴展。本質上一個智能合約的工作量仍然在某個虛擬機上。如果這條鏈上的所有智能合約都消耗相同數量的 TPS,那麼問題就解決了。但是,如果只有少數合約(例如 Aave 和 Uniswap 協議)消耗了 90% 以上的區塊空間,那麼讓合約運行在單個分片上意味着只能在鏈級別擴展,而無法受益於分片帶來的改進。增加通道而不能切換通道代表了當前虛擬機並行化的困境。

並行EVM在數據層涉及到數據的切割或緩存,但受限於EVM編程模型,作爲最流行的智能合約編程語言,Solidity無法最大程度發揮區塊鏈並行架構的潛力,就好比在NVIDIA的GPU上不能用SQL編程一樣。Solidity缺少Relay Execution等並行架構的表達,也缺少對並行交易最終原子性的定義。

區塊鏈架構中真正的並行性需要實現一個智能合約的交易可以同時在多個虛擬機上運行。需要像 CUDA 這樣的編程模型來充分利用區塊鏈架構中的並行模型。

BitReXe 提到,比特幣引入了圖靈完備的並行虛擬機第 2 層,爲比特幣生態系統中的實際應用提供底層基礎設施支持,併爲並行虛擬機提供專屬編程模型 PREDA。

BitReXe 如何在比特幣上實現並行虛擬機

並行虛擬機

下圖突出顯示了 BitReXe 與其他推廣並行虛擬機的計劃之間的區別。如圖最左側部分所示,以太坊遵循單機狀態模型,其中所有代碼(智能合約)和狀態(數據)都由每個區塊鏈節點通過其以太坊虛擬機 (EVM) 複製和管理。現有項目使用並行 EVM,如圖中間部分所示,其中單個智能合約部署在專用虛擬機上(或指定分片內的虛擬機以維持共識)。與智能合約有關的所有交易都由虛擬機(或以完全複製的方式分片的虛擬機)處理。

在 BitReXe 的統一併行化模型中,如圖最右側所示,所有智能合約都部署在網絡的所有虛擬機上。智能合約的狀態在不同的虛擬機實例之間進行分區和分配,確保分配不重疊。相應地,智能合約的交易被分段和分佈,以便在虛擬機之間獨立並行處理。在理想情況下,這種方法有助於隨着虛擬機數量的增加,整體交易吞吐量和狀態容量實現線性擴展。

主要挑戰在於有效地管理執行邏輯(代碼)和合約狀態(數據)之間的依賴關係,同時實現獨立的虛擬機執行並避免同步,因爲交易的綜合執行邏輯可能需要訪問合約狀態的多個部分,每個部分在狀態分區後駐留在單獨的虛擬機中。

我們提出了並行中繼執行分佈式架構 (PREDA),這是一種突破性的編程模型,旨在擴展分片區塊鏈、平行鏈系統和第 2 層區塊鏈上的智能合約。PREDA 支持並行架構:如果將以太坊的 Solidity 比作在單核 CPU 上編程,那麼 PREDA 的 BitReXe 並行架構類似於 NVIDIA GPU 的 CUDA。

PREDA 模型引入了兩個關鍵組件:(1)“可編程合約範圍”,使程序員能夠根據應用程序的數據訪問模式定義合約狀態分區,縮小數據訪問範圍並最大限度地減少數據依賴性;(2)“異步功能中繼”,使程序員能夠將交易邏輯與隱式數據依賴性聯繫起來,以便在多個執行引擎 (VM) 上靈活執行。PREDA 作爲一種擴展的 Solidity 語言實現,包括可編程合約範圍的附加語法和異步功能中繼的語句。

該圖展示了簡化版 ERC20 合約的 PREDA 版本。關鍵字“@address”定義了用戶餘額的範圍,相當於 Solidity 的映射定義,但指定了按地址劃分的細粒度和可分離狀態。在運行時,按地址劃分的狀態由 BitReXe 鏈中的一組 VM 管理。不同的狀態不是由不同的 VM 組維護的。付款人(即發起轉賬交易的用戶地址)調用的“@address”範圍內的轉賬函數啓動了存款給收款人的“中繼”。此中繼由託管收款人地址狀態的 VM 執行,將資金添加到收款人的餘額中。

在 PREDA 中,智能合約可以具有多個範圍,其中定義了變量和函數。可以在一個範圍內定義多個函數和任意類型的變量(包括容器)。可以在單個函數調用中有條件或無條件地啓動多箇中繼,從而允許遞歸啓動並使交易執行流程能夠在不同的 VM 實例之間進行多跳移動。這種中繼執行方法將交易分解爲多個微交易,確保在單個虛擬機中有限的狀態訪問並避免競爭條件。在 PREDA 轉移智能合約中,將交易分解爲“提款”微交易和“存款”微交易,可以並行執行這兩種類型的微交易,只要它們的目標(在本例中爲地址)映射到不同的虛擬機即可。

BitReXe 將虛擬機組織成多個共識組,每個共識組獨立運行共識協議(在實現中基於 PoW)以就已執行的交易達成共識。實現跨組共識是爲了維護異步功能中繼的正確性和一致性,在 BitReXe 中實現爲中繼交易。

比特幣第 2 層

Luke 表示,比特幣層上的資產發行範式(如銘文)不斷利用比特幣的漏洞。雖然貨幣永不沉睡,但銘文也永不消亡。比特幣迫切需要一個真正可擴展的第二層,以釋放這種壓力並防止賬本規模增長過快,從而削弱去中心化。EVM+Bridge 解決方案不太可能實現這一目標。

BitReXe 提出並行虛擬機和 PREDA 來擴展比特幣,同時適應比特幣的安全性,使用 BTC 作爲 gas 費,共享比特幣的安全性,並在兩條鏈之間提供無需信任的資產結算。

BitReXe 重用比特幣網絡的哈希計算能力,該能力由鏈上區塊、孤立區塊和過早區塊作爲工作量證明,以在不修改比特幣協議的情況下在第二層網絡中創建有效區塊。合併礦工將獲得 rxBTC 作爲獎勵,這是 BitReXe 網絡上 1:1 掛鉤的比特幣。用戶使用 rxBTC 支付交易、與智能合約交互和其他鏈上活動的 gas 費。PREDA 和 BitReXe 的開發團隊 Fullnodes 實驗室即將在比特幣和 BitReXe 之間引入一種無需信任的資產結算橋解決方案,其中 rxbtc 的掛鉤出同時是某人的 BTC 掛鉤入。不再需要官方的掛鉤出地址,因此消除了信任假設。

我們對比特幣生態系統寄予厚望,因爲它有能力解決以太坊(作爲比特幣的測試網)尚未解決的問題。

@Bit_ReXe 認爲該問題源於 EVM 缺乏並行機制導致的區塊鏈三難困境,並旨在直接在比特幣第 2 層上解決該問題。

如果比特幣能夠解決這個問題,那麼比特幣第 2 層上的 TVL 對標甚至超越以太坊三倍以上將是一個根本性的突破。”

這是 BitPNova 的客座文章。表達的觀點完全是他們自己的觀點,並不一定反映 BTC Inc 或 Bitcoin Magazine 的觀點。

來源:比特幣雜誌

文章“BitReXe:在比特幣網絡上啓用並行虛擬機”首先出現在 Crypto Breaking News 上。