萨博关于智能合约如何工作的理论,到目前为止在实践中还没有实现,因为直到今天,还没有天生能够支持可编程交易的数字金融系统。因为,如果银行仍然需要手动批准资金的转移,那么智能合约的目标就无法实现。所以,可以认为,实现智能合约的一大障碍是现在的计算机程序不能真正地触发支付。
在区块链的环境下,合约或者智能合约意味着区块链交易将会远不只简单的买卖货币这种交易,还将会有更加广泛的指令可以嵌入区块链中。在更正式的定义中,一个合约就是通过区块链使用比特币和某人形成某种协议。
传统意义上的合约,就是双方或者多方协议做或不做某事来换取某些东西。合同中的任何一方必须信任彼此并履行义务。智能合约的特点是,同样是彼此之间同意做或者不同意做某事,但是无须再信任彼此。这是因为智能合约不但是由代码进行定义的,也是由代码(强制)执行的,完全自动而无法干预。
智能合约并不是意味着能够实现一切所不能做到的事情,事实上,它们能够以最大限度地减少信任的方式来解决一些普通事情。最小化信任能够让事情变得更加便捷,因为其通过全自动执行替代了人的自主判断。
而比特币的出现及广泛应用,正在改变阻碍智能合约实现的现状,从而让萨博的理论有了重生的机会。智能合约技术现在正建立在比特币和其他数字货币——有些人将它们称为区块链2.0平台之上。因为大多数基于区块链技术的数字货币本身就是一个计算机程序,智能合约能够与之进行交互,就像它能与其他程序进行交互一样。所以,随着区块链技术的诞生,这些问题正逐步被解决,已经可以通过计算机程序来触发支付。
类似于比特币基于区块链技术的密码学数字货币已经准备就绪,能够帮助智能合约成为现实,而最终将可能会实现数字货币和智能合约的双赢。智能合约能够向人们说明数字货币独特的益处,而这将为数字货币吸引更多的用户。从这一点来看,也许智能合约就是数字货币的真正“杀手级应用”。
需要确定和界定何种社会契约会更需要“代码法律”,即根据代码来自动执行且无法阻止运行。因为基于目前所颁布施行的法律,几乎不可能让智能合约强制执行(例如,一个去中心化的代码样本在事后是难以控制、监管或者要求赔偿损失),在现有法律框架本质上要把这种行为下降到人为合同的水平。最终的目标将不是没有法律或者是无政府状态,而是让法律框架变得根据具体情况而更加精细化和个性化。各方可以通过协商来选择某个法律框架来建立一个合同然后将它写入代码中。这样根据大家都已经知道的、审核过的且“陈旧”的法律框架,类似于创作共用许可证(Creative Commons Licenses),这样用户可以选择某个法律框架作为智能合约的框架。因此,可能会有许多类型的法律框架,就像会有许多货币一样。
用一个形象的说法来比喻智能合约,即可以把它看成由代码编写的且能自动运行的自动售卖机。不同于人的行为,一台自动售卖机的行为是可以计算的;相同的指令行为总是会得到相同的结果。当你塞入一些钱并做出选择后,你选择的物品就会掉出。机器绝不可能违反预定程序来执行,也不会仅仅执行一部分(只要它没有被损坏)。一个智能合约也同样是如此,一定会按照预先设定的代码来制定。在区块链和智能合约的世界中,“代码即法律”,无论怎么编写,它都会被执行。在某些情况下,这可能是好事也可能不是;无论是与不是,都将会是一种全新的情况,我们的社会在智能合约普及之前还有一段较为漫长的适应阶段。
事实上,首先,智能合约之所以如此是因为三个要素:自治、自足和去中心化。自治表示合约一旦启动就会自动运行,而不需要它的发起者进行任何的干预。其次,智能合约能够自足以获取资源,也就是说,通过提供服务或者发行资产来获取资金,当需要时也会使用这些资金。最后,智能合约是去中心化的,这也就是说它们并不依赖单个中心化的服务器,而是分布式的,通过网络节点来自动运行。
基于加密算法的智能合约及其相关体系,如果要能够激活资产还有许多细节需要考虑。也许我们还需要全新的法律和相关规定,来区别于那些通过代码来建立的合约与通过人来建立的具有司法约束力的合同之间的异同。只有基于通过人来约定建立的合同才会有遵守或者违反合同的情况,而基于区块链以及任何基于代码的合同都不存在这样的问题。此外,智能合约将不仅仅会影响到合同法,而且可能会影响整个社会中的其他社会性契约。
图2.1 智能合约三要素