首页 » 以太坊虚拟机EVM在设计上有什么特性?
By Published On: 16 9 月, 2022Categories: 区块链Tags:

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的以太坊节点的安全性。