智能合约本质上是用软件代码编写的协议,当满足某些条件时,它可以在无需人工干预的情况下自动执行编程功能。使用计算机程序自动执行合同并非新鲜事物。银行支付、网上购物、游戏和供应链合同都在使用此类程序。
分布式账本越来越多地用于创建“智能合约”。智能合约是计算机程序(例如,遵循简单的“如果/当...那么...”语句),无需人工干预即可自动运行。
智能合约的优点包括(但不限于):速度和效率(无需处理文书工作和纠正错误的时间)、信任和透明度(不涉及中介,参与者共享安全的记录)、安全性(交易记录加密)以及节省成本(无需中介参与)。智能合约可以应用于许多不同的领域,如贸易融资、食品供应、收藏品交换和在线赌博程序。
智能合约是否具有法律约束力?
它们是一种合同,其中部分或全部合同义务由计算机程序定义和/或自动执行,无需人为干预。
智能合约的基本特征:
- 合同下的部分或全部合同义务由计算机程序自动执行;及
- 该合同具有法律强制性。
使用计算机程序自动执行合同并不是新鲜事物。银行支付、在线购物都涉及到一方或双方在某些情况下使用自动化元素。近年来,智能合约主要或者完全用代码编写,并部署在分布式账本系统上。分布式账本是一种存储信息或数据的方法。它在计算机网络之间共享,并可能对其他参与者开放。分布式账本技术使得分布式账本的操作和使用成为可能,其中,账本不是由中央管理员或实体维护或控制的。在DLT系统下,参与者通过约定的机制批准并同步对账本的添加。
智能合约可以有三种形式:
- 以自然语言书写并通过代码自动执行的智能合约
- 一份用自然语言编写的合同,其中部分或全部合同义务由计算机程序的代码自动执行。程序仅是一方或双方用于履行义务的工具
- 混合型合同
- 一份合同,部分内容用自然语言定义,部分则通过计算机代码来定义。
- 仅通过代码记录的合同
- 所有合同条款都由计算机程序的代码定义,并由其自动执行。不存在自然语言版本的协议。
- 以自然语言书写并通过代码自动执行的智能合约

法律合同的订立
根据香港法律,订立具有法律约束力的协议需要满足以下几个要求:协议、对价、确定性与完整性、意图形成法律关系以及遵守形式规定。
智能合同的解释
当双方对合同条款的含义存在分歧时,法院可能会被要求解释合同。合同解释是指法院通过审查双方所使用的书面协议明确条款的语言来确定条款含义的过程。法院对合同解释采取一种客观方法,即法院会询问对于合理人来说,这种语言在双方所掌握的所有背景知识下具体代表什么含义。
业务流程文件
智能合同的各方可能会准备一份业务流程文件或条款清单,详细说明交易的条款。该文件可以交给程序员将其翻译成代码,从而构成智能合同。
早前达成的协议可以用于解释后来的协议。然而,这种协议在解释后续合同条款时的作用将取决于具体案例。
双方就合同前的谈判证据
关于双方就所用词语含义的先前谈判的证据是不可采纳的。通常认为,接受这类证据并不有益,因为在谈判过程中双方的言行可能并不反映他们在签订合同时所持的最终立场。
补救措施和智能合同
合同周期中可能会出现各种问题,针对这些问题,法律提供了一系列补救措施。
纠正
如果在翻译过程中出现错误导致代码无法体现签订合同时双方的实际共同意图,可能可以采取纠正措施来修改智能合同的代码条款。
然而,法院在纠正编码条款方面会面临实际困难:(a)在不可更改的分布式账本上记录的编码条款 - 当相关智能合同的性质是无法纠正的;(b)当事人可能只在代码执行后才发现编码错误。在这些情况下,纠正本身可能无法为索赔人提供有效的补救措施,因为他们希望撤销代码执行的影响。
纠正编码条款中的任何实际困难的范围可能取决于特定智能合同平台的技术规范,以及是否具有相关的内置功能来纠正编码条款。
导致合同无效的因素
“导致合同无效的因素” 如错误、误表述、胁迫和不正当影响可能会导致合同出现缺陷,使合同成为“无效”(从一开始就没有效力)或“可撤销”(从一开始就有可能被撤销)。
错误
1. 共同错误
如果一方或双方在签订合同时有误解,合同可能会被视为无效。“错误”可以描述为关于合同标的或者合同订立过程中的事实或法律的错误观念或假设。错误是普通法的一个原则。
当各方对代码执行的方式持有不同观念或做出不同假设时,建议各方通过适当的起草来分配任何潜在错误的风险。
2. 单方面错误
仅当合同签订时其中一方存在误解。 如果可以证明(在订立合同时)一方对合同的某一条款有误解,且另一方知道这个错误,那么合同就是无效的。
当双方代表计算机程序提供和接受合同时,这会变得有点棘手。需要制定测试,以解决关于谁知道错误的知识的问题;评估人的知识的时间范围;以及所需知识的类型。
虛假陳述
如一方因另一方因虚假陈述而被导致签订合同,则合同是可撤销的。
如果各方在智能合同的自然语言部分中包含了旨在排除或限制误表责任的条款,那么法律可以以传统方式适用。
胁迫和不正当影响
如果一方因另一方的非法威胁而被导致签订合同,或者一方在另一方的不正当影响下签订合同,该合同是可撤销的。
在准备智能合同时需要考虑的事项
- 规划阶段 - 理解智能合同的业务需求和目标
- 智能合同的形式
- 码在智能合同中的作用,如果代码既用于定义合同义务又用于执行合同义务,或仅用于执行合同义务
- 与自然语言和编码条款之间的关系
- 以下事项的风险分配:
- 故障或不准确的数据输入
- 外部事件 - 升级
- 代码中的漏洞和编码错误
- 可能由于各方对代码执行方式的某些信仰或假设而导致的潜在错误
- 提供代码工作原理的自然语言解释。对各方意图的了解
- 如有必要,可以终止智能合同的编码部分。避免代码在争议结果出来之前执行的情况
- 选择合适的法律和法院 - 通过自然语言协议或者在代码中的注释来添加
下一步
联系我们,以更深入地了解智能合同/区块链的各个方面,如其法律效果,使用和实施的方式和注意事项。
如果您希望得悉我们如何在智能合同的各个方面(规划、实施和诉讼)中能提供帮助,请联系:
梁延达,合伙人 (alfredleung@hkytl.com)
梁延达律师事务所有限责任合伙是一家位于中国香港的律师事务所。这篇文章的内容仅是概括性质,不构成任何法律意见。

