工程科学学报 Chinese Journal of Engineering 智能法律合约及其研究进展 王迪朱岩陈娥郭侍李冀宁孙贻滋伊然 Smart legal contract and its research progress WANG Di,ZHU Yan,CHEN E,GUO Qian,LI Ji-ning.SUN Yi-zi,YI Ran 引用本文: 王迪,朱岩,陈娥,郭倩,李冀宁,孙贻滋,伊然.智能法律合约及其研究进展.工程科学学报,2022,44(1):68-81.d0i: 10.13374j.issn2095-9389.2021.02.22.001 WANG Di,ZHU Yan,CHEN E,GUO Qian,LI Ji-ning.SUN Yi-zi,YI Ran.Smart legal contract and its research progress[J]. Chinese Journal of Engineering,.2022,441):68-81.doi:10.13374j.issn2095-9389.2021.02.22.001 在线阅读View online::https:/ldoi.org/10.13374.issn2095-9389.2021.02.22.001 您可能感兴趣的其他文章 Articles you may be interested in 区块链技术及其研究进展 Survey of blockchain technology and its advances 工程科学学报.2019,41(11):1361 https:doi.org10.13374.issn2095-9389.2019.03.26.004 网络安全等级保护下的区块链评估方法 Research on blockchain evaluation methods under the classified protection of cybersecurity 工程科学学报.2020.42(10:1267htps:ldoi.org10.13374.issn2095-9389.2019.12.17.007 石墨烯基超疏水材料制备及其应用研究进展 Research progress in the preparation and application of graphene-based superhydrophobic materials 工程科学学报.2021,433)332 https::1doi.org/10.13374.issn2095-9389.2020.09.25.001 增减材混合制造的研究进展 Research progress in additivesubtractive hybrid manufacturing 工程科学学报.2020,42(5):540hps:/oi.org10.13374j.issn2095-9389.2019.06.18.006 核壳结构复合吸波材料研究进展 Research progress of core-shell composite absorbing materials 工程科学学报.2019.41(5:547 https:/doi.org10.13374.issn2095-9389.2019.05.001 钨治炼渣综合回收利用的研究进展 Progress of research related to the comprehensive recovery and utilization of tungsten smelting slag 工程科学学报.2018.40(12:1468htps:/doi.org/10.13374.issn2095-9389.2018.12.004
智能法律合约及其研究进展 王迪 朱岩 陈娥 郭倩 李冀宁 孙贻滋 伊然 Smart legal contract and its research progress WANG Di, ZHU Yan, CHEN E, GUO Qian, LI Ji-ning, SUN Yi-zi, YI Ran 引用本文: 王迪, 朱岩, 陈娥, 郭倩, 李冀宁, 孙贻滋, 伊然. 智能法律合约及其研究进展[J]. 工程科学学报, 2022, 44(1): 68-81. doi: 10.13374/j.issn2095-9389.2021.02.22.001 WANG Di, ZHU Yan, CHEN E, GUO Qian, LI Ji-ning, SUN Yi-zi, YI Ran. Smart legal contract and its research progress[J]. Chinese Journal of Engineering, 2022, 44(1): 68-81. doi: 10.13374/j.issn2095-9389.2021.02.22.001 在线阅读 View online: https://doi.org/10.13374/j.issn2095-9389.2021.02.22.001 您可能感兴趣的其他文章 Articles you may be interested in 区块链技术及其研究进展 Survey of blockchain technology and its advances 工程科学学报. 2019, 41(11): 1361 https://doi.org/10.13374/j.issn2095-9389.2019.03.26.004 网络安全等级保护下的区块链评估方法 Research on blockchain evaluation methods under the classified protection of cybersecurity 工程科学学报. 2020, 42(10): 1267 https://doi.org/10.13374/j.issn2095-9389.2019.12.17.007 石墨烯基超疏水材料制备及其应用研究进展 Research progress in the preparation and application of graphene-based superhydrophobic materials 工程科学学报. 2021, 43(3): 332 https://doi.org/10.13374/j.issn2095-9389.2020.09.25.001 增减材混合制造的研究进展 Research progress in additivesubtractive hybrid manufacturing 工程科学学报. 2020, 42(5): 540 https://doi.org/10.13374/j.issn2095-9389.2019.06.18.006 核壳结构复合吸波材料研究进展 Research progress of core-shell composite absorbing materials 工程科学学报. 2019, 41(5): 547 https://doi.org/10.13374/j.issn2095-9389.2019.05.001 钨冶炼渣综合回收利用的研究进展 Progress of research related to the comprehensive recovery and utilization of tungsten smelting slag 工程科学学报. 2018, 40(12): 1468 https://doi.org/10.13374/j.issn2095-9389.2018.12.004
工程科学学报.第44卷.第1期:68-81.2022年1月 Chinese Journal of Engineering,Vol.44,No.1:68-81,January 2022 https://doi.org/10.13374/j.issn2095-9389.2021.02.22.001;http://cje.ustb.edu.cn 智能法律合约及其研究进展 王 迪,朱岩),陈娥,郭倩,李冀宁),孙贻滋,伊然) 1)北京科技大学计算机与通信工程学院,北京1000832)中国电子学会,北京1000363)北京互联网法院.北京100160 通信作者,E-mail:zhuyan@ustb.edu.cn 摘要从智能合约、智能法律合约等概念入手,依据现行法律条目的要求对智能合约法律化问题进行探讨,指出智能合约 法律化需满足文法要求、非赋权原则、审查准则三个基本规则,并以典型智能法律合约语言SPESC、CML为实例剖析了其法 律效力,辨析使其与原合同文本具有同等法律效力需满足的条件,进而,结合智能合约系统架构及部署运行过程,在对所部 署智能合约进行法律化辨析基础上对区块链智能合约及其链码的法律地位进行了论证.最后,对当前智能法律合约逻辑模 型与语言模型的研究进展进行总结,并加以讨论和评价.上述工作表明当前智能法律合约研究是一条解决智能合约法律地 位的可行途径,有利于从现行法上把握智能合约在合约逻辑、仲裁流程、形式化验证等方面的未来发展方向 关键词智能法律合约:领域专用语言;数据电文:法律化原则:区块链 分类号TP319 Smart legal contract and its research progress WANG Di,ZHU Yan,CHEN E,GUO Qian",LI Ji-ning?),SUN Yi-P,YI Ran 1)School of Computer Communication Engineering,University of Science and Technology Beijing,Beijing 100083,China 2)The Chinese Institute of Electronics,Beijing 100036,China 3)Beijing Internet Court,Beijing 100160,China Corresponding author,E-mail:zhuyan@ustb.edu.cn ABSTRACT With the advancement of blockchain,smart contracts have become increasingly popular.However,the uncertain status by law severely limits their practical applications.To address the problem,smart legal contract (SLC)is proposed as a transitional technology between legal and smart contracts.Starting with the basic concept of SLCs,in this paper,we discussed the legalization of smart legal contracts based on the requirements of existing legislation items and highlight that legalization should meet three elementary principles,including the specified grammatical requirements(for regulating terminology and eliminating ambiguity),the principle of nonempowerment (for resolving the inherent contradiction between automatic execution and the rights of parties),and examination criteria(for handling legal validity and code security issues).Moreover,we analyzed SLC's legal effect by taking typical smart legal contract languages,SPESC and CML as examples,and show that the contract program or chaincode has the same legal effect as the original contract,if and only if they satisfy three necessary conditions:(1)adopting the technical specification for generation and conclusion of SLCs;(2)complying with three abovementioned elementary principles;and (3)agreeing on declaration with the same legal effect.Furthermore,investigating the smart contract architecture and deployment,the legal status of both contract program and compiled chaincode was demonstrated in legal analysis of the deployed smart contract.Last,we discussed and evaluated the current situation of smart legal contract logic models and language models on SLCs.This work shows that the research on smart legal contracts is a suitable approach to guarantee the legal status of smart contracts,and the results will contribute to grasping the future research directions in several fields,such as contract logic,arbitration process,and formal verification,from the existing legislation viewpoint. 收稿日期:2021-01-22 基金项目:国家科技部重点研发计划资助项目(2018YFB1402702):国家自然科学基金资助项目(61972032)
智能法律合约及其研究进展 王 迪1),朱 岩1) 苣,陈 娥1),郭 倩1),李冀宁2),孙贻滋2),伊 然3) 1) 北京科技大学计算机与通信工程学院,北京 100083 2) 中国电子学会,北京 100036 3) 北京互联网法院,北京 100160 苣通信作者, E-mail: zhuyan@ustb.edu.cn 摘 要 从智能合约、智能法律合约等概念入手,依据现行法律条目的要求对智能合约法律化问题进行探讨,指出智能合约 法律化需满足文法要求、非赋权原则、审查准则三个基本规则,并以典型智能法律合约语言 SPESC、CML 为实例剖析了其法 律效力,辨析使其与原合同文本具有同等法律效力需满足的条件. 进而,结合智能合约系统架构及部署运行过程,在对所部 署智能合约进行法律化辨析基础上对区块链智能合约及其链码的法律地位进行了论证. 最后,对当前智能法律合约逻辑模 型与语言模型的研究进展进行总结,并加以讨论和评价. 上述工作表明当前智能法律合约研究是一条解决智能合约法律地 位的可行途径,有利于从现行法上把握智能合约在合约逻辑、仲裁流程、形式化验证等方面的未来发展方向. 关键词 智能法律合约;领域专用语言;数据电文;法律化原则;区块链 分类号 TP319 Smart legal contract and its research progress WANG Di1) ,ZHU Yan1) 苣 ,CHEN E1) ,GUO Qian1) ,LI Ji-ning2) ,SUN Yi-zi2) ,YI Ran3) 1) School of Computer & Communication Engineering, University of Science and Technology Beijing, Beijing 100083, China 2) The Chinese Institute of Electronics, Beijing 100036, China 3) Beijing Internet Court, Beijing 100160, China 苣 Corresponding author, E-mail: zhuyan@ustb.edu.cn ABSTRACT With the advancement of blockchain, smart contracts have become increasingly popular. However, the uncertain status by law severely limits their practical applications. To address the problem, smart legal contract (SLC) is proposed as a transitional technology between legal and smart contracts. Starting with the basic concept of SLCs, in this paper, we discussed the legalization of smart legal contracts based on the requirements of existing legislation items and highlight that legalization should meet three elementary principles, including the specified grammatical requirements (for regulating terminology and eliminating ambiguity), the principle of nonempowerment (for resolving the inherent contradiction between automatic execution and the rights of parties), and examination criteria (for handling legal validity and code security issues). Moreover, we analyzed SLC ’s legal effect by taking typical smart legal contract languages, SPESC and CML as examples, and show that the contract program or chaincode has the same legal effect as the original contract, if and only if they satisfy three necessary conditions: (1) adopting the technical specification for generation and conclusion of SLCs; (2) complying with three abovementioned elementary principles; and (3) agreeing on declaration with the same legal effect. Furthermore, investigating the smart contract architecture and deployment, the legal status of both contract program and compiled chaincode was demonstrated in legal analysis of the deployed smart contract. Last, we discussed and evaluated the current situation of smart legal contract logic models and language models on SLCs. This work shows that the research on smart legal contracts is a suitable approach to guarantee the legal status of smart contracts, and the results will contribute to grasping the future research directions in several fields, such as contract logic, arbitration process, and formal verification, from the existing legislation viewpoint. 收稿日期: 2021−01−22 基金项目: 国家科技部重点研发计划资助项目(2018YFB1402702);国家自然科学基金资助项目(61972032) 工程科学学报,第 44 卷,第 1 期:68−81,2022 年 1 月 Chinese Journal of Engineering, Vol. 44, No. 1: 68−81, January 2022 https://doi.org/10.13374/j.issn2095-9389.2021.02.22.001; http://cje.ustb.edu.cn
王迪等:智能法律合约及其研究进展 69. KEY WORDS smart legal contract;domain specific language;data massage;principle of legalization;blockchain 区块链是采用密码手段保障、只可追加、链式 1智能合约概念 结构组织的分布式账本系统四,其核心价值在于实 合约是当事人基于意思表示合致而签订的协 现了多参与方在统一规则下的自发高效协作,并 议,是一个使未取得彼此信任的各参与方具有安 通过代码、协议、规则为分布式账本及其网络提 排权利与义务的商定框架阿:智能合约在广义上是 供了信用基础.智能合约(Smart contract)P-到是第 指符合当事人之间约定的任何计算机协议,是一 二代区块链的核心技术之一,允许开发者利用编 种计算机化的合约.智能合约运行必须满足参与 程语言编写可自动执行程序,实现价值交换等应 者事先的约定,且其计算机任务的完成需两或多 用并在区块链上存证 名参与者共同协作,因此智能合约既能满足合约 智能合约是法律与计算机领域结合而提出的 遵循的可信性与合规性(合法性),也为保证合约 概念,为了进一步保证智能合约的法律地位,智能 合规性提供了协议验证、存证、争议解决等必需 法律合约(Smart legal contract,SLC)1被提出,其 的技术手段 目的在于在现行法下将智能合约形式及其代码执 上述定义的内涵较为宽泛,可囊括大多数的 行行为认定为法律意义上的电子合同.智能法律 计算机网络协议.为了更加明确智能合约的法律 合约与智能合约相比较,具有更加严格的法律特 化属性,维基百科中给出了如下定义四 征,这表现在它的表达语言、表现形式、执行方法 定义1智能合约:智能合约是一种旨在根据合 等各方面 约或协议中条款自动执行、控制或记录与法律相 智能法律合约是智能合约法律化发展的必 关事件和动作的计算机程序或交易协议, 然结果.现实生活中既懂法律又懂区块链领域专 此定义体现了智能合约处理对象是法律合约, 业知识的人仍然较少,使得审查计算机代码法律 处理手段是计算机协议,该手段目的是促进、保 性的现实难度增加,智能法律合约的出现有助于 障、验证、加强合约协商和履行例,表现形式是计 降低这种难度.同时,智能法律合约作为一种新 算机程序或交易协议 的区块链应用软件开发模式,不仅扩大了区块链 就区块链平台而言,区块链智能合约定义为: 技术的应用领域和快速开发能力,也通过规则 定义2区块链智能合约:区块链智能合约是部 约束代码运行,为人机物之间的高效安全协作提 署在区块链上、在满足预定条件时可自动执行并 供了技术保障,从而降低交易成本并减少法律 存证的计算机程序 纠纷 与广义智能合约概念相比较,这种智能合约 从目前的工程实践和学术成果来看,当前智 的载体是区块链,它本质是一种自动执行与存证 能法律合约概念与技术尚属于起步阶段,有待进 的计算机程序,通常,智能合约是平台无关的概 一步提高,对其概念、法律地位及内涵均缺乏系统 念,而区块链智能合约是平台相关的,需针对特定 性的研究,同时,对面向智能法律合约的软件模型 区块链结构转化为该平台指令系统所理解的代 和编程语言、及运行环境也缺少体系上的归纳与 码.这种转化后的代码被称为链码(Chaincode),具 总结 体定义如下: 有鉴于此,本文从智能法律合约的历史及概 定义3链码:链码是指由区块链智能合约转化 念演变过程入手,分析了当前智能合约平台及其 的、部署在区块链中并可被直接执行的指令序列. 构架,阐述了智能法律合约的法律化思考,并以近 链码将合约条款内容转化的指令序列直接写 年来此领域的实践研究为基础,辨析了智能法律 入区块链代码行中,并设置代码执行的触发条件, 合约法律化地位需满足的基本规则,并指出了为 因代码在满足预定触发条件后自动运行,不需要 使其与原合同文本具有同等法律效力需满足的 人为干预,因此被称为自动执行 3方面条件.上述辨析与分析表明智能法律合约 定义4自动执行:区块链智能合约的自动执行 是一条保障智能合约法律地位的可行途径,有利 是指部署在区块链上的链码在满足触发条件后履 于从现行法上把握智能合约在合约逻辑、仲裁流 行合约或协议中条款的方式 程、形式化验证等方面的未来研究方向 智能合约通常是应用软件的一部分,也是由
KEY WORDS smart legal contract;domain specific language;data massage;principle of legalization;blockchain 区块链是采用密码手段保障、只可追加、链式 结构组织的分布式账本系统[1] ,其核心价值在于实 现了多参与方在统一规则下的自发高效协作,并 通过代码、协议、规则为分布式账本及其网络提 供了信用基础. 智能合约(Smart contract) [2−3] 是第 二代区块链的核心技术之一,允许开发者利用编 程语言编写可自动执行程序,实现价值交换等应 用并在区块链上存证. 智能合约是法律与计算机领域结合而提出的 概念,为了进一步保证智能合约的法律地位,智能 法律合约(Smart legal contract,SLC) [4−5] 被提出,其 目的在于在现行法下将智能合约形式及其代码执 行行为认定为法律意义上的电子合同. 智能法律 合约与智能合约相比较,具有更加严格的法律特 征,这表现在它的表达语言、表现形式、执行方法 等各方面. 智能法律合约是智能合约法律化发展的必 然结果. 现实生活中既懂法律又懂区块链领域专 业知识的人仍然较少,使得审查计算机代码法律 性的现实难度增加,智能法律合约的出现有助于 降低这种难度. 同时,智能法律合约作为一种新 的区块链应用软件开发模式,不仅扩大了区块链 技术的应用领域和快速开发能力,也通过规则 约束代码运行,为人机物之间的高效安全协作提 供了技术保障,从而降低交易成本并减少法律 纠纷. 从目前的工程实践和学术成果来看,当前智 能法律合约概念与技术尚属于起步阶段,有待进 一步提高,对其概念、法律地位及内涵均缺乏系统 性的研究,同时,对面向智能法律合约的软件模型 和编程语言、及运行环境也缺少体系上的归纳与 总结. 有鉴于此,本文从智能法律合约的历史及概 念演变过程入手,分析了当前智能合约平台及其 构架,阐述了智能法律合约的法律化思考,并以近 年来此领域的实践研究为基础,辨析了智能法律 合约法律化地位需满足的基本规则,并指出了为 使其与原合同文本具有同等法律效力需满足的 3 方面条件. 上述辨析与分析表明智能法律合约 是一条保障智能合约法律地位的可行途径,有利 于从现行法上把握智能合约在合约逻辑、仲裁流 程、形式化验证等方面的未来研究方向. 1 智能合约概念 合约是当事人基于意思表示合致而签订的协 议,是一个使未取得彼此信任的各参与方具有安 排权利与义务的商定框架[6] ;智能合约在广义上是 指符合当事人之间约定的任何计算机协议,是一 种计算机化的合约. 智能合约运行必须满足参与 者事先的约定,且其计算机任务的完成需两或多 名参与者共同协作,因此智能合约既能满足合约 遵循的可信性与合规性(合法性),也为保证合约 合规性提供了协议验证、存证、争议解决等必需 的技术手段. 上述定义的内涵较为宽泛,可囊括大多数的 计算机网络协议. 为了更加明确智能合约的法律 化属性,维基百科中给出了如下定义[7] : 定义 1 智能合约:智能合约是一种旨在根据合 约或协议中条款自动执行、控制或记录与法律相 关事件和动作的计算机程序或交易协议. 此定义体现了智能合约处理对象是法律合约, 处理手段是计算机协议,该手段目的是促进、保 障、验证、加强合约协商和履行[8] ,表现形式是计 算机程序或交易协议. 就区块链平台而言,区块链智能合约定义为: 定义 2 区块链智能合约:区块链智能合约是部 署在区块链上、在满足预定条件时可自动执行并 存证的计算机程序[9] . 与广义智能合约概念相比较,这种智能合约 的载体是区块链,它本质是一种自动执行与存证 的计算机程序. 通常,智能合约是平台无关的概 念,而区块链智能合约是平台相关的,需针对特定 区块链结构转化为该平台指令系统所理解的代 码. 这种转化后的代码被称为链码(Chaincode),具 体定义如下: 定义 3 链码:链码是指由区块链智能合约转化 的、部署在区块链中并可被直接执行的指令序列. 链码将合约条款内容转化的指令序列直接写 入区块链代码行中,并设置代码执行的触发条件, 因代码在满足预定触发条件后自动运行,不需要 人为干预,因此被称为自动执行. 定义 4 自动执行:区块链智能合约的自动执行 是指部署在区块链上的链码在满足触发条件后履 行合约或协议中条款的方式. 智能合约通常是应用软件的一部分,也是由 王 迪等: 智能法律合约及其研究进展 · 69 ·
70 工程科学学报,第44卷,第1期 数字编码表示的条款代码,尚不构成法律意义上 通过解释器逐一将源程序语句解释成可执行的机 的合同.进而,它可在不需要可信方的参与下由计 器指令.解释器中间层屏蔽了平台间的差异,同样 算机网络执行,且共识协议可确保执行正确性.或 的智能法律合约在不同平台的执行结果是相同 者说,智能合约是一种自动执行合约条款并自我 的,使智能法律合约能够具有“一次编写,随处运 验证和无需中介的计算机交易协议© 行”的平台独立性 (3)可移植性.作为现实合约和智能合约中间 2 智能法律合约 层次的合约形式,智能法律合约的编写和解释器 2.1智能法律合约定义及内涵 都应该对硬件或操作系统没有依赖性,在不同的 随着数字社会的快速发展以及区块链技术的 系统或平台运行时经过很少改动或不经修改就 广泛应用,区块链智能合约的规范化需求日益强 可解释编译成等效的智能合约程序,即具有可移 烈.然而现有智能合约面临专业性强、可读性差、 植性 生产效率低等实际问题,现实法律合同到可执行 智能法律合约应建立在智能合约和现实合约 程序代码的高效转化难以实现,这不仅影响了行 之间,既具有合同的法律特征和易理解性,又有计 业应用与计算机及法律界人士的跨领域合作,而 算机程序代码的规范性4,以促进计算机、法律 且阻碍了智能合约的法律化进程山有鉴于此,智 等专业人员的跨领域协作.在区块链可确权基础 能法律合约被提出以: 上,智能法律合约将物理世界有价值的资产,包括 定义5智能法律合约:智能法律合约是一种含 房子、汽车、健康数据和版权等数字化为数字资 有合同构成要素、涵盖合同缔约方依据要约和承 产,并与可编程数字法币相结合,使其在区块链网 诺达成履行约定的计算机程序. 络上自由使用和流通,推动区块链智能合约快速 智能法律合约本质上是一种符合法律的智能 健康发展.同时,智能法律合约以程序代码表达合 合约一一“当事方之间以自然语言文本的形式,在 同条款,将现实法律合同与网络空间的程序代码 可计算逻辑的支持下,以数字协议的形式在不同 相衔接,可有效降低现实社会中法律合同生成智 的计算机系统之间建立可移植的可执行义务”) 能合约的开发成本 智能法律合约是一种介于现实法律合同与智 2.2智能合约语言发展现状 能合约之间的过渡性手段.如图1所示,现实法律 编程语言是程序设计的基础,理解智能合约 合同以自然语言为载体,可翻译成由智能法律合 语言也是掌握智能合约应用设计和运行机理的有 约语言撰写的智能法律合约,进而转化为由智能 效途径.智能合约语言是利用智能合约实现现实 合约语言编写的智能合约 业务的工具,是帮助智能合约使用者撰写智能合 约程序与代码的编程语言6从智能合约语言的 Smart legal Legal contract Smart contract 语言特点和运行环境分析,可将目前的智能合约 contract Smart contract framework 语言分为三类: (1)专有型智能合约:是一种针对特定功能区 Blockchain system 块链系统而开发的特定智能合约.典型代表是比 因1合同转化关系示意图 特币脚本系统下的货币型合约,它采用简单脚本 Fig.I Diagram of contract transformation relationship 指令系统和类Foth语言的栈式结构实现计算与 依据智能法律合约标准2-),智能法律合约需 条件控制 遵循符合现行法律的合约结构及语法规则,使智 (2)通用型智能合约:使用常见程序设计语言, 能法律合约满足以下性质: 运行在容器(Docker)与虚拟机(VM)中,采用预定 (1)自然语言描述.作为在智能合约和现实合 义接口与区块链进行交互.例如,超级账本叨支 约之间建立共同意思表示的桥梁,智能法律合约 持如Go、Java等语言直接编写 必须是一种简单易懂、条理清晰的语言描述形式, (3)专业型智能合约:采用领域专用语言(DSL) 既兼有现实合约的法律特征和易理解性,也具有 针对特定专业领域而开发的智能合约,如法律、保 智能合约的规范性和逻辑性 险、知识产权、供应链金融、银行清结算、企业贷 (2)平台独立性.智能法律合约所采用的语言 款等领域,这种智能合约的特点是专业性强但通 属于解释型语言,不直接产生目标机器代码,而是 用性差,通常需要转化为通用型或专有型智能合
数字编码表示的条款代码,尚不构成法律意义上 的合同. 进而,它可在不需要可信方的参与下由计 算机网络执行,且共识协议可确保执行正确性. 或 者说,智能合约是一种自动执行合约条款并自我 验证和无需中介的计算机交易协议[10] . 2 智能法律合约 2.1 智能法律合约定义及内涵 随着数字社会的快速发展以及区块链技术的 广泛应用,区块链智能合约的规范化需求日益强 烈. 然而现有智能合约面临专业性强、可读性差、 生产效率低等实际问题,现实法律合同到可执行 程序代码的高效转化难以实现,这不仅影响了行 业应用与计算机及法律界人士的跨领域合作,而 且阻碍了智能合约的法律化进程[11] . 有鉴于此,智 能法律合约被提出[12] : 定义 5 智能法律合约:智能法律合约是一种含 有合同构成要素、涵盖合同缔约方依据要约和承 诺达成履行约定的计算机程序. 智能法律合约本质上是一种符合法律的智能 合约——“当事方之间以自然语言文本的形式,在 可计算逻辑的支持下,以数字协议的形式在不同 的计算机系统之间建立可移植的可执行义务” [13] . 智能法律合约是一种介于现实法律合同与智 能合约之间的过渡性手段. 如图 1 所示,现实法律 合同以自然语言为载体,可翻译成由智能法律合 约语言撰写的智能法律合约,进而转化为由智能 合约语言编写的智能合约. Smart legal contract Smart contract Smart contract framework Blockchain system Legal contract 图 1 合同转化关系示意图 Fig.1 Diagram of contract transformation relationship 依据智能法律合约标准[12−13] ,智能法律合约需 遵循符合现行法律的合约结构及语法规则,使智 能法律合约满足以下性质: (1)自然语言描述. 作为在智能合约和现实合 约之间建立共同意思表示的桥梁,智能法律合约 必须是一种简单易懂、条理清晰的语言描述形式, 既兼有现实合约的法律特征和易理解性,也具有 智能合约的规范性和逻辑性. (2)平台独立性. 智能法律合约所采用的语言 属于解释型语言,不直接产生目标机器代码,而是 通过解释器逐一将源程序语句解释成可执行的机 器指令. 解释器中间层屏蔽了平台间的差异,同样 的智能法律合约在不同平台的执行结果是相同 的,使智能法律合约能够具有“一次编写,随处运 行”的平台独立性. (3)可移植性. 作为现实合约和智能合约中间 层次的合约形式,智能法律合约的编写和解释器 都应该对硬件或操作系统没有依赖性,在不同的 系统或平台运行时经过很少改动或不经修改就 可解释编译成等效的智能合约程序,即具有可移 植性. 智能法律合约应建立在智能合约和现实合约 之间,既具有合同的法律特征和易理解性,又有计 算机程序代码的规范性[14−15] ,以促进计算机、法律 等专业人员的跨领域协作. 在区块链可确权基础 上,智能法律合约将物理世界有价值的资产,包括 房子、汽车、健康数据和版权等数字化为数字资 产,并与可编程数字法币相结合,使其在区块链网 络上自由使用和流通,推动区块链智能合约快速 健康发展. 同时,智能法律合约以程序代码表达合 同条款,将现实法律合同与网络空间的程序代码 相衔接,可有效降低现实社会中法律合同生成智 能合约的开发成本. 2.2 智能合约语言发展现状 编程语言是程序设计的基础,理解智能合约 语言也是掌握智能合约应用设计和运行机理的有 效途径. 智能合约语言是利用智能合约实现现实 业务的工具,是帮助智能合约使用者撰写智能合 约程序与代码的编程语言[16] . 从智能合约语言的 语言特点和运行环境分析,可将目前的智能合约 语言分为三类: (1)专有型智能合约:是一种针对特定功能区 块链系统而开发的特定智能合约. 典型代表是比 特币脚本系统下的货币型合约,它采用简单脚本 指令系统和类 Forth 语言的栈式结构实现计算与 条件控制. (2)通用型智能合约:使用常见程序设计语言, 运行在容器(Docker)与虚拟机(VM)中,采用预定 义接口与区块链进行交互. 例如,超级账本[17] 支 持如 Go、Java 等语言直接编写. (3)专业型智能合约:采用领域专用语言(DSL) 针对特定专业领域而开发的智能合约,如法律、保 险、知识产权、供应链金融、银行清结算、企业贷 款等领域,这种智能合约的特点是专业性强但通 用性差,通常需要转化为通用型或专有型智能合 · 70 · 工程科学学报,第 44 卷,第 1 期
王迪等:智能法律合约及其研究进展 .71· 约才能实际进行应用 质并未发生变化1,但智能合约要成为意思自治 专有型和通用型智能合约的撰写仍需较强的 的合理表现形式,其形式合法化、内容规范化,编 计算机专业基础,对于其他专业人员有较高的壁 写和运行过程都应该满足国家现有法律和政策框 垒,因此,就智能合约不同行业应用开发而言,专 架的约束,目前智能合约距离满足法律要求仍存 业型智能合约将成为智能合约发展的主要趋势 在很多法律问题 2.3智能法律合约与法律合同的关系和区别 辨析1:传统合同采用自然语言、法言法语、 法律合同是双方或多方以一定的权利义务关 专业术语与在智能合约中的计算机代码之间存在 系声明约束他们之间民事法律关系的协议,且可 差异 由法庭强制执行.在本文中认为符合法律要求、 传统合同与智能合约的差异表现为: 且满足可读性、具备合约必需组件的合约均可认 ①传统合同为了针对各种无法预见的情况, 定为法律合同,是一个更为广泛的概念.其中,自 不但经常使用一些抽象的、概括的、灵活的语言 然语言撰写的传统纸质合约是法律合同的最常见 以实现内容高度的通用性,还经常大量使用法言 形式. 法语甚至专业领域的术语; 智能合约是否属于法律合同是学者一直争论 ②智能合约采用了非二义性、形式化的计算 的问题,部分学者认为智能合约通过代码表达 机语言进行表达,是一种可执行性的指令序列 当事人合意,且能在部署过程中满足“要约一承 常使用严谨、正式、“死板”的语言将合约内容中 诺”结构,应属于法律合同:但更多学者920认为 的条件、范围等进行限定 它的信赖前提是智能合约技术及其自治秩序,其 因此,两种语言之间差异体现在两个方面:二 代码在有效语义一致性识别时存在解释困难,且 义性与确定性、抽象与具体,相对而言,智能合约 一旦部署后的智能合约“不可撤回”,将事实出现 语言误解的几率比传统合同更低,这也是其优势 强制缔约的现象,应属于基于自治联合体的多维 所在 信赖合同,而不能认为其完全符合法律合同的要 另一方面,智能合约作为计算机程序,缺少对 求,本文对该问题持有相同态度 当事人权利和义务等法律关系与行为的明确表述, 智能法律合约是在传统现实合约基础上进行 难以由法律人士通过程序代码区分合约表述的权 形式化提取、着重于合约程序性和法律性共举的 利义务关系,这一缺点直接影响到智能合约法律 合约形式,可以通过转译机制转化成智能合约,从 效力,也是必须克服的缺点 而进行程序运行.智能法律合约语言在规避自然 其次,依照《民法典》第470条规定:“合同的 语言二义性的同时引入其法律特征和程序语言的 内容由当事人约定,一般包括下列条款:(一)当事 规范性,所编写的智能法律合约可以更明确地表 人的姓名或者名称和住所;(二)标的;(三)数量; 达合约条款、权利义务约束、权属交换等内容,在 (四)质量:(五)价款或者报酬:(六)履行期限、地 合约内容中符合法律合同规定.在本文后续论述 点和方式;(七)违约责任:(八)解决争议的方法.”智 中可以得知智能法律合约也具有和传统现实合约 能合约作为一种电子合同,其内容也应遵循上述 一样的法律效力,且满足合同所需要件,因此智能 规定的法律要素 法律合约属于法律合同 推论2文法要求:智能合约法律化应遵循自然 推论1:智能法律合约是对传统现实合约的形 语言表述为基础、法言法语为标准词汇、计算机 式化、模板化表达形式,属于法律合同且可转化为 形式化表达为语法、法律要素为框架生成智能 智能合约 合约 3智能合约的法律化探索与实践 传统合同与智能合约之间在用语方面存在很 大不同,因此在两者之间的转化过程中也必然会 3.1智能合约的法律化思考 出现问题而带来法律风险.在产生纠纷需要法院 依照《中华人民共和国民法典》(简称《民法 或者仲裁机构进行裁判,理解代码含义或代码逆 典》)第464条:“合同是民事主体之间设立、变 向转化回合同条款时,容易出现歧义或者模糊的 更、终止民事法律关系的协议.”这与定义1中智 用语(代码)难以界定,使得法院或者仲裁机构难 能合约概念相一致,智能合约形式下当事人约定 以作出裁判,为诉讼带来更大的时间成本与经济 了多方应该遵循的行为约束,签订合约的目的、性 成本
约才能实际进行应用. 专有型和通用型智能合约的撰写仍需较强的 计算机专业基础,对于其他专业人员有较高的壁 垒,因此,就智能合约不同行业应用开发而言,专 业型智能合约将成为智能合约发展的主要趋势. 2.3 智能法律合约与法律合同的关系和区别 法律合同是双方或多方以一定的权利义务关 系声明约束他们之间民事法律关系的协议,且可 由法庭强制执行. 在本文中认为符合法律要求、 且满足可读性、具备合约必需组件的合约均可认 定为法律合同,是一个更为广泛的概念. 其中,自 然语言撰写的传统纸质合约是法律合同的最常见 形式. 智能合约是否属于法律合同是学者一直争论 的问题,部分学者[18] 认为智能合约通过代码表达 当事人合意,且能在部署过程中满足“要约—承 诺”结构,应属于法律合同;但更多学者[19−20] 认为 它的信赖前提是智能合约技术及其自治秩序,其 代码在有效语义一致性识别时存在解释困难,且 一旦部署后的智能合约“不可撤回”,将事实出现 强制缔约的现象,应属于基于自治联合体的多维 信赖合同,而不能认为其完全符合法律合同的要 求,本文对该问题持有相同态度. 智能法律合约是在传统现实合约基础上进行 形式化提取、着重于合约程序性和法律性共举的 合约形式,可以通过转译机制转化成智能合约,从 而进行程序运行. 智能法律合约语言在规避自然 语言二义性的同时引入其法律特征和程序语言的 规范性,所编写的智能法律合约可以更明确地表 达合约条款、权利义务约束、权属交换等内容,在 合约内容中符合法律合同规定. 在本文后续论述 中可以得知智能法律合约也具有和传统现实合约 一样的法律效力,且满足合同所需要件,因此智能 法律合约属于法律合同. 推论 1:智能法律合约是对传统现实合约的形 式化、模板化表达形式,属于法律合同且可转化为 智能合约. 3 智能合约的法律化探索与实践 3.1 智能合约的法律化思考 依照《中华人民共和国民法典》(简称《民法 典》)第 464 条 :“合同是民事主体之间设立、变 更、终止民事法律关系的协议. ”这与定义 1 中智 能合约概念相一致,智能合约形式下当事人约定 了多方应该遵循的行为约束,签订合约的目的、性 质并未发生变化[18] ,但智能合约要成为意思自治 的合理表现形式,其形式合法化、内容规范化,编 写和运行过程都应该满足国家现有法律和政策框 架的约束,目前智能合约距离满足法律要求仍存 在很多法律问题. 辨析 1:传统合同采用自然语言、法言法语、 专业术语与在智能合约中的计算机代码之间存在 差异. 传统合同与智能合约的差异表现为: ① 传统合同为了针对各种无法预见的情况, 不但经常使用一些抽象的、概括的、灵活的语言 以实现内容高度的通用性,还经常大量使用法言 法语甚至专业领域的术语; ② 智能合约采用了非二义性、形式化的计算 机语言进行表达,是一种可执行性的指令序列[21] , 常使用严谨、正式、“死板”的语言将合约内容中 的条件、范围等进行限定. 因此,两种语言之间差异体现在两个方面:二 义性与确定性、抽象与具体,相对而言,智能合约 语言误解的几率比传统合同更低,这也是其优势 所在. 另一方面,智能合约作为计算机程序,缺少对 当事人权利和义务等法律关系与行为的明确表述[22] , 难以由法律人士通过程序代码区分合约表述的权 利义务关系,这一缺点直接影响到智能合约法律 效力,也是必须克服的缺点. 其次,依照《民法典》第 470 条规定:“合同的 内容由当事人约定,一般包括下列条款:(一)当事 人的姓名或者名称和住所;(二)标的;(三)数量; (四)质量;(五)价款或者报酬;(六)履行期限、地 点和方式;(七)违约责任;(八)解决争议的方法. ”智 能合约作为一种电子合同,其内容也应遵循上述 规定的法律要素. 推论 2 文法要求:智能合约法律化应遵循自然 语言表述为基础、法言法语为标准词汇、计算机 形式化表达为语法、法律要素为框架生成智能 合约. 传统合同与智能合约之间在用语方面存在很 大不同,因此在两者之间的转化过程中也必然会 出现问题而带来法律风险. 在产生纠纷需要法院 或者仲裁机构进行裁判,理解代码含义或代码逆 向转化回合同条款时,容易出现歧义或者模糊的 用语(代码)难以界定,使得法院或者仲裁机构难 以作出裁判,为诉讼带来更大的时间成本与经济 成本. 王 迪等: 智能法律合约及其研究进展 · 71 ·
72 工程科学学报,第44卷,第1期 辨析2:智能合约自动执行与法律合同中当事 约代码通常包括两部分:表征合同内容的针对性 人享有权利之间存在的内生矛盾 代码与为了重复使用而预先拟定的引用性代码 自动执行能力是智能合约最为鲜明的特征, (包括各种类库、平台Jar包和函数库).由于智能 它在履行合同条款时具有无偏差执行、自动验 合约是由专业受限的程序员所撰写,他们可能对 证、不依赖其他机构等优点,同时也具有履行条款 合同条款缺乏审查能力,会将本应无效的条款转 中“机械性”的缺点,即一旦条件满足被触发后将 化为代码或无法意识到合约是否存在违反法律要 无法停止执行,也不会被单方终止 求的行为.因此,有必要对智能合约代码进行法律 在讨论智能合约法律化时,计算机不能承担 有效性审查,包括: 法律责任是一个永恒的前提2),智能合约应保证 首先,对于针对性代码,应该根据《民法典》中 其行为必须得到人的授权.因此,智能合约所具有 对无效民事法律行为(如欺诈、胁迫、虚假意思表 的自动执行能力与法律合同中的当事人享有权利 示)的认定进行审查,从而判断其效力作用.此外, 之间的内生矛盾体现如下: 传统合约转化至计算机代码目前尚缺少标准化的 ①智能合约的自动执行能力不能代替当事人 转化方式,转化结果因人而异、参差不齐,这些无 的意志选择,应允许当事人自行确定是否行使权 疑增大了智能合约作为合约在法律认定上的难度 利或履行义务,以及权利义务履行的方式 其次,对于引用性代码,易于将其归属于法律 ②智能合约的自动执行能力不能通过禁止条 合同中的格式条款.依据《民法典》第496条:“格 款限制现实世界中人类的行为 式条款是当事人为了重复使用而预先拟定,并在 ③智能合约应允许当事人因不可抗力、履约 订立合同时未与对方协商的条款.采用格式条款 过程中外部条件发生变化或遇有特殊情况时,经 订立合同的,提供格式条款的一方应当遵循公平 当事人协商一致后停止履行合同,限制智能合约 原则确定当事人之间的权利和义务,并采取合理 的自动执行能力. 的方式提示对方注意免除或者减轻其责任等与对 智能合约有能力帮助当事人自动处理各种线 方有重大利害关系的条款,按照对方的要求,对该 上交易,如自动转账等,但在撰写智能合约时,应 条款予以说明.提供格式条款的一方未履行提示 该有意限制其不可代替当事人自动执行这些义务 或者说明义务,致使对方没有注意或者理解与其 性行为(即智能合约不应具备自主权和独立权), 有重大利害关系的条款的,对方可以主张该条款 或者提供当事人对权利义务的选择.因此,智能合 不成为合同的内容.”需对引用性代码进行当事人 约自动执行的前提基础应当是:只有当事人明确 告知和共识:同时,需对该代码进行无效性审查, 已授权情况下,智能合约才可代替其执行指定的 即审查其是否违反《民法典》第497条规定:“有下 行为 列情形之一的,该格式条款无效:(一)具有本法第 智能合约法律化的发展方向应该是对合约履 一编第六章第三节和本法第五百零六条规定的无 行过程中当事人行为的结果进行检测和验证,从 效情形:(二)提供格式条款一方不合理地免除或 而判断当事人在规定条款下是否完成意定的行为 者减轻其责任、加重对方责任、限制对方主要权 或者实现某种结果,进而为合约履行提供便利 利:(三)提供格式条款一方排除对方主要权利.” 推论3非赋权原则:智能合约法律化过程中应 再者,对于恶意编程人员编写的智能合约,由 注意约束智能合约不可代替当事人自动执行意志 于合约当事人缺乏对代码的基本了解,也可能无 选择,而应针对当事人行为结果进行条款履行的 法察觉到合约是否存在漏洞或意思表示差异,因 检测和验证 此恶意编程人员可利用己方优势进行欺诈、胁迫 根据《民法典》第180条规定:“因不可抗力不 等违法行为,而当事人则可能落人“陷阱”且缺乏 能履行民事义务的,不承担民事责任.法律另有规 能为自己原本意思表示做支撑的证据,在这种情 定的,依照其规定.”完备的智能合约系统应该支 况下,智能合约自动履行后往往会产生争议且难 持不可抗力或特殊情况下,终止履行合同乃至解 以进行认定.有鉴于此,对智能合约代码进行安全 除合同 性检测是非常必要的 辨析3:经转化后的智能合约存在法律有效性 推论4审查准则:智能合约法律化过程中应 与代码安全性问题, 保证智能合约代码可进行有效性审查和安全性 与常规计算机程序一样,(经转化后)智能合 检测
辨析 2:智能合约自动执行与法律合同中当事 人享有权利之间存在的内生矛盾. 自动执行能力是智能合约最为鲜明的特征, 它在履行合同条款时具有无偏差执行、自动验 证、不依赖其他机构等优点,同时也具有履行条款 中“机械性”的缺点,即一旦条件满足被触发后将 无法停止执行,也不会被单方终止. 在讨论智能合约法律化时,计算机不能承担 法律责任是一个永恒的前提[23] ,智能合约应保证 其行为必须得到人的授权. 因此,智能合约所具有 的自动执行能力与法律合同中的当事人享有权利 之间的内生矛盾体现如下: ① 智能合约的自动执行能力不能代替当事人 的意志选择,应允许当事人自行确定是否行使权 利或履行义务,以及权利义务履行的方式. ② 智能合约的自动执行能力不能通过禁止条 款限制现实世界中人类的行为. ③ 智能合约应允许当事人因不可抗力、履约 过程中外部条件发生变化或遇有特殊情况时,经 当事人协商一致后停止履行合同,限制智能合约 的自动执行能力. 智能合约有能力帮助当事人自动处理各种线 上交易,如自动转账等,但在撰写智能合约时,应 该有意限制其不可代替当事人自动执行这些义务 性行为(即智能合约不应具备自主权和独立权), 或者提供当事人对权利义务的选择. 因此,智能合 约自动执行的前提基础应当是:只有当事人明确 已授权情况下,智能合约才可代替其执行指定的 行为. 智能合约法律化的发展方向应该是对合约履 行过程中当事人行为的结果进行检测和验证,从 而判断当事人在规定条款下是否完成意定的行为 或者实现某种结果,进而为合约履行提供便利. 推论 3 非赋权原则:智能合约法律化过程中应 注意约束智能合约不可代替当事人自动执行意志 选择,而应针对当事人行为结果进行条款履行的 检测和验证. 根据《民法典》第 180 条规定:“因不可抗力不 能履行民事义务的,不承担民事责任. 法律另有规 定的,依照其规定. ”完备的智能合约系统应该支 持不可抗力或特殊情况下,终止履行合同乃至解 除合同. 辨析 3:经转化后的智能合约存在法律有效性 与代码安全性问题. 与常规计算机程序一样,(经转化后)智能合 约代码通常包括两部分:表征合同内容的针对性 代码与为了重复使用而预先拟定的引用性代码 (包括各种类库、平台 Jar 包和函数库). 由于智能 合约是由专业受限的程序员所撰写,他们可能对 合同条款缺乏审查能力,会将本应无效的条款转 化为代码或无法意识到合约是否存在违反法律要 求的行为. 因此,有必要对智能合约代码进行法律 有效性审查,包括: 首先,对于针对性代码,应该根据《民法典》中 对无效民事法律行为(如欺诈、胁迫、虚假意思表 示)的认定进行审查,从而判断其效力作用. 此外, 传统合约转化至计算机代码目前尚缺少标准化的 转化方式,转化结果因人而异、参差不齐,这些无 疑增大了智能合约作为合约在法律认定上的难度. 其次,对于引用性代码,易于将其归属于法律 合同中的格式条款. 依据《民法典》第 496 条:“格 式条款是当事人为了重复使用而预先拟定,并在 订立合同时未与对方协商的条款. 采用格式条款 订立合同的,提供格式条款的一方应当遵循公平 原则确定当事人之间的权利和义务,并采取合理 的方式提示对方注意免除或者减轻其责任等与对 方有重大利害关系的条款,按照对方的要求,对该 条款予以说明. 提供格式条款的一方未履行提示 或者说明义务,致使对方没有注意或者理解与其 有重大利害关系的条款的,对方可以主张该条款 不成为合同的内容. ”需对引用性代码进行当事人 告知和共识;同时,需对该代码进行无效性审查, 即审查其是否违反《民法典》第 497 条规定:“有下 列情形之一的,该格式条款无效:(一)具有本法第 一编第六章第三节和本法第五百零六条规定的无 效情形;(二)提供格式条款一方不合理地免除或 者减轻其责任、加重对方责任、限制对方主要权 利;(三)提供格式条款一方排除对方主要权利. ” 再者,对于恶意编程人员编写的智能合约,由 于合约当事人缺乏对代码的基本了解,也可能无 法察觉到合约是否存在漏洞或意思表示差异,因 此恶意编程人员可利用己方优势进行欺诈、胁迫 等违法行为,而当事人则可能落入“陷阱”且缺乏 能为自己原本意思表示做支撑的证据,在这种情 况下,智能合约自动履行后往往会产生争议且难 以进行认定. 有鉴于此,对智能合约代码进行安全 性检测是非常必要的. 推论 4 审查准则:智能合约法律化过程中应 保证智能合约代码可进行有效性审查和安全性 检测. · 72 · 工程科学学报,第 44 卷,第 1 期
王迪等:智能法律合约及其研究进展 73· 由此可见,只有智能合约满足上述3个基本规 相关统计和查询等功能 则,包括:(一)文法要求、(二)非赋权原则、(三) (2)根据合约其他内容生成目标语言合约中 审查准则,才能使智能合约具有法律化特征 的主体合约,包括两部分:合约属性、当事人的定 3.2智能合约的法律化探索 义与初始化;条款的处理. 智能法律合约作为现实法律合同与智能合约 (3)目标语言合约中补充生成当事人人员管 之间的过渡性手段,是智能合约法律化的一个重 理,程序时序控制及异常检测等机制 要途径.为了满足智能合约的法律化3个基本原 转化规则的制定以及对SPESC中表达式的进 则,采用领域专用语言(Domain-specific language, 一步细化使智能法律合约能够在一定规则体系下 DSL)开发智能法律合约语言(Smart legal contract 进行转化,转化后的智能合约具有规范和统一的 language,SLCL)是一条有效途径.其中DSL是指 函数结构和逻辑表达,有效避免了不同程序员撰 专注于某个应用程序领域的计算机语言.采用这 写智能合约带来的个人色彩和不确定性,也可确 种领域性语言实现合同意思表示,既能让当事人 保转化后的智能合约与智能法律合约具有相同的 之间便于沟通,又可让出现违约问题时介入的第 意思表示,并可随时调取查看合约的运行信息 三方能够准确理解合同内容,使所签订合同具有 2020年,Wohrer和Zdun27提出了基于DSL的 公知的法律效力,促进智能合约和传统合约之间 面向合同的合约语言CML,该语言在表现形式上 的语言差异问题的解决 类似于文献[24]的SPESC语言,使用状态变量和 基于这种思想,近年来一种被称为高级智能合 一组动作描述合同的规定动作和涉及的变量:使 约语言已引起学术界的广泛关注.2018年He等2 用“may”或者“must”作为条款的情态动词;使用 基于面向领域语言的思想提出了一种面向现实合 关键字“due”表示时序关系,后跟时态优先级(即 约的智能合约描述语言(SPESC),该语言在智能合 “after”或“before”)和触发器表达式,作者在文中 约和传统合约之间引入了智能法律合约的概念, 也给出了从CML到Solidity的各部分转化方法 明确定义了当事人的义务和权利、以及加密货币 总之,基于DSL构造的智能法律合约语言SLCL 的交易规则,用固定格式的语法结构提供了面向 便于计算机、法律等各界人士理解,打破了之前所 非计算机专业人员的智能法律合约撰写方式,并 述传统合同和智能合约之间用语壁垒.同时,所给 可以根据该语法结构将撰写完成的智能法律合约 出的转化规则将该语言所撰写的高级智能合约映 编译成可执行的智能合约程序,为实现智能合约 射到目前可执行的智能合约,使得两者的“意思表 的法律化提供了一个很好的解决途径 示一致”. 使用SPESC语言撰写的智能法律合约包含合 根据我国《民法典》第466条规定:“合同文本采 约框架、合约名称、当事人描述、标的、资产表达 用两种以上文字订立并约定具有同等效力的,对 式、资产操作、合约条款、附加信息和合约订立, 各文本使用的词句推定具有相同含义.各文本使 其中,资产操作包括存人、取出、转移,合约条款 用的词句不一致的,应当根据合同的相关条款、性 包括一般条款、违约条款以及仲裁条款,其具体语 质、目的以及诚信原则等予以解释.”法律所允许 法定义如表1所示,以SPESC语言编写的竞买合 并承认:采用多种文字订立合同并约定具有同等 约如图2所示.SPESC模块中对法律规定的合同 效力,成立之后的合同皆是受法律保护的合同,对 内容均进行了相应显式定义,符合《民法典》对合 合同当事人具有法律拘束力.因此,从现实合约到 同内容的要求 智能法律合约、智能合约、运行链码这一转化过 基于上述语法结构,该文后续工作中对 程,尽管各阶段采用的语言不同,但用以表述相同 SPESC系统性使用进行了完善,文中提出了高级 含义的智能法律合约、智能合约、运行链码皆是具 智能合约层、智能合约层和机器代码执行层的 有相同法律效力的书面合同.因此,我们有以下推论: 3层智能合约系统框架,并给出SPESC到目标程 推论5:智能合约及其链码与原合同文本具有 序语言(以solidity为例)的转化规则.该转换规 同等法律效力,只要(一)采用智能法律合约生成 则给出了3部分转化内容: 与订立;(二)满足智能合约法律化三个基本规则: (1)根据当事人描述Parties生成目标语言合 (三)约定具有同等效力 约中的当事人合约(群体当事人合约或个体当事 需要注意的是,智能合约作为一种新的电子合 人合约),用于管理当事人,记录关键事件,并提供 同,是一个不断发展的概念,法律化进程也需要不
由此可见,只有智能合约满足上述 3 个基本规 则,包括:(一)文法要求、(二)非赋权原则、(三) 审查准则,才能使智能合约具有法律化特征. 3.2 智能合约的法律化探索 智能法律合约作为现实法律合同与智能合约 之间的过渡性手段,是智能合约法律化的一个重 要途径. 为了满足智能合约的法律化 3 个基本原 则,采用领域专用语言(Domain-specific language, DSL)开发智能法律合约语言(Smart legal contract language, SLCL)是一条有效途径. 其中 DSL 是指 专注于某个应用程序领域的计算机语言. 采用这 种领域性语言实现合同意思表示,既能让当事人 之间便于沟通,又可让出现违约问题时介入的第 三方能够准确理解合同内容,使所签订合同具有 公知的法律效力,促进智能合约和传统合约之间 的语言差异问题的解决. 基于这种思想,近年来一种被称为高级智能合 约语言已引起学术界的广泛关注. 2018 年 He 等[24] 基于面向领域语言的思想提出了一种面向现实合 约的智能合约描述语言(SPESC),该语言在智能合 约和传统合约之间引入了智能法律合约的概念, 明确定义了当事人的义务和权利、以及加密货币 的交易规则,用固定格式的语法结构提供了面向 非计算机专业人员的智能法律合约撰写方式,并 可以根据该语法结构将撰写完成的智能法律合约 编译成可执行的智能合约程序,为实现智能合约 的法律化提供了一个很好的解决途径. 使用 SPESC 语言撰写的智能法律合约包含合 约框架、合约名称、当事人描述、标的、资产表达 式、资产操作、合约条款、附加信息和合约订立, 其中,资产操作包括存入、取出、转移,合约条款 包括一般条款、违约条款以及仲裁条款,其具体语 法定义如表 1 所示,以 SPESC 语言编写的竞买合 约如图 2 所示. SPESC 模块中对法律规定的合同 内容均进行了相应显式定义,符合《民法典》对合 同内容的要求. 基于上述语法结构 ,该文后续工作[25] 中对 SPESC 系统性使用进行了完善,文中提出了高级 智能合约层、智能合约层和机器代码执行层的 3 层智能合约系统框架,并给出 SPESC 到目标程 序语言(以 solidity[26] 为例)的转化规则. 该转换规 则给出了 3 部分转化内容: (1)根据当事人描述 Parties 生成目标语言合 约中的当事人合约(群体当事人合约或个体当事 人合约),用于管理当事人,记录关键事件,并提供 相关统计和查询等功能. (2)根据合约其他内容生成目标语言合约中 的主体合约,包括两部分:合约属性、当事人的定 义与初始化;条款的处理. (3)目标语言合约中补充生成当事人人员管 理,程序时序控制及异常检测等机制. 转化规则的制定以及对 SPESC 中表达式的进 一步细化使智能法律合约能够在一定规则体系下 进行转化,转化后的智能合约具有规范和统一的 函数结构和逻辑表达,有效避免了不同程序员撰 写智能合约带来的个人色彩和不确定性,也可确 保转化后的智能合约与智能法律合约具有相同的 意思表示,并可随时调取查看合约的运行信息. 2020 年,Wöhrer 和 Zdun[27] 提出了基于 DSL 的 面向合同的合约语言 CML,该语言在表现形式上 类似于文献 [24] 的 SPESC 语言,使用状态变量和 一组动作描述合同的规定动作和涉及的变量;使 用“may” 或者 “must”作为条款的情态动词;使用 关键字“due”表示时序关系,后跟时态优先级(即 “after”或“before”)和触发器表达式,作者在文中 也给出了从 CML 到 Solidity 的各部分转化方法. 总之,基于 DSL 构造的智能法律合约语言 SLCL 便于计算机、法律等各界人士理解,打破了之前所 述传统合同和智能合约之间用语壁垒. 同时,所给 出的转化规则将该语言所撰写的高级智能合约映 射到目前可执行的智能合约,使得两者的“意思表 示一致”. 根据我国《民法典》第 466 条规定:“合同文本采 用两种以上文字订立并约定具有同等效力的,对 各文本使用的词句推定具有相同含义. 各文本使 用的词句不一致的,应当根据合同的相关条款、性 质、目的以及诚信原则等予以解释. ”法律所允许 并承认:采用多种文字订立合同并约定具有同等 效力,成立之后的合同皆是受法律保护的合同,对 合同当事人具有法律拘束力. 因此,从现实合约到 智能法律合约、智能合约、运行链码这一转化过 程,尽管各阶段采用的语言不同,但用以表述相同 含义的智能法律合约、智能合约、运行链码皆是具 有相同法律效力的书面合同. 因此,我们有以下推论: 推论 5:智能合约及其链码与原合同文本具有 同等法律效力,只要(一)采用智能法律合约生成 与订立;(二)满足智能合约法律化三个基本规则; (三)约定具有同等效力. 需要注意的是,智能合约作为一种新的电子合 同,是一个不断发展的概念,法律化进程也需要不 王 迪等: 智能法律合约及其研究进展 · 73 ·
74 工程科学学报,第44卷.第1期 表1 SPESC语法模型 Table 1 SPESC grammar model Contract module name Module description Grammar definition Contract framework Contract ::Title{Parties+Assets+Terms+Additions+Signs+) The contract title may consist of the of the contract name and the contract number. Title::=contract Cname (:serial Contract title number Chash)? The description of contract party can include the party's name,address,account Contract party number,and other attributes and values owned by this party,and technical measures Parties::=party group?Pname such as the party's identity authentication can be adopted to ensure the uniqueness of (field+) its identity. 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 Assets::=asset Aname{info{field+ Contract subject achievements,etc.Contract subject is represented by asset in the smart legal contract, )right(field+) and the description of such assets should exist in the blockchain. Asset expression The asset expression used for the reference of a certain asset in contracting terms. AssetExpressions::=$(amount)? (right 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 Deposit which the party can designate the deposited assets directly by asset expression,and Deposits::=deposit(value restrict the assets through comparing two values by relational operation to determine RelationOperator)?AssetExpression their relationship.The latter is used to grant the permission for transferring the Asset operations designated assets only if the relationship is satisfied. Withdraw The party can withdraw assets from contract account in the execution of terms,where Withdraws::=withdraw the assets are designated by the asset expression. AssetExpression Transfer The party can transfer assets from contract account to other party account in the Transfers::=transfer execution of terms. AssetExpression to target GeneralTerms::=term Tname: General terms include the term's name,the term's parties,the rights and obligations of Pname (mustcancannot) General terms the parties(actions that must,can or are prohibited),the execution conditions of the action(field+) term,the asset transactions,and the post-conditions to be satisfied after the execution (when preCondition)? of the term. (while transactions+)? (where postCondition)?. Breach terms refer to the legal liability to be assumed when the parties agreed by both BreachTerms::=breach term Bname Contract parties do not perform the obligations stipulated in the smart legal contract or perform (against Tname+)?:Pname terms the obligations that do not conform to the contract.When the post-condition of the Breach terms designated terms is not satisfied and the pre-condition of the breach term is satisfied, (mustlcan)action(field+) the related party must or can take action for setting the defaults,which may require to (when preCondition)? (while transactions+)? enforce asset operations and satisfy the post-condition of the breach term for the result (where postCondition)?. of enforcement. Arbitration terms stipulates the method to solve controversy in smart legal contracts. ArbitrationTerms ::arbitration term: Arbitration terms The specific cooverycan be stated by nature language and an arbtrationnsuo(The statement of any conroversy)? may be designated. administered by institution: instName. Additional information can define necessary supplementary information in smart legal Additional information Additions::=field +(addition contract,including entity's attribute,contract object,the property and signature of Dname (field+) guarantor,additional term,program variable,and the declaration of data structure. 断完善,如合约标的表示和实现、违约条款后续处 种支持智能合约可执行程序部署、运行、验证的 理、订立过程规范化、证据保全、仲裁流程等内容 信息网络系统. 4智能合约系统架构及法律化辨析 从计算模型角度来看,区块链中的交易记录 能够记录账户所持有货币的所有权状态以及预先 4.1智能合约架构描述 定义好的“状态转换函数”,当其他交易或可信外 智能合约平台是智能合约架构的基础,也为 部事件发生时,它将依据“状态转换函数”转变为 合约条款履行提供计算环境,以区块链为基础,智 新的状态,写入到交易记录并往复上述过程.上述 能合约平台通过提供丰富的编程语言,使开发人 “状态转换函数”可视为预定义的合约代码,表征 员得以实现任意价值的交换2]智能合约平台 当事人可行使权利和履行义务.同时,从法律视角 定义如下: 来看,激活“状态转移函数”的条款运行机制必须 定义6(智能合约平台):智能合约平台是指一 获得当事人授权
断完善,如合约标的表示和实现、违约条款后续处 理、订立过程规范化、证据保全、仲裁流程等内容. 4 智能合约系统架构及法律化辨析 4.1 智能合约架构描述 智能合约平台是智能合约架构的基础,也为 合约条款履行提供计算环境,以区块链为基础,智 能合约平台通过提供丰富的编程语言,使开发人 员得以实现任意价值的交换[28] . 智能合约平台[29] 定义如下: 定义 6(智能合约平台):智能合约平台是指一 种支持智能合约可执行程序部署、运行、验证的 信息网络系统. 从计算模型角度来看,区块链中的交易记录 能够记录账户所持有货币的所有权状态以及预先 定义好的“状态转换函数”. 当其他交易或可信外 部事件发生时,它将依据“状态转换函数”转变为 新的状态,写入到交易记录并往复上述过程. 上述 “状态转换函数”可视为预定义的合约代码,表征 当事人可行使权利和履行义务. 同时,从法律视角 来看,激活“状态转移函数”的条款运行机制必须 获得当事人授权. 表 1 SPESC 语法模型 Table 1 SPESC grammar model 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)?. Arbitration 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+}) · 74 · 工程科学学报,第 44 卷,第 1 期
王迪等:智能法律合约及其研究进展 .75· 1 contract SimpleAuctionf 2 38 party group bidders{ 4 amount Money 5 Bid() 6 WithdrawoverbidMoney() 7 } 8 ge party auctioneer{ 10 StartBidding(reservePrice Money,biddingTime Date) 1 StopBidding() 12 13 14 highestPrice Money 15 highestBidder bidders 16 BiddingstopTime Date 17 189 term nol:auctioneer can StartBidding, 19 when before auctioneer did StartBidding 20 where highestPrice reservePrice and BiddingStopTime biddingTime now. 21 22 term no2 bidders can Bid, 23 when after auctioneer did StartBidding and before BiddingStopTime 24 while deposit value highestPrice 259 where highestPrice value and highestBidder this bidder and 26 this bidder::amount this bidder::Ori amount value 27 28 term no3_1 bidders can WithdrawoverbidMoney, 29 when this bidder isn't highestBidder and this bidder::amount >0 30 while withdraw $this bidder::amount 31 where this bidder::amount =0. 32 33 term no3_2 bidders can WithdrawoverbidMoney, 34 when this bidder is highestBidder and this bidder::amount highestPrice 35 while withdraw sthis bidder::amount-highestPrice 36 where this bidder::amount highestPrice. 7 389 term no4 auctioneer can StopBidding, 39 when after BiddingStopTime and before auctioneer did StopBidding 40 while withdraw shighestPrice. 41} 图2 SPESC编写的竞买合约 Fig.2 Bidding contract written in SPESC 图3描述了区块链智能合约的通用架构.该接受,这被称为“all-or-nothing”原则;此外,签名机 架构涉及到智能合约的程序设计、代码生成、部 制可用来保证只有持有该帐户密钥的人才能从该 署与执行等多个阶段 帐户中转移资金:区块可视为时间上具有线性关 4.2智能合约的区块链部署 系的存储单元,而建立在区块之间的单向哈希链 智能合约的存储与执行、结果有效性、合约代 可视为因解决合约冲突而建立的公认交易顺序. 码安全都依赖于区块链0,区块链与智能合约的 通过在智能合约中引入面向对象和面向领域 有效整合成为智能合约实施的关键别为便于理 的编程思想,使得区块链中的各种复杂机制(挖 解,智能合约通常将区块链视为参与者共同维护 矿、共识、对等网络、哈希等)变成了智能合约平 的交易数据库:智能合约将以交易形式被部署到 台提供的承诺,开发和使用人员只需要关注于自 区块链,且可追加交易用于更改共享数据库中某 己的业务需求,而无需考虑智能合约执行代码的 些内容,但该更改行为必须被其它所有参与方所 具体实施
图 3 描述了区块链智能合约的通用架构. 该 架构涉及到智能合约的程序设计、代码生成、部 署与执行等多个阶段. 4.2 智能合约的区块链部署 智能合约的存储与执行、结果有效性、合约代 码安全都依赖于区块链[30] ,区块链与智能合约的 有效整合成为智能合约实施的关键[31] . 为便于理 解,智能合约通常将区块链视为参与者共同维护 的交易数据库;智能合约将以交易形式被部署到 区块链,且可追加交易用于更改共享数据库中某 些内容,但该更改行为必须被其它所有参与方所 接受,这被称为“all-or-nothing”原则;此外,签名机 制可用来保证只有持有该帐户密钥的人才能从该 帐户中转移资金;区块可视为时间上具有线性关 系的存储单元,而建立在区块之间的单向哈希链 可视为因解决合约冲突而建立的公认交易顺序. 通过在智能合约中引入面向对象和面向领域 的编程思想,使得区块链中的各种复杂机制(挖 矿、共识、对等网络、哈希等)变成了智能合约平 台提供的承诺,开发和使用人员只需要关注于自 己的业务需求,而无需考虑智能合约执行代码的 具体实施. 图 2 SPESC 编写的竞买合约 Fig.2 Bidding contract written in SPESC 王 迪等: 智能法律合约及其研究进展 · 75 ·
.76 工程科学学报,第44卷,第1期 Real business 现实业务 Advanced smart contract Interpreter 解释器 language specification 高级智能合约语言规范 Smart contract compilation module General smart contract Compiler 智能合约编译 language specification 编译器 通用智能合约语言规范 Executable code 可执行代码 Smart contract Incentive mechanism operation module 激励机制 智能合约运行 Account 账户 The virtual machine where the Consensus algorithm smart contract runs智能合约 共识算法 运行虚拟机 Trusted Smart event Generating block contract Actuator 可信事件 生成区块 执行机构 Smart execution contract code State deployment 智能合约 Transaction module 执行代码 状态 交易 智能合约部署 Deploy to Extract code 自区块链取 Check/update/ 部署至区块 blockchain from the 链系统 system blockchain 出代码 write hack status 检查/更新/ 写回状态 Blockchain System 区块链系统 图3区块链智能合约通用架构 Fig.3 General architecture of blockchain smart contract 4.3合约代码运行 并向区块链发送用以更新合约状态的交易 当满足触发条件时,被部署在区块链上的智 4.4区块链所部署智能合约法律化辨析 能合约代码将被区块链系统自动执行,并依照合 联合国国际贸易法委员会《电子商务示范法》 约规定完成各种资产的转移.为保证合约代码自 中将电子化的意思表示称之为“数据电文”.根据 动和无差错地被执行,需要引入下列机制: 我国《电子签名法》规定,数据电文被定义为: ①奖励机制是针对合约代码执行中的各种开 定义7数据电文:数据电文是指以电子、光学、 销,由发布者预付一定量的货币(如以太坊中以 磁或者类似手段生成、发送、接收或者储存的信息 gs为单位的交易费用)作为奖励,通常它是智能 区块链智能合约及其链码都是一种采用电子 合约平台的必备条件. 方式生成的计算机代码,它被发送到区块链网络 ②执行机构是指合约代码运行的环境,包括 中,并被网络中所有节点接收和存储,因此根据上 脚本、容器、虚拟机等3种运行方式,此方面技 述定义,不难证明下面辨析成立: 术比较成熟,是智能合约平台构造的核心技术 辨析4:区块链智能合约及其所生成的链码属 ③指令系统是智能合约运行环境提供的全部 于数据电文 指令的集合,反映了运行环境所拥有的基本功能, 区块链智能合约是一种基于计算机语言、以电 是智能合约平台软件构建的基础 子方式生成的计算机代码,链码则是通过智能合 ④预定义的合约条款触发场景和响应规则是 约语言编译器生成的可执行指令序列,而且,它们 自动判定当前场景满足合约条款触发条件的依 通过计算机网络被发送到区块链中每一个(完全) 据,响应规则则验证智能合约代码运行后的结果, 节点并在共识机制处理下被存储,这些活动符合
4.3 合约代码运行 当满足触发条件时,被部署在区块链上的智 能合约代码将被区块链系统自动执行,并依照合 约规定完成各种资产的转移. 为保证合约代码自 动和无差错地被执行,需要引入下列机制: ① 奖励机制是针对合约代码执行中的各种开 销,由发布者预付一定量的货币(如以太坊中以 gas 为单位的交易费用)作为奖励,通常它是智能 合约平台的必备条件. ② 执行机构是指合约代码运行的环境,包括 脚本、容器、虚拟机等 3 种运行方式[32] ,此方面技 术比较成熟,是智能合约平台构造的核心技术. ③ 指令系统是智能合约运行环境提供的全部 指令的集合,反映了运行环境所拥有的基本功能[33] , 是智能合约平台软件构建的基础. ④ 预定义的合约条款触发场景和响应规则是 自动判定当前场景满足合约条款触发条件的依 据,响应规则则验证智能合约代码运行后的结果, 并向区块链发送用以更新合约状态的交易. 4.4 区块链所部署智能合约法律化辨析 联合国国际贸易法委员会《电子商务示范法》 中将电子化的意思表示称之为“数据电文”. 根据 我国《电子签名法》规定,数据电文被定义为: 定义 7 数据电文:数据电文是指以电子、光学、 磁或者类似手段生成、发送、接收或者储存的信息. 区块链智能合约及其链码都是一种采用电子 方式生成的计算机代码,它被发送到区块链网络 中,并被网络中所有节点接收和存储,因此根据上 述定义,不难证明下面辨析成立: 辨析 4:区块链智能合约及其所生成的链码属 于数据电文. 区块链智能合约是一种基于计算机语言、以电 子方式生成的计算机代码,链码则是通过智能合 约语言编译器生成的可执行指令序列,而且,它们 通过计算机网络被发送到区块链中每一个(完全) 节点并在共识机制处理下被存储,这些活动符合 Generating block 生成区块 Real business 现实业务 Interpreter 解释器 Compiler 编译器 General smart contract language specification 通用智能合约语言规范 Consensus algorithm 共识算法 Blockchain System 区块链系统 Incentive mechanism 激励机制 Smart contract execution code 智能合约 执行代码 Actuator 执行机构 State 状态 Trusted event 可信事件 Smart contract compilation module 智能合约编译 Smart contract deployment module 智能合约部署 Smart contract operation module 智能合约运行 Executable code 可执行代码 Transaction 交易 Account 账户 Extract code from the blockchain Deploy to blockchain system 部署至区块 链系统 自区块链取 出代码 The virtual machine where the smart contract runs智能合约 运行虚拟机 Check/update/ write back status 检查/更新/ 写回状态 Advanced smart contract language specification 高级智能合约语言规范 图 3 区块链智能合约通用架构 Fig.3 General architecture of blockchain smart contract · 76 · 工程科学学报,第 44 卷,第 1 期