智能合约是区块链技术最吸引人的特性之一,特别是对国际贸易而言。智能合约本身不是区块链的一种类型,而是区块链技术的一项功能。
事实上,“智能合约”一词并不准确:智能合约既不“智能”(它没有认知或人工智能组件,只是在满足特定条件时自动执行预定义的任务),也不是法律意义上的合同(Deloitte,2018年)。
智能合约是一种计算机程序,在满足特定条件时会自动执行(self-execute),无需第三方干预(基于“如果……那么……”逻辑——例如,如果货物在X港卸货,那么资金就会被转移)。它们规定了每一方对“合同”的义务,以及在不同情况下可能由任何一方获得的利益和承担的惩罚。
与传统的法律合同不同的是,他们还可以将信息作为输入的参数,按照合同中规定的规则来处理信息,并因此采取任何商定的行动。这些信息由所谓的“预言机”(oracle) * 输入智能合约,即数据源(data feeds)——由第三方服务供应商提供——根据智能合约中预见的条件。这些条件可以是任何外部数据,如温度、付款完成情况、价格波动等。例如,一个智能保险合同可以将放置在冷藏容器中的传感器作为一个预言机。如果温度超过一定水平,就会自动触发保险赔偿,并发出检查请求。由于区块链无法访问其网络之外的数据,预言机是智能合约与区块链环境之外的数据进行“交互”的唯一方式。换句话说,智能合约通常与其他技术一起工作,特别是物联网,即连接到互联网的传感器和智能设备网络,可以发送和接收数据。智能合约通常使用物联网生成的数据来触发行动。
智能合约的概念于1994—1997年期间由加密学家尼克·萨博(Nick Szabo)在各种出版物中引入并进一步具体化,并于2015年在区块链技术的背景下被以太坊首次引入。 如今,许多区块链可以提供智能合约处理功能。智能合约可以存在于区块链之外,但它们会存在与集中式数据库相同的潜在问题,即单点故障和容易篡改数据的可能性。
当用于国际贸易中的交易自动化时,智能合约的自动化特性使其成为一种特别有趣的工具。然而,智能合约的使用确实引发了一些需要牢记的重要法律问题,特别是如果合同被错误编码而可能需要解决的与执行和责任相关的问题(见第四章第二节)。此外,智能合约是计算机程序,和任何编程代码一样,它们可能包含意想不到的错误(Delmolino et al.,2015)。前面提到的2016年以太坊去中心化自治组织(DAO)受到攻击就是该项目使用的智能合约程序代码存在漏洞的结果。在区块链生态系统中,智能合约和用户接口(例如,用于接入互联网的手机、平板电脑或电脑)是最容易出现安全漏洞的层级。