工程科学学报 Chinese Journal of Engineering 基于要约承诺的智能法律合约订立方法与实现 郭侍朱岩殷红建陈娥王迪刘国伟 Design and implementation of conclusion procedure in smart legal contracts based on negotiation and acceptance GUO Qian,ZHU Yan,YIN Hong-jian,CHEN E,WANG Di,LIU Guo-wei 引用本文: 郭倩,朱岩,殷红建,陈娥,王迪,刘国伟.基于要约承诺的智能法律合约订立方法与实现即.工程科学学报,优先发表.do: 10.13374j.issn2095-9389.2021.04.08.005 GUO Qian,ZHU Yan,YIN Hong-jian,CHEN E,WANG Di,LIU Guo-wei.Design and implementation of conclusion procedure in smart legal contracts based on negotiation and acceptance[J].Chinese Journal of Engineering,In press.doi:10.13374/j.issn2095- 9389.2021.04.08.005 在线阅读View online:https::/oi.org10.13374.issn2095-9389.2021.04.08.005 您可能感兴趣的其他文章 Articles you may be interested in
基于要约承诺的智能法律合约订立方法与实现 郭倩 朱岩 殷红建 陈娥 王迪 刘国伟 Design and implementation of conclusion procedure in smart legal contracts based on negotiation and acceptance GUO Qian, ZHU Yan, YIN Hong-jian, CHEN E, WANG Di, LIU Guo-wei 引用本文: 郭倩, 朱岩, 殷红建, 陈娥, 王迪, 刘国伟. 基于要约承诺的智能法律合约订立方法与实现[J]. 工程科学学报, 优先发表. doi: 10.13374/j.issn2095-9389.2021.04.08.005 GUO Qian, ZHU Yan, YIN Hong-jian, CHEN E, WANG Di, LIU Guo-wei. Design and implementation of conclusion procedure in smart legal contracts based on negotiation and acceptance[J]. Chinese Journal of Engineering, In press. doi: 10.13374/j.issn2095- 9389.2021.04.08.005 在线阅读 View online: https://doi.org/10.13374/j.issn2095-9389.2021.04.08.005 您可能感兴趣的其他文章 Articles you may be interested in
工程科学学报.第44卷,第X期:1-16.2021年X月 Chinese Journal of Engineering,Vol.44,No.X:1-16,X 2021 https://doi.org/10.13374/j.issn2095-9389.2021.04.08.005;http://cje.ustb.edu.cn 基于要约-承诺的智能法律合约订立方法与实现 郭倩,朱岩)区,般红建,陈娥),王迪),刘国伟) 1)北京科技大学计算机与通信工程学院,北京1000832)北京市经济和信息化局,北京100744 ☒通信作者,E-mail:小huyan@ustb.edu.cn 摘要从合同订立的相关法律规定入手,通过引人合约范本化思想,提出了一种包含智能合约建立、部署、订立和存证四 个阶段的规范化合约订立流程,使之满足书面合同成立要件的法律规定;同时,在合约范本中提出了书面化交互接口,使之满 足合约“订”和“立”两个阶段的交互:此外,在智能法律合约语言SPE$C中引入了合约订立相关语法,使之满足合约订立过程 中的“要约-承诺”制度,并设计了三种区块链交易结构支持当事人注册、签名、条款执行中交互数据的存证:最后,以销售合 约为实例.从订立过程的要约认定、承诺认定、存证合法性三方面辨析了所提智能法律合约订立方案的合规性.所做工作将 有助于为智能法律合约的订立过程提供法律依据,促进我国智能合约的法律化建设 关键词智能法律合约:合同订立:合约范本:要约-承诺:合规性:法律存证 分类号TP319 Design and implementation of conclusion procedure in smart legal contracts based on negotiation and acceptance GUO Qian,ZHU Yan,YIN Hong-jian,CHEN E,WANG Di,LIU Guo-wei) 1)School of Computer Communication Engineering,University of Science and Technology Beijing,Beijing 100083,China 2)Beijing Municipal Bureau of Economy and Information Technology,Beijing 100744,China Corresponding author,E-mail:zhuyan@ustb.edu.cn ABSTRACT Smart legal contract(SLC),as a form of smart contract in accordance with the law,has attracted extensive attention in recent years.However,the conclusion procedure of an SLC still lacks effective technical methods to make it conform to the current legal regulations,which directly affects the legitimacy of the SLC contract.Therefore,this paper starts with the relevant legal regulations of contract conclusion and introduces the idea of contract normative pattern (CNP),which is a reusable form,model,or template for contract conclusion.Based on these regulations,we propose a standardized conclusion procedure of smart legal contracts.This procedure includes four stages:establishment,deployment,conclusion,and deposit to meet the current legal regulations for the conditions of establishment in the written contracts.Meanwhile,a written form of interactive interface is proposed to satisfy the two stages of "negotiation"and "acceptance"in the CNP.The negotiation stage supports the parties to repeatedly negotiate and determine the pending contents in the CNP,and the acceptance stage is to activate the behavioral attribute by actively triggering predefined algorithms, such as registration and signature.In addition,the syntax of contract conclusion,including parties'negotiation and acceptance,is introduced in the SLC language,SPESC,to adhere to the "negotiation-acceptance"mechanism in the conclusion procedure.In this paper,we design three blockchain's transaction structures to store interactive data during party registration,signature,and clause execution.Finally,considering the sales contract as an example,we analyze the legitimacy of the proposed conclusion scheme based on three aspects:negotiation confirmation,acceptance confirmation,and deposit legitimacy.This paper will provide a legal basis for the 收稿日期:2021-04-08 基金项目:国家科技部重点研发计划资助项目(2018YFB1402702):国家自然科学基金资助项目(61972032)
基于要约–承诺的智能法律合约订立方法与实现 郭 倩1),朱 岩1) 苣,殷红建1),陈 娥1),王 迪1),刘国伟2) 1) 北京科技大学计算机与通信工程学院, 北京 100083 2) 北京市经济和信息化局, 北京 100744 苣通信作者, E-mail: zhuyan@ustb.edu.cn 摘 要 从合同订立的相关法律规定入手,通过引入合约范本化思想,提出了一种包含智能合约建立、部署、订立和存证四 个阶段的规范化合约订立流程,使之满足书面合同成立要件的法律规定;同时,在合约范本中提出了书面化交互接口,使之满 足合约“订”和“立”两个阶段的交互;此外,在智能法律合约语言 SPESC 中引入了合约订立相关语法,使之满足合约订立过程 中的“要约–承诺”制度,并设计了三种区块链交易结构支持当事人注册、签名、条款执行中交互数据的存证;最后,以销售合 约为实例,从订立过程的要约认定、承诺认定、存证合法性三方面辨析了所提智能法律合约订立方案的合规性. 所做工作将 有助于为智能法律合约的订立过程提供法律依据,促进我国智能合约的法律化建设. 关键词 智能法律合约;合同订立;合约范本;要约–承诺;合规性;法律存证 分类号 TP319 Design and implementation of conclusion procedure in smart legal contracts based on negotiation and acceptance GUO Qian1) ,ZHU Yan1) 苣 ,YIN Hong-jian1) ,CHEN E1) ,WANG Di1) ,LIU Guo-wei2) 1) School of Computer & Communication Engineering, University of Science and Technology Beijing, Beijing 100083, China 2) Beijing Municipal Bureau of Economy and Information Technology, Beijing 100744, China 苣 Corresponding author, E-mail: zhuyan@ustb.edu.cn ABSTRACT Smart legal contract (SLC), as a form of smart contract in accordance with the law, has attracted extensive attention in recent years. However, the conclusion procedure of an SLC still lacks effective technical methods to make it conform to the current legal regulations, which directly affects the legitimacy of the SLC contract. Therefore, this paper starts with the relevant legal regulations of contract conclusion and introduces the idea of contract normative pattern (CNP), which is a reusable form, model, or template for contract conclusion. Based on these regulations, we propose a standardized conclusion procedure of smart legal contracts. This procedure includes four stages: establishment, deployment, conclusion, and deposit to meet the current legal regulations for the conditions of establishment in the written contracts. Meanwhile, a written form of interactive interface is proposed to satisfy the two stages of “ negotiation” and “ acceptance” in the CNP. The negotiation stage supports the parties to repeatedly negotiate and determine the pending contents in the CNP, and the acceptance stage is to activate the behavioral attribute by actively triggering predefined algorithms, such as registration and signature. In addition, the syntax of contract conclusion, including parties ’ negotiation and acceptance, is introduced in the SLC language, SPESC, to adhere to the “negotiation-acceptance” mechanism in the conclusion procedure. In this paper, we design three blockchain ’s transaction structures to store interactive data during party registration, signature, and clause execution. Finally, considering the sales contract as an example, we analyze the legitimacy of the proposed conclusion scheme based on three aspects: negotiation confirmation, acceptance confirmation, and deposit legitimacy. This paper will provide a legal basis for the 收稿日期: 2021−04−08 基金项目: 国家科技部重点研发计划资助项目(2018YFB1402702);国家自然科学基金资助项目(61972032) 工程科学学报,第 44 卷,第 X 期:1−16,2021 年 X 月 Chinese Journal of Engineering, Vol. 44, No. X: 1−16, X 2021 https://doi.org/10.13374/j.issn2095-9389.2021.04.08.005; http://cje.ustb.edu.cn
工程科学学报,第44卷,第X期 conclusion procedure of an SLC and promote better achievement of legalization of a smart contract. KEY WORDS smart legal contract;contract conclusion;contract normative pattern;negotiation-acceptance mechanism;legitimacy; deposit legitimacy 随着数字经济时代的到来,以区块链为基础 于满足合约“订”和“立”两个阶段的数据交互,并 的智能合约(Smart contract)l-)正成为构建“价值 通过销售合约实例给出了当事人注册与签名动作 互联网”的颠覆性技术.伴随区块链技术1的不断 的行为处理算法,验证了上述交互接口设计实施 演化,智能合约不仅是区块链上满足预定条件时 合约订立过程的有效性: 自动执行的计算机代码,而且也演化出支持智能 (3)在智能法律合约语言SPESC中引入了合 合约可执行程序开发、生成、部署、运行、验证的 约订立相关语法,该语法包含当事人宣称和当事 信息系统,这使得区块链应用开发日益完善、产 人签名两部分,用于缔约双方以意思表示的形式 业应用日益广泛 对要约和承诺过程中的事项进行表述,并可记录 尽管智能合约具有将法律合同以程序代码形 合约成立的当事人信息、签名和签名时间,保证智 式加以自动执行的能力可,但就智能合约本身而 能法律合约能以书面合同样式体现“要约-承诺” 言,它仍然采用常规计算机语言编写,与传统的程 制度 序代码并无差异,因此在可读性、易理解、法律效 本文以销售合同为实例对上述智能合约订立 力等方面仍有别于法律合同.据此,智能法律合约 方法予以验证.首先,给出了采用SPE$C语言所 (Smart legal contract)被提出,它是一种含有合同 撰写的销售合约范本,并按照所提出的智能合约 构成要素、涵盖合同缔约方依据要约和承诺达成 订立流程,实现了该合约从协商、注册、签名到执 履行约定的计算机程序,兼具法律合同和计算机 行的全流程;其次,设计了三种伴随交易结构用于 程序的特征,为代码法律化提供了基础. 当事人注册、签名、条款执行中所有交互数据的 智能法律合约依据法律规定在形式上能够以 区块链存证:最后,以上述实例为基础,从订立过 程序代码表达法律合同条款m,保证了它既具有现 程的要约认定、承诺认定、存证合法性三方面辨 实合同的法律特征和易理解性,又有计算机程序 析了所提出的智能法律合约订立方案的合规性 的规范性,有助于解决智能合约的合法合规问题 1相关工作 按照我国现行法律规定,法律合同的订立过程也 应遵守特定的法律原则,特别是订立过程的“要约- 近几年智能合约法律化问题得到了广泛关 承诺”制度.然而,目前在学术和实践中都缺乏以 注,不少学者从智能合约本身是否符合现行法律 计算机程序为对象的订立过程合规性研究,无法 法规以及如何对智能合约进行规范使其转化为现 通过技术手段使智能法律合约的订立过程符合现 行法律法规所认可的形式两个方面进行了智能合 行法律规定,进而保证合约合法生效 约法律化研究. 针对上述智能法律合约订立过程中缺乏技术 一方面,一些学者采用“直觉逻辑”研究智能 手段来保证其合规性的问题,本文从合同订立的 合约本身所具有的合同属性,例如,2018年Kasprzyk 相关法律规定入手,规范了智能合约订立流程,扩 等通过分析智能合约能否真实表达缔约双方 充了智能法律合约语言使之满足合约订立过程中 的意图,来界定智能合约的法律效力.2019年郭少 的“要约-承诺”制度,并设计三种区块链交易结构 飞四从合同效力,修改与履行,违约及救济三方面 支持订立过程中交互数据的存证.具体工作如下: 深入剖析智能合约的合同法适用性.同年,陈吉 (1)通过引入合约范本化思想,提出了一种规 栋0通过讨论智能合约是否具有法律合同的要约- 范化的智能合约订立流程,该流程包含智能合约 承诺构造来判断智能合约能否成为法律合同.上 的建立、部署、订立和存证四个阶段,并详细给出 述研究基本认定了智能合约的合同法适用性 智能合约订立的数据流程,保证了智能合约满足 另一方面,一些学者则采用“构造逻辑”研究 我国现行法律对书面合同成立条件的规定; 智能合约法律化问题,希望通过对现有智能合约 (2)在合约范本中提出了针对要素属性信息 技术予以改进或规范化,使其转化为现行法律法 和行为属性信息两种类型的书面化交互接口,用 规所认可的形式.现有研究大致可分为如下三个
conclusion procedure of an SLC and promote better achievement of legalization of a smart contract. KEY WORDS smart legal contract;contract conclusion;contract normative pattern;negotiation–acceptance mechanism;legitimacy; deposit legitimacy 随着数字经济时代的到来,以区块链为基础 的智能合约(Smart contract) [1–2] 正成为构建“价值 互联网”的颠覆性技术. 伴随区块链技术[3] 的不断 演化,智能合约不仅是区块链上满足预定条件时 自动执行的计算机代码,而且也演化出支持智能 合约可执行程序开发、生成、部署、运行、验证的 信息系统[4] ,这使得区块链应用开发日益完善、产 业应用日益广泛. 尽管智能合约具有将法律合同以程序代码形 式加以自动执行的能力[5] ,但就智能合约本身而 言,它仍然采用常规计算机语言编写,与传统的程 序代码并无差异,因此在可读性、易理解、法律效 力等方面仍有别于法律合同. 据此,智能法律合约 (Smart legal contract) [6] 被提出,它是一种含有合同 构成要素、涵盖合同缔约方依据要约和承诺达成 履行约定的计算机程序,兼具法律合同和计算机 程序的特征,为代码法律化提供了基础. 智能法律合约依据法律规定在形式上能够以 程序代码表达法律合同条款[7] ,保证了它既具有现 实合同的法律特征和易理解性,又有计算机程序 的规范性,有助于解决智能合约的合法合规问题. 按照我国现行法律规定,法律合同的订立过程也 应遵守特定的法律原则,特别是订立过程的“要约– 承诺”制度. 然而,目前在学术和实践中都缺乏以 计算机程序为对象的订立过程合规性研究,无法 通过技术手段使智能法律合约的订立过程符合现 行法律规定,进而保证合约合法生效. 针对上述智能法律合约订立过程中缺乏技术 手段来保证其合规性的问题,本文从合同订立的 相关法律规定入手,规范了智能合约订立流程,扩 充了智能法律合约语言使之满足合约订立过程中 的“要约–承诺”制度,并设计三种区块链交易结构 支持订立过程中交互数据的存证. 具体工作如下: (1)通过引入合约范本化思想,提出了一种规 范化的智能合约订立流程,该流程包含智能合约 的建立、部署、订立和存证四个阶段,并详细给出 智能合约订立的数据流程,保证了智能合约满足 我国现行法律对书面合同成立条件的规定; (2)在合约范本中提出了针对要素属性信息 和行为属性信息两种类型的书面化交互接口,用 于满足合约“订”和“立”两个阶段的数据交互,并 通过销售合约实例给出了当事人注册与签名动作 的行为处理算法,验证了上述交互接口设计实施 合约订立过程的有效性; (3)在智能法律合约语言 SPESC 中引入了合 约订立相关语法,该语法包含当事人宣称和当事 人签名两部分,用于缔约双方以意思表示的形式 对要约和承诺过程中的事项进行表述,并可记录 合约成立的当事人信息、签名和签名时间,保证智 能法律合约能以书面合同样式体现“要约–承诺” 制度. 本文以销售合同为实例对上述智能合约订立 方法予以验证. 首先,给出了采用 SPESC 语言所 撰写的销售合约范本,并按照所提出的智能合约 订立流程,实现了该合约从协商、注册、签名到执 行的全流程;其次,设计了三种伴随交易结构用于 当事人注册、签名、条款执行中所有交互数据的 区块链存证;最后,以上述实例为基础,从订立过 程的要约认定、承诺认定、存证合法性三方面辨 析了所提出的智能法律合约订立方案的合规性. 1 相关工作 近几年智能合约法律化问题得到了广泛关 注,不少学者从智能合约本身是否符合现行法律 法规以及如何对智能合约进行规范使其转化为现 行法律法规所认可的形式两个方面进行了智能合 约法律化研究. 一方面,一些学者采用“直觉逻辑”研究智能 合约本身所具有的合同属性,例如,2018 年 Kasprzyk 等[8] 通过分析智能合约能否真实表达缔约双方 的意图,来界定智能合约的法律效力. 2019 年郭少 飞[9] 从合同效力,修改与履行,违约及救济三方面 深入剖析智能合约的合同法适用性. 同年,陈吉 栋[10] 通过讨论智能合约是否具有法律合同的要约– 承诺构造来判断智能合约能否成为法律合同. 上 述研究基本认定了智能合约的合同法适用性. 另一方面,一些学者则采用“构造逻辑”研究 智能合约法律化问题,希望通过对现有智能合约 技术予以改进或规范化,使其转化为现行法律法 规所认可的形式. 现有研究大致可分为如下三个 · 2 · 工程科学学报,第 44 卷,第 X 期
郭倩等:基于要约-承诺的智能法律合约订立方法与实现 3 方面: 同条款已经达成合意.由此可见,“订”是“立”的 首先,从规范程序设计与平台构建角度,为解 过程,“立”是“订”的结果. 决非计算机人员难以理解智能合约内容的问题, 合同订立采用要约-承诺制度.要约是一方当 高级智能合约语言被提出,它是介于自然语言与 事人以缔结合同为目的,向对方当事人提出合同 智能合约语言间的一种语言.2016年Farmer和HuW 条件,希望对方当事人接受的意思表示.发出要约 提出了一种具有精确语义的形式语言FCL,通过 的一方称为要约人,接受要约的一方称为受要约 该语言编写的智能法律合约由一组包含定义、协 人.承诺是受要约人按照所指定的方式,对要约的 议和规则的组件构成.2018年He等2I提出了一 内容表示同意的一种意思表示.采用“要约-承诺” 种智能合约规范化语言SPESC,它可以将现实合 制度优点是使合同成立过程清晰,易于判断:也有 同采用类自然语言的形式编写为智能法律合约 助于分清合同订立过程中双方的权利义务与责任 同年,Regnath和Steinhorst提出了SmaCoNat语 解释2:智能合约归属 言,创建了从自然语言到程序语义的映射. 我国《电子签名法》第2条规定:“本法所称数 其次,为使智能法律合约自动转化成与其意 据电文,是指以电子、光学、磁或者类似手段生 思表达一致的智能合约代码,2017年Mavridou和 成、发送、接收或者存储的信息” Laszka提出了一种FSolidM语义框架,用于将 智能合约采用计算机代码的形式表达合约条 高级智能合约设计为有限状态机FSM模型,使其 款,它通过电子化方式被发送至区块链网络,并被 自动生成以太坊Solidity合约.2018年Choudhury 网络中所有节点接收和存储),符合我国《电子签 等)提出了一种根据特定领域的本体和语义规则 名法》的规定,应被认定为数据电文 自动生成智能合约代码的框架;2020年Zupan等l6 其次,智能合约以区块链为依托平台网,当事 提出了一种基于Petri网生成智能合约的框架;同 人可通过电子数据交换形式从区块链上随时调取 年,Zhu等)提出了一种将高级智能合约语言SPESC 查看合约内容,并能以屏幕显示或打印形式,有形 自动转化为智能合约语言Solidity的转化规则 地表现所载内容,根据我国《民法典》第469条规 最后,从合约模板生成智能合约代码角度,为 定:“当事人订立合同,可以采用书面形式、口头 使智能法律合约具备与现实合同同等的法律效力, 形式或者其他形式.书面形式是合同书、信件、电 2016至2018年间,C1ack等u8-20通过探索智能合约 报、电传、传真等可以有形地表现所载内容的形式 的语义框架,并基于现实合同设计了具备法律效 以电子数据交换、电子邮件等方式能够有形地表 力的合约模板,同时使用操作参数建立了高级智 现所载内容,并可以随时调取查用的数据电文,视 能合约与智能合约间的联系.Account和OpenLaw 为书面形式”,因此属于数据电文的智能合约是书 项目开发了一种使用特殊标记语言的合约模板 面形式,其归属图如图1所示.因此,属于书面形 库,将现实合同转化为对应的智能法律合约 式的智能合约在订立方面应符合《民法典》中的相 上述研究表明智能合约正朝着跨领域合作、 关规定.其中,《民法典》第471条规定:“当事人订 标准统一、法律化的方向不断发展. 立合同,可以采取要约、承诺方式或其他方式”,为 2预备知识 符合上述规定,本文的智能合约订立过程采用亦 要约-承诺方式,注意:未加说明的情况下,合同是 解释1:合同订立 指法律上的传统合同,合约是指智能(法律)合约 法律上,法律合同订立是指缔约当事人相互 的缩写,泛指具有合同性质的代码化程序 为意思表示并达成合意而成立了合同.合同的订 立是合同双方动态行为和静态协议的统一,它既 Writing 包括缔约各方在达成协议之前接触和洽谈的整个 Data message 动态的过程,也包括双方达成合意、确定合同的主 要条款或者合同的条款之后所形成的协议四.也 Electronic data interchange 就是说,合同订立分为“订”和“立”两个阶段在, Smart contract 前者强调缔约双方在达成合意之前不断接触、协 商的整个动态过程,包括要约,要约邀请等;后者 图1智能合约归属图 强调缔约双方协商的结果,表示双方当事人对合 Fig.1 Venn diagram of a smart contract
方面: 首先,从规范程序设计与平台构建角度,为解 决非计算机人员难以理解智能合约内容的问题, 高级智能合约语言被提出,它是介于自然语言与 智能合约语言间的一种语言. 2016 年 Farmer 和 Hu[11] 提出了一种具有精确语义的形式语言 FCL,通过 该语言编写的智能法律合约由一组包含定义、协 议和规则的组件构成. 2018 年 He 等[12] 提出了一 种智能合约规范化语言 SPESC,它可以将现实合 同采用类自然语言的形式编写为智能法律合约. 同年,Regnath 和 Steinhorst [13] 提出了 SmaCoNat 语 言,创建了从自然语言到程序语义的映射. 其次,为使智能法律合约自动转化成与其意 思表达一致的智能合约代码,2017 年 Mavridou 和 Laszka [14] 提出了一种 FSolidM 语义框架,用于将 高级智能合约设计为有限状态机 FSM 模型,使其 自动生成以太坊 Solidity 合约. 2018 年 Choudhury 等[15] 提出了一种根据特定领域的本体和语义规则 自动生成智能合约代码的框架;2020 年 Zupan 等[16] 提出了一种基于 Petri 网生成智能合约的框架;同 年,Zhu 等[17] 提出了一种将高级智能合约语言 SPESC 自动转化为智能合约语言 Solidity 的转化规则. 最后,从合约模板生成智能合约代码角度,为 使智能法律合约具备与现实合同同等的法律效力, 2016 至 2018 年间,Clack 等[18–20] 通过探索智能合约 的语义框架,并基于现实合同设计了具备法律效 力的合约模板,同时使用操作参数建立了高级智 能合约与智能合约间的联系. Account 和 OpenLaw 项目开发了一种使用特殊标记语言的合约模板 库,将现实合同转化为对应的智能法律合约[21] . 上述研究表明智能合约正朝着跨领域合作、 标准统一、法律化的方向不断发展. 2 预备知识 解释 1:合同订立 法律上,法律合同订立是指缔约当事人相互 为意思表示并达成合意而成立了合同. 合同的订 立是合同双方动态行为和静态协议的统一,它既 包括缔约各方在达成协议之前接触和洽谈的整个 动态的过程,也包括双方达成合意、确定合同的主 要条款或者合同的条款之后所形成的协议[22] . 也 就是说,合同订立分为“订”和“立”两个阶段在, 前者强调缔约双方在达成合意之前不断接触、协 商的整个动态过程,包括要约,要约邀请等;后者 强调缔约双方协商的结果,表示双方当事人对合 同条款已经达成合意. 由此可见,“订”是“立”的 过程,“立”是“订”的结果. 合同订立采用要约–承诺制度. 要约是一方当 事人以缔结合同为目的,向对方当事人提出合同 条件,希望对方当事人接受的意思表示. 发出要约 的一方称为要约人,接受要约的一方称为受要约 人. 承诺是受要约人按照所指定的方式,对要约的 内容表示同意的一种意思表示. 采用“要约–承诺” 制度优点是使合同成立过程清晰,易于判断;也有 助于分清合同订立过程中双方的权利义务与责任. 解释 2:智能合约归属 我国《电子签名法》第 2 条规定:“本法所称数 据电文,是指以电子、光学、磁或者类似手段生 成、发送、接收或者存储的信息”. 智能合约采用计算机代码的形式表达合约条 款,它通过电子化方式被发送至区块链网络,并被 网络中所有节点接收和存储[23] ,符合我国《电子签 名法》的规定,应被认定为数据电文. 其次,智能合约以区块链为依托平台[24] ,当事 人可通过电子数据交换形式从区块链上随时调取 查看合约内容,并能以屏幕显示或打印形式,有形 地表现所载内容,根据我国《民法典》第 469 条规 定:“当事人订立合同,可以采用书面形式、口头 形式或者其他形式. 书面形式是合同书、信件、电 报、电传、传真等可以有形地表现所载内容的形式. 以电子数据交换、电子邮件等方式能够有形地表 现所载内容,并可以随时调取查用的数据电文,视 为书面形式”,因此属于数据电文的智能合约是书 面形式,其归属图如图 1 所示. 因此,属于书面形 式的智能合约在订立方面应符合《民法典》中的相 关规定. 其中,《民法典》第 471 条规定:“当事人订 立合同,可以采取要约、承诺方式或其他方式”,为 符合上述规定,本文的智能合约订立过程采用亦 要约–承诺方式. 注意:未加说明的情况下,合同是 指法律上的传统合同,合约是指智能(法律)合约 的缩写,泛指具有合同性质的代码化程序. Smart contract Electronic data interchange Data message Writing 图 1 智能合约归属图 Fig.1 Venn diagram of a smart contract 郭 倩等: 基于要约–承诺的智能法律合约订立方法与实现 · 3 ·
工程科学学报,第44卷,第X期 3系统框架 后的电子化表示,也被称为合约示范文本(简称范 本Pattern或模板Template).合约范本是一类合约 3.1系统目标 实例的抽象化阿,它包含格式条款和法律构成要 缔约双方约定采用智能合约的形式订立合 素的属性,其中每个要素属性都有其唯一标识和 同,则合约订立应符合《民法典》等现行法律法规 类型约束.这里,属性值在合约模板中事先不必赋 要求的成立规则.针对这一现实需求,本文将对基 值,但经双方当事人协商、合约订立后需被确定 于区块链的智能合约系统进行合约订立设计,使 合约范本也符合《民法典》第470条:“当事人可以 得合约订立过程遵循现行法律规定,使区块链智 参照各类合同的示范文本订立合同”的规定 能合约能够成为一种具有法律效力或法律意义的 智能法律合约中条款属于格式条款.《民法 文书 典》第496条指出“格式条款是当事人为了重复使 依据上述目标,本文对合约订立设计过程提 用而预先拟定,并在订立合同时未与对方协商的 出以下要求: 条款”.为了便于采用计算机处理合约中的格式条 (1)订立流程合法化:从法律上规范化智能合 款,通常采用高级智能合约语言对其描述形成合 约订立流程; 约范本.此外,根据不同应用场景的实际需求,智 (2)意思表示真实性:在要约-承诺阶段,要约 能法律合约作为合约范本要为当事人提供书面化 人和受要约人通过明示方式作出其意思表示; 交互接口(见第53节),通过交互过程确定上述要 (3)合同生效规范化:明确要约、承诺生效 素属性的取值,这一过程也被称为合约范本的实 时间: 例化过程,所得结果被称为合约实例(Instance). (4)合同存证合法化:对订立过程中的合约原 3.3智能合约订立框架 件及数据进行合法存证 基于区块链的智能合约系统,本文进行“要约- 3.2合约模板化 承诺”制度的合约订立流程设计如图2所示.该订 智能法律合约是对同一类纸质合同经模板化 立框架包含如下实体: rty ll Negotiation Check Acceptance Check contract contract Smart contract platform Contract layer Compilation layer Execution layer Programmer Updatecontract status Query and access Blockchain Hash Consensus Incentive mechanism P2P network 图2 智能合约订立框架 Fig.2 Framework of smart contract conclusion (1)甲方、乙方及编程人员:假定合同由甲乙 同意合约中的权利义务关系,则也主动触发签名 双方当事人订立,他们均为具有相应民事权利能 机制,以明示方式作出承诺,合约成立 力和民事行为能力的人编程人员遵照商业规 (2)智能合约平台:是一种支持智能合约可执 则采用智能合约语言撰写合约,并将其部署至智 行程序部署、签名、运行、验证的信息网络系统 能合约平台.甲方通过平台调取查看合约后,如同 包含合约层、编译层和执行层可,其中: 意合约中条款表述则主动触发签名机制,以明示 (a)合约层为编程人员提供智能合约编程语 方式作出其意思表示,明确表明甲方已阅读、理解 言、合约模板及与区块链交互的API接口; 并同意本合约中的所有条款.乙方同样获取从智 (b)编译层将智能合约代码编译为虚拟机执 能合约平台返回的作为甲方“要约”的合约,若也 行的字节码;
3 系统框架 3.1 系统目标 缔约双方约定采用智能合约的形式订立合 同,则合约订立应符合《民法典》等现行法律法规 要求的成立规则. 针对这一现实需求,本文将对基 于区块链的智能合约系统进行合约订立设计,使 得合约订立过程遵循现行法律规定,使区块链智 能合约能够成为一种具有法律效力或法律意义的 文书. 依据上述目标,本文对合约订立设计过程提 出以下要求: (1)订立流程合法化:从法律上规范化智能合 约订立流程; (2)意思表示真实性:在要约–承诺阶段,要约 人和受要约人通过明示方式作出其意思表示; ( 3)合同生效规范化:明确要约、承诺生效 时间; (4)合同存证合法化:对订立过程中的合约原 件及数据进行合法存证. 3.2 合约模板化 智能法律合约是对同一类纸质合同经模板化 后的电子化表示,也被称为合约示范文本(简称范 本 Pattern 或模板 Template). 合约范本是一类合约 实例的抽象化[25] ,它包含格式条款和法律构成要 素的属性,其中每个要素属性都有其唯一标识和 类型约束. 这里,属性值在合约模板中事先不必赋 值,但经双方当事人协商、合约订立后需被确定. 合约范本也符合《民法典》第 470 条:“当事人可以 参照各类合同的示范文本订立合同”的规定. 智能法律合约中条款属于格式条款. 《民法 典》第 496 条指出“格式条款是当事人为了重复使 用而预先拟定,并在订立合同时未与对方协商的 条款”. 为了便于采用计算机处理合约中的格式条 款,通常采用高级智能合约语言对其描述形成合 约范本. 此外,根据不同应用场景的实际需求,智 能法律合约作为合约范本要为当事人提供书面化 交互接口(见第 5.3 节),通过交互过程确定上述要 素属性的取值,这一过程也被称为合约范本的实 例化过程,所得结果被称为合约实例(Instance). 3.3 智能合约订立框架 基于区块链的智能合约系统,本文进行“要约– 承诺”制度的合约订立流程设计如图 2 所示. 该订 立框架包含如下实体: Hash Consensus Incentive mechanism P2P network Blockchain Smart contract platform Contract layer Compilation layer Execution layer Query and access Check contract Acceptance Deploy Programmer Write PartyⅠ PartyⅡ Negotiation Updatecontract status Check contract 图 2 智能合约订立框架 Fig.2 Framework of smart contract conclusion (1)甲方、乙方及编程人员:假定合同由甲乙 双方当事人订立,他们均为具有相应民事权利能 力和民事行为能力的人[26] . 编程人员遵照商业规 则采用智能合约语言撰写合约,并将其部署至智 能合约平台. 甲方通过平台调取查看合约后,如同 意合约中条款表述则主动触发签名机制,以明示 方式作出其意思表示,明确表明甲方已阅读、理解 并同意本合约中的所有条款. 乙方同样获取从智 能合约平台返回的作为甲方“要约”的合约,若也 同意合约中的权利义务关系,则也主动触发签名 机制,以明示方式作出承诺,合约成立. (2)智能合约平台:是一种支持智能合约可执 行程序部署、签名、运行、验证的信息网络系统. 包含合约层、编译层和执行层[27] ,其中: (a)合约层为编程人员提供智能合约编程语 言、合约模板及与区块链交互的 API 接口; (b)编译层将智能合约代码编译为虚拟机执 行的字节码; · 4 · 工程科学学报,第 44 卷,第 X 期
郭倩等:基于要约-承诺的智能法律合约订立方法与实现 5 (©)执行层利用链上数据判断是否满足合约条 合约中表述的权利义务关系,则选择进行交易 款,若满足则自动执行合约 通过该方式也可反映出不同缔约主体间的合 (3)区块链:为智能合约提供了一个强有力的 意,自合约成立后,双方当事人均受该意思表示 底层介质2,用于记录合约的代码、执行的中间状 约束 态及执行结果.当前智能合约平台已经能够屏蔽 4智能合约订立流程合规化方案 区块链中的很多技术细节,使得区块链中的各种 复杂(哈希、P2P、共识机制、激励机制)机制为智 类似于传统纸质合同的签订方式,智能合约 能合约生命周期中的数据存证提供保障, 采取电子化形式进行要约-承诺认定,双方当事人 上述框架中甲、乙双方事先并未达成合意,编 签署数字签名后即视为缔约双方对智能合约代码 程人员直接通过智能法律合约语言编写合约范 所表示条款的认可,合约生效.智能合约订立流程 本后,智能合约程序被自动部署至智能合约平台, 如图3所示,包括智能合约从建立、部署、签名和 双方当事人从平台调取查看合约内容,如同意此 存证四个阶段的处理. Smart contract generation Storage structure of contract in blockchain Smart contract A Smart contract B Accompanying transaction (smart legal contract) (smart contract) Address Generation Smart Smart Contract B Contract A Conversion contract contract content Time(null) Sign (null) content A B Sign(executor) Time (null) Sign (null) Manual participation Deployment and signature (negotiation and acceptance) Blockchain Block Block > Block N-1 W+1 Query and access Query and access Signature Serial address Address Smart contract Signatures: Party I Party II Aand B Time(Party I Sign(Party I) Time(Party II Sign(Party II Time(Party I) Time(Party II) Sign (Party I) Sign(Party II) Time/Status Browsing content in blockchain Storage structure of signed contract in blockchain 图3智能合约订立数据流程图 Fig.3 Data flow diagram of smart contract conclusion 4.1智能合约建立 相比,虽然合同内容的载体不同,但这并不影响缔 智能合约建立阶段是指编程人员撰写智能法 约双方的合意呈现.其次,将智能合约A通过包含 律合约,经一定转化规则生成计算机可执行程序0. 一定转化规则的合约翻译器转化为智能合约程 具体如下:编程人员将缔约双方所描述的权利义 序,即智能合约B.例如,文献17]提出了一种从 务关系采用智能法律合约语言(如SPESC语言) 智能法律合约语言SPESC转化到以太坊智能合约 撰写成智能法律合约,即智能合约A.智能法律合 语言Solidity的转化规则,该转化规则的制定使得 约是对传统纸质合同的代码化后的结果,将自然 转化后的智能合约B具有规范的逻辑表达和函数 语言描述的合同条款用智能法律合约语言表述 结构,避免了同一份智能合约A经不同编程人员 后,可使合同条款在意思表示上更加精准简洁,无 转化后的不确定性 二义性别经翻译后的智能法律合约与纸质合同 智能法律合约(智能合约A)到智能合约(智能
(c)执行层利用链上数据判断是否满足合约条 款,若满足则自动执行合约. (3)区块链:为智能合约提供了一个强有力的 底层介质[28] ,用于记录合约的代码、执行的中间状 态及执行结果. 当前智能合约平台已经能够屏蔽 区块链中的很多技术细节,使得区块链中的各种 复杂(哈希、P2P、共识机制、激励机制)机制为智 能合约生命周期中的数据存证提供保障[29] . 上述框架中甲、乙双方事先并未达成合意,编 程人员直接通过智能法律合约语言编写合约范 本后,智能合约程序被自动部署至智能合约平台, 双方当事人从平台调取查看合约内容,如同意此 合约中表述的权利义务关系,则选择进行交易. 通过该方式也可反映出不同缔约主体间的合 意,自合约成立后,双方当事人均受该意思表示 约束. 4 智能合约订立流程合规化方案 类似于传统纸质合同的签订方式,智能合约 采取电子化形式进行要约–承诺认定,双方当事人 签署数字签名后即视为缔约双方对智能合约代码 所表示条款的认可,合约生效. 智能合约订立流程 如图 3 所示,包括智能合约从建立、部署、签名和 存证四个阶段的处理. Contract A content Smart contract A (smart legal contract) Smart contract B (smart contract) Storage structure of contract in blockchain Conversion Generation Signature Sign (executor) Manual participation and signature Contract B content Smart contract generation Block N−1 Block N Block N+1 … Blockchain Deployment (negotiation and acceptance) Query and access Browsing content in blockchain Storage structure of signed contract in blockchain Smart contract Aand B Serial : address Time/Status Signatures: Time(PartyⅠ)/Sign(PartyⅠ) Time(PartyⅡ)/Sign(PartyⅡ) Smart contract A Smart contract B Query and access Address Time (PartyⅠ) Time (PartyⅡ) PartyⅠ PartyⅡ Sign (PartyⅠ) Sign (PartyⅡ) Address Time (null) Time (null) Sign (null) Sign (null) Accompanying transaction 图 3 智能合约订立数据流程图 Fig.3 Data flow diagram of smart contract conclusion 4.1 智能合约建立 智能合约建立阶段是指编程人员撰写智能法 律合约,经一定转化规则生成计算机可执行程序[30] . 具体如下:编程人员将缔约双方所描述的权利义 务关系采用智能法律合约语言(如 SPESC 语言[12] ) 撰写成智能法律合约,即智能合约 A. 智能法律合 约是对传统纸质合同的代码化后的结果,将自然 语言描述的合同条款用智能法律合约语言表述 后,可使合同条款在意思表示上更加精准简洁,无 二义性[31] . 经翻译后的智能法律合约与纸质合同 相比,虽然合同内容的载体不同,但这并不影响缔 约双方的合意呈现. 其次,将智能合约 A 通过包含 一定转化规则的合约翻译器转化为智能合约程 序,即智能合约 B. 例如,文献 [17] 提出了一种从 智能法律合约语言 SPESC 转化到以太坊智能合约 语言 Solidity 的转化规则,该转化规则的制定使得 转化后的智能合约 B 具有规范的逻辑表达和函数 结构,避免了同一份智能合约 A 经不同编程人员 转化后的不确定性. 智能法律合约(智能合约 A)到智能合约(智能 郭 倩等: 基于要约–承诺的智能法律合约订立方法与实现 · 5 ·
工程科学学报,第44卷,第X期 合约B)转化过程通常应满足以下要求: 表1伴随交易的交易结构 (1)证智能法律合约与转化后的智能合约具 Table 1 Structure of accompanying transaction 有相同的意思表示,具备相同的法律效力: Notation Description (2)采用自动转化方式,转化在逻辑上是一种 contractAddress Deployment address of contract 映射,保证了转化结果无二义性,原因在于所涉及 latestCodelD Transaction ID of latest contract code 的转化规则是确定的,从而使智能法律合约被转 vin ContractInput 化后的结果是相同的: latestExecutelD Transaction ID of latest contract status (3)如果无法完成全部智能法律合约的自动 address Contract address 转化,则允许人工参与.不同的编程人员对同一条 method Contract interface 款的解读和代码实现可能是不同的,但代码的执 contractData Contract status 行结果必须是一致的. listSign Signature list 在人工转化过程中,编程人员或法人必须对 vout]ContractOutout signature Signature of current executor 转化后的智能合约进行签名,并承担所编写代码 signdate Signature date of the current 引发问题的法律责任.如当事人对转化后的合同 signer 条款有争议,应根据《民法典》第466条第1款规 (I)在输入(vin)字段中添加了ContractInput字 定:“合同文本采用两种以上文字订立并约定具 段,该字段包含:系统自动部署智能合约可执行代 有同等效力的,对各文本使用的词句推定具有相 码后获得的合约地址contractAddress、最新合约代 同含义.各文本使用的词句不一致的,应当根据合 码的交易标识latestCodeID、最新合约执行状态的 同的相关条款、性质、目的以及诚信原则等予以 交易标识lastestExecuteID、当前执行合约的账户地 解释”,确定争议条款的意思表示.总之,上述过 址address、当前所触发的合约接口method; 程无论是自动转化或是需人工参与,都必须保证 (2)在输出(vout)字段中添加了ContractOutput 智能合约A和转化后的智能合约B具备相同的意 字段,该字段包含:智能法律合约中的法律要素 思表示 属性信息contractData、合约签名列表listSign、 4.2智能合约部署 当前缔约方签名signature、当前缔约方签名时间 智能合约部署是指编程人员将智能合约A与 signdate. 智能合约B整合后部署至区块链智能合约平台的 4.3智能合约订立 过程0按照“要约-承诺”制度,合约部署后同意 智能合约订立是指能够使合约合法成立的过 该合约的当事人才能进入合约订立阶段,因此,在 程.基于区块链的智能合约平台,要约人和受要约 智能合约部署过程中不仅涉及智能合约存证与可 人需遵循相关法律要求的“要约-承诺”制度,使合 执行代码上链,还要为其后的智能合约订立预留 约订立流程合法合规化. 接口. 基于区块链的智能合约平台为缔约双方提供 为使区块链交易结构符合智能合约的订立要 合约范本库,双方可根据自身需求对合约范本进 求,需要将已部署智能合约中的部分信息(如 行选择.为使合约订立过程中的要约-承诺阶段能 4.2节智能法律合约中的法律要素属性)分离出来 够满足现行法律对要约-承诺的认定,合约范本必 并以交易形式独立进行存储,这种新的交易形式 须为当事人提供书面化交互接口.在“订”阶段,合 被称为伴随交易,它通常包含以下两类信息: 约中任何需由当事人确定的信息,都必须由当事 (1)智能合约范本中尚未确定并待当事人商 人经协商后主动填入,在“立”阶段,对合约的签名 议后确认的合约意思表示,比如,承诺生效时间、 动作,必须保证由要约人受要约人主动激活.因 标的价格、标的物编号、付款方式等: 此,在合约订立交互接口中必须包含当事人主动 (2)当事人订立合约中“立”阶段的智能合约 注册为要约人/受要约人的接口(registPublish)及当 署名信息,比如,要约人和受要约人的信息、签署 事人主动对合约发起签名的接口(toSign) 时间、数字签名等 区块链以伴随交易的形式对合约订立过程中 表1给出了一个伴随交易的示例结构.它是 的交互数据进行存证.要约人(PartyI)阅读,理解 在比特币的交易结构上添加新交易字段加以构 并同意合约中所有表述,则通过主动触发方式激 造,具体如下: 活合约范本中的签名交互接口,进而调用已部署
合约 B)转化过程通常应满足以下要求: (1)证智能法律合约与转化后的智能合约具 有相同的意思表示,具备相同的法律效力[32] ; (2)采用自动转化方式,转化在逻辑上是一种 映射,保证了转化结果无二义性,原因在于所涉及 的转化规则是确定的,从而使智能法律合约被转 化后的结果是相同的; (3)如果无法完成全部智能法律合约的自动 转化,则允许人工参与. 不同的编程人员对同一条 款的解读和代码实现可能是不同的,但代码的执 行结果必须是一致的. 在人工转化过程中,编程人员或法人必须对 转化后的智能合约进行签名,并承担所编写代码 引发问题的法律责任. 如当事人对转化后的合同 条款有争议,应根据《民法典》第 466 条第 1 款规 定: “合同文本采用两种以上文字订立并约定具 有同等效力的,对各文本使用的词句推定具有相 同含义. 各文本使用的词句不一致的,应当根据合 同的相关条款、性质、目的以及诚信原则等予以 解释”. 确定争议条款的意思表示. 总之,上述过 程无论是自动转化或是需人工参与,都必须保证 智能合约 A 和转化后的智能合约 B 具备相同的意 思表示. 4.2 智能合约部署 智能合约部署是指编程人员将智能合约 A 与 智能合约 B 整合后部署至区块链智能合约平台的 过程[30] . 按照“要约–承诺”制度,合约部署后同意 该合约的当事人才能进入合约订立阶段,因此,在 智能合约部署过程中不仅涉及智能合约存证与可 执行代码上链,还要为其后的智能合约订立预留 接口. 为使区块链交易结构符合智能合约的订立要 求 ,需要将已部署智能合约中的部分信息 ( 如 4.2 节智能法律合约中的法律要素属性)分离出来 并以交易形式独立进行存储,这种新的交易形式 被称为伴随交易,它通常包含以下两类信息: (1)智能合约范本中尚未确定并待当事人商 议后确认的合约意思表示,比如,承诺生效时间、 标的价格、标的物编号、付款方式等; (2)当事人订立合约中“立”阶段的智能合约 署名信息,比如,要约人和受要约人的信息、签署 时间、数字签名等. 表 1 给出了一个伴随交易的示例结构. 它是 在比特币的交易结构上添加新交易字段加以构 造,具体如下: 表 1 伴随交易的交易结构 Table 1 Structure of accompanying transaction Notation Description vin[] ContractInput contractAddress Deployment address of contract latestCodeID Transaction ID of latest contract code latestExecuteID Transaction ID of latest contract status address Contract address method Contract interface vout[] ContractOutout contractData Contract status listSign Signature list signature Signature of current executor signdate Signature date of the current signer (1)在输入(vin)字段中添加了 ContractInput 字 段,该字段包含:系统自动部署智能合约可执行代 码后获得的合约地址 contractAddress、最新合约代 码的交易标识 latestCodeID、最新合约执行状态的 交易标识 lastestExecuteID、当前执行合约的账户地 址 address、当前所触发的合约接口 method; (2)在输出(vout)字段中添加了 ContractOutput 字段,该字段包含:智能法律合约中的法律要素 属 性 信 息 contractData、 合 约 签 名 列 表 listSign、 当前缔约方签名 signature、当前缔约方签名时间 signdate. 4.3 智能合约订立 智能合约订立是指能够使合约合法成立的过 程. 基于区块链的智能合约平台,要约人和受要约 人需遵循相关法律要求的“要约–承诺”制度,使合 约订立流程合法合规化. 基于区块链的智能合约平台为缔约双方提供 合约范本库,双方可根据自身需求对合约范本进 行选择. 为使合约订立过程中的要约–承诺阶段能 够满足现行法律对要约–承诺的认定,合约范本必 须为当事人提供书面化交互接口. 在“订”阶段,合 约中任何需由当事人确定的信息,都必须由当事 人经协商后主动填入. 在“立”阶段,对合约的签名 动作,必须保证由要约人/受要约人主动激活. 因 此,在合约订立交互接口中必须包含当事人主动 注册为要约人/受要约人的接口(registPublish)及当 事人主动对合约发起签名的接口(toSign). 区块链以伴随交易的形式对合约订立过程中 的交互数据进行存证. 要约人(PartyI)阅读,理解 并同意合约中所有表述,则通过主动触发方式激 活合约范本中的签名交互接口,进而调用已部署 · 6 · 工程科学学报,第 44 卷,第 X 期
郭倩等:基于要约-承诺的智能法律合约订立方法与实现 7 的智能合约可执行算法予以处理,处理完毕后将 5.1 智能法律合约语言 签名时间Time(Partyl))和签名Sign(Partyl以伴随 智能法律合约语言是一种面向法律合同领域 交易的形式存储于区块链,并将处理结果填充回 的编程语言,属于领域特定语言DSL的一种,其特 合约范本,供相关人员查看. 征就是符合现行法律规范.文献[12]提出的智能 要约生效后,要约过程中的所有数据都被存 合约规范化语言SPESC就是这类语言的一种.采用 储于区块链,任何时候相关人员都可请求查看合 该语言所撰写的智能法律合约有利于不同领域(法 约内容.受要约人(PartyII)若同意此要约,则主动 律、计算机及相关应用领域)人员协同设计和开发 触发合约交互接口进行签名,待已部署的智能合 智能合约,是一种更加高级的智能合约语言形式. 约可执行算法处理完毕后,将签名时间Time(PartyII) 表2展示了SPESC的智能法律合约语法规 和签名Sign(PartyIl)同样以伴随交易的形式存储 则.依据《民法典》第470条规定,智能法律合约涵 于区块链,并将处理结果填充回合约范本以供 盖的合同内容包括:当事人信息、标的、数量、质 查看. 量、价款或者报酬、履行期限和方式、违约责任、 4.4智能合约存证 解决争议的方法等方面,因此,SPESC语言编写的 缔约双方经智能合约订立阶段后,合约生效 智能法律合约由合约框架(Contract)、合约名称 预先被存在链上的智能合约代码被当事人触发, (Title)、当事人描述(Parties)、标的(Assets)、资产 通过网络中多节点共识后,按照合约中表述的条 表达式(AssetExpressions)、合约条款(Terms)、附 款自动执行.智能合约从一个状态转变成另一个 加信息(Additions)等法律构成要素组成. 状态,基于区块链的智能合约平台将合约代码、合 标的是指当事人权利和义务共同指向的对 约执行的中间状态Status、执行结果以伴随交易的 象,以资产加以表示.资产表达式则是智能合约语 形式存储至区块链.该过程可对合约订立及合约 言中条款调用资产的形式,通常涉及的资产操作 执行中合约状态的改变进行存证0其中区块链 包括存入(Deposits)、取回(Withdraws)、转移 一方面保证这些数据不被篡改,另一方面通过每 (Transfers)三类.文献[34)对各种类型标的物(实 个节点以相同的输入执行智能合约来验证运行结 物资产、虚拟资产、货币资产等)及其操作进行了 果的正确性 全面阐述 缔约双方及相关人员可通过交易id随时请求 合同的主体是合同的各项条款,也是确定 调取查看合约的代码、执行状态以及执行结果 当事人权利和义务的根据.在SPESC语言中, 智能合约平台将智能法律合约和链上存储的交互 条款包括一般条款(GeneralTerms)、违约条款 数据进行整合,并以书面化形式予以呈现. (BreachTerms)、仲裁条款(ArbitrationTerms)三种 总之,上述智能合约订立方案遵循“要约-承 类型.文献[17刀中将合约名称、当事人描述、合同 诺”制度,能够符合现行法律法规规范,从而保证 条款及附加信息进行了详细介绍,并给出了由 智能合约依法成立与法律效力 SPESC撰写合约转化为智能合约程序的方法.然 5智能法律合约的订立方案 而,上述工作都不涉及合约订立过程,也没有在语 言中支持合约订立相关语法 第4节已从建立、部署、订立和存证四个阶段 5.2智能法律合约中订立语法 规范了智能合约订立流程.此后我们将对该流程 在现行法律法规中合同订立法律构成要件基 中的订立阶段进行详细设计,使该阶段满足相关 础上,本文对智能法律合约语言进行了打充并引 法律规定的“要约-承诺”制度,保证合约合法成立 入了合约订立(Contract conclusions)相关语法.首 智能法律合约作为法律合同转化为智能合约 先,鉴于要约、承诺是合同成立的基本规则,因此 程序的过渡形式),也需要遵循我国相关法律法 合约订立语法需体现要约和承诺两个阶段;其次, 规对合约订立的要求.同时,考虑到智能法律合约 订立过程必须确认当事人的姓名或者名称和住 语言是编写智能法律合约的原则和依据,因而首 所:此外,《民法典》第490条规定了采用合同书形 先需要在智能法律合约语言设计中满足合约订立 式订立合同的,自当事人均签名时合同成立,因 的法律要求.为了达到这一目的,本节将首先以 此,智能法律合约必须支持当事人以数字签名形 SPESC语言为例介绍智能法律合约,继而在其中 式对合约进行签名 加入合约订立相关语法并加以示例. 鉴于以上三点要求,参照现有书面合同样式
的智能合约可执行算法予以处理,处理完毕后将 签名时间 Time(PartyI) 和签名 Sign(PartyI) 以伴随 交易的形式存储于区块链,并将处理结果填充回 合约范本,供相关人员查看. 要约生效后,要约过程中的所有数据都被存 储于区块链,任何时候相关人员都可请求查看合 约内容. 受要约人(PartyII)若同意此要约,则主动 触发合约交互接口进行签名,待已部署的智能合 约可执行算法处理完毕后,将签名时间 Time(PartyII) 和签名 Sign(PartyII) 同样以伴随交易的形式存储 于区块链,并将处理结果填充回合约范本以供 查看. 4.4 智能合约存证 缔约双方经智能合约订立阶段后,合约生效. 预先被存在链上的智能合约代码被当事人触发, 通过网络中多节点共识后,按照合约中表述的条 款自动执行. 智能合约从一个状态转变成另一个 状态,基于区块链的智能合约平台将合约代码、合 约执行的中间状态 Status、执行结果以伴随交易的 形式存储至区块链. 该过程可对合约订立及合约 执行中合约状态的改变进行存证[30] ,其中区块链 一方面保证这些数据不被篡改,另一方面通过每 个节点以相同的输入执行智能合约来验证运行结 果的正确性. 缔约双方及相关人员可通过交易 id 随时请求 调取查看合约的代码、执行状态以及执行结果. 智能合约平台将智能法律合约和链上存储的交互 数据进行整合,并以书面化形式予以呈现. 总之,上述智能合约订立方案遵循“要约–承 诺”制度,能够符合现行法律法规规范,从而保证 智能合约依法成立与法律效力. 5 智能法律合约的订立方案 第 4 节已从建立、部署、订立和存证四个阶段 规范了智能合约订立流程. 此后我们将对该流程 中的订立阶段进行详细设计,使该阶段满足相关 法律规定的“要约–承诺”制度,保证合约合法成立. 智能法律合约作为法律合同转化为智能合约 程序的过渡形式[33] ,也需要遵循我国相关法律法 规对合约订立的要求. 同时,考虑到智能法律合约 语言是编写智能法律合约的原则和依据,因而首 先需要在智能法律合约语言设计中满足合约订立 的法律要求. 为了达到这一目的,本节将首先以 SPESC 语言为例介绍智能法律合约,继而在其中 加入合约订立相关语法并加以示例. 5.1 智能法律合约语言 智能法律合约语言是一种面向法律合同领域 的编程语言,属于领域特定语言 DSL 的一种,其特 征就是符合现行法律规范. 文献 [12] 提出的智能 合约规范化语言 SPESC 就是这类语言的一种. 采用 该语言所撰写的智能法律合约有利于不同领域(法 律、计算机及相关应用领域)人员协同设计和开发 智能合约,是一种更加高级的智能合约语言形式. 表 2 展示了 SPESC 的智能法律合约语法规 则. 依据《民法典》第 470 条规定,智能法律合约涵 盖的合同内容包括:当事人信息、标的、数量、质 量、价款或者报酬、履行期限和方式、违约责任、 解决争议的方法等方面,因此,SPESC 语言编写的 智能法律合约由合约框架(Contract)、合约名称 (Title)、当事人描述(Parties)、标的(Assets)、资产 表达式(AssetExpressions)、合约条款(Terms)、附 加信息(Additions)等法律构成要素组成. 标的是指当事人权利和义务共同指向的对 象,以资产加以表示. 资产表达式则是智能合约语 言中条款调用资产的形式,通常涉及的资产操作 包 括 存 入 ( Deposits) 、 取 回 ( Withdraws) 、 转 移 (Transfers)三类. 文献 [34] 对各种类型标的物(实 物资产、虚拟资产、货币资产等)及其操作进行了 全面阐述. 合同的主体是合同的各项条款 ,也是确定 当事人权利和义务的根据 . 在 SPESC 语言中 , 条款包括一般条款 ( GeneralTerms) 、违约条款 (BreachTerms)、仲裁条款(ArbitrationTerms)三种 类型. 文献 [17] 中将合约名称、当事人描述、合同 条款及附加信息进行了详细介绍 ,并给出了由 SPESC 撰写合约转化为智能合约程序的方法. 然 而,上述工作都不涉及合约订立过程,也没有在语 言中支持合约订立相关语法. 5.2 智能法律合约中订立语法 在现行法律法规中合同订立法律构成要件基 础上,本文对智能法律合约语言进行了扩充并引 入了合约订立(Contract conclusions)相关语法. 首 先,鉴于要约、承诺是合同成立的基本规则,因此 合约订立语法需体现要约和承诺两个阶段;其次, 订立过程必须确认当事人的姓名或者名称和住 所;此外,《民法典》第 490 条规定了采用合同书形 式订立合同的,自当事人均签名时合同成立,因 此,智能法律合约必须支持当事人以数字签名形 式对合约进行签名. 鉴于以上三点要求,参照现有书面合同样式, 郭 倩等: 基于要约–承诺的智能法律合约订立方法与实现 · 7 ·
工程科学学报,第44卷,第X期 表2以SPESC为例的智能法律合约语法模型 Table 2 Grammar model of smart legal contract based on SPESC Contract module Module description Grammar definition name Contract framework Contract ::Title Parties+Assets+Terms+Additions+Signs+ Contract title The contract title may consist of the of the contract name and the contract number. Title::=contract Cname (:serial number Chash)? The description of contract party can include the party's name,address,account number,and Contract party other attributes and values owned by this party,and technical measures such as the party's Parties::=party group? identity authentication can be adopted to ensure the uniqueness of its identity. Pname (field+ The contract subject refers to the object that the rights and obligations of the parties point to Contract subject together,which is generally divided into things,behaviors,intellectual achievements,etc. Assets ::asset Aname{info field+ Contract subject is represented by asset in the smart legal contract,and the description of right{field+ such assets should exist in the blockchain. Asset expression The asset expression used for the reference of a certain asset AssetExpressions ::$(amount)?(right in contracting terms. of)?Aname The party can deposit assets voluntarily from his party account to contract account.The deposit operation is applied into the transaction of action execution in the term,in which Deposit the party can designate the deposited assets directly by asset expression,and restrict the Deposits::=deposit (value assets through comparing two values by relational operation to determine their relationship. RelationOperator)?AssetExpression Asset The latter is used to grant the permission for transferring the designated assets only if the operations. relationship is satisfied. Withdraw The party can withdraw assets from contract account in the execution of terms,where the Withdraws ::withdraw assets are designated by the asset expression. AssetExpression Transfer The party can transfer assets from contract account to other party account Transfers::=transfer AssetExpression in the execution of terms. to target GeneralTerms ::term Tname:Pname General General terms include the term's name,the term's parties,the rights and obligations of the (musticanlcannot)action(field+)(when parties (actions that must,can or are prohibited),the execution conditions of the term,the terms asset transactions,and the post-conditions to be satisfied after the execution of the term. preCondition)?(while transactions+)? (where postCondition)?. Breach terms refer to the legal liability to be assumed when the parties agreed by both parties do not perform the obligations stipulated in the smart legal contract or perform the BreachTerms::=breach term Bname Contract Breach obligations that do not conform to the contract.When the post-condition of the designated (against Tname+)?:Pname(mustlcan) terms terms is not satisfied and the pre-condition of the breach term is satisfied,the related party action(field+)(when preCondition)? terms must or can take action for setting the defaults,which may require to enforce asset operations (while transactions+)?(where and satisfy the post-condition of the breach term for the result of enforcement. postCondition)?. Arbitratio Arbitration terms stipulates the method to solve controversy in smart legal contracts. ArbitrationTerms::=arbitration term The specific controversy can be stated by nature language and an arbitration institution may (The statement of any controversy)? nterms be designated. administered by institution instName. Additional Additional information can define necessary supplementary information in smart legal contract,including entity's attribute,contract object,the property and signature of guarantor, Additions::=field +|(addition information Dname (field+) additional term,program variable,and the declaration of data structure. 合约订立需包括两个部分: Date(签订时间):date,+ (1)当事人宣称(statement):用于双方当事人以 },+ 意思表示的形式对要约与承诺过程中事项进行表述: (2)当事人签名(signature):用于记录合约成 其中,?表示前面部分为可选内容,Pname为当 立的时间、地点、当事人及签名等信息,包括:打 事人描述中定义的当事人名称(见表2中定义) 印名(printed-Name)、法定代表人签字(signature)、 在当事人宣称部分可用自然语言对要约和承诺过 以及签订日期(date)等 程进行描述,例如: 根据上述两部分的描述,智能法律合约中合 (1)除非以书面形式并经双方签署,否则本合 约订立语法如下: 约不得以任何方式修改. Signs::=Contract conclusions (2)通过数字签名,表明缔约双方都已经阅 (The statement of all parties.)? 读、理解并同意本合同中的所有条款和法规等. Signature of party Pname: (3)双方当事人同意智能法律合约及其转化的 {printed-Name(打印名):string, 智能合约,与现实法律合同具有同等的法律地位 signature(法定代表人签字):string, 在3)中对智能法律合约及所转化智能合约的
合约订立需包括两个部分: (1)当事人宣称(statement):用于双方当事人以 意思表示的形式对要约与承诺过程中事项进行表述; (2)当事人签名(signature):用于记录合约成 立的时间、地点、当事人及签名等信息,包括:打 印名(printed-Name)、法定代表人签字(signature)、 以及签订日期(date)等. 根据上述两部分的描述,智能法律合约中合 约订立语法如下: Signs ::= Contract conclusions : (The statement of all parties.)? { Signature of party Pname: { printed-Name(打印名):string, signature(法定代表人签字): string, Date(签订时间): date, + },+ } 其中,?表示前面部分为可选内容,Pname 为当 事人描述中定义的当事人名称(见表 2 中定义). 在当事人宣称部分可用自然语言对要约和承诺过 程进行描述,例如: (1)除非以书面形式并经双方签署,否则本合 约不得以任何方式修改. ( 2)通过数字签名,表明缔约双方都已经阅 读、理解并同意本合同中的所有条款和法规等. (3)双方当事人同意智能法律合约及其转化的 智能合约,与现实法律合同具有同等的法律地位. 在 3)中对智能法律合约及所转化智能合约的 表 2 以 SPESC 为例的智能法律合约语法模型 Table 2 Grammar model of smart legal contract based on SPESC Contract module name Module description Grammar definition Contract framework Contract ::= Title{ Parties+ Assets+ Terms+ Additions+ Signs+} Contract title The contract title may consist of the of the contract name and the contract number. Title ::= contract Cname (:serial number Chash)? Contract party The description of contract party can include the party’s name, address, account number, and other attributes and values owned by this party, and technical measures such as the party’s identity authentication can be adopted to ensure the uniqueness of its identity. Parties ::= party group? Pname {field+ } Contract subject The contract subject refers to the object that the rights and obligations of the parties point to together, which is generally divided into things, behaviors, intellectual achievements, etc. Contract subject is represented by asset in the smart legal contract, and the description of such assets should exist in the blockchain. Assets ::= asset Aname{ info{ field+ } right{ field+ }} Asset expression The asset expression used for the reference of a certain asset in contracting terms. AssetExpressions ::= $ (amount)? (right of)? Aname Asset operations Deposit The party can deposit assets voluntarily from his party account to contract account. The deposit operation is applied into the transaction of action execution in the term, in which the party can designate the deposited assets directly by asset expression, and restrict the assets through comparing two values by relational operation to determine their relationship. The latter is used to grant the permission for transferring the designated assets only if the relationship is satisfied. Deposits ::= deposit (value RelationOperator)? AssetExpression Withdraw The party can withdraw assets from contract account in the execution of terms, where the assets are designated by the asset expression. Withdraws ::= withdraw AssetExpression Transfer The party can transfer assets from contract account to other party account in the execution of terms. Transfers ::= transfer AssetExpression to target Contract terms General terms General terms include the term’s name, the term’s parties, the rights and obligations of the parties (actions that must, can or are prohibited), the execution conditions of the term, the asset transactions, and the post-conditions to be satisfied after the execution of the term. GeneralTerms ::= term Tname: Pname (must|can|cannot) action(field+) (when preCondition)? (while transactions+)? (where postCondition)?. Breach terms Breach terms refer to the legal liability to be assumed when the parties agreed by both parties do not perform the obligations stipulated in the smart legal contract or perform the obligations that do not conform to the contract. When the post-condition of the designated terms is not satisfied and the pre-condition of the breach term is satisfied, the related party must or can take action for setting the defaults, which may require to enforce asset operations and satisfy the post-condition of the breach term for the result of enforcement. BreachTerms ::= breach term Bname (against Tname+)? : Pname (must|can) action(field+) (when preCondition)? (while transactions+)? (where postCondition)?. Arbitratio n terms Arbitration terms stipulates the method to solve controversy in smart legal contracts. The specific controversy can be stated by nature language and an arbitration institution may be designated. ArbitrationTerms ::= arbitration term : (The statement of any controversy)? administered by institution : instName. Additional information Additional information can define necessary supplementary information in smart legal contract, including entity’s attribute, contract object, the property and signature of guarantor, additional term, program variable, and the declaration of data structure. Additions ::= field + | (addition Dname {field+}) · 8 · 工程科学学报,第 44 卷,第 X 期
郭倩等:基于要约-承诺的智能法律合约订立方法与实现 …9 法律效力进行肯定 后,我们给出了一个由智能法律合约语言所撰写 5.3智能法律合约示例 的打印机销售合约范本,如图4所示.该法律合约 在上述智能法律合约语言中添加订立语法 范本包含以下四方面内容: contract purchase{ party Sellerf account: action:registPublish deliver() collectPayment() party Buyerf account action:registPublish order() confirmReceive() asset Printer info name: type:string value: type:money }} term nol:Buyer can order while deposit S Printer::value term no2:Seller must deliver when within 7 days after Buyer did order. term no3:Buyer must confirmReceive when within 7 days after Seller did deliver. term no4:Seller can colletPayment when after Buyer did confirmReceive while withdraw S Printer::value. Contract conclusion This contract may not be modified in any manner unless in writing and signed by both parties. By signing this agreement,all parties agree to the terms as described above. Both parties agree with conversion from this contract to computer programs on smart contract platform,and approve that the programs'implementation has the same legal effect. Signature of party Seller: printed-Name: type:string signature: action:toSign date: type:string Signature of party Buyer: printed-Name: type:string signature: action:toSign date: type:Date 图4PESC编写的打印机销售合约示范文本 Fig.4 Pattern of a printer sales contract written by SPESC (I)当事人信息(party):打印机销售合约范本 (3)条款(term):打印机销售合约范本中包含 包含卖方(Seller)和买方(Buyer).其中,Seller中 4条条款,条款Nol和条款No3定义了买方(Buyer) account属性用于记录卖方的账户地址,同时声明 有权触发动作预定打印机(order)和确认收货 了卖方可以执行的两个动作:交付打印机(deliver) (confirmReceive),条款No2和条款No4定义了卖 和选择支付方式(collectPayment);Buyer中account 方(Seller)有权触发动作交付打印机(deliver)和选 属性用于记录买方的账户地址以及声明了买方可 择支付方式(collectPayment). 以执行的两个动作:预定打印机(order)和确认收 (4)合约订立(Contract conclusion)):合约范本 货(confirmReceive). 的当事人宣称部分包含了此类纸质合同所必需声 (2)标的信息(asset):作为标的的打印机定义 明的意思表示;双方签名部分包括两个string类型 包含string类型的name属性和货币类型的value 的printed-Name属性和signature属性,及一个 属性 Date类型的date属性.在图4合约实例中,方框表
法律效力进行肯定. 5.3 智能法律合约示例 在上述智能法律合约语言中添加订立语法 后,我们给出了一个由智能法律合约语言所撰写 的打印机销售合约范本,如图 4 所示. 该法律合约 范本包含以下四方面内容: contract purchase{ party Seller{ account : action: registPublish deliver() collectPayment () } party Buyer{ account : action: registPublish order() confirmReceive() } asset Printer{ info{ name: type: string value: type: money } } term no1: Buyer can order while deposit $ Printer::value. term no2: Seller must deliver when within 7 days after Buyer did order. term no3: Buyer must confirmReceive when within 7 days after Seller did deliver. term no4: Seller can colletPayment when after Buyer did confirmReceive while withdraw $ Printer::value. Contract conclusion: − This contract may not be modified in any manner unless in writing and signed by both parties. − By signing this agreement, all parties agree to the terms as described above. − Both parties agree with conversion from this contract to computer programs on smart contract platform, and approve that the programs’ implementation has the same legal effect. { Signature of party Seller : { printed-Name: type: string , signature: action: toSign , date: type: string } Signature of party Buyer : { printed-Name: type: string , signature: action: toSign , date: type: Date } } } 图 4 PESC 编写的打印机销售合约示范文本 Fig.4 Pattern of a printer sales contract written by SPESC (1)当事人信息(party):打印机销售合约范本 包含卖方(Seller)和买方(Buyer). 其中,Seller 中 account 属性用于记录卖方的账户地址,同时声明 了卖方可以执行的两个动作:交付打印机(deliver) 和选择支付方式(collectPayment);Buyer 中 account 属性用于记录买方的账户地址以及声明了买方可 以执行的两个动作:预定打印机(order)和确认收 货(confirmReceive). (2)标的信息(asset):作为标的的打印机定义 包含 string 类型的 name 属性和货币类型的 value 属性. (3)条款(term):打印机销售合约范本中包含 4 条条款,条款 No1 和条款 No3 定义了买方(Buyer) 有权触发动作预定打印机 ( order)和确认收货 (confirmReceive),条款 No2 和条款 No4 定义了卖 方(Seller)有权触发动作交付打印机(deliver)和选 择支付方式(collectPayment). (4)合约订立(Contract conclusion):合约范本 的当事人宣称部分包含了此类纸质合同所必需声 明的意思表示;双方签名部分包括两个 string 类型 的 printed-Name 属 性 和 signature 属 性 , 及 一 个 Date 类型的 date 属性. 在图 4 合约实例中,方框表 郭 倩等: 基于要约–承诺的智能法律合约订立方法与实现 · 9 ·