智能合约能够实现相关业务的全数字化流程,运行于去中心化区块链网络上可以保障合约内容无法篡改,并实现商业流程全自动化。有关智能合约法律效力的讨论有很多,但是我们希望从上述相对简单的以太坊智能合约实例出发,以传统合同法视角来分析智能合约法律效力问题。
一、什么是智能合约
根据以太坊白皮书,智能合约是指根据事先任意制订的规则来自动转移数字资产的系统。这是符合以太坊环境特点的高度概括。美国统一法委员会(简称“ULC”)认为智能合约是预设条件满足的时候,区块链内状态发生改变的计算机代码。根据正在征求意见的上海市地方标准《区块链技术安全通用规范》,智能合约是指由事件驱动的、具有状态的、运行在可复制的共享区块链数据账本上的一段计算机代码,是现实世界中合约和规则的算法实现。
通过综合比较上述定义,我们可以从以下几个方面来分析智能合约的特点。
一是智能合约表现形式。智能合约表现形式是一段计算机代码。
二是智能合约内容。智能合约的内容是算法,这种算法通过代码体现出来。
三是智能合约性质。算法反映的是现实世界的合约和规则。
四是智能合约运行环境。我们通常说的智能合约运行在区块链账本上。虽然智能合约提出时尚没有产生区块链技术形式,但其真正引起广泛关注和得到应用是在区块链上。通过可验证的形式运行。
五是智能合约触发。智能合约的运行,是由相关事件驱动的,通过事件产生一定的触发条件,而运行智能合约。
六是智能合约运行是对链上状态的改变。通过运行智能合约,链上状态得以改,智能合约对于区块链上状态改变是公开可见的。
七是智能合约的目的是实现数字资产交易。当然数字资产有很多形式,既有纯线上也有的直接与线下实物资产或权益相联系。
二、智能合约的成立与生效
我国《民法典》第四百六十九条规定了合同具体形式,“当事人订立合同,可以采用书面形式、口头形式或者其他形式。书面形式是合同书、信件、电报、电传、传真等可以有形地表现所载内容的形式。以电子数据交换、电子邮件等方式能够有形地表现所载内容,并可以随时调取查用的数据电文,视为书面形式。”《民法典》第五百零二条就合同成立和生效问题规定,“依法成立的合同,自成立时生效,但是法律另有规定或者当事人另有约定的除外。”
我国2019年修订后的《电子签名法》第五条对于电子数据形式作出规定,“符合下列条件的数据电文,视为满足法律、法规规定的原件形式要求: (一)能够有效地表现所载内容并可供随时调取查用; (二)能够可靠地保证自最终形成时起,内容保持完整、未被更改。但是,在数据电文上增加背书以及数据交换、储存和显示过程中发生的形式变化不影响数据电文的完整性。”第六条对于电子数据保存要求作出规定,“符合下列条件的数据电文,视为满足法律、法规规定的文件保存要求: (一)能够有效地表现所载内容并可供随时调取查用; (二)数据电文的格式与其生成、发送或者接收时的格式相同,或者格式不相同但是能够准确表现原来生成、发送或者接收的内容; (三)能够识别数据电文的发件人、收件人以及发送、接收的时间。”
基于以上法律规定,以太坊区块链上智能合约符合上述有关数据形式和数据保存的要求。我们可以进一步分析智能合约中与合同成立与生效的相关要素。
智能合约合同当事人。本案例中涉及到A 和B两个当事人,当然这里A和B某种程度上是两个代表主体的变量,具体来说可以是任何自然人甚至是组织机构。他们通过接入账户进行数字签名参与智能合同运行。
智能合约符合合同所要求的法定形式。从以太坊智能合约的形式来看,一定程度上是属于电子数据交换形式在以在坊区块链上有形表面内容,可以随时调取查用,因此符合书面的要求。
智能合约权利义务。这里的权利义务就是,“A可以每天最多提现X个币,B每天最多Y个,A和B一起可以随意提取,A可以停掉B的提现权”。
智能合约要约与承诺如何体现?由于智能合约是运行于区块链上供众多用户使用,我们可以把它看成是约定俗成的格式条款,将自己的账户接入该合约、进行数字签名则意味着接受该合约的权利义务。我们可以把代码部署视为公开要约,而接入账户进行数字签名则成为一种承诺。
三、智能合约的履行
民法典第五百零九条对于合同履行规定,“当事人应当按照约定全面履行自己的义务。当事人应当遵循诚信原则,根据合同的性质、目的和交易习惯履行通知、协助、保密等义务。当事人在履行合同过程中,应当避免浪费资源、污染环境和破坏生态。”在上述以太坊实例中,一旦合约运行,由于双方权利义务已经通过代码事先固定,且在代码运行也就是合同履行中并不需要主观判断或自由裁量权,一旦条件触发开始后,将自动按照程序运行。
上述例子是比较简单的。当我们试图将智能合约应用到更广泛的领域如线下实物资产的确权和权利转移时,可能需要从法律和技术两个方面来加以约束和规范,一方面从法律上依据立法或有关各方明确约定确定基于智能合约所完成的相关线下资产确权和权利转移的法律效力,另一方面从技术上保证这种确权和权利转移能够低成本有效地保护相关当事人的权益。比如将某房产的租赁权数字化以后,要通过基础协议确定该数字化租赁权及其转移的法律效力,另一方面通过技术手段包括如门锁智能化并与区块链数字资产私钥控制相结合让相关权益人通过私钥实现对租赁权的有效控制。
四、智能合约的法律效力
民法典第一百四十三条关于有效的民事法律行为的有效条件规定,“具备下列条件的民事法律行为有效:(一)行为人具有相应的民事行为能力;(二)意思表示真实;(三)不违反法律、行政法规的强制性规定,不违背公序良俗。”
在上述例子中,由于该智能合约是以公开源代码的形式部署于以太坊区块链中,其程序和运行结果是可以预见的,如有A和B两个将自己的账户接入并以数字签名形式运行智能合约,则意味着接受将预定的代码运行效果。因此,读取和了解该智能合约代码的过程,可以认为行为人据此推定具有相应的民事行为能力,而且意思表示真实的,除非有相反的证据足以推翻。而其权利义务不违法应该比较容易判断的。
五、智能合约相关法律责任
比较受到关注的与智能合约法律责任相关问题主要有因代码运行质量产生责任追究和争议管辖解决问题。
关于代码运行质量问题。虽然算法和逻辑已经确定,但上述智能合约仍然也有可能带来一定的风险,仍有可能因为代码运行质量问题使参与者导致不应有的损失。显然,尽管是开源代码,如果因为其开发者过错造成本应可以预见可以克服可以避免的代码漏洞而造成运行智能合约当事人非依据本人意志操作而产生的不应有的损失,相关责任方如代码开发者必须要承担相应的责任。当然有时候可能是基于作为智能合约运行环境的区块链平台的问题,有时候可能仅仅是合约本身漏洞,有时候可能是两者结合而产生的问题,需要具体问题具体分析。
另一方面,正如有些智能合约开发者所提醒,由于目前智能合约技术特点及基础设施、参与者知识技能水平等综合因素影响,参与智能合约的当事人都应当对其可能蕴含不可预知技术风险有清醒的认识。提交代码者以及准备运行代码者都可进行多方充分审计后再开展业务,即使如此,也存在一些不可预知的技术或操作风险,此时可以考虑引入保险机构,设立风控机制来降低风险,提前对不可预知技术风险的责任进行约定,愿意承担风险者理应得到更多补偿。
关于争议管辖问题。如果与智能合约相关问题产生争议了,应当如何确定司法管辖地区呢?德国耶拿大学国际私法系教授Giesela Rühl 表示:“智能合约与普通合约一样,都需要获得法律解释。因此,关键问题不是智能合约是否应该遵守法律,而是它们应该遵守什么样的法律。”特别是对于象以太坊这样的跨境运行的智能合约来说,要妥善解决智能合约纠纷显然尤为必要。
从逻辑上说,一方面智能合约相关争议需要从代码、合约部署、资产转移等链上问题来追究,另一方面也有很多国际私法方面的规则可以参照,比如当一个确定的被告人出现时其他人要追究他的责任,是否可以依据本国法来提起诉讼呢?根据EOS区块链社区提出的方案,有关资产被盗等链上争议,是可以通过EOS特别设立的仲裁机制由EOS社区产生的仲裁员依据相应程序来解决争议的,但是除此以外的其他案件争议和犯罪追究仍然需要配合线下的现实司法系统来解决。
当然由于共识机制不一样,要以太坊实行EOS类似的处理方案有一定难度(也并非不可能,当初DAO事件就让ETH回滚了),但是仍然提供了一个解决问题的思路。
六、智能合约与传统法律合约的衔接
很多人心里可能有不少想法,“你上面举的例子未免太简单,但现实生活中要得复杂得多,而且很多时候还可能需要人为参与”,这本质上是一个如何将传统法律合约与智能法律合约相衔接的问题。
根据我国民法典第四百七十条规定的合同示范文本内容,“合同一般包括下列条款,当事人名称住所、标的、数量、质量、价款或报酬、履行期限、地点和方式、违约责任、争议解决办法。”但是从具体操作角度业说,无非是行使权利、履行义务两大类操作条款,而其他条款可能是对操作对象、操作条件、操作方式以及责任追究等内容的说明。国际掉期和衍生品协会(ISDA)与国际律所Linklaters曾共同发布过一份文件,指出:“法律协议可以分成两个部分,一部分是操作性条款,另一部分是非操作性条款。”作如此区分的主要目的是,智能合约可以将绝大多数操作性条款包括履行结果甚至责任追究形式以计算机代码的形式表现出来,比如计算机代码可以表示“如果x发生则执行y”的布尔逻辑。
那么在衔接时需要哪些要素呢?首先,需要一个好的智能合约运行基础设施。这种基础设施包括区块链平台如以太坊来部署合约条款(即代码),并在满足条件的情况下执行合约。
另外在与产业结合紧密的区块链交易场景下可能还需要相关的去中心化身份系统以保证参与者的身份核实。其次,将传统法律合同要素改写成智能合约。通过相关软件工具结合传统工具将法律合同的关键内容编写成标准化的代码。有学者认为李嘉图合约是比尼克·萨博合约更适合产业级的推广和应用。
另外,还需要一个连接外部系统数据的预言机。预言机将链上智能合约连接至原生区块链以外的系统获取相关数据,包括互联网页web API、物联网和云端等链下数据流;银行、金融科技或其他区块链等任意支付系统。当然也包括输出数据,通过连接至第三方机构,向其输出交易元数据,以供监管、审计和分析。