李西臣
(西华大学知识产权学院/法学院 四川成都 610039)
智能合约是使用计算机系统自动执行合约的一串计算机代码。由于能够减少由当事人、第三方或其他交易工具而产生的交易成本,智能合约已在数字化程度高的金融领域如加密货币、众筹私人区块链等领域开始了较为深度的运用,目前正在向更广阔的领域延伸。2016 年,中国产业和信息科技部发布了官方白皮书《中国区块链科技和应用发展》。该白皮书指出:智能合约是区块链六大核心技术之一,并且是未来数字文明的重要基石。今天智能合约不仅冲击了传统金融服务,同时也使得传统的合同法面临着巨大的挑战。
智能合约这个概念最先由计算机科学家Nick Szabo 于1994 年提出:它是指由数据形式展现出来的参与当事人各方应当履行的一组承诺[1]。Alexander Savelyev 指出智能合约是一个能够自动执行的协议。Gideon Greenspan 认为智能合约是一系列的储存在区块链当中的代码,这些代码被区块链交易所驱动,它是在区块链的数据库当中可读可写的数据[2]。Loi Luu 等表示智能合约是一个储存在区块链当中的自治代理,作为创造当事人交易的一部分编码可以在区块链中产生合同[3]。Mark Giancaspro 认为智能合约是在预定的事件发生时,验证和执行其条件的一种计算机程序[4]。至今,关于智能合约定义的讨论还在继续,学术界尚未形成一个清晰的、有共识的法律定义。
民商法尤其是合同法是在漫长的人类社会产品、服务交换过程中逐步演化出的一套富含人类智慧、调整各类交易关系的交易规则。而智能合约却在一个与现实社会相平行的数字虚拟世界中生根发芽并蓬勃发展,当智能合约与经验社会相触碰、联系时,传统民商法仿佛看到一个具有魔力而又陌生的精灵。如何对智能合约及其引发的社会关系进行调整,是一项摆在法学理论界面前的急迫而又重要的议题。Alexander 认为,智能合约将导致如下问题,向传统合同法提出挑战:(1)智能合约并没有创造法律上的义务和责任;(2)智能合约不能够被某一方当事人所违反;(3)无效的同意不会影响智能合约的效力;(4)智能合约的本质决定了智能合约的平等性;(5)存在违法智能合约的可能性;(6)智能合约具有自制的特性[5]。Joshua发现存在纠正严重偏离法律的智能合同的可能性[6]。Karen 批评了基于区块链的智能合约。她认为,智能合约的技术特性忽视了人们利用合同作为社会资源管理工具管理他们社会关系的事实[7]。Mark 认为,不论是在大陆法系还是普通法系,智能合约的应用都会产生法律的可执行性问题[4]。然而,不管怎样,法律框架和政府规制都不得不考虑如何适应区块链和智能合约的发展这一重大问题[8]。
早在公元1 世纪希腊的一位工程师就设计出一款自动出水机,只要向该机器投入一枚硬币,该机器就能如约出一桶水。现代社会自动贩卖机的原理与2000 多年前自动出水机的原理如出一辙。许多学者认为自动贩卖机即为智能合约的原型。目前基于自动履约原理而设计的计算机交易系统被越来越广泛地运用到各类交易市场。如果仅从自动执行合约这个角度来看,智能合约并不是一件新鲜事物,但是从信任的提供方来看,智能合约与自动贩卖机就有了本质的天壤之别。自动贩卖机的提供、维护甚至停止都由卖方实施和决定,使用机器的买方只能选择要么相信提供机器的卖方,要么离开交易。也正是因为信任源自卖方和卖方提供的机器,能够自动履行的合约“施展才华”的空间因此也就相当受限。区块链的出现成为智能合约发展进程中的“拐点”,经过双方确认的智能合约一旦放进区块链将不能由任何一方“叫停”,改变了卖方可随时停止交易的格局。具有“防篡改”特性的区块链也为当事人提供了值得双方信任的计算机交易环境。至此,智能合约也就获得了可以快速发展的信任环境。
在熟人社会,各方主体具有相对方的各种信息,对相对方了解和熟悉,他们相互之间重复博弈,如果有主体做出欺骗等不诚信的行为,会受到惩罚或者在下一次博弈中处于不利的交易地位。同时,在熟人社会,各主体的信誉也会作为一种信息在熟人群体中广泛并反复流传,声誉机制的有效发挥降低了熟人之间不诚信行为发生的概率。然而,广泛交易的需求始终存在,如何满足潜在而巨大的交易需求?交易的“步伐”如何才能走出熟人社会的“魔圈”?陌生的交易对手突破基于熟人彼此熟悉的身份信任而重新寻觅到新的信任基础就成为交易能否成功的关键。最初尝试突破熟人社会丰富的信息资源与声誉的限制而发展出来的替代机制是:陌生的交易双方共同寻求一个熟悉的第三方作为交易的“桥梁”。第三方中介大体有三类:一是中介仅见证交易,对双方交易的真实性进行证明,如公证;二是撮合并见证交易,如居间服务;三是见证、增信并隔离信用风险,如商业银行。不论哪一种中介的功能,通过第三方激励陌生人交易仍然是基于对第三方身份的熟悉和信任,这种信任或来自于法律的授权、认可,或来自于日积月累形成的商业惯例的智慧。第三方中介虽然有多种功能,但陌生人交易实现的基本条件是交易的真实性不被否认,因此第三方见证使该交易公示、公信是最基础的功能。经过第三方的沟通,陌生人的交易得以走向更广阔的天地,但第三方机制运作毋庸置疑会带来成本增加或收益减少,如何使得交易向成本更低的帕累托改进的方向前行?区块链提供了技术之路,并真正实现了突破身份信任的质变。
区块链(blockchain)是一种按照时间顺序将数据区块(block)以顺序相连的方式组合成的一种链式(chain)数据结构。首先,分布式记账为从熟人记账向陌生人记账转变提供了可能。作为底层技术构架,区块链没有中心服务器,是分布式的云计算网络,它并不是由一个权威的中心记账,而是网络中的所有人都参与记账,对交易共同见证,可以防止中心作假和信息丢失。其次,区块链具有不可篡改性,从技术上确保记载信息具有公信力。已经形成共识、经过确认的数据形成区块与前面一个区块紧密相连,区块与区块之间环环相扣,如果要修改其中一个区块上的信息,则需要将该区块及其后所有区块的信息全部修改,一旦该区块之后已经形成6 个以上区块,从概率角度而言即几乎不能篡改。此特性使得区块链上的信息可信度高,能够形成公信力。再次,特殊的共识机制确保了即使是毫不相关的陌生人前来见证也不会出现“胡乱见证”“虚假见证”的情况,确保了见证信息的真实性。区块链的隐形共识(implicit consensus)使得其他节点可以隐形地接受或是拒绝前面随机选择出来的节点,一个节点如果想放进一个密码学上不正当的交易[9],由于参与见证的第三方人数众多,串谋的成本高,最终做出与事实相符的见证的概率也越高,因此该交易不会被纳入长期共识链①。最后,奖励机制激励陌生人前来见证,为陌生人见证交易提供动力。分布式记账让陌生人见证交易成为可能;不可篡改性保证陌生人见证的信息不可事后更改;共识机制从技术上确保陌生人见证的交易真实可靠。陌生人可以并能够来见证,但陌生人为什么要来见证?奖励机制解决了陌生人愿意前来“围观”见证的动力问题。陌生人缺乏激励就不会前来见证,因此目前成功运用区块链技术的比特币、以太坊都通过奖励代币和支付交易费的方式激励“矿工”争取记账权。
我国合同法意义上的合同是指平等民事主体之间设立、变更、终止民事权利义务关系的协议。合法的协议受到具有强制力作为后盾的法律的保障。协议是当事人协商一致并愿意共同受到该协议约束的合意。双方或多方当事人进行磋商之后通过要约和承诺达成合意。智能合约的提供方将计算机代码程序编写完毕后放到区块链中,可以视为提供方对不特定/特定对象的要约。用开源软件编写的智能合约在区块链环境中人人可见,若阅读了智能合约的主体认为合同中的约定可以接受,就可以决定参与该智能合约所约定的项目。参与方接受智能合约的约束构成对智能合约提供方的承诺。由此可见,智能合约虽然是一串计算机代码,但它内含了参与各方的权利、义务,参与方亦通过要约和承诺的方式达成了合意。然而也有学者认为智能合约作为一串计算机代码本身并没有给当事人提供法律意义上的权利、义务,之所以所有参与智能合约的当事人都会受到限制,实际上受到的是区块链蕴含的技术的约束。确实智能合约是虚拟世界的行为规则,通过计算机世界特有的“If…then…”结构安排各种行为及后果。如果这一切行为和后果都与现实社会无涉,那么智能合约并没有创造适用于真实世界的法律权利和义务。在通过法律实现社会控制的几千年的人类文明史中,法律发挥功能的场景被预设为调整真实人类社会中的各种各样的社会关系。然而今天虚拟世界与现实社会并行并飞速发展,当二者互不搭界,虚拟世界中的角色扮演、“if…then…”设定仿佛更像是停留在游戏层面,但如果二者发生接触、交互,现实社会的金融交易放到区块链中以智能合约展示,募集到的虚拟资金又转换为现实法币用于项目运营,那么对虚拟世界“照顾不周”的法律不应该对此“视而不见”。因此智能合约应该进入合同法的视野并受其调整,经法律评价认为是合法的也应受到法律的保护。但是作为一串由计算机系统自动执行的代码,智能合约向传统合同法提出了巨大挑战。
智能合约是“一锤定终身”,当事人难以变更各方的权利义务。在智能合约中,要设立民事权利义务关系是显而易见的。然而正如不完备契约理论所揭示的:由于存在有限理性、信息的不完全性、交易事项本身的不确定性以及交易成本等问题,不完备合约是一种常态。智能合约即使在技术设计、程序逻辑上不出现错误或漏洞,也不可能完备无缺。当交易事项、交易环境发生变化,交易当事人最理性、利益最大化的抉择或许就是变更原合同或签订补充协议,但这对于一旦写定就必须自动执行完毕的智能合约而言毫无疑问构成了挑战。智能合约的自动执行给交易双方以明确的预期,交易双方均不得否认和不予履行。区块链没有一个中心点,更没有一个经过授权的中心权威。区块链协议的制作者同样不能够控制区块链以及基于区块链的交易。当智能合约的计算机代码分布在开源软件上,那么任何对此感兴趣的人都可以来审阅,但是只有当绝大多数的参与者都接受的时候,修改智能合约的代码才能实现。每一个区块都有时间戳,与前一个区块相连,一旦这个区块已经处于区块链中,那么只有当超过50%的区块链算力同意之后,修改信息才会被接纳,在统计学意义上这几乎不能实现。然而,平等当事人之间后续协商的需求始终存在,因此如何在智能合约的技术上进行结构体系的创新,使得智能合约更“智能”或许是计算机专家下一步值得研究的课题。
同时,智能合约“一旦开弓,没有回头箭”,唯有执行完毕这一条终止通道,当事人难以以其他途径终止合约。智能合约一旦上线就只能是因合同目的的实现、合同履行完毕才终止,但是我国《合同法》同样规定不可归责于债务人的履行不能抵销、更改、免除、混同等都是法定的合同终止原因。如果智能合约的当事人没有履行完合约,但在现实世界出现了其他合同可以终止的法定原因,那么“法律如何认定该智能合约是否终止”以及“法律认定智能合约应终止又当如何现实地终止”这些问题就摆在了理论界和实务界的面前。
合同自由原则下,当事人可以缔结任何合同,但并不是所有的合同都会受到国家法律的保护,合同本身会受到法律的评价。基于这个理念,我国《合同法》设计了“合同的成立”与“合同的生效”两套制度。经过要约、承诺后合同成立,但合同成立后并不必然生效,合同所具有的法律效力是法律所赋予的。因此,智能合约即使是双方真实意思的表示,也须经过法律评价才能具有法律效力。我国《合同法》原则上采用表示主义,通常在合同成立时合同即产生效力。但是如果出现欺诈、胁迫、恶意串通、以合法形式掩盖非法目的、重大误解、显失公平等情况,《合同法》又采用了意思主义,如果当事人的外在表示与内心意思不一致会出现影响合同效力的后果,合同可能出现无效、可变更或可撤销的情况[10]。
几乎在所有的法律体系中,对合同效力的评价是法院、仲裁委作为司法裁判介入纠纷解决做出裁判的重要理由和基础。对于区块链中的智能合约,当事人一旦进入合约,合约将自动执行至合约履行完毕。智能合约中是否会出现当事人意思表示不一致?如果存在不一致并获得否定的法律评价,对于一项自动执行的合约又当如何处置?当发生在虚拟世界的智能合约对现实社会中的人、物、事作出安排时,合同法自当对其进行评价,但合同效力制度对由技术保障执行的智能合约发挥作用在当前似乎存在困难。
1. 智能合约存在法律否定评价的潜在因子
智能合约的特性使得合约相对方意思表示不真实的可能性增加。第一,智能合约往往由一方提供,一旦进入区块链,实际上将成为反复适用的格式条款。而我国合同法对格式条款相对方的权利保护有着相应的制度安排,如果智能合约中的格式条款出现提供方“免除其责任、加重对方责任、排除对方主要权利的”,很可能会被法律评价认定为无效。第二,计算机代码不易为普通人所识别和理解,智能合约的相对方容易陷入意思表示不真实的状态。作为智能合约表现形式的计算机代码属于计算机语言,或者说是计算机能够识别的信号,该信号体系与自然语言存在显著差异,不易为普通人所识别和理解。根据我国合同法的规定,合同书面形式包括数据电文,“数据电文(包括电报、电传、传真、电子数据交换和电子邮件)即通过电子手段形成有关合同内容的各种信息等可以有形地表现所载内容的形式”[11]。数据电文虽然以数据介质作为载体,但表现出来的合同内容的形式仍是自然语言。但计算机代码并不等同于数据电文,智能合约的相对方通常不熟悉计算机代码,在不能充分理解合约内容的情况下,合约相对人容易出现重大误解等意思表示不真实的情况。
2. 难以对被违法使用的智能合约追责
作为一串计算机代码的智能合约,本身并不能识别合法事项和非法事项,其处理非法事项的方式与处理合法事项的方式完全一样,因此在比特币、区块链、智能合约等新技术领域确实存在潜在的违法使用问题。在不少国家,使用比特币本身并不违法,但使用比特币洗钱和进行金融恐怖主义活动就成为犯罪。这类犯罪利用比特币的匿名性使用比特币对违法行为进行结算从而达到掩盖违法行为的目的。以设定特定的交易事项“攻击特定网站”为例,在以太坊环境下,由于可以使用智能合约募集资金并且智能合约还可以控制资金的走向,只有在完成指定的任务“攻击特定的网站”并经密码学验证后,资金才能转移支付至特定人。很明显这样的合约内容经过法律评价会被确认为违法并自始无效,但是智能合约会由计算机代码自动执行。如果智能合约所涉及的交易已经进入刑事领域,那么法律会对此进行追究。然而唯一能做的却也只是先挖出匿名交易背后的真实身份,而真实交易者的“浮出”也只能是当其或关联方与现实世界发生交易时才能出现线索。
再以“以太坊”为例,任何人只要支付了相应费用就可以在虚拟世界将智能合约上传,从而建立一个以太坊合约。智能合约可以连接交易主体的资金账户,在满足特定条件下调用程序里面开放的应用编程接口,实现款项的收发。发起者如果众筹一个项目,出现项目虚假、在智能合约约定项目条件成立前归集并转移资金等情形,参与众筹的投资者极大可能未能识别项目中的欺诈从而给自己造成损失。智能合约如果被确认为无效或被撤销后,依据合同法的规定,项目发起方应当返还因合同取得的财产或折价补偿、赔偿损失,但是合同效力的判定无法在产生纠纷的当事人之间产生,需要经过法院的裁判才能最终定夺。然而智能合约的效力纠纷进入司法程序存在障碍。众筹项目的投资人可以用“私钥”证明其是某个地址、某个账户的持有人,是合格的原告,但是区块链具有“匿名性”,虽然账户、地址在区块链中显而易见,除非该用户与真实世界发生交集,如果只是在虚拟世界自给自足将无法明确众筹项目的发起人到底是谁,再加上“混币”“环形签名”技术的运用[9],满足立案条件之一的“有明确的被告”将十分困难。另外,智能合约即使被认定为无效或可变更、可撤销,对于一项已经履行完毕的智能合约,如何实现财产返还、折价补偿或赔偿损失都将面临困难。
有侵害必有救济,无救济即无权利。作为观念、制度存在的权利在社会生活中遭到否定,不仅是对某种资格或利益的否定,更是对权利制度合法性的否定。区块链基础上的智能合约运用密码学、陌生人的共识机制确保交易的安全和自动执行,寄望于事前的技术部署保护交易各方的合法权利。
具有碰撞阻力、隐秘性、谜题友好特性的密码学哈希函数及安全哈希算法256 能够对区块链的安全和交易信息的安全起到保障作用。区块链中的每一个区块都包括区块头和区块主体,区块头又包含版本号、父区块哈希值、Merkle 根、时间戳、难度值和随机数。父区块哈希值确保每个区块与前一个区块相连,通过这个值每个区块才首尾相连组成区块链。区块主体中所有交易的哈希值再逐级两两哈希计算出Merkle 根,验证每一笔交易是否在该区块中存在。哈希函数运算具有单向性,即输入数据得到哈希值的正向运算十分容易,但由哈希值逆向运算得出数据则可以视为不可能。另外,陌生人间的共识机制能够在概率统计的意义上使得诚实的节点做出真实的交易记录。
智能合约明确的“if…then…”机制的设计旨在保障交易一定会自动执行。所有围绕安全、可信、自动执行的智能合约机制都是事前将各种因素考虑入其中的预先安排,技术的逻辑是合约最终会执行,如果未被执行,也一定是条件尚不具备。因此在虚拟世界区块链基础上的智能合约设计架构中根本不存在违约责任、损害赔偿等事后救济制度的安排,自我执行的技术实际上是一系列事前预防性的安全措施。然而我们并不能仅仅依靠技术方案以解决交易安全、当事人权益保障的问题,而应当将人类组织之力与科技方式之道相结合,科技的执行机制并不能替代警察和法院。
科技的事前预防保障措施有可能减少但并不能完全阻止或消灭风险或损失的发生,尤其是智能合约还可能存在漏洞等技术风险,一旦发生损害,对受损方权利保障的事后救济制度应当具备供受损方选择使用。然而重在事前预防的科技解决方案并没有将事后救济放进策略集,造成智能合约在履行过程中出现漏洞、被攻击或严重不公平时权利被损害者难以寻求救济。2016 年6 月17 日,众筹超过1.5 亿美元的分布式自治组织The DAO 被攻击,正是由于其智能合约设计存在“递归调用函数”以及“DAO 资产分离后避免从The DAO 资产池中销毁”两个漏洞,攻击者重复利用自己的DAO 资产来不断地从The DAO 项目的资产池中分离DAO 资产给自己,使得大量的投资者权利受损。由于缺乏事后救济制度,The DAO 团队不得不启动临时紧急会议商讨对策,最后是以“软分叉”将从块高度1760000 开始把任何与The DAO 和child DAO 相关的交易认作无效交易[12]。
智能合约这个“精灵”在极具想象力的虚拟空间里四处舞蹈,她的活动受到计算机世界技术规则的限制,在这个领域里“0”和“1”代码一清二楚,非黑即白的问题一目了然,但是这个世界目前尚不擅长正义、公平等价值的判断以及基于其上的法律效力评价,困于模糊而稳定状态的处理以及权利的事后救济。
传统民商法经过长达几千年的演进,是社会多方反复、充分博弈的结果,其对各种场景和情形做出了制度安排,表达了人们对法律价值的信仰和诉求。虽然社会创新层出不穷,对民商法的挑战和冲突从未停止,但汇集了人类智慧的民商法已经是一套精致、灵活、开放的体系,在适应变革中也发展出了一套动态均衡博弈的机制,有关交易的行为都很好地处于民商法的控制之下。
当智能合约从虚拟世界“探出头脚”到现实社会“初试身手”,当现实社会的交易主体和交易事项进入虚拟空间再续交易时,虚拟世界的技术规则和现实社会的法律制度发生了世纪碰撞。从金融科技的发展势头推测,区块链、智能合约的运用场景将越来越多,现实生活中的交易将越来越多地登上智能合约这个舞台。应对当前合同法面临的挑战需要探讨的首要法理问题应当是“虚拟世界技术规则与现实社会合同法律制度的冲突与平衡”这个命题,应当明确虚拟世界的行为规则有哪些以及有什么特性、其与合同法的冲突表现和原因、平衡双方冲突的思路和方式有哪些。
1. 智能合约为合同法的实施设计技术平台
基于区块链的智能合约具有分布式、去中心化、开源的特点,蕴含了哈耶克所论述的“自由社会”的自发、自治、民主思想。从精神内核观之,区块链智能合约尊重个人权利,合约的自动执行亦是对承诺的义务必定执行、权利能够实现的最佳体现。但当事人意思与表示不一致、技术风险造成损失的现实性等都与区块链智能合约所追求的权利尊重相去甚远。智能合约除了在自动执行上“智能”之外,还应该在效力评价、保护与救济合法权益等方面更为“智能”。智能合约所面临的前述困境,让具有丰富经验和成熟系统做法的合同法律制度来应对是有效和节约成本的明智之举。因此在区块链智能合约的今后发展方向上,应当创设技术平台给合同法的实施留出空间。
2. 法律科技化,为合同法插上科技的翅膀
智能合约自动执行依靠的是技术的力量,随着资产的数字化范围扩大、程度加深,合同标的物可以愈加方便地在数字世界直接通过划转、变更过户等方式执行。合同法欲发挥法律效力评价、权利救济机制也应当用科技武装自己,将智能合约置于势力范围之内,用科技的通道进入虚拟世界预留的法律实施技术平台,用技术的方法阻断获得法律否定评价的智能合约,用科技的力量挽回和补偿受害者的损失。科技是中性的,既能为虚拟世界智能合约所运用,亦能为合同法律制度在数字世界发挥功能所采纳。
注释:
① 见证交易需要确认“交易内容是否正确”和“谁来记账”两件事情。以比特币系统为例,共识机制通过比拼计算能力来进行,谁能在最短的时间内完成具有一定目标难度的hash 散列值的计算,谁就获得这个记账权。在hash 值的求解过程中,必须输入交易信息,经过运算得出的结果同样会经过其他“矿工”的运算验证,你所播报的信息只有经过其他矿工的认可才能被确认,这个证伪的过程确保记账的信息是正确的。因此如果对交易内容信息作假,在概率上难以得到其他矿工的验证,自己也失去获得奖励和手续费的机会。