什么是智能合约?智能合约工程有哪些基本特征?
未来社会是数字社会,如何把实体社会中人们生活的模式、信用、法律甚至文化等依存关系转移到虚拟世界中,是IT技术面临的巨大挑战(Grand Challenge)。我们可以试想未来汽车交易的一个场景:关于汽车贷款。如果贷款者届时不还款,那么,一个合约程序将会自动收回发动汽车的数字钥匙。毫无疑问,汽车经销商会发现,这种自动合约的用途是很有吸引力的。这个例子是密码学家尼克·萨博(Nick Szabo)194年提出的。他首次提出了“智能合约(Smat Contract,SC)”的概念。相对于复杂的、涉及用户汽车经销商和银行的贷款行为(手续),智能合约能够自动执行合约条款的计算机程序。他创造性地提出“智能合约就是执行合约条款的可计算交易协议”。机器通过物理的密封系统自行控制财产,可以编程自动执行“合约”条款。
尼克·萨博指出,计算机代码可以代替机械设备,进行更复杂的数字财产交易。未来的某一天,这些程序甚至可能取代处理某些特定金融交易的律师和银行,即“智能财产可以通过将智能合约内置到物理实体的方式,被创造出来”。随后在2002年,尼克·萨博设计出了一种叫“比特黄金”(bit gold)的数字货币机制。他认为,智能合约可以支持电子数据交换(EDI)、证券期权等合成型资产(synthetic assets)的交易。例如,房屋出租商发现,智能合约的这种用途很有吸引力:一个房屋的门锁能够连接到物联网上,可以通过执行智能合约被打开。当一位客户进行了一笔租房交易后,达成的智能合约将自动为该客户打开房门,并进行自动资金转移。客户只需要使用存储在智能手机中的钥匙就能进入房屋。智能合约还是实现分布式自治组织(Decentralized Autonomous Organization,DAO)的关键技术之一。DAO是指一个拥有一定数量成员或者股东的虚拟实体,依靠自治组织的共识来决定开支以及修改代码等事宜,这就可以通过智能合约把成员之间的合约变成自动执行的代码来强制执行。
虽然智能合约仍然处于初始阶段,但是其对挖掘未来数字社会的潜力显而易见,因为它把人与法律协议,以及与网络虚拟世界之间复杂的关系程序化了。也许有一天,我们会与律师和银行说再见,而合约模板的编制、审核则会变成律师新的工作重点。智能合约的意义在于,它不仅可能颠覆现有的商业模式,更重要的是它也能够完善现有的商业模式,并且大大减少第三方中介的费用。
智能合约有许多非形式化的定义。尼克·萨博给出了一个简短的概念,即“智能合约通过使用协议和用户接口来促进合约的执行”;马克·米勒(Mark S. Miller)认为,智能合约就是用程序代码编写的合约,它的条款由程序来执行;以太坊(Ethereum)认为,智能合约就是基于区块链的、可直接控制数字资产的程序。其他两个有价值的定义如下:1.智能合约是运行在可复制、共享账本上的计算机程序,可以处理信息,接收、储存和发送价值。2.智能合约是一段代码,被部署在分享的、复制的账本上,可以维持自己的状态,控制自己的资产,对接收到的外界信息或者资产进行回应。总的来说,一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在其上执行这些承诺的协议。
一个好的智能合约应当具备下面六个基本特征。
特征1:一致性,智能合约需要与合约文本保持一致,并且不与现有法律发生冲突。每个合约在发布之前,需要由技术人员和专业律师来保证合约的一致性。
特征2:可定制,智能合约应当是可定制的,复杂的合约可以通过组合简单的合约而得到。
特征3:可观察性,合约本身与其执行过程都应该是可观察的,以支持监管和可信。
特征4:可验证性,合约的记录的有效性是可以被检验出来的。
特征5:自强制性,智能合约可以在不依靠法律强制力的情况下预防和惩罚违约行为。
特征6:接入控制,只允许与合约相关的人查看关于合约的信息。只有当发生冲突时,才打开第三方接口,允许第三方查证。