以太坊虛擬機器EVM在設計上有什麼特性↟│✘?

2022-09-16T18:41:33+08:00

EVM在設計上具有如下的特性·│✘╃。 (1)基於棧+區分儲存型別✘₪╃☁:EVM是一種基於棧的虛擬機器☁╃,其對棧的大小不做限制☁╃,但限制棧呼叫深度為1024;使用256位元的機器碼☁╃,用於智慧合約位元組碼的執行;同時☁╃,以太坊區分為臨時儲存和永久儲存☁╃,其臨時儲存(Memory)存在於EVM的每個例項中☁╃,而其永久儲存(Storage)則存在於區塊鏈狀態層·│✘╃。 (2)圖靈完備+Gas限制計算量✘₪╃☁:EVM是圖靈完備的·│✘╃。然而☁╃,圖靈完備則會導致一些問題☁╃,比如某些惡意節點可能上傳無限執行的智慧合約程式碼從而達到消耗以太坊計算資源的目的·│✘╃。因此☁╃,EVM中引入了Gas的概念·│✘╃。以太坊節點在建立執行智慧合約程式碼的訊息時☁╃,需要支付一定量的Gas用於“購買”執行智慧合約所需的計算量·│✘╃。當EVM執行交易時☁╃,Gas將按照一定的規則逐漸被消耗☁╃,執行完後剩餘的Gas會返還至支付節點·│✘╃。若在執行合約程式碼的過程中Gas被消耗殆盡☁╃,則EVM會觸發異常☁╃,將當前已執行的相關合約程式碼已進行的狀態修改回滾☁╃,而不會將Gas回退給支付節點·│✘╃。Gas可以透過以太坊購買☁╃,類似於雲計算中對提交任務所佔用的計算資源進行付費的機制·│✘╃。 (3)環境隔離✘₪╃☁:EVM在節點上是一個隔離的環境☁╃,它保證了在其中執行的所有智慧合約程式碼均不能影響以太坊節點中與以太坊EVM無關的狀態☁╃,從而保證了執行EVM的以太坊節點的安全性·│✘╃。