什么是智能合约?

术语_smart contract_已被用于描述各种不同的事物。在二十世纪九十年代,密码学家Nick Szabo提出了这个术语,并将其定义为“一组以数字形式规定的承诺,包括各方在其他承诺中履行的协议”。自那时以来,智能合约的概念得到了发展,尤其是在2009年比特币发明引入了去中心化区块链之后。在本书中,我们使用术语“智能合约”来指代在Ethereum虚拟机环境中确定性的运行的不可变的计算机程序,该虚拟机作为一个去中心化的世界计算机而运转。

让我们拆解这个定义:

计算机程序:智能合约只是计算机程序。合约这个词在这方面没有法律意义。 不可变的:一旦部署,智能合约的代码不能改变。与传统软件不同,修改智能合约的唯一方法是部署新实例。 确定性的:智能合约的结果对于运行它的每个人来说都是一样的,包括调用它们的交易的上下文,以及执行时以太坊区块链的状态。 EVM上下文:智能合约以非常有限的执行上下文运行。他们可以访问自己的状态,调用它们的交易的上下文以及有关最新块的一些信息。 去中心化的世界计算机:EVM在每个以太坊节点上作为本地实例运行,但由于EVM的所有实例都在相同的初始状态下运行并产生相同的最终状态,因此整个系统作为单台世界计算机运行。