火星獨家 | 以太坊2.0的“心臟置換”:一文讀懂從EVM到EWASM的升級

編譯 | Bite@YouMeLiveApp

ETH2.0分片鏈第二階段將運行支持智能合約運行的新虛擬機環境Ewasm,分片鏈的節點將存儲賬戶、合約和狀態資訊,屆時分片鏈也將完成從數據分片到狀態分片的轉變,此時以太坊才可以說是真正意義上實現了擴容,

首先要了解Ewasm,我們先介紹“虛擬機”到底是什么意思?

簡單來說,傳統的操作系統 (Windows/iOS) 一次只需要在一個系統中運行。而虛擬機 (VM) 是基于本地操作系統所創建更高級抽象,可用于復制物理機的功能,

虛擬機使得用戶能夠在不同的硬件架構和操作系統中同時運行同一平臺,這就是為什么虛擬機非常適合像以太坊這樣的去中心化網路的原因。以太坊虛擬機 (EVM) 的功能就類似世界計算機,遍布全球的節點都能進行訪問。

以太坊EVM

EVM是一個輕量級的虛擬機,其設計是用于在以太坊網路上運行智能合約,作為虛擬機,EVM的功能與傳統的操作系統(如Windows)稍有不同,一般來說,虛擬機是建立在本機操作系統上模擬物理機的高級抽象,它們允許同一平臺,在許多不同的硬件體系結構和操作系統上運行,這使得虛擬機非常適合像以太坊這樣的分布式網路,EVM的構建是為了模擬可由物理CPU執行的操作,其還負責以太坊的許多關鍵功能。

以太坊虛擬機是以太坊區塊鏈中關鍵組成部分,或者說是一個通用的執行環境,沒有它,以太坊的智能合約的確定性將無法保障。

從這個層級圖可以看出,EVM是智能合約運行的基礎環境,EVM之于以太坊就像心臟對人體的重要性一樣,

通過運行以太坊虛擬機,計算機就變成了網路中的一個“節點”,并與其它節點一樣具有同等地位的處理事務,

你可以將其與Windows等傳統操作系統進行比較。不同的是,Windows一次只能操作一臺機器。而以太坊虛擬機一次要操作很多臺機器,模擬的是一臺物理機,

由于當前的以太坊虛擬機(EVM)架構缺乏靈活性,對以太坊協議的強化有一定限制性,擴展執行層的方法是引入特殊的“預編譯”合約。通過使用WebAssembly作為虛擬機規范,以執行高性能的“預編譯”合約,簡化引入此類合約的過程。

以太坊Ewasm

WebAssembly(簡稱WASM)的設計目標是性能和效率,是為Web開發構建的一個高效計算引擎,它是一個可移植、體積小、加載快并且兼容 Web 的全新格式。WebAssembly 有一套完整的語義,實際上WASM是體積小且加載快的二進制格式,你可以用它來編寫Web代碼,它是計算機中的一個虛擬機,可以專門執行優化的命令,設計的首要目標是性能,適合用在區塊鏈項目中,它的主要任務是優化執行和加載時間,通過轉換或執行某些命令來做到這一點。

Ewasm也是以太坊2.0更新的重要組成部分,將成為解決以太坊可擴展性問題的一部分。以太坊將加入諸如波卡(Polkadot)、Cardano、EOS、Tron、Spacemesh和NEAR協議等項目的隊列,而這些項目已經或正在采用Wasm。

Ewasm與EVM

以太坊在狹義上表示一套協議,這套協議定義了去中心化應用的平臺。它的核心是以太坊虛擬機,它可以執行任意算法復雜度的代碼。在計算機科學的術語中,以太坊是圖靈完備的。開發者可以使用語法上類似JavaScript和Python的編程語言(Solidity)創建運行于EVM上的應用程式。

以太坊虛擬機使用256比特長度的機器碼,是一種基于堆棧的虛擬機,用于執行以太坊智能合約。由于EVM是針對以太坊體系設計的,因此使用了以太坊賬戶模型(Account Model)進行價值傳輸,

從一開始,EVM的設計就強調正確性而不是效率,這體現在網路上的所有節點都必須完全準確地運行EVM。Wasm雖然與EVM類似,但它是為網路而發明,與其說是正確性,不如說是強調效率和快速加載,因此,所有節點都必須完全準確地運行EVM,相反,Ewasm更多集中在快速加載時間和效率上,eWasm比EVM更快、更安全,它支持更多語言,而不僅僅局限Solidity,Ewasm受益于WASM生態系統,可以在任何地方執行,這也將增加處理交易數量。

簡單概括,兩者的區別主要表現在以下三個方面:

(1)速度和效率提升:eWASM與EVM相比最明顯的優勢是代碼執行的速度和效率上的大幅提升,執行速度提升意味著區塊每秒可以處理的交易數量 TPS(吞吐量)提升。

(2)預編譯:Ewasm的另一個主要好處是,它可以減少甚至消除對預編譯的需求,所謂預編譯(預編譯合約)是EVM字節碼的特殊位,如果對預編譯合約發出調用,EVM將執行預先定義的本機代碼并返回結果,

(3)互操性:Ewasm在性能上超過EVM的第三個領域是互操作性,Ewasm將支持更多的語言,并將受益于比EVM更廣泛的工具集。

Ewasm能夠與多種語言進行交互,并且擁有更為廣泛的開發者工具集,將支持C/C++/Rust語言,Ewasm能夠幫助開發者又快又省地創建智能合約,并且沒有硬分叉的顧慮,Ewasm可以直接轉換為編譯代碼,從而提高加載速度,并且大幅提升每個區塊能夠處理的交易量,

Ewasm也支持更多的編程語言種類進行智能合約開發,這些編程語言相比Solidity具有更廣泛的社區開發支持資源,包括編譯工具、開發人員,

Ewasm的目標是什么?

Ewasm的目標是取代EVM,因此,Ewasm與現有處理交易模式有很大的不同,它能夠極大地提高交易吞吐量。

總結來講,Ewasm相比原來的EVM支持更多的開發語言,支持64位的數據處理,代碼執行快,達到硬件級別,而且還需要預編譯。ETH2.0將是與以太坊完全不同的系統,二者將并行存在多年并具有不同的特征集,

參考文章:

Ethereum 2.0: A Complete Guide. Ewasm.

Ethereum eWASM Explained Simply

0 条回复 A文章作者 M管理員
    暫無討論,說說你的看法吧