(网经社讯)不夸张地说,智能合约是会颠覆现有合同立法和实践的区块链新应用,但区块链智能合约到底是怎么一回事,很多法律人云里雾里的,笔者从应用场景、部署执行和代码示例三个方面,层层深入做个介绍,研究这些的目的在于分析智能合约对合同法律实务的影响,对此我的个人观点附在最后。
一、应用场景
智能合约可以简单理解为能够自动履行的合约,日常生活中最普及的智能合约当属自动贩售机,就像郭德纲在相声里说的:“一放钱就出东西,一放钱就出东西,太神奇了”。
基于区块链的智能合约又有什么与众不同之处呢?接下来就是重点了:区块链去中心化的记账方式使得合约的自动履行变的成本更低、更容易实施。价值区块链本身就被广泛用于各种电子货币,可以将合约履行中的支付环节无缝嵌入,在确保安全的前提下,进一步降低交易成本,妥妥的按照经济规律办事。
如果不是很理解,我们举几个例子。生活中最令人头疼的交易之一就是买房,下面是一手房买卖的流程图,买过房子的人都知道,这个流程也不过是简化版,实际需要办的手续和环节比这还要繁琐。
为什么会出现这种情况?因为交易双方谁也信不过谁,因此需要引入房产中介、银行、征信中心、房管局、公证处等若干个中心化的机构来相互印证和背书。
那么如果把房产放到区块链上交易呢,理论上讲,就可以跳过这些中间环节,直接买卖,因为房产的权利信息和付款信息以及过户信息全部留存在区块链上,所有节点都记录了这笔交易的备份。
然后合约程序会不断核查买家是否已经把购房款存放到约定的钱包里(如果需要贷款,那么就是买家和银行达成另个区块链智能合约)。当钱包里的金额满足合约中约定的数量,合约程序会自动将钱转给开发商,同时自动将产权信息变更到买家名下并向所有节点广播,交易完成。
当然,这种复杂的交易场景目前还无法实现,举这个例子就是想让大家看到未来的合约形态,就好像之前使用金属货币的时代也无法想象可以用纸币支付,直到各类基础设施完善之后便习以为常了。
再说个简单点的应用场景,是笔者从释了雯所写的《智能合约是什么》一文中看到的,讲的是买飞机延误险的例子,投保乘客信息、航班延误险和航班实时动态均以智能合约的形式存储在区块链上,一旦航班延符合赔付标准,赔偿款将自动划账到投保乘客账户,理赔过程没有人工参与,避免争论和纠纷。
两个例子涉及到的场景一个复杂一个简单一些,但是可以推而广之到几乎所有的交易场景中去。而且,不难发现,区块链智能合约应用能否落地的关键,在于人们把多少资产数据和行为数据放到链上去,就像前面的例子,投保乘客信息、航班延误险和航班实时动态这些数据必须放到区块链上,智能合约才有自动执行的可能。
二、部署执行
基于区块链的智能合约的构建及执行分为如下步骤:
1、智能合约制定:由区块链内的两个以上用户共同制定一份智能合约,为此需要如下动作:
起草并同意一份代码版的智能合约;
对“合约使用到的外部数据源、纠纷解决途径”等问题达成共识;
代码审计和测试,确信不存在后门或者恶意漏洞。测试运行结果是否正确;
同意并部署到区块链上。
2、智能合约上链:智能合约通过P2P网络扩散到每个节点,并存入区块链。部署智能合约同样要交付费用,以便矿工有动力为合约提供记账区块。以太坊是目前公认对智能合约提供最完善支持的区块链,部署运行一段智能合约时,以太坊会收取费用,直到你的智能合约运行完毕。
3、智能合约执行:智能合约定期进行自动机状态检查,将满足条件的事务进行验证,达成共识后自动执行并通知用户。
三、代码示例
下面是太坊官方的一个示例合约,实现的功能就是在区块链上存储一个数字,并能够读取出来,存储的数字在实际应用场景中可以代表“钱”、“房门密钥”、“软件安装许可码”、“门票二维码”等等,因此这段代码类似一个将虚拟财产寄存和交付的合约雏形。代码如下:
contract SimpleStorage {//存取合约程序开始
uint storedData; //定义一个存储的数据
function set(uint x) {
storedData = x; // 通过set函数存储一个数字在X变量中(例如手工输入)
}
function get() constant returns (uint retVal) {
return storedData; //通过 get函数从X变量中读取这个数字出来
}
}//存取合约程序结束
启动以太坊私有链Geth和Ethereum-Wallet图形界面,将代码复制到合约界面中,按照流程支付部署费用(gas价格,以太币计)即可发布,运行结果正如在下图所示,执行界面中输入选择set函数,并输入一个数值(1234),最终的结果就是在get函数的retVal一栏看到对应的值(1234)。
本程序代码和界面示例均选取自中国人民保险集团李赫撰写的《区块链开发(二)部署并运行第一个以太坊智能合约》一文,了解更多可以查看全文。
四、智能合约对合同法律实务的影响
1、尽管本文只是初步的在三个层面对区块链智能合约做了介绍,但可以看出接下来合同律师要做的是结合代码和区块链的工作原理出发去设计合同(程序),而不仅仅是从条款本身去设计;
2、大量的合同都会有第三方做成标准的模版发布到链上供调用,但是会有诸多复杂、针对性的、个性化的智能需要单独去制作,这部分工作为律师提供了发挥的空间,届时律师有点像是产品经理的角色,给程序员提需求并设计合约框架;
3、合同审查将被合同审计所取代,这个环节会有律师参与的空间,说不定重要的合同还需要律师出具法律意见,但律师要看懂这些合同的前提,是技术人员把这些代码翻译成律师能看明白的表述,因此,未来法律人对技术人员的依赖度会非常高;
4、区块链智能合约虽然是自动执行,但履行完毕的合同不意味着一定没有纠纷,仍然存在外部数据源错误等原因导致的合同纠纷,但显然纠纷出现频率会大大降低(设计不成熟或者审计不通过的合同很难通过区块链大规模部署应用),未来不会与那么多合同纠纷诉讼了,就算有,解决的渠道也不一定在法院(去中心化)。
张延来律师介绍:
网经社电子商务研究中心高级特约研究员、浙江垦丁律师事务所主任律师、专利代理人资格、中国政法大学实践导师、杭州仲裁委员会仲裁员、垦丁网络法学院创始人
工作经历:
浙江大学法律硕士,具有法律和计算机双专业学科背景,执业以来完全专注于互联网法律实务工作,担任数十家知名一线互联网公司常年法律顾问,并代理多个代表性互联网诉讼案件。
立法与学术
曾多次参加网络相关立法工作,是国家工商总局《网络交易管理办法》、杭州市《网络交易管理办法》立法小组成员,曾多次参与中国《电子商务法》的立法研讨工作。
个人专著《法眼电商》《网络法战记笔记》已由法律出版社出版。