科普丨虛擬機之戰:WASM與EVM

科普丨虛擬機之戰:WASM與EVM

什麼是以太虛擬機(EVM)?

以太坊虛擬機是一種輕量級虛擬機,用於在以太坊網絡上運行各種智能合約。EVM的功能不同於Windows等傳統操作系統,後者一次只能在一台機器上運行。EVM 是構建在本機操作系統上的高級抽象,用於模擬物理機。
通過使用EVM,相同的平台可以在許多不同的操作系統和硬件架構上運行。該特性使虛擬機適合以太坊等網絡,可以通過分佈在世界各地的不同機器上的不同客戶端訪問這些網絡。EVM可以模擬在物理CPU上執行的功能,並負責以太坊網絡上的大部分功能。
EVM具有以下特點:

確定性

確定性程序對相同的輸入集提供相同的輸出,而與它執行相同代碼的次數無關。在以太坊中,dApp每次處理數百萬美元,各種用戶需要知道代碼在執行的每個階段是如何反應的。

可隔離

智能合約需要在完全隔離的環境中運行。這確保了如果智能合約發生黑客或bug,它不會影響底層協議的其他部分。

可終止

以太坊智能合約是圖靈完備的。因此,只要有足夠的時間和資源,他們就應該能夠解決任何問題。智能合約應該有終止機制,因為很難確定合約是否會在規定的期限內完成所有操作。以太坊使用“gas”限制來終止超出執行限制的智能合約。

EVM 的功能

  • 它是以太坊網絡的去中心化處理單元。每個交互、交易和智能合約執行都只能在這裡發生。
  • 獲取並執行指令,然後通過給定的指令分派器解碼操作數。
  • 負責所有的數據結構,如操作數,數據處理和指令。
  • 跟蹤網絡組件,如存儲狀態、區塊信息和世界狀態。
  • 負責為以太坊網絡上的不同智能合約創建運行時環境。

EVM 的挑戰

  • EVM處理如此多不同的操作並不快,但是它的操作碼規範還沒有發展到可以處理變化的需求。
  • 未能進化意味着語言也有局限性。

什麼是WebAssembly (WASM)?

WebAssembly (WASM)是一種新型代碼,可以在現代瀏覽器上高效地執行。這個新代碼是由萬維網聯盟(W3C)創建和定義的。WASM是為網絡而建的,包括來自谷歌、Mozilla和蘋果的工程師。本質上,WASM通常被稱為Ethereum 2.0,它具有EVM的所有功能,並附帶了額外的功能。

專為網絡打造

如前所述,來自谷歌、微軟和蘋果等大型技術公司的工程師都是開發團隊的一部分。因此,這些工程師要確保WASM與他們的引擎和協議兼容。

設計時考慮了一組特定的目標

創建WASM是為了快速、高效和便攜。WASM將利用常見的硬件能力,以“接近本地速度”執行。

  • 易於閱讀和調試。它具有人類可讀的文本格式,代碼可以手動查看、編寫和調試。
  • 確保安全。它通過增強主機瀏覽器的權限策略和保持向後兼容性來實現這一點。

EVM 與 WASM

速度

簡單地說,EVM是一個萬事通,但卻什麼都不懂。EVM如何處理編譯就是這一點的一個很好的例子。本機引擎努力尋找執行某些操作的最佳路徑,最終影響EVM的總體吞吐量。

EVM只能處理256位字節碼,這意味着小於256位的字節碼必須先轉換為256位格式,然後才能發送給EVM。EVM的可擴展性問題很明顯,因為它每秒只處理25個交易。

WASM直接轉換為編譯后的代碼,這使它能夠更快地加載,同時增加每個區塊所處理的交易數量。

預編譯

EVM依賴於預編譯(預編譯合約)。當發出預編譯調用時,EVM將執行預定義的本機代碼,然後顯示結果。這些預編譯特定於用於基本操作的特定協議,例如簽名方案和哈希。

儘管預編譯在不消耗大量gas的情況下使加密計算變得高效,但它們也帶來了問題。引入新的預編譯器通常要求網絡經歷一個系統範圍的硬分叉。

WASM消除了以太坊對預編譯合同的依賴。由於WASM非常高效,開發人員可以創建高效、快速的智能合約,而無需擔心潛在的硬分叉。

靈活性和互操作性

WASM支持更多的語言,並且提供了比EVM更廣泛的工具集。WASM支持傳統語言,如Rust、C和c++。WASM也被本地JavaScript引擎支持,例如 Google 的 V8 引擎(基於 Node.js 和 Chromium 的瀏覽器)、微軟的 Chakra 引擎(Microsoft Edge)和 Mozilla 的 Spidermonkey 引擎(Thunderbird 和 Firefox)。

小結

以太坊引入了比特幣區塊鏈上不可用的某些功能。以太坊虛擬機的引入允許開發人員輕鬆地創建和部署智能合約。然而,EVM也有許多局限性,而WASM正試圖解決這些局限性。根據WebAssembly.org, WebAssembly 1.0已經被提供給四個主要的瀏覽器引擎。

本文鏈接:https://www.8btc.com/article/6710711

轉載請註明文章出處

(0)
上一篇 2021-11-22 09:56
下一篇 2021-11-22 10:12

相关推荐