以太坊上用户编写的合约是不可控的,要保证这些合约能够正确执行并且不会影响区块链的稳定,虚拟机需要做安全方面的考虑. 1 在程序执行过程中采取的每个计算步骤都必须提前支付费用, 从而防止DoS攻击.先消耗gas再执行,增加了攻击者制造和运行无效合约的成本,使攻击者无法制造大量的无效合约. 2 EVM是一个沙盒程序,它只能执行合约更改自身账户状态,或者调用另一合约,不能做其它操作. 3 程序的执行必须保证一致性和确定性,不能出现不同节点执行相同程序出现不同结果的情况 4 程序执行必须可终止,不能无限…