以太坊在区块链上实现了一个运行环境,被称为以太坊虚拟机 EVM。
每个参与到网络的节点都会运行都会运行 EVM 作为区块验证协议的一部分。他们会验证区块中涵盖的每个交易并在 EVM 中运行交易所触发的代码。每个网络中的全节点都会进行相同的计算并储存相同的值。合约执行会在所有节点中被多次重复,这个事实得使得合约执行的消耗变得昂贵,所以这也促使大家将能在链下进行的运算都不放到区块链上进行。
对于每个被执行的命令都会有一个特定的消耗,用单位 Gas 计数。每个合约可以利用的命令都会有一个相应的 Gas 值。