郭少飞:区块链智能合约的合同法分析 | 法宝推荐
【作者】郭少飞(河南师范大学法学院)
【来源】《东方法学》2019年第3期。因篇幅较长,已略去原文注释。
【声明】本文仅限学习交流使用,如遇侵权,我们会及时删除。
内容提要:智能合约以区块链为底层技术,具有去中心化、去信任、不可篡改、自动履行等特性。区块链智能合约包括代码层、文本层、底层规则及其控制的智能财产,呈现技术、法律两个方面。前者是区块链智能合约代码,后者系代码承载之法律关系,按属性分为公法类、私法类;私法类依内容分为合同型、实体型,合同型系主要法律形式。区块链智能合约蕴含当事人一致之意思表示或要约承诺,可基于合约结构或综合并列的传统合同,经解释确定,符合传统民法合同标准,应纳入合同法框架。为检视其合同法适用性,可深入探析效力、修改与履行、违约及救济等。效力应依法认定,重在主体行为能力、第三人欺诈胁迫、单方错误、合约机制不完备等效力瑕疵事由。修改应严格受限,以维护合约特性;匿名合约不得修改,除非相对方纯获利益。合约自动履行是全面实际履行,可编码支持实质履行、部分履行。为降低违约纠纷解决成本,合约事先置备自动执行机制,但措施合法性存疑;最终仍须寻求公力救济,核心在于合约代码内容的证明方式及可采性。
关键词:区块链;智能合约;代码;法律合同;合同法
引论
随着以比特币为代表的区块链技术兴起,智能合约开始应用于社会经济生活,至今方兴未艾,成为区块链2.0时代的典型。区块链及智能合约正在推动信息互联网转向价值互联网,开启共享经济新时代,引领全球技术及产业变革。2018年5月,工信部信息中心《2018年中国区块链产业白皮书》指出,我国区块链产业初步形成,未来三年将在实体经济中全面落地。区块链智能合约的广泛用途及广阔前景决定了法律必须正视之。此种以计算机语言构造、以代码形式存在的区块链智能合约,法律属性、地位结构如何,关乎当事人法律关系认定、纠纷解决机制选择、国家规制进路生成,意义颇为重大。但由于主体匿名性、合约技术性及自动履行特性、合约代码难以解释、当事人误认合约等诸多因素,区块链智能合约是否蕴含一致的意思表示或要约承诺,效力如何认定,能否修改,自动履行下当事人权利如何保护,自动执行措施是否合法,去中心化之下违约公力救济何以可能等一系列问题众说纷纭。归根结底,需要从法律角度适切分析区块链智能合约,首要在于廓清其概念结构、运行机制、功能属性等本体状况,进而厘定其合同属性,并在合同法框架下展开系统论述,尝试建构我国区块链智能合约合同法教义学体系。
一、区块链智能合约的本体意义
智能合约内嵌于区块链,深受区块链影响,相较传统纸质合同、电子合同,功用独特,结构多元,具有技术与法律双重属性。区块链应用场景及技术体系存在差异,不同区块链上的智能合约结构性地位、内容完备度乃至具体法律意义分殊。
(一)嵌于区块链之智能合约
智能合约理论的首倡者尼克·萨博指出,智能合约是一套以数字形式定义的承诺,包括合约参与方可于其上执行这些承诺的协议。在萨博看来,智能合约以数字化形式存在,合约条款可编码,基于预设条件及触发机制自动履行,一旦履行,不可撤销。并以贩售机为例,说明智能合约机制。对该示例,学者观点分化。马克斯·拉斯金表示赞同,认为贩售机体现了智能合约自动履行特点,虽然需要人类输入(投币)。而亚历山大·萨韦早耶夫认为,贩售机仅能使一方自动履行,至少须另一方人为介入,如投币或插卡。只有双方皆可自动履行时,一种新的合同形态才算产生。争论的实质在于究竟何谓智能合约。最流行、最简单的定义是,智能合约是可自动履行的协议。实际上,厘定智能合约离不开对区块链技术的了解与把握。
区块链实为分布式共享账本技术(Distributed Ledger Technology, DLT)、点对点价值传输技术。区块链根基于P2P网络,网络各节点的计算机拥有相同的网络权利,可共享软件、资源或信息,不存在中心服务器。数据存储于区块之中,不同区块连接形成链式结构,并盖有时间戳,可验证追溯。各节点均可参与数据区块的验证,从而获得经济激励。同时,利用非对称加密算法,以公匙、私匙对数据进行加密解密,并且凭借共识算法及强大算力,各节点均存储一致的全网交易账本,保证数据不可伪造篡改。可见,区块链具有去中心化、全网共享账本、去信任、安全性高等特点。最初区块链仅用于数字货币如比特币的转账、记账,现在广泛应用于社会各领域,产生各种去中心化应用(Decentralized Application, DAPP)、去中心化自治组织(Decentralized Autonomous Organization, DAO)等,已然进入以智能合约为代表的区块链2.0时代。基于区块链技术,智能合约理念落地,区块链智能合约诞生。实际上,比特币区块链上的比特币交易是智能合约最简单的形式:一个签名和货币转移。
区块链重塑了智能合约,两者呈现交融共生关系,智能合约既是技术,也是基于技术而存在之当事人关系或承诺。在技术意义上,智能合约系区块链架构中的合约层,自身附着区块链的诸多特点。“智能合约是一段代码,存储于区块链,由区块链交易触发,并读取、写入区块链数据库中的数据。”区块链智能合约层包括虚拟机、脚本代码等,通过灵活的开发语言、程序编码,可实现区块链应用场景的多样化。当事人的许多约定可代码化,资产可编程控制、智能化,并以智能合约的方式部署于区块链上。当约定状态发生,智能合约将自动履行或执行,主要表现为智能资产权利转移、物理控制,而无需中心化的执行机构或司法机关。智能合约作为“由事件驱动、具有状态、运行在可复制的共享区块链数据账本上的计算机程序,能够实现主动或被动的处理数据,接受、储存和发送价值,以及控制和管理各类链上智能资产等功能”。应用场景不限于商业交易,还包括监管执法、司法活动等国家活动,它把主体间的权利义务或权力责任关系以合约代码形式布置于区块链,利用区块链特质,实现特定目的。智能合约与其负载之当事人关系并非完整映射,当事人关系可由一个区块链智能合约体现,或需多个智能合约,甚至须与传统合同共同构造一个完整关系。在实践中,当事人常以DAPP为交易媒介,DAPP包含用户界面、各种加密货币等数字资产及多个智能合约,用户使用时需要同意并遵守相关应用规则。有时,以专门区块链智能合约记载当事人关系,当事人意思被编码写入智能合约。这些数据在全网广播,经各节点验证,记载于特定区块中。智能合约内置自动状态机,根据预设状态对智能合约状况作出判断。一旦达到相应状态,符合规定条件,发生有关事件,或处于特定情境之中,智能合约将被触发,自动履行或执行智能财产。而状态实乃当事人关系的具体化,是权利(权力)义务责任的代码形式。
(二)区块链智能合约的基本架构
区块链智能合约是合同发展的新阶段。就外部载体而言,合同可分为纸质合同、电子合同或数字合同等。纸质合同系前信息化时代之典范,电子合同则是信息技术的产物。两者除了形式不同,无实质差异。但随着信息技术、计算机技术发展,电子合同已被超越,产生了“数据导向合同”与“可计算合同”。在数据导向合同中,“当事人以预设的可由计算机系统处理的方式表达其协议条款或条件”。首要读者是机器而非人类。可计算合同使得计算机系统赋予数据导向合同一种能力,能够实施自动、初步的合约遵守或履行情况评估。呈现机器自治趋势,机器在合同谈判、缔结、履行、强制执行中逐步替代人。区块链智能合约系更高阶版本,只要达到既定状态或发生预设事件,即可自动履行及执行,无需人工介入,而上述合同类型尚有人类解释干涉余地,尤其是财产权利转移、价值传输依赖一方当事人。
虽多有不同,但区块链智能合约仍建基于其他合同:如纸质合同、电子合同,可为当事人阅读理解;如数据导向合同、可计算合同,可为计算机系统读取执行。故其架构兼顾人类与机器,在合约基本面构造双层结构,一是适合人类之合约文本层,二是适合机器之合约代码层。合约文本以人类自然语言呈现,可分为简明文本和完全文本,前者仅记载合约主要条款或规则,若需全面了解合约内容,可载入完全文本。合约代码以计算机语言编写而成,它不同于计算机程序,而是“计算机程序间的通信模式,常被描述为允许各方当事人精确且高效交换信息的方法、数据结构和算法”。合约代码是区块链智能合约的数据基础,记录合约条款或规则,并能够被计算机系统读取执行,区块链智能合约通过代码得以表达并存储于区块数据结构中。就合约文本与合约代码而言,两者存在对应、互补和独立关系。所谓对应,即合约文本反映说明合约代码及意义;互补则是合约文本不直接描述代码意义,注重向用户补充解释代码运行规则或说明代码不备事项;独立主要指不存在任何文本,仅以合约代码表达行为规则、当事人关系。许多合同条款能以可与机器交互之程序语言书写,但自然语言转为机器可读的代码,限制了能够轻易精确界定的主体和活动的范围,依然有众多条款或合同内容无法以机器语言描述。有人提出将法律条款嵌入合约文本,实现智能合约与法律合约配对。“法律条款包含计算机代码的密码哈希字符串,确保法律代码与相关智能合约的一一对应关系。同样的,智能合约文本也包括法律合约的密码哈希字符串。因此,两者必然存在联系。若智能合约出现问题,可以通过法律合约解决该问题。”
此外,当事人利用第三方智能合约平台订立区块链智能合约,需遵循平台技术模式、业务逻辑、基本规则;亦有搭建自有智能合约平台或DAPP的,但交易相对方、平台内各成员或用户,仍受既有规则约束。确定上述当事人法律关系,必须参考区块链智能合约的基础规则,全面掌握影响当事人关系的行为程式,进而厘清其权利(权力)义务。可以说,区块链智能合约底层规则在广义上乃合约有机组成部分,可视为区块链智能合约的基础架构。区块链智能合约能够包含多少当事人承诺,受限于区块链底层技术应用支持功能。再者,区块链智能合约“通过数字方式控制现实世界中有价值的财产”。这些智能财产在更广泛意义上系区块链智能合约一部分,可能是价值流通手段、关系标的物或客体、执行监督对象等。如区块链智能租赁合约,作为租金的数字货币,承租的密码门锁房屋,系合约必要部分。如以智能合约监督企业排污,超标即自动关停设备,或予以行政处罚,自动从账户扣款。其中,设备系法律关系之事实基础部分。
总之,区块链智能合约架构与其范畴相关。若在狭义上把区块链智能合约界定为在区块链上以数字化形式存在、能够自动履行执行的当事人约定或承诺,则区块链智能合约架构限于本体,仅包括合约文本层与合约代码层。广义上,实现约定或承诺的技术路线、DAPP使用规则、平台运行规则等,影响智能合约当事人关系认定,系其基础架构。智能合约控制的智能财产,为更广义的区块链智能合约架构所包含。
(三)区块链智能合约技术与法律双重性
区块链智能合约既是技术,亦反映当事人权益的变动与调整,属于法律规制对象,具有技术与法律双重意义。严格来说,智能合约并非区块链的一种具体应用,也非具体技术,而是一种在区块链底层技术的基础上建构的应用支持功能。作为区块链的构成部分,智能合约不仅是嵌于区块之中的代码程序,而且“本身就是一个系统参与者,对接收到的信息进行回应,可以接收和储存价值,也可以向外发出信息和价值”。易言之,智能合约拥有信息接收及反馈机制,是价值存储与传输者。在此意义上,智能合约是一套技术装置,亦被称为“智能合约代码”,笔者称之为“区块链智能合约技术”,其使用范围广,场景多样,能够“应用于几乎任何随时间经过改变其状态的事务,并能使价值附加于自身”。
而不同区块链导致智能合约构造及特性差异显著。按设计体系及应用场景,区块链可分为公链(公有链)、联盟链和私链(专有链)。公链系开放式区块链,属完全分布式,全网各节点皆可自由参与网络,参加区块数据存储、读取、验证等共识过程,构成分布式数据库,不存在任何中心化服务器或端点,完全去中心化。“联盟链的节点是事先选择好的,节点间通常有良好的网络连接等合作关系,区块链上的数据可以是公开的也可以是内部的,为部分意义上的分布式。”链上有一个中心,决定共识机制、选择用户等,数据篡改风险相对较高。“可被有限参与者使用,旨在满足特定行业的需求。”私链节点有限,数据读取权限严格限制,参与共识验证的权限归内部控制。“完全私有的区块链中写入权限仅在参与者受理,读取权限可以对外开放,也可以进行任意程度的限制”,“数据没有无法篡改的特性”,中心化色彩突出,“较传统中心化体系仅多了些许加密审计而已”。由于联盟链、私链均受直接控制,也称为“许可区块链”。许可区块链主体有限,须经授权才能成为节点,被选定的参加者作为验证者,透明度差,甚至可以不公开。而公链上每个主体作为节点可自由进出,主体范围不确定,匿名性强;共识由每个节点验证完成;区块数据透明度高。
基于三种区块链,智能合约的适用场景、功能特点、合约风险、规制方式等颇为不同。私链内部控制带来较高的隐私保护;节点有限且受控,交易费用更低。私链智能合约可作为管理工具,往往适合单一主体内部数据审计和管理。联盟链智能合约限于有限主体及用户,交易回滚、数据篡改风险大。通常所谓具有去中心化、自动执行、不可撤销等特点之区块链智能合约,多指公链智能合约,它充分体现了有别于其他合同的特性。上述各类区块链智能合约模式包括主体、智能财产或账户、履行执行措施,以及反映承诺内容之预设状态等。据此,能够总结概括合约当事人关系,将其简化为具有法律意义的当事人之间的一个或多个承诺,即“区块链智能法律合约”。区块链智能法律合约关注当事人的承诺如何以数字化形式表达,布置于区块链并由代码程序予以自动实施,是基于区块链智能合约技术生成并得以自动履行或执行、具有法律意义的当事人承诺。
此外,区块链智能合约技术与区块链智能法律合约呈现共生关系。区块链智能合约技术采用的代码程序仅系技术构造,并非法律合同,是以计算机语言为机器编制。而区块链智能法律合约有别于但同时嵌入代码程序。实际上,区块链智能合约代码是区块链智能法律合约构成要素、逻辑结构的反映,即使缺少直接的区块链智能法律合约文本,亦可通过区块链智能合约技术底层规则或协议、智能合约运行方式、过程及结果等,确认区块链智能法律合约。所以,区块链智能合约技术与区块链智能法律合约系同一对象范畴内一体两面之事物,相互形塑嵌入,“智能合约代码成为法律合同不可或缺的一部分,代码与书面合同有关部分构成不可分割的整体”。
二、区块链智能合约合同属性厘定
区块链智能合约当事人法律关系的意义颇为多样,根据属性及内容可细分为不同类型,合同仅系其中之一,但在整个意义体系中占据主要地位。而合同属性判断须基于现行法上的合同标准。
(一)区块链智能合约作为合同的体系定位
区块链智能法律合约使用范围广泛,当下除了金融系统、商业交易等私域,开始运用于电子政务、公共管理、社会治理等公域,而其具体法律关系属性须依私法、公法标准认定。“公”“私”有变,私法、公法区分标准学说众多,本文主张新主体说。“国家或机关以公权力主体地位作为法律关系的主体者,该适用的法律为公法;该法律对任何人皆可适用者,则为私法。”我国《民法总则》第96条把机关法人定性为特别法人;第97条明确机关法人的私法能力为从事履行职能必需之民事活动。国家或机关作为民事主体,从事民事活动生成的法律关系,属于私法关系;若作为为公权力主体,且法律关系系权力行使的结果,则为公法关系。就此可知,区块链智能法律合约可能是合同等私法关系,也许是行政监管执法等公法关系。区块链智能合约并非皆与民事合同履行执行相关,不能简单地把它等同于民事合同。由此,笔者遵循把“smart contract”译为“智能合约”的成例,以示其作为技术与法律合同之分。
综上所述,根据法律关系不同属性,区块链智能法律合约分为公法类与私法类。后者具体法律关系内容亦有差异,可分为合同型、实体型。区块链智能合约大量应用于市场交易行为。在具体交易场景,各方达成协议,实施交易,在法律层面表现为以意思表示为核心之各类法律行为,最重要者乃法律合同。现实交易反映到虚拟空间,在区块链上即合同型智能合约,符合法定合同要件,即为法律合同。应当说,合同及当事人意思表示能由代码表征,区块链智能合约代码可作为法律合同的载体或外在形式,从中抽取概括出当事人的合同权利义务关系。但有一些区块链智能合约也表现为当事人之间的协议或承诺,却非法律合同,而是蕴含当事人经营特定事业之目的,设有权益份额、表决方式、责任承担、治理机制等,与法律实体或组织拥有相似的机制机理、逻辑结构,饱含浓厚的组织性。此时,区块链智能合约被视为一种新型经济实体的基础,该实体即去中心化自治组织(DAO)。
区块链智能合约乃去中心化自治组织基础,“本质上,DAO是精巧的智能合约或智能合约体系”。在实证法层面,去中心化自治组织当然未经登记注册,未取得国家认可之法律主体资格。但在组织层面,其成员基于智能合约,围绕特定目的事业形成有效的组织运行机制,使无信任环境下跨地域共营同一事业得以实现。其具体组织形态到底如何,需要综合考量成员与组织的权利关系、成员责任性质、治理结构等。如果成员共同出资,共享收益,共担风险,且为无限责任,那么该组织应属合伙企业。也有观点认为,若公司是一连串合同,可以把它们编码写入数字化自动执行协议,去中心化组织可以拥有现代公司的诸多特性。而能否构成公司法人,尚待深入系统论证。
(二)合同型区块链智能合约证立
区块链智能合约是否系法律合同须依法判定。我国《合同法》第2条规定,合同是平等主体之间设立、变更、终止民事权利义务关系的协议。作为法律行为,合同以意思表示为核心,故合同型区块链智能合约认定基准在于平等当事人之间是否存在一致之意思表示。但在主体匿名性、代码可能存在错误或漏洞、难以解释及当事人理解偏差等条件约束下,当事人意思表示一致判断与传统合同颇为不同,争议较大,以致有主张否定其合同属性。本文认为,区块链智能合约可纳入合同法框架,但应以知识工程理论统摄法学和技术学视角,革新理论认识及判断标准。
1.意思表示一致概括认定
合同当事人意思表示一致,实为以要约承诺方式,同意特定条款、行为规则,或协商一致后同意具体协议。区块链智能合约当事人法律关系的外在形式表现为两种:第一,当事人之间基于口头、书面或数据电文等形式之传统合同,与区块链智能合约并列;第二,没有传统合同,仅存合同型区块链智能合约。在并列情形中,两者内容一致或相辅相成,不矛盾,即可据其判定当事人法律关系,传统合同足以表明当事人合意。两者内容不一致,相互冲突,首先须考察何者在先成立;其次,明晰在后者产生的目的用途,若为确认反映在先者,则以在先者为准;若系修改替代在先者,则以在后者为准。此间,仍需确定合同型区块链智能合约的具体内容。在单一区块链智能合约情形中,最大的问题在于,区块链智能合约的文本层与代码层并非完整映射,缺少以自然语言生成的合约文本,仅有代码形式存在的待厘定之合同型智能合约。当事人大多是外行,无法理解合约代码或计算机语言,即使诸如DAPP使用规则、智能合约平台规则,因其内容冗长,专业性强,不可协商,人们无暇、更无力仔细阅读,甚至忽略不看,径直点击同意。由此,当事人意思的真实性、有效性常常发生争议。
在数字化时代,新型合同早已产生,对认识区块链智能合约颇具启发意义。点击“我同意”意味着合同成立,此乃“点击合同”。若系“拆封合同”,即使用户未能安装程序或继续前往网址而没有接受有关条款和条件,但条款符合法律对合同的一般要求,通常合同成立。甚至,不要求了解全部条款,要约人能够限制为了承诺所必需的行为。有时,点击也不必要,意识到条款存在足以订立一个可强制执行的“浏览合同”。因此,区块链智能合约意思表示一致的认定,应与前信息时代的传统合同理论有所区隔,根植于信息条件下人们的交易方式、行为规则及特点,确认当事人具有共同概括认知,即可推定意思表示一致。在单一区块链智能合约中,一方当事人可能是DAPP所有人或智能合约平台,或者双方当事人利用第三方DAPP或智能合约平台达成交易。在前者,当事人点击“同意”按钮,安装应用软件,或浏览网页,皆可表明其遵守DAPP或平台规则及与之达成交易的意愿,应认为两者间合同型区块链智能合约成立。在后者,当事人基于DAPP或平台发生交易时,交易对象在公链中是不特定的匿名主体,在联盟链中是特定范围内匿名或显名的人。即使匿名,基于当事人利用区块链智能合约,也足以认定其注重交易本身而非交易对象。这符合区块链去中心化、去信任的特征。故可推定当事人具有与链上任一节点主体达成交易的概括意思,至少不逾越其可预见之交易对象范畴,相对人匿名不影响当事人意思表示的认定。
但是,当事人通常并非智能合约的代码编写者,不一定了解智能合约功能机理,如何确定当事人意思,颇费思量。应当说,通过输入数据、关联智能财产或账户,提交私匙,把财产资源控制权给予智能合约,使智能合约得以持续运行,足以表明当事人受约束的意思。在智能合约“if- then”句式下,一旦达到设定的状态,特定财产、价值将自动在主体间转移,权利义务发生转换,应认为当事人之间存在协议或承诺,系权利取得、义务负担的基础。从要约看,智能合约代码布置于区块链分布式账本中,当事人发起交易,表露达成协议并受约束的意思,即为要约。在实践中,“以太坊”或其他平台上的智能合约并无相对人,是单务的,仅一方把它们布置在区块链上。多数学者认为智能合约符合要约标准。针对智能合约代码,相应的履行及操作行为会产生承诺。“在智能合约领域,承诺源自履行。一个人说他们将成立一个智能合约,该合约在常规法律中可能是合同,但直到程序启动,智能合约尚不存在。一旦采取行动开始承诺,如把一定数量的货币交由代码控制,合同订立。”即要约承诺完成。
可见,区块链智能合约作为一种关系处理机制,蕴藏着当事人确立特定关系意思,最终经履行产生权利义务变动,展现出一致的意思表示或要约承诺。区块链智能合约采取数字化形式,意思合致认定可借鉴电子合同基本理论。“要约承诺的整个过程和同意的存在仅仅发生在虚拟世界,即区块链。”不能脱离区块链探求智能合约。
2.意思一致由解释发现
区块链智能合约当事人意思一致常须由解释发现。这首先有赖于确定意思表示存在形式或范围。区块链智能合约形式多样,可以是单一智能合约代码;或者智能合约代码并匹配以自然语言文本;甚或自然语言合同,但部分内容如履行或付款机制编码进入区块链智能合约。当然,随着智能合约应用程序数量增加,可能出现其他序列组合。区块链智能合约应用实践大多是利用智能合约平台或DAPP,它们往往采用统一集成的智能合约模板供用户使用。“模板旨在支持对智能法律合约全部生命周期的管理。这包括由标准化组织创设的法律文件模板,以及后续那些模板在合约谈判及缔结过程中被相对人使用。即使发生纠纷,它们也有利于合约的自动执行,提供与相关法律记录文档的直接联系。”由此,智能合约模板成为用户订立区块链智能合约的基础,通常只能选择,不支持修改。而为了兼顾用户需求,增加通用性,有些区块链智能合约平台如以太坊,提供各种模块,用户可搭建智能合约应用。除了基于智能合约平台的DAPP,还有一些是交易一方主体自己或委托他人基于特定智能合约语言开发,用于自己与客户交易活动。无论平台提供,还是一方当事人开发,DAPP利用方式与一般APP无实质差异。在技术层面,“智能合约通常是去中心化(区块链)应用程序的一部分。一个特定应用程序可能包含几个智能合约”。若干区块链智能合约技术,发挥协同作用,产生当事人预期之关系结果,区块链智能法律合约订立。
区块链智能合约文本层以自然语言呈现,可为当事人了解,内容可能是对代码层蕴含之合约条款的反馈或概括,或者介绍智能合约运作机理等。前者系合同型区块链智能合约的有机部分,后者是对智能合约底层技术的描述,仅系确定法律关系的因素之一。文本层对于确定合约内容的意义,须视情况而定。代码层为机器读取执行,反映当事人意思与合约条款或条件,虽然人类无法直接读取理解,但依据智能合约技术方法、业务逻辑及运行后果,仍可推知当事人的协议、承诺及主要内容。而代码层可能反映了当事人全部合同关系,亦可能仅代表其中一部分,如履行条款、违约金条款等。基础层中,智能合约平台或DAPP的业务模式、交易规则、救济方式等,若是用户与智能合约平台或DAPP所有人之间的交易,则对双方法律关系具有重大影响;若系当事人利用智能行业平台或DAPP进行交易,则可作为确定当事人法律关系的重要参考因素。智能财产规则对合同型区块链智能合约内容厘定有一定意义。总体上,区块链智能合约法律关系确定,代码层与文本层发挥核心作用,基础层其次,智能财产相对最弱。
由于需要考量区块链智能合约文本、代码、底层规则或传统合同等诸多事物,意思表示确定必然面临解释问题。自然语言存在模糊性或弹性。“可能意义在一定的波段宽度之间摇摆不定,端视该当的情况、指涉的事物、言说的脉络,在句中的位置以及用语的强调,而可能有不同的意涵。”而计算机语言或人工语言是完备且预先界定好的,相较自然语言较少机会发生歧义。对同一程序代码,相互兼容的计算机不会产生内涵或意义的差异化认读,运行结果一致,但存在程序代码正确性疑问,即是否符合编程者预期。故区块链智能合约当事人意思表示一致判定依据中,以自然语言呈现之文档可根据常规解释方法探究意思,我国《民法总则》第142条明定意思表示解释需要参考以客观因素为主的各种要素。而计算机语言构造之代码程序及其运行机理、过程及结果,尚存意思认定偏颇可能,当慎重。另外,当事人以智能合约编码承诺或协议并以区块链智能合约取代之,此前的承诺或协议可作为重要参考。
为此,区块链智能合约当事人意思一致解释,应注意:其一,当基于理性人、普通人之主体标准,从一般社会观念出发,阐释各类依据的内涵意义。其二,注重区块链智能合约业务模式,参考行业普遍做法及最近似的智能合约应用场景。其三,当事人首次以智能合约开展交易,此前就该类交易生成交易习惯,可参考;存在利用同一智能合约完成相同性质交易的前例,亦可参照。其四,探析当事人区块链智能合约交易目的。此非纯粹发现当事人内心真意,而是衡诸当事人主体地位、职业身份、利益及负担归属、事物性质、社会通识等,确定该交易应有目的。其五,传统合同与之并列时,遵循法律解释传统方法,廓清传统合同基本涵义。同时借鉴电子合同法律理论,构造区块链智能合约意思一致认定方法。在网络虚拟社会,需要协同治理,厘定智能合约。
三、区块链智能合约的合同法展开
合同型区块链智能合约蕴含当事人一致的意思表示,乃要约承诺结果,应纳入合同法框架,但较传统合同具有显著特性如匿名性、不可篡改、自动执行,必须深入检视其合同法适用性及变通处,重点分析其效力、修改与履行、违约及救济等。
(一)效力
合同效力瑕疵法定事由众多。对于区块链智能合约而言,许多事由下效力不难判断。结合区块链智能合约特性与成立情形,笔者主要围绕合约主体行为能力、第三人欺诈与胁迫、单方错误、区块链智能合约机制不完备展开论述。
其一,合约主体行为能力。在许可区块链上,当事人身份事先得到确认,主体行为能力易于判断。而在公链上,用户身份信息以公匙地址表征,实现了匿名化,在数据透明的同时未与特定主体绑定,链上节点无从知晓交易主体,能够保护用户隐私。但是,匿名化导致区块链智能合约主体能力判断难题。法律不限制未成年人拥有私人代码钥匙或比特币。基于与相关联之公匙的数学关系,隐秘的私匙被假定代表个人。虽然这使得代码钥匙可以构成数字身份体系的基础,但私匙不能揭示主体到底是谁,行为能力如何,缔约时是否存在合同效力瑕疵事由等。由于缔约之时无从知晓相对人能力,只能事后根据当事人能力判断合同效力。但因当事人经由区块链智能合约机制或机器完成缔约和履行,合约代码或机器代表当事人,呈现一种客观化趋势,所以效力判断应以此客观情势为基础,平衡交易安全与效率,尽量维持合同有效。随着技术发展,智能身份应用在注册时或在即时交易的基础上,将确保对人、组织和机器人进行自动身份识别与认证。这将有效缓解主体确认及能力识别难题。
其二,第三人欺诈与胁迫。根据《民法总则》第149条规定,第三方欺诈订立合同型区块链智能合约,必须相对人知道或应当知道该欺诈行为,方可撤销合同。在非匿名情形,当事人可查看对方信息,确认身份,尚存知道或应当知道欺诈行为的余地。知道,即明确知晓特定事实,是一种积极知道,无需告知而知,依据一般情势足以认定知道亦可;应当知道,是法律推定的知道,是一种消极知道,不论是否实际知道,具备知道的条件与可能即可。由于涉及主观状态判断,易生争议,应就具体情形,综合考量所属领域、行为目的、行为过程及状态、普遍行为模式、主体认知能力、社会一般观念等。若系匿名状态,当事人无从知晓对方及其能力、行为时主体状态等,当无“知道或者应当知道该欺诈行为”之可能,故合约不可撤销,法律效力不受影响。相对于欺诈区分一方当事人欺诈与第三人欺诈并设置不同的撤销法律要件,根据《民法总则》第150条规定,合同型区块链智能合约,不管主体匿名与否、当事人是否知晓,凡受胁迫订立,均可撤销。
其三,单方错误。错误即误认,主观认识与客观事实不符,具体包括动机错误、内容错误、表示行为错误、性质错误等类型。动机错误分为单方动机错误和双方动机错误。前者系一方内心意思,外人无从知晓,为交易安全计,不得以此为由撤销,即使对方知晓其动机错误;后者产生的风险或不利益应由双方共担,可变更或解除法律行为。内容错误是表示方法正确而误认表示行为的意义;表示行为错误是表示方法非表意人所意欲。两者均属表示和意思不一致,通常允许撤销。性质错误包括当事人资格错误和物的性质错误,具有交易上的重要性,方能撤销。根据《民法总则》第147条规定,重大误解可撤销法律行为。误解指对他人意思表示的错误理解,基于误解而为承诺,双方意思表示不一致,法律行为无从成立,无所谓撤销、无效。但衡诸我国立法目的,“所谓误解,应解释为不仅包括表意人无过失的意思与表示不符(错误),也包括相对人对意思表示内容了解之错误(误解)”。至于何谓“重大”,应以客观标准为主,主观标准为辅,根据社会一般观念、行为具体类型等,如果错误足以阻碍当事人合意、实施法律行为,可判定“重大”。就区块链智能合约而言,一方当事人动机错误,该方承担风险,不影响合同效力;双方当事人动机错误,可由双方协商变更,亦可解除合同;表示行为错误、内容错误或性质错误,必须错误达到“重大”程度,方可撤销合同,但错误一方当事人对相对方信赖利益损失应承担赔偿责任。
其四,区块链智能合约机制不完备。没有无瑕疵软件,错误或漏洞常在,消极影响软件运行或使其易受黑客攻击。此就嵌于比特币体系之软件尤其真切。区块链智能合约程序不备,可能是本体编码错误,脱离预期;或外部攻击,代码遭修改;输入外部数据资源错误等。缺漏虽不常发生,但公链之上遍布全网,影响巨大。首先,区块链智能合约编码错误,若代码开发者或应用提供者是一方当事人,错误必须达到“重大”程度,才能赋予当事人撤销权。对交易不甚重要之代码问题,不足以影响交易,不宜撤销合同。错误代码源于第三方,当事人均系错误代码的风险承担者。若错误重大,背离当事人真实意愿,难谓意思表示一致,可认定合同无效。但是否有悖于当事人意愿之判断较难,可赋予双方当事人撤销权,自主选定合同型区块链智能合约效力。合同无效或被撤销,当事人可向第三方主张损失。其次,外部攻击导致区块链智能合约代码篡改。若智能合约布置于区块链但未履行,可允许当事人解除。若已基于篡改之智能合约代码自动履行,代码属一方者,双方均有撤销权,撤销后相对方损失可基于该代码所有一方当事人对外部攻击的过错而定。代码属第三方者,双方当事人均有撤销权,对于撤销后当事人损失,需要考虑受攻击智能合约与行业平均技术水平关系、攻击水平、代码漏洞检出及修复可能性等,本于平衡区块链智能合约安全与发展之目的,确定第三方适当赔偿责任。最后,外部数据资源错误。在智能合约语言中,理解外部数据并判定合约履行的体系被称为预言机。预言机能够把外部数据导入智能合约,但依赖特定主体供给数据,非完全去中心化,用户只能相信预言机导入数据的正确性。外部数据输入有误,非当事人输入,亦非一方当事人的区块链智能合约导致,与双方当事人无关,则如上述,均可撤销。若系一方当事人输入有误,或其提供区块链智能合约读取有误,则该方当事人可撤销;双方均有误,则适用双方动机错误,可变更或解除,最终按过错程度各自承担法律责任。
(二)修改与履行
“智能合约试图使合约进程微粒化。它们正式剥去当事人交互的时间维度和未来司法裁决的不确定性。然而在现实世界,它们约束那些存在真实关系的活生生的人,履行随时间逐渐展开。这使得避免传统合同蕴含的某些混乱几无可能。”智能合约具有确定性甚至某种僵化性,它把嵌于特定时空的主体间关系锁死,虽消除了部分不确定性,却未能适应变迁之主体关系。毕竟,即使智能合约的开发者、编程者也未必能够彻底明了区块链智能合约全貌。“决定合同条款的算法的运用产生了算法开发者没有预见到、确实不可能预见到的结果。这导致为算法负责的主体不知道算法如何工作,未能预测其行为。”对此,应为区块链智能合约的修改变更留下空间,但是否会伤及区块链智能合约特性,应予考虑。有些学者认为这些概念对于智能法律合同成为问题。亦有学者主张,在一定条件下,修改、终止等能够添加到智能合约代码而合约不失智能特征。理论上,合同法上的概念可编码进入智能合约代码。智能法律合约智能且符合立法,但需要许多努力和测试避免代码错误。
修改对传统合同较为容易,但对智能合约确有困难,需要在智能合约代码中嵌入修改机制,这在技术上必然增加合约进程的复杂性。而如何实现修改,在什么状态或事实下可修改,何时由哪一方提出修改,匿名情形下当事人修改共识如何达成,难以解决。如果区块链智能合约与传统合同一样易修改,丧失去中心化、不可篡改、自动履行特性,则无存在必要。故须明确怎么修改,修改什么的问题。区块链智能合约与传统合同并列,无论两者先后,区块链智能合约本身不变,可通过对传统合同的修改或签署补充协议更改原有约定。而在严格意义上,此非区块链智能合约修改,只是传统合同修改。在匿名状态下,当事人签署补充协议几无可能;若修改主要取决于一方当事人,因影响相对人利益至巨,显然不适宜。为衡平各方当事人利益,衡诸事务性质、行为模式、修改后果等,必须区分可修改条款及不可修改条款。但若修改使得相对人纯获利益,应允许修改。如区块链租赁智能合约,出租人调低租金,承租人义务不变,应当允许。有疑问的是,修改后相对人所获增益大于同期增加之不利益或负担,取得净收益,可否允许修改?显然,纯粹经济分析难以为断,必须综合判定。而多重因素考量难以编码进入智能合约,从事前角度,可能沦为一方当事人的主观臆断,不能代替相对人作出利益判断。何况,传统合同修改须当事人磋商,并非易事。故笔者认为,秉持区块链智能合约特性,不宜令当事人修改匿名化智能合约,除非使相对方纯获利益。
自动履行执行是区块链智能合约的重要特点,有利于减少人类语言模糊性、解释歧义性困扰,一定程度上消除司法机关作为纠纷解决中心的作用。实际上,区块链和法律之间存在复杂关系,“区块链补充法律、区块链与法律互补以及区块链替代法律”。区块链智能合约自动履行需要满足预设的状态条件,触发自动履行机制。状态条件以“if- then”句式编码,一个智能合约包含多少此类句式,取决于交易场景及复杂度。智能合约业务逻辑简单示例,如承租人按时足额缴纳房租(数字货币),出租人则发送门锁密码给承租人,在一定期限内使用房屋,否则房门自动锁死。复杂交易需要更多代码表示条件—结果,连缀为完整的智能合约代码逻辑体系。一般而言,区块链智能合约履行是自动、全面按照合约机制实施,但复杂交易牵涉较多状态数据,存在多样化潜在后果,可能是实质履行,满足合同必要条款而非全部条款的要求;或是部分履行,而未履行部分,要么继续履行,要么承担违约责任,由智能合约自动执行,支付违约金。履行分级当然需要复杂的代码设计,而复杂的代码意味着错误发生率更高。即使融合人工智能,也颇为不易。构造一个与人类理解水平相当的能够解释智能合约的计算机化系统对人工智能确实是一大挑战。
区块链智能合约自动履行机制一定程度上消解了合同自由原则。但此与智能合约不可篡改、去中心化的功能特质密切相关,毕竟当下区块链智能合约主要确保自动履行,以锚定之履行执行机制保障合同不可随意解释篡改,即使违约,可当即执行。此类固定程式提升了合同效率,减少人为干预,但同时被指责机器取代了人。必须注意,恰恰是当事人在自由意志下选择了智能合约,虽然算法会产生各种问题,但没有迹象表明当事人在智能合约下受到算法、代码或平台逼迫。当然,由于算法、代码或合约本身可能存在错误,当事人对智能合约误认,区块链智能合约自动履行导致事前救济几无空间,合同法上的抗辩权难以适用,引发当事人不安。其实,按约定履行合同乃常态,合同修改、违约等情形相对较少,区块链智能合约整体上助益于交易活动,应该肯定。
(三)违约及救济
区块链智能合约系一种去中心化、去信任的合约机制,它以代码、算法取代人类进行决策或意思表达,试图以技术消除人类在订约及履约中的低效及纷争。而区块链智能合约无力把合同缔结、变更、履行、解除、撤销、终止等一系列活动完全编码置入合约机制;出自人类之手的智能合约难免疏漏,机器易生错误和偏见,同样需要法律规制。法律能够驯服和利用区块链,区块链智能合约应纳入法律调整范畴,要么适用合同法现行规定,要么创制智能合约法律规范。即使具有自动履行等诸多益处,区块链智能合约难免出现违约及纠纷,目前有两类解决方式,一是当事人自主执行,二是公力救济。当事人自主执行,实乃智能合约违约处理机制。这些具有自动执行特性的举措,缔约时已编码,系当事人智能合约一部分。但自动执行行为存在合法性疑虑。若归入自助行为范畴,须符合请求权受到威胁、威胁具有现实性与急迫性、请求权实现出现重大障碍等条件,否则自助行为不合法。仅作为违约救济方法,亦须区分自动执行方式,以便进行合法性分析。当违约责任乃支付违约金,区块链智能合约自动把违约方资金划转至守约方,划转行为乃协议一部分,具有合法基础,但违约金数额按现行《合同法》及其司法解释二,不得超过造成损失的百分之三十。
合法性争议更大的是,通过物联网等技术对智能财产进行物理控制,如未如期足额偿还车贷,远程自动锁死汽车发动机。就该情形而言,存在以下问题:汽车处于行使状态,易生交通事故;贷款偿还大部分,锁死是否超过合理限度;锁死前是否须警示用户,警示几次,是否须确认用户收悉警示,何种程序合法。在美国,许多州承认引擎关闭装置的合法性但予以严格限制,立法者首先关注债务人认识到该装置已安装,以及有权弥补违约。但阿肯色州的一个破产法庭裁决该装置违法,解释说债权人本来能够采取措施令债务人每个月获得正确代码以使用车辆,从而获得救济,没有必要关闭发动机。一般而言,当事人同意物理控制措施,使其具备形式合法性,但仍须从措施是否符合比例原则、是否侵犯违约方合法权利、是否损害公共利益或法律价值、是否有损害更小的可替代方法等方面,进行实质合法性判断。但对守约人执行措施的限制应有限度,违约方权益未受盘剥、尊严未受贬损、未违反公序良俗,应尽量承认措施的合法性。如在分期购买的家具中置入蜂鸣器,违约则在特定时段响起,包括夜晚休息时间。虽然有碍休息安宁,但单次持续时间短,间隔时间较长,应予认可。
合同型区块链智能合约是否违法无效、应否被撤销,就基于自动执行变动之财产返还,当事人难有共识,最终须寻求公力救济。公力救济涉及实体与程序两个方面。实体方面主要涉及代码理解与解释问题。程序牵涉面广,包括但不限于诉讼当事人、管辖法院确定等。笔者主要关注与实体密切关联的区块链智能合约代码可采纳问题。对裁判者而言,困难在于如何理解代码的法律意义,尤其仅单一区块链智能合约而无传统合同辅助理解时,代码不被外行的裁判者了解,又如何厘定代码对应的行为内容和法律意义呢?故此,智能合约代码争议需要专家证言或鉴定意见书;证明标准是能够真实客观地表明智能合约代码蕴含的技术程式及其形构的当事人行为方式与关系模式。代码解读并非易事,复杂DAPP或智能合约代码数量惊人,需要巨大人力物力。为减少举证成本,立案阶段无须提供此类证据。庭审中,在概览各种证据及听取当事人陈述的基础上,总结案件焦点系代码问题,再委托专家或专业机构出具意见或鉴定书。最终,通过当事人举证,法院主导代码委托鉴定,结合其他文本、规则、合约运行过程与结果等,廓清当事人法律关系。
当事人违约,根据法定事由可免责;符合约定免责事由,亦可免责。对于合同型区块链智能合约,法定免责事由如不可抗力,有适用余地。争议较大的是免责条款(代码)效力问题。通识认为,免责条款不一定有效,必须符合法律规定。并且免责条款需要明示,提出免责条款的一方当事人应当提请对方注意,在对方提出要求时还应予以说明。对此,区块链智能合约面临免责代码明示及提请注意问题。传统合同与区块链智能合约并列,由传统合同说明并作出提示即可。单一区块链智能合约免责代码提示确有困难,目前须以自然语言呈现。从智能合约法律规制角度,应要求代码提供者就有关当事人权利义务的重大代码设计以自然语言作出一揽子说明,便于当事人抉择。此外,约定因第三方编码错误、外部攻击等第三方原因导致违约可免责,是否有效?《合同法》第121条规定,当事人一方因第三人的原因造成违约的,应当向对方承担违约责任。据此,一方当事人提供智能合约,不得以第三方编码错误、外部攻击等为由,免除自己责任。若双方当事人利用的第三方智能合约平台或DAPP,非因可归责于当事人的事由发生编码错误、外部攻击,导致违约,不属于当事人免责事由。
结语
区块链系智能合约实现的技术方式,按设计体系及应用场景可分为公链、联盟链与私链。所谓具有去中心化、去信任、不可篡改、自动履行执行等特性的智能合约,主要指公链智能合约。区块链智能合约结构复杂,包括供机器读取执行的代码层,为人类阅读理解的文本层,合约有效运行依赖的底层规则,甚至其控制的智能财产。于此架构,区块链智能合约呈现技术、法律两个方面。前者是区块链智能合约代码,它构造独特的共识机制,建立系统的行为进程及自动履行执行机制,产生特定行为导引效果。后者系前者承载或蕴含的当事人法律关系,是从法律视角对区块链智能合约代码及运行进程和结果的观察、解释与总结,合同乃主要法律形式。合同型区块链智能合约展现出当事人一致的意思表示或要约承诺,须基于智能合约结构,或综合与之并列的传统合同,经解释发现确定意思合致。其效力须依现行法判断。合约修改应严格限定,匿名化智能合约不宜修改,除非相对方纯获利益。合约自动履行是全面实际履行,但复杂合约交易会出现实质履行、部分履行等状况,编码实行履行分级或有可能。区块链智能合约当事人仍会产生纠纷,事先在合约中置入的自动执行措施的合法性存疑,最终仍须寻求公力救济。
欢迎扫码获取法宝介绍和试用
—更多内容—