本文发表于《科技与法律》2020年第6期。
作者简介:谭佐财,武汉大学法学院博士研究生,主要研究民商法和科技法。
摘要
自治性是智能合约区分于自动履行协议的关键因素,自治性不同于自动化。智能合约的法律属性不可一概而论,根据智能合约产生的不同法律效果可将其类型化为合同型智能合约、执行型智能合约、单向型智能合约。对智能合约的研究应秉持客观视角,智能合约存在并不“智能”、可执行违约责任能力有限等“缺陷”。智能合约与传统合同是统一而非对立的关系,且二者呈现互相借鉴融合的趋势,传统合同法与智能合约的结合可以实现交易价值最大化。在自然语言向代码转换过程中出现的错误或者瑕疵而产生的法律责任应当区分合约参与方之间的内部关系和合约参与方与合约提供方的外部关系。
关键词
智能合约;传统合同;法律属性;
内部关系;外部关系
引言
20世纪90年代中后期Nick Szabo通过系列文章提出智能合约(smart contracts)的概念,将智能合约定义为“一套以数字形式定义的承诺,包括合约参与方可以在上面履行这些承诺的协议”。在区块链技术出现之前,理论上的智能合约的双方都必须依靠另一方的计算机代码和网络基础架构。区块链的分布式分类记账特性允许将代码嵌入到一个无需重复的公共分布式分类账本中。每个智能合约用户都使用相同的代码集访问相同的智能合约。这意味着区块链可以有效地防篡改,并且可以使交易自行执行。每个区块均包含时间戳、唯一哈希值和该数据的交易数据。区块链可以确保链中的任何区块都不会被追溯更改,从而促进安全的在线交易,传统上由银行或处理器执行的安全支付处理以及帐户跟踪和维护功能在分布式和分散的区块链环境中均是自动化的。如图1所示。
图 1
区块链运行原理
区块链允许世界上任何地方的两个或多个参与方直接进行交易,同时相对确保交易是安全、真实且不可更改的。无论双方是否知道彼此的真实身份,都可以进行此交易,而无需任何第三方的协助或调解,并且这些交易方可以相对确定该交易是安全,真实和不可更改的。智能合约与区块链的完美结合使智能合约具备了落地应用的关键技术。当下,智能合约已经应用于金融业、知识产权、房地产等行业,并且这些行业将从智能合约技术的发展与监管体系的完善中持续受益。基于区块链技术的智能合约在政府公共治理、共享经济等方面亦有巨大潜力。
近年来,关于智能合约的研究颇具热度。诚然,一项可能引发社会生活诸多方面变革的技术的发展,无疑会撼动着法律人的神经。法学界主要集中于对智能合约的优势的关注和未来发展的希冀,其中不乏对智能合约未来发展会冲击传统法律体系的讨论,甚至有观点认为,智能合约将颠覆传统商业模式和传统合同法规则。但也有国外学者冷静地看待智能合约的发展,并发出“智能合约真的那么智能吗”的疑问。因为技术与法律的鸿沟,使得一些法学的研究与技术脱节,现有研究至少暴露出以下四个问题:其一,对智能合约的优势与潜力的讨论趋之若鹜,缺少对智能合约固有的局限性的探讨;其二,对智能合约的法律属性一概而论,未予类型化讨论;其三,缺乏与传统合同的细致比较而径行讨论合同法的适用问题;其四,未细化研究智能合约引发的内部法律关系与外部法律关系。本文拟细致分析智能合约的法律属性,并提出智能合约的缺陷以期助益于学界对智能合约的客观认识;并在此基础上对智能合约涉及的私法问题进行分析。
一
智能合约的法律属性:类型化的方法
(一)智能合约的自治性
智能合约最初就被定义为是一种承诺,也就是一方已经设定好了相关的条件和程序,其他参与主体只需要附和即可。这一定义长期以来被奉为智能合约的通识定义,但也受到一些学者的质疑,认为Nick Szabo的定义已经无法准确地描述智能合约的关键要素:自治性以及当事人对合同具体条款的共识。
理解智能合约需要首先明确基于分散式记账技术(通常称为区块链)的智能合约最重要的要素是自治性,但也有学者认为决定合同是否智能的关键因素是合同是否自动化(autonomated),笔者认为不宜将自动化等同于自治性(the element of autonomy),是否具备自治性是区分智能合约与其他自动履行合约的关键要素。当然,自治性无疑包含了自动化之特征,正因为如此,方才有学者提出智能合约的另一定义:允许合同当事方通过软件代码的方式将合同内容嵌入到区块链中,以保证合约的自动并且自主地自我执行。以自动售货机为例,消费者与自动售货机的缔约过程是自动化的,但却缺少自治性。自动售货机的所有者单方面执行该代码并且可以自由决定对其更改、制造障碍或者直接关闭自动售货机,造成交易中断。但是基于区块链的智能合约不仅可以保证履行的自动化,更为关键的是可以实现自治。因为存储在区块链数据库中的信息具有永续性,任何人均不得决定更改。因此,合同的自动化履行不会受到当事人的干扰。而且智能合约没有中央授权,也可实现排除外部第三人的干扰[3]。另一方面,在自动售货机缔约过程中,当事人并没有就算法的内容达成共识,消费者无法知晓代码,也无法同意该代码,当事人同意的是其中的隐含条款(支付购买物品的价款)。而且在某些特殊情况下,算法的行为由自动售货机的所有者单方面确定。简言之,作为智能合约最初简单模型的自动售货机合约(Vending machine contracting)仅具有自动化(自动履行)的功能而不具有自治性。著名的Thornton v. Shoe Lane Parking,Ltd.案件则展现了自动售货机不具有自治性的特征。
(二)智能合约的运行机理
智能合约的法律性质在理论上素有争议,主要有“合同说”、“特殊合同说”、“合同履行方式说”、“程序说”四种观点。“合同说”论者认为,智能合约即为合同一种,并将“smart contracts”翻译为“智能合同”,认为智能合同是已经广泛存在于银行业务、网络音乐、房地产业中的新合同类型;更有甚者,直接跳过智能合约是否属于合同这一前提性问题的讨论,径行分析智能合约的合同法相关问题。“特殊合同说”论者认为,因为智能合约包括公法智能合约和私法智能合约,不能简单地等同于民事合同。可以说,“特殊合同说”关注到了智能合约在公共治理领域(公法层面)的应用。“合同履行方式说”认为,不宜将智能合约认定为真正的合同,智能合约应为协议的一套履行机制或执行程序。“程序说”认为,智能合约完全按照代码的技术逻辑运行,其运行无需人为因素的介入和干扰,从而排除法律的介入。工业和信息化部信息中心在其发布的白皮书中也直接将智能合约定义为一种程序。上述观点均从不同维度观察到智能合约的部分特征,但都存在以偏概全的论述漏洞,由此构建起来的对智能合约的法律性质及法律适用论述便难谓准确与合理。
为厘清智能合约的法律属性,需要在技术层面明确智能合约的运行原理、机制及特征,并结合具体应用场景进行具体分析。智能合约作为一种工具,在本质上是在区块链上运行的计算机代码。在区块链以太坊中的智能合约,其撰写语言为“Solidity”“Serpent”等,目前“Solidity”为较多人使用的选项,同时也是以太坊官方推荐的程式语言,其架构类似于“JavaScript”。使用者在以太坊中部署合约,主要需要完成三个步骤:撰写智能合约(根据具体需求设计相对应的程序,以“Solidity”语言为例,通过程序编译器编译成二进制的代码);部署至区块链网络并验证(网络中的每个节点都会收到该合约,并依共识演算法进行写入区块链的动作,当验证完毕,合约将被记录在区块链上);触发合约执行(触发条件依照使用者的合约需求来设置)。如图2所示。
图 2
智能合约运行程序
(三)智能合约的类型
如前所述,智能合约是按照“构建—存储—执行”的模式建立并自动完成智能合约的所有事项。可以看出,该过程至少包括两个具有法律意义的环节:合约的构建与合约的执行。需注意的是,智能合约的应用场景并非完全同质,而是具有复杂多样性。因此,运用类型化的方法区分智能合约的应用场景和功能可较为妥当地回答智能合约的法律属性这一前提性问题,根据智能合约可能产生不同法律效果可将智能合约类型化为以下三种:(1)合同型智能合约;(2)执行型智能合约;(3)单向型智能合约。
具体而言,满足《民法典》中的合同要素时方可构成合同型智能合约,该类智能合约直接或经由法律解释仍受合同法等相关法律规范拘束。而智能合约具备合同的相应要素则成为构成合同型智能合约的关键。换言之,必须符合作为法律上可强制执行的承诺的特征,也即需要具备以下要素:要约、承诺、对价、合同目的、各方都有缔约能力、合约内容合法。按照合同是否成立、生效可以将合同型智合约区分为未成立合同、未生效合同、已生效合同。由一方提供智能合约而另一方仅表示承诺的合同,在对方尚未作出承诺之前,合同未告成立,例如银行、证券交易中只要用户同意接受相关服务,相关合意即已达成。也可以理解为通过执行智能合约的行为可以同时确认承诺和对价。如果合同执行,则满足要约、承诺和对价的必要条件;如果合同没有执行,则没有产生具有法律约束力的合同,仅仅是一个要约。合同型智能合约中比较普遍的为附生效条件型智能合约,当事人需要满足智能合约中所约定的特定条件后方可生效。实践中也存在将已成立生效的口头或者书面合同编译成智能合约代码,也即智能合约仅是对既有合同的形式转换,合同当事人在缔约前需要对智能合约架构进行相应的设计协商,并由计算机专家将合同架构的主要内容转化为数字代码,并按照一定的算法逻辑进行设计。智能合约在制定之前,也需要双方协商,根据彼此的需求,取长补短达成共识,然后在法律的框架内,制定出能维护彼此权益的合约,最后将这份合约写入代码之中以自动执行。
执行型智能合约通常是当事人在设立智能合约之前已经对合约的内容有了约定,尽管这种约定在实践中可能是一种为双方当事人之间签订的同一类型合同(个别合同)提供基本框架和基本条件的框架合同(frame contract)。该类型中智能合约的工具性作用更为明显。从合同发展阶段来看,智能合约属于合同的履行环节中的一种自动执行机制。例如,当事人之间已经通过协议的方式达成了“若符合特定条件,则自动完成支付或者其他行为”的合意,然后按照合意的内容编写代码并设置触发条件启动代码的执行,诚然,该合意属于完整合同的组成部分,将该合意转换为代码后,并不能改变该智能合约仍属于合同的组成部分的性质,只是该组成部分与合同的内容执行更为密切。智能合约中的内容并不具有合同成立的要素,仅具有合同的权利义务内容。
单向型智能合约,该类型智能合约被广泛运用到单方法律行为中,例如为遗嘱的设立、分配而设定的智能合约,一旦智能合约程序通过官方等正式途径获悉立遗嘱者已经死亡,智能合约即自动确认触发条件,自动执行遗产分配程序;再比如,智能合约在公共治理场域中,政府作为资源供给方通过智能合约为标准化的公共产品提供自动流程,比如符合精准扶贫、养老、医疗等方面的条件的,自动触发公共产品供给程序。民事合同却都是双方法律行为,但前述智能合约却仅仅是单方法律行为甚至不是法律行为,因此直接归入传统合同显然不妥。
由此可见,智能合约在实践中的存在样态和应用场景较为多样,不宜简单地将其归入法律合同或者非法律合同之列。工信部发布的《2018 年中国区块链产业白皮书》中,将智能合约定义为一种程序而非一种合同,该定义也仅仅看到了智能合约的存在形式而未关注其所包含的内容。
二
智能合约真的那么美妙吗?
智能合约与区块链技术的结合,已经充分显现出其拓展应用领域的潜力。从智能合约的实践运用来看,智能合约的优势非常明显:(1)清晰:由于合同是用条件逻辑编写的,因此很容易评估在任何特定情况下将要发生的事情;(2)速度:合同的执行无需任何人工干预;(3)透明:合约被永久记录在区块链中,任何人都不能篡改。基于区块链的智能合约的优点及其积极作用是由其去中心化的特点所决定的。但由于法学界较少关注其“缺陷”导致对潜在的风险较少论及,故有必要在此予以明晰。
(一)智能合约并不“智能”
智能合约实际上并不是非常“智能”。智能合约通常并不包含人工智能,并且二者存在本质区别:智能合约无法从其行为和经验中进行深度学习,无法自动修正其行为以适应不断变化的环境和具体情况,也无法理解常用的一些不确定概念,诸如实质性、合理之类的概念均无法被智能合约接受。尽管智能合约可以在一定程度上应对意外情况的发生,但却无法根据不可预测的情况“智能”地实施或修正其行为,至少目前尚无法实现。当然,这并非技术上的发展程度使然,而是智能合约的运行机理要求故意设计成不灵活的特性。
智能合约不宜处理复杂的逻辑关系。逻辑的复杂性会增加出现代码设计错误或编码逻辑存在漏洞的可能,而出现这种错误或漏洞的后果成本往往会相当之高。原因在于,智能合约的防篡改性和自动执行性意味着一旦智能合约所设定的条件被触发,则该合约将不受限制地在设定的场域和路径中执行,直至执行完毕。因此,就目前的应用而言,智能合约应用场景的逻辑关系均较为简单,将人从重复、繁琐的人力劳动中解脱出来。例如,在金融业中,通过每天要进行数百次股票交易的自动化软件进行高频交易,通过智能合约的方式自动执行股票交易,可消除延迟和错误。而且证券交易因需大量的时间转移资产,从而给交易方带来风险。利用区块链技术的智能合同可以缩短时间和减少此类的风险。但是这类应用仅仅是简单地运用“if-then” 语句。逻辑上的重复嵌套会极大地增加设计成本。除了设计开发用于发现智能合约中漏洞的工具外,设计人员在开发过程中还必须采取更一般的预防措施。智能合约工程师应在最终执行智能合约之前进行多次测试。在检测到威胁后,工程师应该能够在正式发布产品之前消除威胁。在执行智能合约期间,工程师应该设法安全地执行智能合约,或者准备在发生任何攻击时果断地暂停该过程。如果有任何问题,暂停流程是明智的管理损失的方法。成功执行智能合约后,设计人员或工程师应与智能合约维护保持同步,以防止潜在的攻击。由此可见,这一套保障措施及机制的安排在增加交易安全系数、拓宽其应用范围的同时却极大地增加了智能合约的使用成本,基于此考虑,智能合约目前仍在有限的简单逻辑关系中使用。
从自主学习能力而言,智能合约是“不智能”的,但从本质上而言,智能合约确立的价值中并无灵活性,而相反是确定性和可预测性。这与传统合同不同,传统合同通常会建立修正、更改合同的相应标准的制度。每一个制度都以不同的方式在当事人之间协助风险分配。例如,情事变更制度、不可抗力制度、合同撤销(显失公平)均赋予了合同当事人对生效合同进行改变的可能与标准,尽管该标准是模糊不清的。但在智能合约中,合约双方可能希望某些行为会实质性地产生违反协议的后果,但是这些行为却无法在合约中被穷尽地予以预设性规范。
(二)智能合约可执行违约责任能力有限
通常而言,智能合约的违约救济方式已在程序代码中被预先设置,一方遭受合约项下或者之外的不利事项,另一方将承担相应损害赔偿责任。这些不利事项可能是诉讼、代码漏洞或其他设定的行为造成另一方财产损失。但在未来相当长一段时间内,将完整的赔偿条款嵌入到智能合约中在技术上可能是行不通的,因为该类型的条款中包含的变量和灵活性将很难转化为智能合约代码。例如,触发赔偿条款的条件设置为一方提起诉讼,虽然这可由区块链通过法院系统进行验证,但是当事方将承担的诉讼费用、律师费等将根据索赔请求和索赔的范围而有所不同。因此,这些成本实际上无法在区块链中预先列出。而且,对于区块链或智能合约技术而言,可能难以正确识别所提起的诉讼与该合约有关进而受赔偿条款的约束。为了使用户获得有意义的赔偿,他们将不得不在区块链之外进行一些协商。这可以在用户彼此熟识的私有链中轻松实现。但在公有链中,匿名用户不太可能在线下就赔偿事项谈判协商。
(三)智能合约可能造成新的低效
智能合约的开发目前仍处于起步阶段,大多数事务在智能合约中仍无法实现,例如人力服务的提供,但部分事务是可以运用智能合约来进行的,但往往开发成本也很高,这与智能合约节省成本的目标相悖。因此,寻找适合于运用智能合约的事项才可以使智能合约价值最大化。智能合约初次应用于特定事项将有可能造成新的效率低下,这种低效却并非应用该人工智能希望达致的目的。例如,在不动产所有权转让中采用智能合约通常在成本和时间上都是有效的。但是,要替换当前的不动产登记系统,就需要适应相应的立法和执法,这涉及采用该系统和培训员工的相关支出以及高昂的维护费用。这样的成本压倒性地超过了将智能合约应用于房地产所有权转让的好处,从而造成了新的效率低下。因此,考虑到新的低效率问题,在成本与收益之间取得平衡,对于最大化特定领域和行业中智能合约的价值至关重要。
智能合约在全数字化环境中建立,生产、付款、登记等各方面都与数字系统链接,而且智能合约需要采用完全定义的计算机代码编写。这种技术上的复杂性为合同的自动形成和执行创造了可能性。但在交易存在较多不确定性的情况下,与传统的书面合同相比,它也使智能合约的方式更昂贵、效率更低。
(四)“去中心化”特征并非普遍适用
“去中心化”(decentralized)常常被认为是区块链最大的特点。但严格意义上来看该特征并不周延:首先,该词本意是“分散式的”,结合计算机领域的情况来看,分散式的计算机系统不一定是完全去中心的,也可能是多中心、弱中心的。其次,即便是比特币这样的区块链应用,看似绝对的去中心,其实也仅仅是架构设计上的,而在运行上还是存在“中心”的,比如当某个节点行使记账权的时候,其也可以被看作是临时的中心。更何况,对于那些掌握了大量算力进行专业挖矿的矿场来说,更是事实上的“中心”。最后, 从横向上可将区块链分为公有链(public blockchains)、联盟链(consortium blockchains)和私有链(private blockchains),私有链其实是有中心的,联盟链甚至可能是多中心的。因此,智能合约的去中心化特征仅在有限范围可予以实现。
综上,智能合约也存在诸多的自身固有“缺陷”,但经常被忽视,在复杂的应用实践中需要认识到其可能存在的法律风险和有限应用范围 ,在合同法律规范框架下,如何正确处理智能合约的短板所引发的法律问题则成为新的议题。
三
智能合约与传统合同法的关系
(一)智能合约与传统合同的关系
智能合约的固有“缺陷”是代码所具有的刚性,而传统合同当事人通常愿意在合同中纳入自由裁量的合同条款,以便在执行时具有更大的灵活性。因为自动化系统会自动执行合同,智能合约限制了各方的自由裁量权。一旦各方的行为或者情事触发设定的最终条件,区块链将自动执行。因为智能合约在区块链上的编码无法处理模糊或不确定的问题,因此当智能合约与具体触发条件而非抽象触发条件一起使用时,智能合约显得更为实用。正因为如此,智能合约不可能取代需要包含灵活条款的传统合同。但也有人乐观地预测,随着技术的发展,缺乏灵活性似乎不再是一个问题,因为使用最新的或者受到更严格监管的区块链技术可以加入人为干预,以防止欺诈或非法使用智能合约。具体而言,智能合约与传统合同可由下表进行区分:
表 1
传统合同与智能合约的对比表
虽然智能合约与传统合同存在诸多区别,但二者系统一而非对立的关系。智能合约与传统合约结合起来,对于守约方的权利救济更为有利,智能合约可以作为传统合同当事人履行义务的工具。如此一来,若智能合约无法按照预期的义务进行履行(如发生了程序漏洞或错误),守约方仍有获得救济的方式。促进和鼓励交易是合同法的功能之一,合同法应为当事方提供有效行动的最佳激励,即在整个合同过程中最大化交易中的价值。相反,智能合约本身既不能促进交易也不鼓励自愿进行资源交换,因此不能代替合同法在价值最大化中的作用。智能合约之所以背负此类“缺陷”,主要是由于缺乏合同前阶段而产生的程序缺陷。这些阶段涉及诸如获取信息、确定合同参与方以及协商之类的事项,所有这些阶段都有助于实现资源的适当分配和风险评估,以实现价值最大化。但是,如果智能合约不是孤立存在的,而是作为传统合同的“搭档”存在,或者将智能合约视为嵌入在传统合同中的工具,合同法则保持其传统角色和功能,即参与合同前阶段(分配资源、评估风险并填补空白),则智能合约可以与合同法律规则协同运作,以实现整个交易价值最大化。智能合约与传统合同在部分法律事项上互相借鉴、融合,兹举数例:
第一,合意方式的融合。传统合同的合意通常是通过行为或墨水签名(a wet ink signature)来表示的。然而近年来,通过电子方式形成合同的频率越来越高。自美国国会于2000年颁布《全球和国家商业电子签名法》(Electronic Signatures in Global and National Commerce Act)(“ E-Sign Act”)以来,电子签名具有与墨水签名同等的法律效力,通过DocuSign之类的工具达成数字化的合意已变得普遍。尤其是业务直接面向消费者的商主体,都依赖达成合同合意的替代方法。例如,接受在线服务的用户通常会必须选中“同意”“接受”框,以表示其同意标准的、不可谈判的条款和条件。这些合同以及其他一些合同似乎是通过采取行动来表示接受,当向用户明确提供合同内容并通过突出显示等方式提示合同与用户有重大利害关系条款时,“单击“注册’即表示您同意使用条款”通常即达成合意并约束合同当事人。传统合同正在逐步接纳智能合约的合意方式,这是技术发展趋势和商业发展需求使然。
第二,主体身份的接轨。智能合约的核心要素包括数字身份,这不同于传统合同中当事人均以真实身份参与,合同主体是合同成立的基本要素。但在智能合约中,当事人不去追求对合约当事人真实身份的探求,身份往往具有虚拟性。虽然数字身份未必是真实身份,但该身份对应的民事主体是真实存在的。此外,智能合约还有其独特的要素:数字资产、合约仲裁平台及数字资产托管平台,这两个平台系以代码和区块链的形式进行。随着智能合约的广泛应用,对智能合约的行政监管逐步受到重视,其中就包括主体身份实名注册的要求。因此,智能合约的主体身份也在逐步与传统合同接轨。
(二)智能合约与传统合同法的关系
一方面,智能合约的编译过程及内容会受到既有合同法规范的潜在影响。表面上看,智能合约凭借其去中心化的特征似乎脱离了既有法律规范(主要是合同法)的约束。有人也提出,智能合约不会产生具有法律意义的合同义务,认为智能合约是在尚未受到法律领域触及的技术领域中发展的。有人更进一步认为,传统合同通过为一个或多个当事方建立将来的义务来促使合同得到履行,但智能合约并不涉及将来的义务,因为双方均无法律义务在订立合同后还采取任何行动。诚然,上述观点关注到智能合约自动执行而无须其他的行为的本质属性和优势。但该观点仅在理论模型层面具有合理性,如前文所述,根据其类型的不同,智能合约在实际运用中仍会不同程度地受到合同法等相关法律规范的约束。其实,基于区块链的智能合约俨然已成为法律的记录和执行者,在利用区块链相关技术的起初便已将遵守法律通过共识机制建立起来,智能合约的执行过程虽然并不直接受人为因素的干扰,但在此过程中必然包含人的因素,这种因素导致其合约内容会自觉或非自觉地受到法律规范影响。
另一方面,智能合约受到传统合同法的直接约束,传统合同法能“接纳”智能合约。诚然,由于智能合约技术上的独特性和复杂性,很难辨别它们在传统合同法的法律框架内的体系位置和存在方式。迄今为止,无论是立法上还是司法上均尚未充分评估出智能合约的发展潜力,对于智能合约本质的认识及发展前景均尚待明晰,因此很难将其置于监管计划之内。在智能合约技术相对发达的美国也尚无一个完全成熟的智能合约市场,亦无法院就智能合约的执行提供直接指南。在没有任何智能合约的具体指导的情况下,宜根据传统合同法规则对智能合约进行分析。
在比较法上,更多的国家选择传统合同法对智能合约予以一并规制。但值得注意的是,近年来已经出现专门立法例用以衔接智能合约与传统合同。美国亚利桑那州和内华达州的法规明确将智能合约视为一种“书面文件”,并且还颁布了适用于智能合约的相关法律。明确仅采用电子形式的记录不会仅由于其媒介的特殊而不被法律所承认,并进一步声明如果在法律上要求以书面形式记录的情况下,“电子记录”则完全符合法律规定。其立法意图直指区块链中的智能合约。此外,在法律上授权当事人使用智能合约以订立或者执行协议,通过电子代理商发生的合同效果直接归结于特定主体。
四
智能合约内外部民事法律关系辨析
如前所述,不同类型的智能合约都会在不同程度上受到既有法律规范的约束。智能合约主要涉及合约当事人之间的法律关系(内部关系)和合约提供方与合约方之间的关系(外部关系)。
(一)内部关系:合约当事人的法律关系
无论智能合约是属于合同型智能合约、执行型智能合约抑或单向型智能合约,其呈现的形式均为程序。如此,无疑会存在自然语言向程序语言转化阶段发生转换错误或瑕疵的情况。问题在于,当二者发生不一致时,法律上应如何解决?将智能合约置于区块链之下的设计初衷便是避免争议,基于此,似应当以程序代码为准而不考虑当事人主观意思,这就是所谓的“代码即法律”(code is law)。这类似于不动产登记簿的公示效力,相对人须以登记事项为本,在智能合约中即是以代码本身为解释客体。因此,有学者认为,当事人确定采用智能合约的方式完成某一事项或达成某一目标时,当事人即已默示放弃主观意思的解释空间,而仅限于客观解释。但将代码本身作为合同解释的客体不无疑问。原因在于,代码的设计、编译通常是由专业团队或公司完成,如此就产生了直接负责代码编写的人员与使用者产生分离的情况,也即,二者需要进行意思的沟通与统一,其间便可能产生法律语言和程序语言的差异,而且这种差异则可能体现为对合约条款的理解差异,并且具有隐蔽性,无法轻易地被双方察觉。因此,若当事人在智能合约之外另有相关书面约定或可予以证明的口头约定,因代码编译人员并非合约当事人,以口头或者书面形式缔结的合同内容为准更为妥当。
解决该问题的一个基本原则是应当探求当事人内心真实意思。在智能合约与书面合约的理解存在争议时,可以类推适用《民法典》第466条新增的规定:“当事人对合同条款的理解有争议的,应当依据本法第一百四十二条第一款的规定,确定争议条款的含义。合同文本采用两种以上文字订立并约定具有同等效力的,对各文本使用的词句推定具有相同含义。各文本使用的词句不一致的,应当根据合同的相关条款、性质、目的以及诚信原则等予以解释。”智能合约的程序语言与自然语言其实与采用多种文字订立的合同并无实质区别,因此通过类推适用的方法可为智能合约的解释提供规范基础。美国亚利桑那州和内华达州的法规明确将智能合约视为一种“书面文件”也为此种路径提供了正当性支撑。
此外,智能合约并非能完全避开争议,在智能合约的争议解决上,需要在虚拟世界与现实世界之间往返。其中最为重要的议题至少包括两个方面:第一,由何方来承担代码错误或代码漏洞的举证责任?若该程序代码的设计是双方共同委托或者经充分协商后由一方设计的,按照谁主张谁举证的举证责任一般规则处理即可;但若该程序代码仅由一方设计,作为服务接受方仅表示同意,此种情形下因信息的高度不对称,应当实现举证责任倒置;第二,在智能合约代码存在疑义时如何解释?前文已述,若同时存在自然语言合同和智能合约时的解释路径。但若仅存的智能合约便存在疑义时可以参照格式条款的处理方式,我国台湾地区《消费者保护法》第11条第2项规定:“定型化契约条款如有疑义时,应为有利于消费者之解释。”德国民法典第307条直接规定该条款无效。径行认定该疑义条款无效似有处理过当之嫌,按照罗马法谚“有疑义就为表意者不利之解释”的解释路径较为合理。值得提出的是,智能合约的执行结果可能会和当事人的本意有出入,但至少可以说该种执行是最接近预设的合约之履行。
为减少当事人的本意与程序代码之间发生的龃龉,本文提供两种可能的解决路径:(1)在智能合约中直接设置恢复条款,例如“若智能合约出现漏洞或错误时,智能合约恢复到执行前状态”或者“通过参与人的合意可允许嵌入新的合约”。从The DAO事件中可以看出,智能合约一旦触发执行条件,并非完全不可撤销或停止,The DAO事件就采取“硬分叉”的方式避免了黑客转移The DAO合约里的资金,简单来讲,就是通过一段新的程序代码来改变原合约“运行轨迹”,将The DAO合约里的所有资金以及被黑客控制的资金转移到一个新的合约,该合约只有一个功能:退回The DAO众筹参与人的以太币;(2)为减少智能合约的漏洞的出现,就智能合约的结构达成某种程度的共识而形成标准化的智能合约能简化协商和设计成本、提高交易效率,更为重要的是减少智能合约的争议。智能合约的标准化并非体现在内容的同质性而是体现在技术设计上,包括如何将合同内容转换为代码,以及如何设计触发合约执行条款等。IEEE也宣布了为智能合约开发“技术法律”标准的计划。
当一方要求另一方履行合同时,可能会出现另一方恶意制造交易障碍的情况。例如,在涉及自动付款机制的智能合约中,如果一方关闭了从中提取资金的银行账户,而另一方的义务却在持续履行,则该方可能会要求强制履行付款义务。此时,主张履行合同的一方需要明确知道另一方的具体身份。在私有区块链中,互相知晓身份有可能成为常态。但在公共区块链中,除了用户名之外,各方的现实身份通常互不知悉。为了规避因身份不明确而无法寻求权利救济的风险,合约各方可将自动化的第三方验证工具嵌入到智能合约中。例如对合约方进行背景调查和位置记录,并将调查结果自动提供给合约参与方,因此可以完全透明地了解参与方主体信息,以便可以实际提起诉讼。事实上,该项举措其实目前在区块链技术发展过程中已经得到监管部门的重视,比如比特币近年来也被要求实名认证。但是问题在于,因为智能合约的特征之一是要信任系统而不是个人,使用区块链(至少是公共区块链)的身份验证可能会阻止一些事项使用智能合约。
(二)外部关系:提供商与合约方之间的法律关系
智能合约的设计具有较高的技术要求,通常会将设计任务委托给第三方专业机构。因第三方机构设计智能合约存在程式漏洞或者代码错误造成合约方损失应当如何处理?首先,需要明确委托合同是共同委托还是单方委托,若由智能合约各方共同委托第三方开发设计,智能合约各方应当公平分担损失,亦可共同向第三方直接主张违约责任。若由当事人单方委托,则涉及《民法典》第593条的规定:“当事人一方因第三人的原因造成违约的,应当依法向对方承担违约责任。当事人一方和第三人之间的纠纷,依照法律规定或者按照约定处理。”针对该条的第三人的范围学界素有争议,但从历史解释的角度看,《<中华人民共和国合同法>立法方案》第八章第一节“一般规定”中明确,该第三人主要包括配件供应人、分包人、受托履行义务人等。由此可以看出,该第三人应当为与当事人密切相关的履行辅助人,承担该项设计任务的第三人可以归列此本条“第三人”。但是问题并非止步于此,若委托方因第三人的原因造成违约,因其与第三方存在合同关系,其权利能得到保障;但若非委托方因该第三方的原因造成违约的,由于该第三方可以视作合约一方(委托方)的履行辅助人,该违约可视作委托方的原因而类推适用《民法典》第605条“因买受人的原因致使标的物未按照约定的期限交付的,买受人应当自违反约定时起承担标的物毁损、灭失的风险”的规定由该方当事人自担风险即可。
另一方面,如果发生第三人入侵智能合约运行程序,破坏智能合约的运行生态,转移智能合约资金,该第三人及智能合约编译人员承担的责任为何?在智能合约的实际应用中,不乏黑客恶意侵入智能合约运行程序甚至转移资金的案例,影响较大的诸如The DAO事件、Coin Dash事件、Enigma事件、Tether黑客事件、Nice Hash事件、币安事件。第三人恶意侵入计算机系统,可归属刑事责任范畴,在此不论。关键在于智能合约编译主体的民事责任。在这种情况下,如果合约方从代码开发人员获得了安全性的保证,则可以向代码开发人员寻求因违反合同的违约救济。
智能合约改变了传统交易中的信任模式,智能合约不需要交易双方互相信任,甚至不知道交易对手的身份,智能合约的信任模式是一种“机器式契约信任”。在降低协商成本、提升交易效率的同时,却也埋下了交易风险的种子。合约参与方发生争议时,无法确定交易对手的身份信息便无法向其主张权利。用户此时可以诉诸于该交易过程中唯一身份明确的实体:区块链或智能合约平台提供商。其规范依据在于《最高人民法院关于审理食品药品纠纷案件适用法律若干问题的规定》第9条规定:“消费者通过网络交易平台购买食品、药品遭受损害,网络交易平台提供者不能提供食品、药品的生产者或销售者的真实名称、地址与有效联系方式,消费者请求网络交易平台提供者承担责任的,人民法院应予支持。网络交易平台提供者承担赔偿责任后,向生产者或者销售者行使追偿权的,人民法院应予支持。网络交易平台提供者知道或者应当知道食品、药品的生产者、销售者利用其平台侵害消费者合法权益,未采取必要措施,给消费者造成损害,消费者要求其与生产者、销售者承担连带责任的,人民法院应予支持。”但是,用户针对区块链或智能合约平台提供商的追索权可能受到与提供商之间的合同实体条款的限制。也即,提供商会通过合同免除自己的责任。例如,以太坊提供了包括支付等许多区块链应用程序。支付软件遵循该程序中各种软件组成的许可协议,其中包括:“除在编写版权持有人和/或其他方时另有规定外,‘ASIS’程序均不提供任何形式的保证,无论是明示或暗示的保证,包括但不限于对商业目的和适用性的默示保证。有关程序质量和性能的全部风险由您承担。如果因与软件或软件的使用或其他方式产生的与之有关的合同、侵权行为,持有人应对任何索赔、损害或其他责任承担责任。”该许可条款试图免除因使用该软件而引起的所有责任,从而使用户几乎没有对以太坊的索赔权。
结语
智能合约已经或将会极大地影响既有法律体系,这种影响未必直接体现为对既有规则的更改。在技术迅速更新、突破的时代,法律如何与技术融合成为一项全新的议题。法律能否承受技术革新带来的挑战与冲击正是法律人需要直面的问题。在研究全新技术所涉法律问题时,不可避免地需要涉足该技术领域的知识,否则便可谓是“门外汉”自说自话。研究科技法律的国外论著,鲜见直接讨论法律问题者。以本文研究的基于区块链技术的智能合约为例,首先需要对智能合约的运行机理、本质属性等技术层面的问题明确,进而选择从民法的视角进行观察分析。
虽然本文对智能合约的固有“缺陷”予以阐释,但并不妨碍其广阔的发展前景,尤其是大规模交易、标准化交易中具有无可比拟的优越性。未来民法学界宜紧跟智能合约技术发展动态和法律需求,从跨学科的视角为智能合约技术发展提供法律保障!
免责声明:
上文内容仅供天风证券股份有限公司(以下简称“本公司”)的客户使用。本公司不会因为任何机构或个人接收到上文而视其为本公司的当然客户。上文基于已公开的资料或信息撰写,但本公司不保证该等信息及资料的完整性、准确性。客户不应将上文为作出其投资决策的唯一参考因素,亦不应认为上文可以取代客户自身的投资判断与决策。客户应自主作出投资决策并自行承担投资风险。在任何情况下,上文中的信息或所表述的意见均不构成对任何人的投资建议。在任何情况下,本公司不对任何人因使用本文中的任何内容所引致的任何损失负任何责任。市场有风险,投资需谨慎。
本文发表于《科技与法律》2020年第6期。
作者简介:谭佐财,武汉大学法学院博士研究生,主要研究民商法和科技法。
摘要
自治性是智能合约区分于自动履行协议的关键因素,自治性不同于自动化。智能合约的法律属性不可一概而论,根据智能合约产生的不同法律效果可将其类型化为合同型智能合约、执行型智能合约、单向型智能合约。对智能合约的研究应秉持客观视角,智能合约存在并不“智能”、可执行违约责任能力有限等“缺陷”。智能合约与传统合同是统一而非对立的关系,且二者呈现互相借鉴融合的趋势,传统合同法与智能合约的结合可以实现交易价值最大化。在自然语言向代码转换过程中出现的错误或者瑕疵而产生的法律责任应当区分合约参与方之间的内部关系和合约参与方与合约提供方的外部关系。
关键词
智能合约;传统合同;法律属性;
内部关系;外部关系
引言
20世纪90年代中后期Nick Szabo通过系列文章提出智能合约(smart contracts)的概念,将智能合约定义为“一套以数字形式定义的承诺,包括合约参与方可以在上面履行这些承诺的协议”。在区块链技术出现之前,理论上的智能合约的双方都必须依靠另一方的计算机代码和网络基础架构。区块链的分布式分类记账特性允许将代码嵌入到一个无需重复的公共分布式分类账本中。每个智能合约用户都使用相同的代码集访问相同的智能合约。这意味着区块链可以有效地防篡改,并且可以使交易自行执行。每个区块均包含时间戳、唯一哈希值和该数据的交易数据。区块链可以确保链中的任何区块都不会被追溯更改,从而促进安全的在线交易,传统上由银行或处理器执行的安全支付处理以及帐户跟踪和维护功能在分布式和分散的区块链环境中均是自动化的。如图1所示。
图 1
区块链运行原理
区块链允许世界上任何地方的两个或多个参与方直接进行交易,同时相对确保交易是安全、真实且不可更改的。无论双方是否知道彼此的真实身份,都可以进行此交易,而无需任何第三方的协助或调解,并且这些交易方可以相对确定该交易是安全,真实和不可更改的。智能合约与区块链的完美结合使智能合约具备了落地应用的关键技术。当下,智能合约已经应用于金融业、知识产权、房地产等行业,并且这些行业将从智能合约技术的发展与监管体系的完善中持续受益。基于区块链技术的智能合约在政府公共治理、共享经济等方面亦有巨大潜力。
近年来,关于智能合约的研究颇具热度。诚然,一项可能引发社会生活诸多方面变革的技术的发展,无疑会撼动着法律人的神经。法学界主要集中于对智能合约的优势的关注和未来发展的希冀,其中不乏对智能合约未来发展会冲击传统法律体系的讨论,甚至有观点认为,智能合约将颠覆传统商业模式和传统合同法规则。但也有国外学者冷静地看待智能合约的发展,并发出“智能合约真的那么智能吗”的疑问。因为技术与法律的鸿沟,使得一些法学的研究与技术脱节,现有研究至少暴露出以下四个问题:其一,对智能合约的优势与潜力的讨论趋之若鹜,缺少对智能合约固有的局限性的探讨;其二,对智能合约的法律属性一概而论,未予类型化讨论;其三,缺乏与传统合同的细致比较而径行讨论合同法的适用问题;其四,未细化研究智能合约引发的内部法律关系与外部法律关系。本文拟细致分析智能合约的法律属性,并提出智能合约的缺陷以期助益于学界对智能合约的客观认识;并在此基础上对智能合约涉及的私法问题进行分析。
一
智能合约的法律属性:类型化的方法
(一)智能合约的自治性
智能合约最初就被定义为是一种承诺,也就是一方已经设定好了相关的条件和程序,其他参与主体只需要附和即可。这一定义长期以来被奉为智能合约的通识定义,但也受到一些学者的质疑,认为Nick Szabo的定义已经无法准确地描述智能合约的关键要素:自治性以及当事人对合同具体条款的共识。
理解智能合约需要首先明确基于分散式记账技术(通常称为区块链)的智能合约最重要的要素是自治性,但也有学者认为决定合同是否智能的关键因素是合同是否自动化(autonomated),笔者认为不宜将自动化等同于自治性(the element of autonomy),是否具备自治性是区分智能合约与其他自动履行合约的关键要素。当然,自治性无疑包含了自动化之特征,正因为如此,方才有学者提出智能合约的另一定义:允许合同当事方通过软件代码的方式将合同内容嵌入到区块链中,以保证合约的自动并且自主地自我执行。以自动售货机为例,消费者与自动售货机的缔约过程是自动化的,但却缺少自治性。自动售货机的所有者单方面执行该代码并且可以自由决定对其更改、制造障碍或者直接关闭自动售货机,造成交易中断。但是基于区块链的智能合约不仅可以保证履行的自动化,更为关键的是可以实现自治。因为存储在区块链数据库中的信息具有永续性,任何人均不得决定更改。因此,合同的自动化履行不会受到当事人的干扰。而且智能合约没有中央授权,也可实现排除外部第三人的干扰[3]。另一方面,在自动售货机缔约过程中,当事人并没有就算法的内容达成共识,消费者无法知晓代码,也无法同意该代码,当事人同意的是其中的隐含条款(支付购买物品的价款)。而且在某些特殊情况下,算法的行为由自动售货机的所有者单方面确定。简言之,作为智能合约最初简单模型的自动售货机合约(Vending machine contracting)仅具有自动化(自动履行)的功能而不具有自治性。著名的Thornton v. Shoe Lane Parking,Ltd.案件则展现了自动售货机不具有自治性的特征。
(二)智能合约的运行机理
智能合约的法律性质在理论上素有争议,主要有“合同说”、“特殊合同说”、“合同履行方式说”、“程序说”四种观点。“合同说”论者认为,智能合约即为合同一种,并将“smart contracts”翻译为“智能合同”,认为智能合同是已经广泛存在于银行业务、网络音乐、房地产业中的新合同类型;更有甚者,直接跳过智能合约是否属于合同这一前提性问题的讨论,径行分析智能合约的合同法相关问题。“特殊合同说”论者认为,因为智能合约包括公法智能合约和私法智能合约,不能简单地等同于民事合同。可以说,“特殊合同说”关注到了智能合约在公共治理领域(公法层面)的应用。“合同履行方式说”认为,不宜将智能合约认定为真正的合同,智能合约应为协议的一套履行机制或执行程序。“程序说”认为,智能合约完全按照代码的技术逻辑运行,其运行无需人为因素的介入和干扰,从而排除法律的介入。工业和信息化部信息中心在其发布的白皮书中也直接将智能合约定义为一种程序。上述观点均从不同维度观察到智能合约的部分特征,但都存在以偏概全的论述漏洞,由此构建起来的对智能合约的法律性质及法律适用论述便难谓准确与合理。
为厘清智能合约的法律属性,需要在技术层面明确智能合约的运行原理、机制及特征,并结合具体应用场景进行具体分析。智能合约作为一种工具,在本质上是在区块链上运行的计算机代码。在区块链以太坊中的智能合约,其撰写语言为“Solidity”“Serpent”等,目前“Solidity”为较多人使用的选项,同时也是以太坊官方推荐的程式语言,其架构类似于“JavaScript”。使用者在以太坊中部署合约,主要需要完成三个步骤:撰写智能合约(根据具体需求设计相对应的程序,以“Solidity”语言为例,通过程序编译器编译成二进制的代码);部署至区块链网络并验证(网络中的每个节点都会收到该合约,并依共识演算法进行写入区块链的动作,当验证完毕,合约将被记录在区块链上);触发合约执行(触发条件依照使用者的合约需求来设置)。如图2所示。
图 2
智能合约运行程序
(三)智能合约的类型
如前所述,智能合约是按照“构建—存储—执行”的模式建立并自动完成智能合约的所有事项。可以看出,该过程至少包括两个具有法律意义的环节:合约的构建与合约的执行。需注意的是,智能合约的应用场景并非完全同质,而是具有复杂多样性。因此,运用类型化的方法区分智能合约的应用场景和功能可较为妥当地回答智能合约的法律属性这一前提性问题,根据智能合约可能产生不同法律效果可将智能合约类型化为以下三种:(1)合同型智能合约;(2)执行型智能合约;(3)单向型智能合约。
具体而言,满足《民法典》中的合同要素时方可构成合同型智能合约,该类智能合约直接或经由法律解释仍受合同法等相关法律规范拘束。而智能合约具备合同的相应要素则成为构成合同型智能合约的关键。换言之,必须符合作为法律上可强制执行的承诺的特征,也即需要具备以下要素:要约、承诺、对价、合同目的、各方都有缔约能力、合约内容合法。按照合同是否成立、生效可以将合同型智合约区分为未成立合同、未生效合同、已生效合同。由一方提供智能合约而另一方仅表示承诺的合同,在对方尚未作出承诺之前,合同未告成立,例如银行、证券交易中只要用户同意接受相关服务,相关合意即已达成。也可以理解为通过执行智能合约的行为可以同时确认承诺和对价。如果合同执行,则满足要约、承诺和对价的必要条件;如果合同没有执行,则没有产生具有法律约束力的合同,仅仅是一个要约。合同型智能合约中比较普遍的为附生效条件型智能合约,当事人需要满足智能合约中所约定的特定条件后方可生效。实践中也存在将已成立生效的口头或者书面合同编译成智能合约代码,也即智能合约仅是对既有合同的形式转换,合同当事人在缔约前需要对智能合约架构进行相应的设计协商,并由计算机专家将合同架构的主要内容转化为数字代码,并按照一定的算法逻辑进行设计。智能合约在制定之前,也需要双方协商,根据彼此的需求,取长补短达成共识,然后在法律的框架内,制定出能维护彼此权益的合约,最后将这份合约写入代码之中以自动执行。
执行型智能合约通常是当事人在设立智能合约之前已经对合约的内容有了约定,尽管这种约定在实践中可能是一种为双方当事人之间签订的同一类型合同(个别合同)提供基本框架和基本条件的框架合同(frame contract)。该类型中智能合约的工具性作用更为明显。从合同发展阶段来看,智能合约属于合同的履行环节中的一种自动执行机制。例如,当事人之间已经通过协议的方式达成了“若符合特定条件,则自动完成支付或者其他行为”的合意,然后按照合意的内容编写代码并设置触发条件启动代码的执行,诚然,该合意属于完整合同的组成部分,将该合意转换为代码后,并不能改变该智能合约仍属于合同的组成部分的性质,只是该组成部分与合同的内容执行更为密切。智能合约中的内容并不具有合同成立的要素,仅具有合同的权利义务内容。
单向型智能合约,该类型智能合约被广泛运用到单方法律行为中,例如为遗嘱的设立、分配而设定的智能合约,一旦智能合约程序通过官方等正式途径获悉立遗嘱者已经死亡,智能合约即自动确认触发条件,自动执行遗产分配程序;再比如,智能合约在公共治理场域中,政府作为资源供给方通过智能合约为标准化的公共产品提供自动流程,比如符合精准扶贫、养老、医疗等方面的条件的,自动触发公共产品供给程序。民事合同却都是双方法律行为,但前述智能合约却仅仅是单方法律行为甚至不是法律行为,因此直接归入传统合同显然不妥。
由此可见,智能合约在实践中的存在样态和应用场景较为多样,不宜简单地将其归入法律合同或者非法律合同之列。工信部发布的《2018 年中国区块链产业白皮书》中,将智能合约定义为一种程序而非一种合同,该定义也仅仅看到了智能合约的存在形式而未关注其所包含的内容。
二
智能合约真的那么美妙吗?
智能合约与区块链技术的结合,已经充分显现出其拓展应用领域的潜力。从智能合约的实践运用来看,智能合约的优势非常明显:(1)清晰:由于合同是用条件逻辑编写的,因此很容易评估在任何特定情况下将要发生的事情;(2)速度:合同的执行无需任何人工干预;(3)透明:合约被永久记录在区块链中,任何人都不能篡改。基于区块链的智能合约的优点及其积极作用是由其去中心化的特点所决定的。但由于法学界较少关注其“缺陷”导致对潜在的风险较少论及,故有必要在此予以明晰。
(一)智能合约并不“智能”
智能合约实际上并不是非常“智能”。智能合约通常并不包含人工智能,并且二者存在本质区别:智能合约无法从其行为和经验中进行深度学习,无法自动修正其行为以适应不断变化的环境和具体情况,也无法理解常用的一些不确定概念,诸如实质性、合理之类的概念均无法被智能合约接受。尽管智能合约可以在一定程度上应对意外情况的发生,但却无法根据不可预测的情况“智能”地实施或修正其行为,至少目前尚无法实现。当然,这并非技术上的发展程度使然,而是智能合约的运行机理要求故意设计成不灵活的特性。
智能合约不宜处理复杂的逻辑关系。逻辑的复杂性会增加出现代码设计错误或编码逻辑存在漏洞的可能,而出现这种错误或漏洞的后果成本往往会相当之高。原因在于,智能合约的防篡改性和自动执行性意味着一旦智能合约所设定的条件被触发,则该合约将不受限制地在设定的场域和路径中执行,直至执行完毕。因此,就目前的应用而言,智能合约应用场景的逻辑关系均较为简单,将人从重复、繁琐的人力劳动中解脱出来。例如,在金融业中,通过每天要进行数百次股票交易的自动化软件进行高频交易,通过智能合约的方式自动执行股票交易,可消除延迟和错误。而且证券交易因需大量的时间转移资产,从而给交易方带来风险。利用区块链技术的智能合同可以缩短时间和减少此类的风险。但是这类应用仅仅是简单地运用“if-then” 语句。逻辑上的重复嵌套会极大地增加设计成本。除了设计开发用于发现智能合约中漏洞的工具外,设计人员在开发过程中还必须采取更一般的预防措施。智能合约工程师应在最终执行智能合约之前进行多次测试。在检测到威胁后,工程师应该能够在正式发布产品之前消除威胁。在执行智能合约期间,工程师应该设法安全地执行智能合约,或者准备在发生任何攻击时果断地暂停该过程。如果有任何问题,暂停流程是明智的管理损失的方法。成功执行智能合约后,设计人员或工程师应与智能合约维护保持同步,以防止潜在的攻击。由此可见,这一套保障措施及机制的安排在增加交易安全系数、拓宽其应用范围的同时却极大地增加了智能合约的使用成本,基于此考虑,智能合约目前仍在有限的简单逻辑关系中使用。
从自主学习能力而言,智能合约是“不智能”的,但从本质上而言,智能合约确立的价值中并无灵活性,而相反是确定性和可预测性。这与传统合同不同,传统合同通常会建立修正、更改合同的相应标准的制度。每一个制度都以不同的方式在当事人之间协助风险分配。例如,情事变更制度、不可抗力制度、合同撤销(显失公平)均赋予了合同当事人对生效合同进行改变的可能与标准,尽管该标准是模糊不清的。但在智能合约中,合约双方可能希望某些行为会实质性地产生违反协议的后果,但是这些行为却无法在合约中被穷尽地予以预设性规范。
(二)智能合约可执行违约责任能力有限
通常而言,智能合约的违约救济方式已在程序代码中被预先设置,一方遭受合约项下或者之外的不利事项,另一方将承担相应损害赔偿责任。这些不利事项可能是诉讼、代码漏洞或其他设定的行为造成另一方财产损失。但在未来相当长一段时间内,将完整的赔偿条款嵌入到智能合约中在技术上可能是行不通的,因为该类型的条款中包含的变量和灵活性将很难转化为智能合约代码。例如,触发赔偿条款的条件设置为一方提起诉讼,虽然这可由区块链通过法院系统进行验证,但是当事方将承担的诉讼费用、律师费等将根据索赔请求和索赔的范围而有所不同。因此,这些成本实际上无法在区块链中预先列出。而且,对于区块链或智能合约技术而言,可能难以正确识别所提起的诉讼与该合约有关进而受赔偿条款的约束。为了使用户获得有意义的赔偿,他们将不得不在区块链之外进行一些协商。这可以在用户彼此熟识的私有链中轻松实现。但在公有链中,匿名用户不太可能在线下就赔偿事项谈判协商。
(三)智能合约可能造成新的低效
智能合约的开发目前仍处于起步阶段,大多数事务在智能合约中仍无法实现,例如人力服务的提供,但部分事务是可以运用智能合约来进行的,但往往开发成本也很高,这与智能合约节省成本的目标相悖。因此,寻找适合于运用智能合约的事项才可以使智能合约价值最大化。智能合约初次应用于特定事项将有可能造成新的效率低下,这种低效却并非应用该人工智能希望达致的目的。例如,在不动产所有权转让中采用智能合约通常在成本和时间上都是有效的。但是,要替换当前的不动产登记系统,就需要适应相应的立法和执法,这涉及采用该系统和培训员工的相关支出以及高昂的维护费用。这样的成本压倒性地超过了将智能合约应用于房地产所有权转让的好处,从而造成了新的效率低下。因此,考虑到新的低效率问题,在成本与收益之间取得平衡,对于最大化特定领域和行业中智能合约的价值至关重要。
智能合约在全数字化环境中建立,生产、付款、登记等各方面都与数字系统链接,而且智能合约需要采用完全定义的计算机代码编写。这种技术上的复杂性为合同的自动形成和执行创造了可能性。但在交易存在较多不确定性的情况下,与传统的书面合同相比,它也使智能合约的方式更昂贵、效率更低。
(四)“去中心化”特征并非普遍适用
“去中心化”(decentralized)常常被认为是区块链最大的特点。但严格意义上来看该特征并不周延:首先,该词本意是“分散式的”,结合计算机领域的情况来看,分散式的计算机系统不一定是完全去中心的,也可能是多中心、弱中心的。其次,即便是比特币这样的区块链应用,看似绝对的去中心,其实也仅仅是架构设计上的,而在运行上还是存在“中心”的,比如当某个节点行使记账权的时候,其也可以被看作是临时的中心。更何况,对于那些掌握了大量算力进行专业挖矿的矿场来说,更是事实上的“中心”。最后, 从横向上可将区块链分为公有链(public blockchains)、联盟链(consortium blockchains)和私有链(private blockchains),私有链其实是有中心的,联盟链甚至可能是多中心的。因此,智能合约的去中心化特征仅在有限范围可予以实现。
综上,智能合约也存在诸多的自身固有“缺陷”,但经常被忽视,在复杂的应用实践中需要认识到其可能存在的法律风险和有限应用范围 ,在合同法律规范框架下,如何正确处理智能合约的短板所引发的法律问题则成为新的议题。
三
智能合约与传统合同法的关系
(一)智能合约与传统合同的关系
智能合约的固有“缺陷”是代码所具有的刚性,而传统合同当事人通常愿意在合同中纳入自由裁量的合同条款,以便在执行时具有更大的灵活性。因为自动化系统会自动执行合同,智能合约限制了各方的自由裁量权。一旦各方的行为或者情事触发设定的最终条件,区块链将自动执行。因为智能合约在区块链上的编码无法处理模糊或不确定的问题,因此当智能合约与具体触发条件而非抽象触发条件一起使用时,智能合约显得更为实用。正因为如此,智能合约不可能取代需要包含灵活条款的传统合同。但也有人乐观地预测,随着技术的发展,缺乏灵活性似乎不再是一个问题,因为使用最新的或者受到更严格监管的区块链技术可以加入人为干预,以防止欺诈或非法使用智能合约。具体而言,智能合约与传统合同可由下表进行区分:
表 1
传统合同与智能合约的对比表
虽然智能合约与传统合同存在诸多区别,但二者系统一而非对立的关系。智能合约与传统合约结合起来,对于守约方的权利救济更为有利,智能合约可以作为传统合同当事人履行义务的工具。如此一来,若智能合约无法按照预期的义务进行履行(如发生了程序漏洞或错误),守约方仍有获得救济的方式。促进和鼓励交易是合同法的功能之一,合同法应为当事方提供有效行动的最佳激励,即在整个合同过程中最大化交易中的价值。相反,智能合约本身既不能促进交易也不鼓励自愿进行资源交换,因此不能代替合同法在价值最大化中的作用。智能合约之所以背负此类“缺陷”,主要是由于缺乏合同前阶段而产生的程序缺陷。这些阶段涉及诸如获取信息、确定合同参与方以及协商之类的事项,所有这些阶段都有助于实现资源的适当分配和风险评估,以实现价值最大化。但是,如果智能合约不是孤立存在的,而是作为传统合同的“搭档”存在,或者将智能合约视为嵌入在传统合同中的工具,合同法则保持其传统角色和功能,即参与合同前阶段(分配资源、评估风险并填补空白),则智能合约可以与合同法律规则协同运作,以实现整个交易价值最大化。智能合约与传统合同在部分法律事项上互相借鉴、融合,兹举数例:
第一,合意方式的融合。传统合同的合意通常是通过行为或墨水签名(a wet ink signature)来表示的。然而近年来,通过电子方式形成合同的频率越来越高。自美国国会于2000年颁布《全球和国家商业电子签名法》(Electronic Signatures in Global and National Commerce Act)(“ E-Sign Act”)以来,电子签名具有与墨水签名同等的法律效力,通过DocuSign之类的工具达成数字化的合意已变得普遍。尤其是业务直接面向消费者的商主体,都依赖达成合同合意的替代方法。例如,接受在线服务的用户通常会必须选中“同意”“接受”框,以表示其同意标准的、不可谈判的条款和条件。这些合同以及其他一些合同似乎是通过采取行动来表示接受,当向用户明确提供合同内容并通过突出显示等方式提示合同与用户有重大利害关系条款时,“单击“注册’即表示您同意使用条款”通常即达成合意并约束合同当事人。传统合同正在逐步接纳智能合约的合意方式,这是技术发展趋势和商业发展需求使然。
第二,主体身份的接轨。智能合约的核心要素包括数字身份,这不同于传统合同中当事人均以真实身份参与,合同主体是合同成立的基本要素。但在智能合约中,当事人不去追求对合约当事人真实身份的探求,身份往往具有虚拟性。虽然数字身份未必是真实身份,但该身份对应的民事主体是真实存在的。此外,智能合约还有其独特的要素:数字资产、合约仲裁平台及数字资产托管平台,这两个平台系以代码和区块链的形式进行。随着智能合约的广泛应用,对智能合约的行政监管逐步受到重视,其中就包括主体身份实名注册的要求。因此,智能合约的主体身份也在逐步与传统合同接轨。
(二)智能合约与传统合同法的关系
一方面,智能合约的编译过程及内容会受到既有合同法规范的潜在影响。表面上看,智能合约凭借其去中心化的特征似乎脱离了既有法律规范(主要是合同法)的约束。有人也提出,智能合约不会产生具有法律意义的合同义务,认为智能合约是在尚未受到法律领域触及的技术领域中发展的。有人更进一步认为,传统合同通过为一个或多个当事方建立将来的义务来促使合同得到履行,但智能合约并不涉及将来的义务,因为双方均无法律义务在订立合同后还采取任何行动。诚然,上述观点关注到智能合约自动执行而无须其他的行为的本质属性和优势。但该观点仅在理论模型层面具有合理性,如前文所述,根据其类型的不同,智能合约在实际运用中仍会不同程度地受到合同法等相关法律规范的约束。其实,基于区块链的智能合约俨然已成为法律的记录和执行者,在利用区块链相关技术的起初便已将遵守法律通过共识机制建立起来,智能合约的执行过程虽然并不直接受人为因素的干扰,但在此过程中必然包含人的因素,这种因素导致其合约内容会自觉或非自觉地受到法律规范影响。
另一方面,智能合约受到传统合同法的直接约束,传统合同法能“接纳”智能合约。诚然,由于智能合约技术上的独特性和复杂性,很难辨别它们在传统合同法的法律框架内的体系位置和存在方式。迄今为止,无论是立法上还是司法上均尚未充分评估出智能合约的发展潜力,对于智能合约本质的认识及发展前景均尚待明晰,因此很难将其置于监管计划之内。在智能合约技术相对发达的美国也尚无一个完全成熟的智能合约市场,亦无法院就智能合约的执行提供直接指南。在没有任何智能合约的具体指导的情况下,宜根据传统合同法规则对智能合约进行分析。
在比较法上,更多的国家选择传统合同法对智能合约予以一并规制。但值得注意的是,近年来已经出现专门立法例用以衔接智能合约与传统合同。美国亚利桑那州和内华达州的法规明确将智能合约视为一种“书面文件”,并且还颁布了适用于智能合约的相关法律。明确仅采用电子形式的记录不会仅由于其媒介的特殊而不被法律所承认,并进一步声明如果在法律上要求以书面形式记录的情况下,“电子记录”则完全符合法律规定。其立法意图直指区块链中的智能合约。此外,在法律上授权当事人使用智能合约以订立或者执行协议,通过电子代理商发生的合同效果直接归结于特定主体。
四
智能合约内外部民事法律关系辨析
如前所述,不同类型的智能合约都会在不同程度上受到既有法律规范的约束。智能合约主要涉及合约当事人之间的法律关系(内部关系)和合约提供方与合约方之间的关系(外部关系)。
(一)内部关系:合约当事人的法律关系
无论智能合约是属于合同型智能合约、执行型智能合约抑或单向型智能合约,其呈现的形式均为程序。如此,无疑会存在自然语言向程序语言转化阶段发生转换错误或瑕疵的情况。问题在于,当二者发生不一致时,法律上应如何解决?将智能合约置于区块链之下的设计初衷便是避免争议,基于此,似应当以程序代码为准而不考虑当事人主观意思,这就是所谓的“代码即法律”(code is law)。这类似于不动产登记簿的公示效力,相对人须以登记事项为本,在智能合约中即是以代码本身为解释客体。因此,有学者认为,当事人确定采用智能合约的方式完成某一事项或达成某一目标时,当事人即已默示放弃主观意思的解释空间,而仅限于客观解释。但将代码本身作为合同解释的客体不无疑问。原因在于,代码的设计、编译通常是由专业团队或公司完成,如此就产生了直接负责代码编写的人员与使用者产生分离的情况,也即,二者需要进行意思的沟通与统一,其间便可能产生法律语言和程序语言的差异,而且这种差异则可能体现为对合约条款的理解差异,并且具有隐蔽性,无法轻易地被双方察觉。因此,若当事人在智能合约之外另有相关书面约定或可予以证明的口头约定,因代码编译人员并非合约当事人,以口头或者书面形式缔结的合同内容为准更为妥当。
解决该问题的一个基本原则是应当探求当事人内心真实意思。在智能合约与书面合约的理解存在争议时,可以类推适用《民法典》第466条新增的规定:“当事人对合同条款的理解有争议的,应当依据本法第一百四十二条第一款的规定,确定争议条款的含义。合同文本采用两种以上文字订立并约定具有同等效力的,对各文本使用的词句推定具有相同含义。各文本使用的词句不一致的,应当根据合同的相关条款、性质、目的以及诚信原则等予以解释。”智能合约的程序语言与自然语言其实与采用多种文字订立的合同并无实质区别,因此通过类推适用的方法可为智能合约的解释提供规范基础。美国亚利桑那州和内华达州的法规明确将智能合约视为一种“书面文件”也为此种路径提供了正当性支撑。
此外,智能合约并非能完全避开争议,在智能合约的争议解决上,需要在虚拟世界与现实世界之间往返。其中最为重要的议题至少包括两个方面:第一,由何方来承担代码错误或代码漏洞的举证责任?若该程序代码的设计是双方共同委托或者经充分协商后由一方设计的,按照谁主张谁举证的举证责任一般规则处理即可;但若该程序代码仅由一方设计,作为服务接受方仅表示同意,此种情形下因信息的高度不对称,应当实现举证责任倒置;第二,在智能合约代码存在疑义时如何解释?前文已述,若同时存在自然语言合同和智能合约时的解释路径。但若仅存的智能合约便存在疑义时可以参照格式条款的处理方式,我国台湾地区《消费者保护法》第11条第2项规定:“定型化契约条款如有疑义时,应为有利于消费者之解释。”德国民法典第307条直接规定该条款无效。径行认定该疑义条款无效似有处理过当之嫌,按照罗马法谚“有疑义就为表意者不利之解释”的解释路径较为合理。值得提出的是,智能合约的执行结果可能会和当事人的本意有出入,但至少可以说该种执行是最接近预设的合约之履行。
为减少当事人的本意与程序代码之间发生的龃龉,本文提供两种可能的解决路径:(1)在智能合约中直接设置恢复条款,例如“若智能合约出现漏洞或错误时,智能合约恢复到执行前状态”或者“通过参与人的合意可允许嵌入新的合约”。从The DAO事件中可以看出,智能合约一旦触发执行条件,并非完全不可撤销或停止,The DAO事件就采取“硬分叉”的方式避免了黑客转移The DAO合约里的资金,简单来讲,就是通过一段新的程序代码来改变原合约“运行轨迹”,将The DAO合约里的所有资金以及被黑客控制的资金转移到一个新的合约,该合约只有一个功能:退回The DAO众筹参与人的以太币;(2)为减少智能合约的漏洞的出现,就智能合约的结构达成某种程度的共识而形成标准化的智能合约能简化协商和设计成本、提高交易效率,更为重要的是减少智能合约的争议。智能合约的标准化并非体现在内容的同质性而是体现在技术设计上,包括如何将合同内容转换为代码,以及如何设计触发合约执行条款等。IEEE也宣布了为智能合约开发“技术法律”标准的计划。
当一方要求另一方履行合同时,可能会出现另一方恶意制造交易障碍的情况。例如,在涉及自动付款机制的智能合约中,如果一方关闭了从中提取资金的银行账户,而另一方的义务却在持续履行,则该方可能会要求强制履行付款义务。此时,主张履行合同的一方需要明确知道另一方的具体身份。在私有区块链中,互相知晓身份有可能成为常态。但在公共区块链中,除了用户名之外,各方的现实身份通常互不知悉。为了规避因身份不明确而无法寻求权利救济的风险,合约各方可将自动化的第三方验证工具嵌入到智能合约中。例如对合约方进行背景调查和位置记录,并将调查结果自动提供给合约参与方,因此可以完全透明地了解参与方主体信息,以便可以实际提起诉讼。事实上,该项举措其实目前在区块链技术发展过程中已经得到监管部门的重视,比如比特币近年来也被要求实名认证。但是问题在于,因为智能合约的特征之一是要信任系统而不是个人,使用区块链(至少是公共区块链)的身份验证可能会阻止一些事项使用智能合约。
(二)外部关系:提供商与合约方之间的法律关系
智能合约的设计具有较高的技术要求,通常会将设计任务委托给第三方专业机构。因第三方机构设计智能合约存在程式漏洞或者代码错误造成合约方损失应当如何处理?首先,需要明确委托合同是共同委托还是单方委托,若由智能合约各方共同委托第三方开发设计,智能合约各方应当公平分担损失,亦可共同向第三方直接主张违约责任。若由当事人单方委托,则涉及《民法典》第593条的规定:“当事人一方因第三人的原因造成违约的,应当依法向对方承担违约责任。当事人一方和第三人之间的纠纷,依照法律规定或者按照约定处理。”针对该条的第三人的范围学界素有争议,但从历史解释的角度看,《<中华人民共和国合同法>立法方案》第八章第一节“一般规定”中明确,该第三人主要包括配件供应人、分包人、受托履行义务人等。由此可以看出,该第三人应当为与当事人密切相关的履行辅助人,承担该项设计任务的第三人可以归列此本条“第三人”。但是问题并非止步于此,若委托方因第三人的原因造成违约,因其与第三方存在合同关系,其权利能得到保障;但若非委托方因该第三方的原因造成违约的,由于该第三方可以视作合约一方(委托方)的履行辅助人,该违约可视作委托方的原因而类推适用《民法典》第605条“因买受人的原因致使标的物未按照约定的期限交付的,买受人应当自违反约定时起承担标的物毁损、灭失的风险”的规定由该方当事人自担风险即可。
另一方面,如果发生第三人入侵智能合约运行程序,破坏智能合约的运行生态,转移智能合约资金,该第三人及智能合约编译人员承担的责任为何?在智能合约的实际应用中,不乏黑客恶意侵入智能合约运行程序甚至转移资金的案例,影响较大的诸如The DAO事件、Coin Dash事件、Enigma事件、Tether黑客事件、Nice Hash事件、币安事件。第三人恶意侵入计算机系统,可归属刑事责任范畴,在此不论。关键在于智能合约编译主体的民事责任。在这种情况下,如果合约方从代码开发人员获得了安全性的保证,则可以向代码开发人员寻求因违反合同的违约救济。
智能合约改变了传统交易中的信任模式,智能合约不需要交易双方互相信任,甚至不知道交易对手的身份,智能合约的信任模式是一种“机器式契约信任”。在降低协商成本、提升交易效率的同时,却也埋下了交易风险的种子。合约参与方发生争议时,无法确定交易对手的身份信息便无法向其主张权利。用户此时可以诉诸于该交易过程中唯一身份明确的实体:区块链或智能合约平台提供商。其规范依据在于《最高人民法院关于审理食品药品纠纷案件适用法律若干问题的规定》第9条规定:“消费者通过网络交易平台购买食品、药品遭受损害,网络交易平台提供者不能提供食品、药品的生产者或销售者的真实名称、地址与有效联系方式,消费者请求网络交易平台提供者承担责任的,人民法院应予支持。网络交易平台提供者承担赔偿责任后,向生产者或者销售者行使追偿权的,人民法院应予支持。网络交易平台提供者知道或者应当知道食品、药品的生产者、销售者利用其平台侵害消费者合法权益,未采取必要措施,给消费者造成损害,消费者要求其与生产者、销售者承担连带责任的,人民法院应予支持。”但是,用户针对区块链或智能合约平台提供商的追索权可能受到与提供商之间的合同实体条款的限制。也即,提供商会通过合同免除自己的责任。例如,以太坊提供了包括支付等许多区块链应用程序。支付软件遵循该程序中各种软件组成的许可协议,其中包括:“除在编写版权持有人和/或其他方时另有规定外,‘ASIS’程序均不提供任何形式的保证,无论是明示或暗示的保证,包括但不限于对商业目的和适用性的默示保证。有关程序质量和性能的全部风险由您承担。如果因与软件或软件的使用或其他方式产生的与之有关的合同、侵权行为,持有人应对任何索赔、损害或其他责任承担责任。”该许可条款试图免除因使用该软件而引起的所有责任,从而使用户几乎没有对以太坊的索赔权。
结语
智能合约已经或将会极大地影响既有法律体系,这种影响未必直接体现为对既有规则的更改。在技术迅速更新、突破的时代,法律如何与技术融合成为一项全新的议题。法律能否承受技术革新带来的挑战与冲击正是法律人需要直面的问题。在研究全新技术所涉法律问题时,不可避免地需要涉足该技术领域的知识,否则便可谓是“门外汉”自说自话。研究科技法律的国外论著,鲜见直接讨论法律问题者。以本文研究的基于区块链技术的智能合约为例,首先需要对智能合约的运行机理、本质属性等技术层面的问题明确,进而选择从民法的视角进行观察分析。
虽然本文对智能合约的固有“缺陷”予以阐释,但并不妨碍其广阔的发展前景,尤其是大规模交易、标准化交易中具有无可比拟的优越性。未来民法学界宜紧跟智能合约技术发展动态和法律需求,从跨学科的视角为智能合约技术发展提供法律保障!
免责声明:
上文内容仅供天风证券股份有限公司(以下简称“本公司”)的客户使用。本公司不会因为任何机构或个人接收到上文而视其为本公司的当然客户。上文基于已公开的资料或信息撰写,但本公司不保证该等信息及资料的完整性、准确性。客户不应将上文为作出其投资决策的唯一参考因素,亦不应认为上文可以取代客户自身的投资判断与决策。客户应自主作出投资决策并自行承担投资风险。在任何情况下,上文中的信息或所表述的意见均不构成对任何人的投资建议。在任何情况下,本公司不对任何人因使用本文中的任何内容所引致的任何损失负任何责任。市场有风险,投资需谨慎。