《民法典》合同编视域下的区块链智能合约研究
2020-12-17李旭东马淞元
李旭东 马淞元
摘 要: 新一代智能合约脱胎于区块链技术,随着其运用范围的不断拓展,人们的交易方式将发生巨大变化,同时也给中国合同领域的法律规则带来了许多挑战。智能合约的本质虽与合同类似,但结合即将生效的《民法典》合同编与总则编的相关内容可以发现,智能合约在意思表示、合同效力、抗辩权,以及合同的履行、变更解除、违约救济等方面都存在与现行法律不同甚至矛盾的地方。要想将智能合约纳入合同编进行调整,需要双管齐下。在智能合约方面,加强技术发展,并配套法定数字货币使之更安全、更规范。在合同法方面,可对意思表示一致做扩大认定,对“要约—承诺”规则进行前置化处理,对智能合约合同生效时间做统一规定,对合约当事方进行一定的反匿名措施,还需对智能合约程序的代理权做区分。应增加相应的救济途径,并对合同对价方式做一定限制。
关键词: 区块链;智能合约;民法典;合同法;调整路径
中图分类号:D913文献标识码:A文章编号:1004-8634(2020)05-0058-(12)
DOI:10.13852/J.CNKI.JSHNU.2020.05.007
一、引言
近年来,随着“区块链”“比特币”“挖矿”等词汇逐渐出现在人们的视野中,这些以区块链为基础的各项技术不再是小部分前沿科技人员或投机者们的专属,大众也逐渐开始了解、关心和研究它们。2019年10月24日下午,习近平在主持中共中央政治局就区块链技术发展现状和趋势的第十八次集体学习时强调:区块链技术的集成应用在新的技术革新和产业变革中起着重要作用。我们要把区块链作为核心技术自主创新的重要突破口,明确主攻方向,加大投入力度,着力攻克一批关键核心技术,加快推动区块链技术和产业创新发展。详见中国共产党新闻:《习近平在中央政治局第十八次集体学习时强调 把区块链作为核心技术自主创新重要突破口 加快推动区块链技术和产业创新发展》,载中国共产党新闻网:http://cpc.people.com.cn/n1/2019/1025/c64094-31421403.html,最后访问时间:2020年6月10日。)由此,区块链技术在中国正式走上了大发展的道路。
而“以太坊”作为区块链技术的2.0版本,技术的进步使其产生了智能合约的功能。新科技大多是“双刃剑”,只有依法依规地发展,才能使之发挥出积极作用。面对智能合约,当前的合同法并不能完全适用,其中存在不少空白缺失、规则差异甚至矛盾。尽管即将实施的《中华人民共和国民法典》(以下简称《民法典》)合同编较原合同法有了不少更新和进步,但仍然没有将智能合约纳入调整范围。因此,对智能合约而言,能否适用以及如何适用《民法典》合同编都是亟待解决的问题。本文将结合区块链智能合约与《民法典》合同编相关内容,分析智能合约与传统合同存在的差异和问题,并提出相应的对策及建议。
二、智能合约的概念界定及区块链技术在智能合约中的应用
1.智能合约的概念界定
第一,智能合约的概念。
智能合约于1994年由尼克·萨博(Nick Szabo)(尼克·萨博,计算机科学家、密码学家、法律学者,基于自动售货机的灵感,提出了智能合约的概念,后被称为智能合约之父。)提出,(SZABO Nick,Smart Contracts:Building Blocks for Digital Markets(1996)\[EB/OL\]. http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts_2.html.)他认为可以设计一个计算化交易协议,用来执行合约条款。(John Eatwell, Murray Milgate, Peter Newman,The New Palgrave: Allocation, Information, and Markets,The Macmillan Press Limited,1989. ) “一个智能合约是一套以数字形式定义的承诺(Commitment),包括合约参与方可以在上面执行这些承诺的协议。” (Thomas Bocek, Digital Marketplaces Unleashed,Springer-Verlag GmbH,2017.)通俗地讲,就是利用计算机语言,把合约内容通过代码的形式编写为程序,当程序的某种预定条件被达到或被满足时,程序将自动运行,合约也就自动履行。但鉴于当时的互联网技术还较为落后,这一构想无法得到很好的应用,而当今的互联网已经发展到可以满足其较好运行的水平。
第二,智能合约与传统合同的区别。
(1)与电子合同相区别。在传统合同中,电子合同是与之最为相近的,但两者也存在以下两大差异:首先,虽然电子合同将合同电子化并运用了互联网技术,但其本质仍然是一种静态约定,是“在网络条件下,双方或多方当事人之间为了实现一定的交易目的,通过电子信息网络以电子邮件或者电子数据交换的形式达成的设立、变更、终止民事权利义务关系的协议。” (乔娇:《电子合同訂立相关法律问题》,《人民法治》2018年第20期。)而智能合约既是协议也是执行,(柴振国:《区块链下智能合约的合同法思考》,《广东社会科学》2019年第4期。)可看作一个协议与执行的整体。其次,在电子合同中,协议内容仍然由文字信息表述,是将日常交流语言电子化,而智能合约则是通过将协议内容运用计算机代码写成程序的形式来表达。(王璞巍、杨航天、孟佶、陈晋川、杜小勇:《面向合同的智能合约的形式化定义及参考实现》,《软件学报》2019年第9期。)
(2)在整体特性方面与传统合同的区别。智能合约相较传统合同具有以下特点:
首先,匿名性。由于在区块链中运行,智能合约的账户运用了公钥(Public Key)和私钥(Private Key)(公、私钥,为一种配合使用的密钥对,其本质是一种加密算法。其中向外界公开的称为公钥,使用人自己保留的称为私钥。)以及数字签名等技术,造成交易过程在公有链上全网广播公开而交易当事人具体身份隐匿的情形。秘钥的唯一性和可溯性有助于保障当事人的隐私安全,所有链上参与者只能知道一个确定的账户,而不知道具体的操作者。
其次,公开存储性。在传统合同中,合同可以利用一式多份的形式由当事人自己储存,而智能合约以打包发布区块的模式全节点共识存储。这意味着非当事方账户或其他交易账户也可以查阅合约内容或交易状态,在特定条件下(若该智能合约程序在设计之初被设定为可以重复使用或可被调用型合约,则局域内其他用户也可发起调用指令调用该合约。)也可以调用这份合约。
再次,统一性。智能合约的编写无论在哪个平台上使用都采用统一的计算机程序语言,而程序语言与传统合同使用的日常语言不同,在合约内容的表示方面可有效减少歧义,更具统一性。
最后,电子程序性。智能合约的编写到执行都是通过一系列电子程序的设计和运行来完成的,这些程序都存于数据节点中,运行于网络中,没有实体,不同于传统合同的实在性。
(3)在适用领域方面与传统合同的区别。智能合约由于其程序依赖性和网络依赖性,导致合约的可适用领域受到限制。这样一来,那些可以用程序表达和执行的合约就能便捷地用智能合约的形式应用,而那些脱离系统的实在约定内容就很难应用到智能合约上。例如,《民法典》第十七章所规定的承揽合同,第十八章规定的建设工程合同、第二十一章规定的保管合同等就难以在智能合约上得以应用。而传统合同由于不依赖电子程序,只要符合法律法规,民事主体之间可以在各个领域设立、变更、终止民事法律关系。
(4)在运行方式上与传统合同的区别。第一,自动履行。智能合约由程序编写,也由程序执行,无须当事人行动,也不受外界干预,具有很强的自动性。但对于传统合同而言,虽然合同拟定好了,但多数情况下还需要当事人履行相关义务,并且当事人还可能依情况选择不履行、部分履行或中止履行。第二,不可逆性。智能合约的程序一旦设定好并交由“矿工”(矿工,指区块链中通过计算特定哈希函数,以求获得区块信息打包权和相应奖励的人。)打包到区块进行全节点广播,合约的内容一般无法修改。合约设定的条件一旦达成,合约即自动运行,几乎不能被干涉或阻止,是一种“开弓没有回头箭”的模式。
(5)在救济方面与传统合同的区别。如前所述,智能合约本身是一种“合约+执行”的一体化不可逆过程,当事人在一般情况下并不会存在违约情况,也就无须考虑在违约之后的救济,能够最大限度地满足市场效率。但传统合同中,如果违约成本低于收益时,当事人会选择违约,最后由法律提供救济,而这类情况是不满足市场经济效率需要的。(柴振国:《区块链下智能合约的合同法思考》。)智能合约设计的目的通常就是为了满足一般的合同条件,同时又最大限度地减少恶意、意外状况和使用信任式中间媒介,达到包括减少受欺詐损失、仲裁和执法成本及其他交易成本等经济目标。(V Buterin, A Next-generation Smart Contract and Decentralized Application Platform, Etherum, 2014(January), pp.1-36. https://www.mendeley.com/catalogue/7f15213c-fdfa-3247-8f64-5997b917c898/.)虽然智能合约意在用技术手段排除违约以及强制执行的必要,但如果出现需要救济的情况,相较传统合同而言存在救济缺位,并没有明确统一的技术对其支撑,法律上也缺乏相关可行的规定。
总的来看,智能合约与传统合同有许多不同,其中部分特性是智能合约的优点,如:效率高、成本低、防篡改、违约风险低、消除强制执行必要,等等。但由于其不可逆的刚性和完全的电子程序依赖性,也使得较之传统合同存在些许缺陷。
2.区块链技术在智能合约中的应用
2008年11月,随着“区块链”这一概念的问世,互联网技术又一次得到与其他领域深入融合的发展机会。如果说,中本聪发表的《比特币:一种点对点现金支付系统》(Nakamoto S. “Bitcoin: a peer-to-peer electronic cash system” ,2009. https://bitcoin.org/bitcoin.pdf.)只是利用区块链技术将相对当今以银行为中心的货币系统进行了去中心化,2013年“以太坊”的出现则将区块链技术运用到了更多领域的去中心化中。由于“以太坊”拥有一套在EVM(Ethereum Virtual Machine)中运行的图灵完备的脚本语言(Turing-complete Programming Model),(V Buterin, A Next-generation Smart Contract and Decentralized Application Platform.)使得智能合约可以在该平台得到很好的运用,并由此将智能合约与区块链技术相结合。由于区块链本身运用了非对称加密、(袁勇、王飞跃:《区块链技术发展现状与展望》,《自动化学报》2016年第4期。)哈希函数(袁勇、王飞跃:《区块链技术发展现状与展望》。)及哈希指针(HASH POINT)路径回溯、点对点(P2P)传输、链式结构等技术,在其上运行的智能合约也就具有了去中心化、可信共享、分布式记账、储存验证、不可篡改和伪造、(袁勇,王飞跃:《区块链技术发展现状与展望》。)匿名性、可溯源等特点。
三、区块链技术下智能合约对相关合同法的影响
1.智能合约对意思表示的影响
由于智能合约形式的合同在拟定和运行方式上具有特殊性,其对意思表示的载体、传达方法和具体使用规则等方面会产生一定影响。(陈逸宁:《区块技术下智能合约意思表示的认定》,《金融法苑》2018年第5期。)
第一,智能合约对意思自治的限制。
《民法典》第5条规定:民事主体从事民事活动,应当遵循自愿原则,按照自己的意思设立、变更、终止民事法律关系。这些法条被概括理解为“意思自治”。然而由于智能合约由区块链作为底层技术支撑,要想用智能合约的方式订立和履行合同就会受到一定的限制。这些限制主要有以下三点:一是模式限制。拟定智能合约只能采取编制计算机程序的模式进行,这就要求合约拟定当事人需要拥有计算机编程能力,至少需要通过相关专业人员进行合约拟定。这在一定程度上限制了当事人订立合同的方式选择。二是运行平台限制。要想以智能合约的形式订立和履行合同,目前仍必须在一定的去中心化自治组织(The Distributed Autonomous Organization)(Christoph Jentzsch, “Decentralized Autonomous Organization to Automate Governance”, 2017. https://download.slock.it/public/DAO/WhitePaper.pdf.)或公司提供的相应区块链技术平台上进行操作,目前主要以“以太坊”为代表。三是意思表示方式限制。《民法典》第469条规定,当事人订立合同,可以采用书面形式、口头形式或者其他形式。并更新规定:以电子数据交换方式能够有形地表现所载内容,并可以随时调取查用的数据电文,视为书面形式。然而,智能合约只能以代码方式对意思做出表示,这不同于书面文字和口头语言,也不同于数据电文或电子记录。基于以上三点本文认为,要使用智能合约,会损失一定程度的意思自治。
第二,智能合约的意思表示存在误差。
若将拟定智能合约的过程分为协商、开发和部署三个阶段,(欧阳丽炜、王帅、袁勇、倪晓春、王飞跃:《区块链智能合约的发展现状:架构、应用于发展趋势》,《自动化学报》,网络出版版本,出版时间2019年2月18日,网络出版地址:http://kns.cnki.net/kcms/detail/11.2109.TP.20190218.1353.003.html,(\[J/OL\]. 1-13\[2020-07-06\].https://doi.org/10.16383/j.aas.c180586.)。)在协商阶段时的智能合约与传统合约类似,当事人就合约内容进行协商讨论,以达到约定一致的程度就算协商完成。之后将把这些表示一致的合意内容用计算机代码的形式写成程序,然后才是后续的验证、打包、发块,再到运行。众所周知,计算机语言不同于日常交流的语言。将日常交流语言所表达的意思用代码写成程序,不可避免地会产生一定程度的差异。代码无法完整透彻地表示出当事人的意思,因此智能合约在意思表示方面,由于有编程转化过程而存在意思表示误差。
第三,智能合约影响“要约—承诺”架构。
《民法典》第472条规定:要约是希望和他人订立合同的意思表示。第479條规定:承诺是受要约人同意要约的意思表示。在以智能合约为方式订立合同的过程中,由于智能合约的拟制到成立较传统合同有更多的程序和阶段,这会对原本法律规定的“要约—承诺”架构造成一定影响。虽然目前学界对智能合约尚没有一个公认的定义,但如前文所示,有观点将智能合约定义为“一套以数字形式定义的承诺”。(Linnhoff-Popien et al.(eds.), Digital Marketplaces Unleashed, Springer-Verlag GmbH Germany 2018. https://doi.org/10.1007/978-3-662-49275-8_2.)本文认为,在智能合约中,要约与承诺不单在拟定环节有所涉及,而且存在于两种情形中。第一种情形,在合约代码化前,一方当事人向另一方当事人发出意图订立合约的意思表示,受要约人在协商后将合约代码化,制成智能合约。由于智能合约一经成立发布,便具有不可逆、自动履行等特点,这符合“经受要约人承诺,要约人即受该意思表示约束”的规定。因此,可将智能合约本身认为是对合约拟定要约的一种“承诺”。但根据《以太坊白皮书》中的释义,“以太坊中的合同不应被视为应该‘履行或‘遵守的东西,而应作为执行环境中的‘自治代理人”。(Kevin Werbach, Nicolas Cornell,“Contracts Ex Machine”, 67 Duke Law Journal, 2017. Available at: https://scholarship.law.duke.edu/dlj/vol67/iss2/2.)以太坊中的账户可分为外部账户与合约账户,(欧阳丽炜、王帅、袁勇、倪晓春、王飞跃:《区块链智能合约的发展现状:架构、应用于发展趋势》。)根据其规则,一个合约账户除了可在条件满足时自动执行外,还存在被其他外部账户或合约账户调用的情况,(欧阳丽炜、王帅、袁勇、倪晓春、王飞跃:《智能合约:架构及进展》,《自动化学报》2019年第3期。)这便是第二种情形。在存在合约调用的情况中,将一个合约发布以供其他外部账户或合约账户调用的行为可以理解为要约,一旦调用,调用人就不可逆受其合约内容约束,这种调用行为也就相应可被视为承诺。在前者,发出拟定要约和进行具体拟定过程中的“要约—承诺”可以进行撤回、撤销操作,符合相关法律规定。而后一种情形,即合约存在调用的情况下,由于合约调用后的执行具有自动性和不可逆性,且网络程序具有瞬时性,导致要约无法撤回、撤销,承诺也无法撤回。该阶段的要约与承诺受到了限制,无法进行撤回或撤销操作。虽然当前有观点认为此时的承诺性质为意思实现而非意思表示,(陈吉栋:《智能合约的法律构造》,《东方法学》2019年第3期。)但两种情形就要约和承诺的条件本质来看,仍然属于意思表示的范畴。
2.智能合约对合同效力的影响
第一,智能合约生效时间认定。
《民法典》第502条规定:依法成立的合同,自成立时生效。 智能合约由于从拟定到完成需经历更多程序,过程也更长,若要以智能合约形式订立合同,就要考虑在智能合约情况下的合同生效时间,这就需要认定其成立的时间。智能合约在履行前有协商、写代码编程、本地验证、矿工打包、发块等程序,其何时成立是一个问题。打包、发块等程序的最大特点就是经过这些程序,合约就进入不可逆阶段。由此,本文认为,在以智能合约的方式订立合同的过程中,合约双方或多方就合约内容协商一致后,将该内容编写为合约程序,程序设定完成即告成立,合同也就自此生效。另外,若是已编好并发布以供调用的合约程序,则应该认定其在被调用时成立并生效。
若合约程序涉及“附条件”或“附期限”生效的,则按相关法律规定,当程序识别条件成就时生效,或自程序设定的期限届至时生效。若合约内容涉及应当办理批准、登记等手续才能生效时,应采取线上线下结合的方式,根據线下批准、登记手续办理完成的时间认定合同生效。
第二,智能合约对认定合同无效难度的影响。
虽然,为了维持经济秩序的稳定,当前法律革新的趋势是认定合同无效的情况越来越少。《民法典》合同编对合同效力也不再单独规定,而是援引适用第一编第六章民事法律行为的有关规定。但是,在以智能合约方式订立和履行合同的过程中,仍有可能存在合同无效的情况,如合同订立主体无民事行为能力、合约内容违反法律、行政法规的强制性规定等。因此,仍有必要对智能合约无效的相关情形进行讨论和分析。
区块链作为智能合约的底层技术支撑,广泛运用了哈希算法、非对称加密和公、私钥,从而使智能合约拥有“匿名性”特点,呈现出合约内容公开而合约当事人隐秘的情况。任何授权节点(韩璇、袁勇、王飞跃:《区块链安全问题:研究现状与展望》,《自动化学报》2019年第1期。)都可经由公开查询获取合约内容等信息,(欧阳丽炜、王帅、袁勇、倪晓春、王飞跃:《区块链智能合约的发展现状:架构、应用于发展趋势》。)但无法获取合约当事方的具体身份。在目前的技术条件下,没有技术手段可以通过回溯查询确定外部账户控制者的实际年龄,这就使无民事行为能力人,即不满八周岁的未成年人或不能辨认自己行为的成年人利用他人身份信息,申请和控制账户的行为无法得到有效规制,从而给以智能合约方式订立的合同在认定其无效方面造成了困难。当然,由于合约内容的公开,这就降低了因合约内容违反法律、行政法规的强制性规定而无效的认定难度。
第三,智能合约合同效力待定的情形。
根据《民法典》第145、171条的相关规定,可认为限制民事行为能力人订立的合同(与其年龄、智力、精神状况不相适应的),以及无权代理人订立的合同属于效力待定的情况,需要相关权利主体进行追认合同方为有效(《合同法》中无权处分人订立的合同不再是效力待定的情况)。在智能合约中,由于匿名的缘故,无法确定外部账户控制者(合约订立当事方)的年龄、智力与精神状况,也就无法判断合约是否因订立主体为限制民事行为能力人而导致合同效力待定。另外,智能合约的执行很大程度上取决于程序的判断,当程序识别到条件达成时将自动履行。(欧阳丽炜、王帅、袁勇、倪晓春、王飞跃:《区块链智能合约的发展现状:架构、应用于发展趋势》。)虽然当前的智能合约程序仍然依靠提前预设的“If-then-else”逻辑(许可:《决策十字阵中的智能合约》,《东方法学》2019年第3期。)设定来判断和识别条件是否达到,但随着科技的发展,智能合约程序的智能化程度将不断提升,当合约能对各种条件和情况进行学习和自主判断并决定是否执行时,即达到“What-if”逻辑时,就会出现类似于代理的情况。目前,法律对诸如人工智能等智能程序是否有代理权尚无定论,学界对该方面的研究也不充分。但在智能合约中,由于设计程序前当事方会有实在的协商过程,且都明白后续程序的执行逻辑和执行过程,所以本文认为,智能合约中智能程序通常情况下拥有代理权,且该代理权具有非单方性,即代表合约各方在运行过程中识别条件并做出行为选择。但当运行过程中出现了设计时未预见的新情况,而智能程序对这些预料之外的情况做出反应时,应视为超出代理权范围实施的行为,该情形应属于无权代理,合约因此成就的状态有待订立主体的追认,此时合同的效力待定。
第四,智能合约对合同可撤销制度的客观限制。
《合同法》第54条对可撤销合同的规定在《民法典》合同编里已不再体现,转而由《民法典》第147条至151条所规定的民事法律行为的可撤销情形予以代替。合同作为一种典型的民事法律行为,当出现重大误解、(《民法典》第147条:基于重大误解实施的民事法律行为,行为人有权请求人民法院或者仲裁机构予以撤销。)一方或第三人实施欺诈(《民法典》第148条:一方以欺诈手段,使对方在违背真实意思的情况下实施的民事法律行为,受欺诈方有权请求人民法院或者仲裁机构予以撤销。第149条:第三人实施欺诈行为,使一方在违背真实意思的情况下实施的民事法律行为,对方知道或者应当知道该欺诈行为的,受欺诈方有权请求人民法院或者仲裁机构予以撤销。)或胁迫,(《民法典》第150条:一方或者第三人以胁迫手段,使对方在违背真实意思的情况下实施的民事法律行为,受胁迫方有权请求人民法院或者仲裁机构予以撤销。)以及显示公平(《民法典》第151条:一方利用对方处于危困状态、缺乏判断能力等情形,致使民事法律行为成立时显失公平的,受损害方有权请求人民法院或者仲裁机构予以撤销。)的情况时是可撤销的。智能合约当然也可能出现重大误解或显失公平的情况,特别是基于匿名性的特点,更可能对合约当事方身份产生重大误解。智能合约的履行一体化、不可逆、不可篡改和自动执行等特点,会造成发布到区块链上的智能合约一般不可撤销。(欧阳丽炜、王帅、袁勇、倪晓春、王飞跃:《智能合约:架构及进展》。)虽然在协商阶段可以放弃拟定合约,但此时由于合同尚未生效,也不存在可撤销问题。总而言之,智能合约会限制当事人的撤销权。
第四,智能合约中合同履行不能的情况。
合同履行不能又可称为“给付不能”,是债务人由于某种原因,事实上已不可能履行债务。履行不能导致债的目的客观上无法实现,因而导致债务消灭或转化为损害赔偿之债,债权人无法请求继续履行。一般认为,这样的情况在智能合约中只会存在于涉及合约调用的合同中,因为对于一般智能合约来说,合约程序自动履行,不存在无法实现的情况(不可抗力除外),但合约的调用涉及对外部账户或其他合约账户的操作,需要网外介入,因此就可能出现某种原因(如债务方账户实际控制者在调用账户前死亡等)使调用的情况不能进行,而使得智能合约履行不能。
第五,智能合约对价支付的合法性认定。
目前,智能合约的应用需要在一定的平台上(如“以太坊”、超级账本等)进行,而在其上的合约交易,其对价支付只能使用特定的加密货币。如在“以太坊”中的智能合约不可避免要使用“燃料”来执行程序,使用以太币以支付合约对价。因为从技术层面上看,这些加密货币与该平台区块链的运行是一个整体。在比特币阶段,比特币作为区块打包者的奖励,在“以太坊”阶段,“燃料”是给“矿工”的费用,这些加密货币成为区块链技术的一部分。但是,由于加密货币可能被用于包括洗钱、暗网支付、盗窃、诈骗、逃税等犯罪行为中,(漆彤、卓峻帆:《加密货币的法律属性与监管框架——以比较研究为视角》,《财经法学》2019年第4期。)中国对其进行了严格的管控。2013年12月5日,央行等五部委发布《关于防范比特币风险的通知》,(详见中国人民银行:《关于防范比特币风险的通知》,载中国人民银行网站:http://www.pbc.gov.cn/goutongjiaoliu/113456/113469/2804576/index.html,最后访问时间:2020年6月29日。)将比特币定性为一种虚拟商品,而不是一种货币。2017年9月4日,央行又联合七部门发布《关于防范代币发行融资风险的公告》,(详见中国人民银行:《关于防范代币发行融资风险的公告》,载中国人民银行网站:http://www.pbc.gov.cn/goutongjiaoliu/113456/113469/3374222/index.html,最后访问时间:2020年6月17日。)强调“代币或虚拟货币不具有与货币同等的法律地位”。从司法实践看,浙江省杭州市中级人民法院(2018)浙01民终10053号“陈某诉浙江某通信科技有限公司网络购物合同纠纷案”(浙江省杭州市中级人民法院:《陈国贵、浙江亿邦通信科技有限公司网络购物合同纠纷二审民事判决书》,载中国裁判文书网:http://wenshu.court.gov.cn/website/wenshu/181107ANFZ0BXSK4/index.html?docId=bb56f0f050a14981bb6faa93009fa067,最后访问时间:2020年5月25日。)认为,比特币是互联网技术发展后在互联网环境中生成的虚拟物品,由网络节点的计算生成,并不是法定货币种类,没有集中的发行方,也不受任何中央银行和金融机构控制,因而不具有法偿性与强制性等货币属性。但比特币具有商品属性,可以被接受者使用货币购买。综上,按照目前对加密货币的各项规定来看,加密货币具商品属性,与依法发行的货币不享有同等地位。但笔者认为,在以智能合约为形式的合同中,以加密货币作为合同对价支付的行为仍是合法的,理由在于对价的支付并不要求必须是货币。
5.智能合约对合同变更、解除的影响
第一,智能合约的变更方法。
根据《民法典》第543条,在当事人协商一致的情况下可以变更合同,但这一点在智能合约中却很难实现。智能合约的自动性和执行性一定程度上突破了合同的相对性,在将合同相对方从合同中解放出来的同时,把合同双方当事人的权利进行了下放。(柴振国:《区块链下智能合约的合同法思考》。)这样一来,拟定好的合约一经发布,就不可逆也无法篡改,就算当事人事后协商一致也没有办法对已发布的合约进行变更。目前通常的做法是把智能合约的变更以程序的方式一同拟定,这样可以使合约在遇到需要变更的情况时自动变更,相当于协商一致前置而变更后置。但是,未来的不确定性决定了不可能在程序中囊括所有的可能状况。现阶段智能合约还只能处理预定义代码,无法较好地应对不可预料的情势变更。(欧阳丽炜、王帅、袁勇、倪晓春、王飞跃:《区块链智能合约的发展现状:架构、应用于发展趋势》。)因此,智能合约的变更只能通过新合约覆盖的方式完成,也就是在协商一致需要变更时,新拟定一个变更了的合约发布到区块链,同时向共识系统宣布前合约废止。
第二,智能合约对合同解除形成限制。
根据《民法典》第562条和第563条,当事人协商一致或出现法定情形(《民法典》第563条规定:有下列情形之一的,当事人可以解除合同:(一)因不可抗力致使不能实现合同目的;(二)在履行期限届满前,当事人一方明确表示或者以自己的行为表明不履行主要债务;(三)当事人一方迟延履行主要债务,经催告后在合理期限内仍未履行;(四)当事人一方迟延履行债务或者有其他违约行为致使不能实现合同目的;(五)法律规定的其他情形。)可以解除合同。然而在智能合约中,合约一旦在区块链上发布就无法解除,这是由不可逆性决定的。这样的情况下,智能合约的解除就受到了限制。尽管智能合约排除了一些法定解除情形,如:在履行期限届满之前,当事人一方明确表示或者以自己的行为表明不履行主要债务;当事人一方迟延履行主要债务,经催告后在合理期限内仍未履行;当事人一方迟延履行债务或者有其他违约行为致使不能实现合同目的,等等。但从技术层面讲,当智能合约出现不可修复的高危漏洞时,合约有必要予以解除,目前多通过强制自毁等方式完成。(欧阳丽炜、王帅、袁勇、倪晓春、王飞跃:《区块鏈智能合约的发展现状:架构、应用于发展趋势》。)
6.智能合约对违约及违约救济的影响
第一,智能合约可有效减少违约情况。
智能合约的初衷就是利用程序技术避免违约情况的发生,通过程序的自动执行省去法院的强制执行,保证履约的经济效益。智能合约作为一个从拟定到执行的动态整体,在区块链上自主运行,排除合约当事人的干预。这样一来,对当事人违约的行为造成了很大限制,使违约行为因没有可行的操作方法而最多停留在想法阶段。虽然,这样的初衷和技术手段对各当事人的部分权利行使造成了限制,但需要承认的是,这的确从客观上减少了违约情况。
第二,智能合约平台的违约救济缺位。
当前智能合约的应用还没有达到广泛的程度,而依赖于诸如“以太坊”这类的平台。这些平台通过技术手段搭建一个区块链体系,建设基础设施层,设立一定规则,推出相应的账户、加密货币,以供人在其中运行智能合约。但这类平台与当前的交易平台公司有较大区别。一是此类平台更接近一个应用平台而不是一个法人,它没有员工、缺少管理,(凯文·沃巴赫(Kevin Werbach):《信任,但需要验证:论区块链为何需要法律》,《东方法学》2018年第4期。)通过搭建没有实体的网络系统来提供服务。二是这类平台的构成全部以系统程序的方式运行在网络中,存在监管技术缺失的问题,(韩璇、袁勇、王飞跃:《区块链安全问题:研究现状与展望》。)目前也没有专门的机构对其进行监管。这样的平台只是提供技术,而没有完备的救济体系。并且,即使智能合约的使用涉及违约、违法等问题,平台也几乎不予干涉。就如同提供了一个工具,至于工具被用来做什么,很少做后续跟踪和管理。所以,智能合约也可能出现恶意合约,也可能出现欺诈、重大误解等情况,但平台对这些情况的出现并没有后续的救济,这就是目前智能合约的救济缺位。就当前看来,使用智能合约方式订立的合同,如果出现违约等情况,还是只能通过传统的司法途径解决。
四、智能合约纳入《民法典》调整的路径及建议
1.智能合约纳入《民法典》调整的路径
第一,修改和完善《民法典》合同编。
《民法典》合同编并没有考虑以智能合约的形式订立合同的情况,因此会出现无法契合或无法适用的情形。合约的本质与合同非常接近,因此对以智能合约方式订立的合同,仍然应纳入《民法典》合同编来进行调整,同时应该考虑对该部分法律进行修改和完善。针对条款无法适用的情形,可用增加条款内容或排除情形的方式使条款继续适用。如果鉴于法律修改过程漫长,程序严谨复杂,也可以通过司法解释的方式对现行相关合同的法律法规有关条款进行解释。此外,由于智能合约技术的发展迅速,运用过程的涉及面广泛,且是一套较为独立的技术基础和运行模式,还可以考虑在《民法典》之外,对各类利用区块链技术的民事法律关系进行单独立法。或者使用行政法规或部门规章等较为便捷的形式对智能合约的使用予以规制。
第二,从技术层面予以支撑。
要将智能合约纳入《民法典》调整,光靠法律方面的修改和完善显然是不够的,智能合约技术本身也要有相应的改善,使智能合约规范化。从技术层面来看,路径主要有如下两点 :一是发行法定数字货币。目前区块链技术中智能合约所用到的数字货币并不被认为是货币,而被认为是一种商品,且存在监管难、发行混乱、融资可能存在庞氏骗局等问题。在现阶段中国境内发展加密货币是受到严格限制的,中国禁止金融机构提供相关业务。(漆彤、卓峻帆:《加密货币的法律属性与监管框架——以比较研究为视角》。)因此要将智能合约纳入法律规制,就必须发行法律认可的数字货币。中国人民银行从2014年已经开始研究法定数字货币,(详见中国人民银行:《关于冒用人民银行名义发行或推广法定数字货币情况的公告》,载中国人民银行网:http://www.pbc.gov.cn/rmyh/105208/3919880/index.html,最后访问时间:2020年6月15日。)目前中国人民银行数字货币的各项测试及准备工作正有条不紊地推进。2020年6月22日,一位前人行高级官员透露,中国已经完成了计划中的CBDC后端基础设施。(新浪财经:《驱逐美元:中国央行数字货币将史无前例挑战美元霸权》,载新浪网: http://finance.sina.com.cn/blockchain/roll/2020-06-24/doc-iircuyvk0198107.shtml,最后访问日期:2020年7月1日。)8月12日,商务部印发《全面深化服务贸易创新发展试点总体方案》,正式公开宣布,在京、津、冀、长三角、粤港澳大湾区及中西部具备条件的试点地区开展数字人民币试点。二是将法律条文纳入运维层对合约进行验证。智能合约在协商完成并且编写为程序后,会在运维层受到验证。该步骤的本意为从技术层面验证程序的可行性,检测程序漏洞、代码错误等情况是否存在。运维层是对合约层静态合约数据的动态操作验证。(欧阳丽炜、王帅、袁勇、倪晓春、王飞跃:《区块链智能合约的发展现状:架构、应用于发展趋势》。)因此,可以把法律条文以代码的形式编入系统,尔后对各合约以代码检测的方式进行合法性查验。若发现违反法律规定的合约内容,将合约程序进行回滚、更新、自毁等操作以保障其符合法律规定。
2.智能合约纳入《民法典》合同编调整的若干建议
第一,对意思表示一致做扩大认定。
针对智能合约技术规则与传统合约法律条文存在巨大的语言鸿沟,且两者转换时不可避免存在翻译误差继而影响智能合约法律效力的问题,(欧阳丽炜、王帅、袁勇、倪晓春、王飞跃:《区块链智能合约的发展现状:架构、应用于发展趋势》。)应对《民法典》中的意思表示一致做扩大认定。即根据客观事实对是否达到所表意思做出认定。传统合约语言对同一事物可以有不同表示,因此在判断智能合约意思表示是否一致时应根据程序代码设定的具体情况来定。如果程序代码所能达到的意思客观上与当事人所表達的意思没有实质区别,将认定为意思表示一致,此时应该忽略从日常语言到计算机程序语言的转换误差。
第二,“要约—承诺”规则前置化。
针对“要约—承诺”架构在智能合约中的处置问题,应该将其前置化。如前文所言,在以智能合约的方式订立合同时,要约与承诺可以在两个阶段出现。首先是在程序拟定完成前,发出拟定程序要求是要约,协商后同意并开始拟定程序至完成为承诺。其次是在合约发布至区块链后的调用情况中,发起调用是要约,接受调用为承诺。然而后者由于区块链智能合约本身的技术原因,该阶段的要约和承诺存在撤回、撤销不能的问题,一定程度上限制了当事人权利的行使。因此,将前者情况中的要约与承诺行为认定为合同中的“要约—承诺”更为合理。
第三,认定智能合约的生效时间。
合同于何时生效是一个重要问题。根据《民法典》的规定,传统合同一般情况下在成立时生效。而智能合约,由于其协商拟定到履行的过程相较于传统合同有更多的程序,为了防止出现在成立时间的认定上出现争议,应该在《民法典》合同编中对以智能合约形式订立的合同的成立时间做出认定。如前文提过,根据智能合约拟定过程中的各程序的特点,认为在双方或多方协商一致后拟定合约程序,程序拟定完成时认定成立最妥当。至于在生效时间的确认上,仍然根据《民法典》相关规定认定在合同成立时生效。有其他條件限制的也依《民法典》相关规则处理。
第四,对合约当事人进行一定的匿名限制。
针对智能合约匿名性的特点,在以智能合约形式订立合同时,应对这一特点做出限制,即进行一些反匿名操作。虽然匿名性作为智能合约的一大特性有其优点,但是在作为合同时,匿名会对合同的效力、履行、救济等造成较大影响,甚至可能滋生犯罪。因此,要想将智能合约纳入《民法典》调整,要想以智能合约方式订立的合同能较好地达到合同目的,应在《民法典》中对智能合约的使用增加一定的反匿名规定,对匿名行为做出限制,以更好地保障合同行为合法合规。如:为了防止合同因订立主体的民事行为能力问题造成合同效力问题,对以智能合约形式订立合同的当事人账户进行非共识实名(只用于验证民事行为能力,对当事人身份依旧可选择保密,且不对其他上链主体公开)年龄验证,通过对虚报年龄或其他做假行为进行惩罚等方式最大限度地保障合同的效力。
第五,对智能程序的代理权进行认定。
根据区块链智能合约的运行模式,在合约程序拟定好后,合约当事人无须再进行操作,合约的履行交由程序自主完成。此时形成了一个授权,合约履行将交由程序去判断是否达到某些预定情况,并选择不同的应对或履行方式。因此,需要对智能程序的代理权进行认定。由于目前阶段的程序尚不具备强人工智能的智能程度,也就是程序尚不具备意识,所有的选择和应对都按照拟定时所考虑的既定预设进行。并且,以智能合约形式订立合同的当事人都清楚合约的运行模式,所以应该认定当事人接受由程序自主履行的模式设定。应在《民法典》有关代理的部分增加对合约程序的代理认定,在预先设定的所有情况范围内,合约程序具有代理权。但在出现预料之外的情况时,合约程序对其做出的反应,应该视为超出代理权范围的代理行为,为无权代理,需要当事人进一步操作以表示是否追认。
第六,增加对智能合约不可逆性的救济途径。
区块链智能合约具有不可逆性,这与传统合同有较大区别,要将其纳入《民法典》合同编进行调整,需要对这一特性做出应对。由于这一特性是区块链技术的本质特征,无法对其进行限制,因此只能对现行合同法进行改变。如,可以尝试增加对智能合约不可逆导致的损害或损失提供补偿;可以增加针对撤销权、解除权损失的补偿,规定在以智能合约形式订立合同时,当事人应提供对拥有撤销权或解除权一方的预备补偿,当需要行使该权利但由于技术原因而又无法行使时,获得该补偿。
第七,对合同对价选择进行规定。
以智能合约方式订立合同,应选择法律认可的对价方式。因为区块链智能合约的一些技术特征可能会滋生违法甚至犯罪行为,且就目前来看,对加密数字货币存在监管难、控制难的问题,以智能合约方式订立合同必须遵守法律法规。当前智能合约所普遍采用的对价方式为数字货币支付,然而国内学界认为这些数字货币是不符合法律规定的,只能将其认定为商品属性的“代币”或“虚拟货币”。(漆彤、卓峻帆:《加密货币的法律属性与监管框架——以比较研究为视角》。)所以,应在《民法典》合同编中对智能合约的对价选择进行规定。在未来,结合法定数字货币的发行,可以在这方面有更好的规制效果。
第八,增加智能合约违约的救济途径。
前文提到,目前区块链智能合约的提供平台对于违约情况的救济处于缺位状态。智能合约虽然在自动履行方面不可逆,但这不等于说智能合约不会违约。所以对智能合约的违约情况,应该在《民法典》中规定救济途径。如考虑使用线上线下相结合的方式,在可以确定当事人身份的情况下,增加外部人工救济。还可参考DAO事件的处理方法,(凯文·沃巴赫:《信任,但需要验证:论区块链为何需要法律》。)利用一些技术手段在合同违约时,对当事人提供救济。
Research on Block-Chain Smart Contract under Contract Part of Civil Code
LI Xudong,MA Songyuan
Abstract: The newly smart contract is born out of blockchain technology. With the continuous expansion of its scope and application, peoples trading methods will be greatly changed, in the meantime, lots of challenges will brought to the legal rules in the field of contracts in China. Although the essence of the contract is similar to that of the contract, it can be found that the smart contract has some differences or even contradictions with the current law in terms of expression of intention, validity of contract, right of defense, performance of contract, rescission of change and relief of breach of contract. A two-pronged approach is needed to incorporate smart contracts into the contract. Enhanced technology in smart contracts development, and supporting the legal digital currency to make it safer and more standardized. In the aspect of contract law, it is possible to enlarge the determination of meaning, to pre-process the “offer-acceptance” rule, to make a unified stipulation on the effective time of smart contract, to make certain anti-anonymity measures to the parties to the contract, and to distinguish the agency right of smart contract procedure. Finally, more corresponding relief channels are needed, and some restrictions should be made on the way of contract consideration.
Key words: block-chain, smart contract, civil code, contract law, adjustment path
(责任编辑:苏建军)
作者简介:李旭东,西南大学法学院教授(重庆 400175)。马淞元,西南大学法学院网络与人工智能研究中心助理研究员(重庆 400175)。