一本书读懂区块链(第2版)
上QQ阅读APP看书,第一时间看更新

2.3.2 智能合约的运作方式

基于区块链的智能合约的运作过程如下:

多方用户共同参与制定一份智能合约,智能合约扩散并存入整个区块链网络,智能合约被自动执行。

1.制定一份智能合约

在一个区块链网络中(比如说以太坊),两个或两个以上的注册用户共同商定了一份承诺,承诺中包含了双方的权利和义务;将这些权利和义务以代码方式编成程序也就是智能合约;参与者分别用各自私钥对合约进行签名以确保合约的有效性;签名后的智能合约携带着承诺的内容将会传入到区块链中,所有人都能看到。

2.智能合约验证生效

生成的智能合约会在全网中扩散,每个节点都会收到一份;区块链中的验证节点会根据相应的共识机制,在规定的时间内对最新的智能合约集合达成一致;最新达成的智能合约集合会以区块的形式扩散到全网。每个区块包含了以下信息:当前区块的Hash值、前一区块的Hash值、达成共识时的时间戳、以及其他描述信息,当然还有最重要的信息——一组已经达成共识的智能合约集;收到智能合约集的节点,都会对每条合约进行验证。验证通过的合约才会最终写入区块链中,验证的内容主要是合约参与者的私钥签名是否与账户匹配。

3.智能合约的执行

智能合约会定期检查是否存在相关事件和触发条件;满足条件的事件将会被推送到待验证的队列中;区块链上的验证节点先对该事件进行签名验证,以确保其有效性;等大多数验证节点对该事件达成共识后,智能合约将被自动执行,并通知用户;成功执行的智能合约将被移出区块,而未执行的合约则继续等待下一轮处理,直至成功执行。

智能合约的运作过程是完全数字化、自动化、去中心化的,这大大降低了合约的执行成本和合规成本。