戳蓝色字“
币圈邦德
”关注我们哟
!
让我们假设一个场景。
老王有意以100万RMB向老张买老张家位于区块链村的大别墅,老王表示一定在十天内全额付款。老张提前把房子的密码锁上传到区块链服务器上,在约定的十天里,服务器会不断核查老王是否已经把100万RMB存放到约定的钱包里。
一旦发现老王的钱包里有确实存在的100万,服务器将会自动将老王的钱转给老张的钱,同一时间更改老张别墅的密钥只对老王开放,并且自动完成区块链村大别墅的产权登记变更手续。
这种通过程序自动执行的工具,被称作智能合约
。
比特币核心(Bitcoin Core)的开发者Peter Todd于2014年12月在其推特上写到:“对智能合约讨论的结论是:没人知道它究竟是什么,除非有神谕来告知我们。” 现状依然如此,在智能合约的法律性质上依旧是一团迷雾。
被称作区块链2.0的智能合约,实际上比1.0的比特币的提出早了二十年。早在上世纪八十年代,Nick Szabo(计算机科学和法律学者)就已经设想了这一概念,但局限于技术发展未能落地。他提出,“
智能合约是一系列以数字形式指定的承诺,包括各方履行这些承诺的协议。
”
这一概念听来有点晦涩,让我们再次通过场景化说明。以自动售货机为例,当用户提供一定的输入值(1.5美元)时,由于机器已进行了物理设定,自动售货机会直接将产品交给用户。Szabo认为,可以使用计算机代码代替机械设备来完成更为复杂的交易。简而言之,
理想的智能合约是一种去三方的、具有自动执行功能的基于数字程序的工具
。
Szabo的设想随着区块链技术的诞生有了现实可行的路径。合约的执行需要依靠法定强制性的背书提供信任,基于区块链的智能合约则提供了一个完美解决信任问题的机制。在老张卖房的过程中,由于没有中介,将不会存在人工成本,一切都将自动执行。
智能合约的特性很大程度上来源于区块链技术的创新。首先,智能合约采用代码语言,其次是基于区块链技术完成的自动执行功能。
由于区块链交易是可编程和自我执行的,因此各方可以使用智能合约来设计自动执行的合同关系,而无需额外的监控或执行成本。当代码中描述的某些条件得到满足时,将自动触发代码中定义的特定操作。
问题在于,这种代码合约很可能面临名不副实的法律处境。一份现实签订的合约之下,双方由于具有法定背书,可以获得基于合约关系的一系列保障。
而智能合约的去中心化思路以及代码的不可撤销性,隐含着事后保障的缺失。若能在法律上获得承认,无疑能进一步推动智能合约的广泛应用。但是,
虽被称为“合约”,智能合约要嵌入合同法的框架,从目前看来并非易事。
(△现存分歧)
比对《合同法》的相关规定,智能合约的以上两大特征导致其与传统合约在要件上存在多个难以重合之处,具体来看可归纳如下:
困境一
代码环境→合约语言&合意存疑&条款限制
举例来说,一份书面的购房合同可能包含付款约定、房屋情况等一系列条款,而简单来看智能合约就是把协议编写成代码放到网络中执行。
尽管《合同法》允许当事人自由选择合同语言,但代码是否可被认定为“语言”就存在极大分歧意见。作为普通群众的老王和老张,并不能通过阅读代码来审阅这份智能合同,这首先就对合约的法律效力提出了质疑。
此外,从自然语言到代码语言的不对应也是一大难题,也就是说,智能合约无法完全表达当事人的合意。代码对于设定“诚信义务”这一类条款似乎毫无办法。
困境二
自动执行→不可撤销&义务缺失
传统合约理论认为,合约的核心在于“义务”(obligation),双方签订合同的目的在于创设相应的权利和义务,任何一方的不履行将导致违约,这是最基本的逻辑。自动售卖机这种半自动化情况下,交易可以通过如拔掉电源等外部方式停止。
但在智能合约中,系统收到指令开始执行后无法被人为停止。由于交易的自动执行,实际上不存在需要由交易双方“履行”一说。在老王和老张的买卖行为里,双方均不需“遵守”约定,亦无反悔的可能性。
困境三
确定性问题
合约的确定性是其具备法律效力的一个重要因素。从实操层面来看,智能合约的确定性同时也隐含着“安全性”这一重要任务。代码的不可篡改避免了交易后续协商更改的可能性从而降低了成本,但同时需要保证不存在任何漏洞,这提出了极高的技术要求。
所导致的进一步的问题是,去中心化的情况下,因代码漏洞导致的损害由谁负责?IC3联合主任Ari Juels,提出,可以通过bug奖励发现代码的不准确问题,但高昂的试错成本也将成为智能合约应用的绊脚石。