据了解,自从比特币、以太坊的相继诞生,以及区块链技术的逐步升温,智能合约一词便开始频繁的出现在金融和科技媒体之中。智能合约是1994年由密码学家尼克萨博(Nick Szabo)最先提出的理念,几乎与互联网同龄。根据Nick Szabo的定义:智能合约是指能够自动执行合约条款的计算机程序。
传统意义上的合约的生命周期一般包含:各方协商、签名记录、条款执行三个阶段,智能合约也类似。但是在区块链技术出现之前,单台计算机难以提供安全可靠的签名记录和条款执行服务,所以智能合约也一直仅仅停留在理论阶段。比特币及区块链技术出现后,其多方存储、多方计算、规则透明、不可篡改等特性,恰好为智能合约提供了安全可靠的记录载体和执行环境。
与普通的计算机程序不同,区块链上的智能合约必须同时具备两种性质:确定性和可终止性。
区块链是一个通过多方存储、多方计算的方式来实现数据不可篡改、计算结果可信的分布式系统。智能合约会在区块链网络的多个节点中运行。如果一个智能合约是非确定性的,那么不同节点运行的结果就可能不一致,从而导致共识无法达成,网络陷入停滞;如果智能合约是永不停止的,那么节点将耗费无穷多的时间和资源去运行合约,同样导致网络进入停滞状态。这就涉及到了两个有趣的话题,下面我们分别来探讨一下确定性和可终止性问题(停机问题)。