智能合约的概念于 1994 年由 Nick Szabo首次提出。广义上来讲,任何的能自动完成的合同就是一个智能合约,例如我去自动售货机买一瓶饮料,或者扫码使用一辆共享单车。当前讨论的智能合约,其实是跟Blockchain密不可分的。我们这里讨论的智能合约的的定义是,一个运行在Blockchain上的程序。注意这个程序甚至不一定需要去模拟一个商业合约,任何的一段程序只要是部署到了Blockchain上,我们都叫它一个智能合约,程序中只是完成了打印Hello World ,或者计数器加一的操作。
为何智能合约和Blockchain结合如此紧密呢?Szabo提出智能合约的概念之后很长时间内,智能合约根本无法落地,主要原因是合约各方无法去达成信任。于是,Blockchain作为所谓的信任机器,就刚好成为了智能合约的技术基础。智能合约和传统计算机程序Zui大的区别在于其执行结果的认可度,传统计算机程序的执行结果没有建立在共识机制上。而达成共识的前提是,合约的执行过程应该是公开的,合约产生的各项数据应该是不可篡改的。
比特b作为Blockchain之母,没有真正成为智能合约的运行平台。原因就是比特b脚本是图灵不完备的。不完备意味着什么呢?就是比特b脚本上根本就不能执行循环,一个不能执行循环的环境肯定不能实现丰富的逻辑,直接在比特b上运行复杂的智能合约是不现实的。Zui终,是以太坊的出现带来了智能合约的爆发。