关于智能合约你必须知道的八个问题


作者:王伟 董芊 贾莉莉


与区块链、比特币一样,“智能合约”(Smart Contract)也是当今最热门的话题之一。如果把比特币看作区块链1.0时代的开端,智能合约则是区块链2.0的代表性产物。那么智能合约究竟是什么,它是如何运行的,智能合约的风险有哪些?就业内普遍关心的关于智能合约的诸多问题,植德区块链团队在初步研究的基础上简单分析并总结如下。


1 智能合约长成什么样子?


与普通合约截然不同,智能合约由计算机代码组成。

  

 1.png                                          

 

2 智能合约的由来?


“智能合约”(smart contract)这个术语最早是由跨领域法律学者尼克·萨博(Nick Szabo)提出来的。值得注意的是,Szabo被认为很有可能就是中本聪Satoshi Nakamoto本人。

Szabo对于智能合约的定义是:a set of promises, specified in digital form, including protocols within which the parties perform on these promise(一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议)。


Szabo认为智能合约不仅能满足合同的一般条款,更旨在最大限度地减少恶意和偶发异常,降低对可信中介的依赖。其实究其根本,智能合约的理念并非横空出世,“根据指令自动执行”的方式早在自动售货机中就有所体现,而在区块链技术时代,该理念最终发展成为了链上的智能合约。根据对Szabo文章和各次演讲的研究,我们理解Szabo期待智能合约最终将从传统的售货机转换为全球的金融机器,向大家提供金融的智能合约。

 

3 智能合约与以太坊是什么关系?


以太坊是第一个实现智能合约功能的区块链项目,但是以太坊并不是区块链的唯一平台。以太坊是一个分布式的计算平台,它生成名为 Ether 的加密货币。程序员可以在以太坊区块链上写下“智能合约”,这些以太坊智能合约会根据代码自动执行。


正如 Ethereum 网站所说,Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third-party interference. 以太坊是一个运行智能合约的分布式平台,智能合约指的是没有任何宕机、审核、欺诈或者第三方干涉可能,完全按照程序设计而运行的应用。以太坊有自己的编程语言Solidity,专门用于将逻辑编码为智能合约。以太坊和Solidity均被设计为“图灵完备”的,“图灵完备”意味着它们可以编码任何可以想象的计算,用户可以按照自己的意愿创建复杂的操作。随着智能合约复杂程度的不断提升,这种能力更显重要,特别是当一个智能合约将另一个智能合约作为独立数据来源或现实事件的验证时。譬如,我们可以想象未来的投资交易也有可能在区块链上以智能合约的形式进行,交割的先决条件、交割后义务等复杂机制均有可能在进化之后的智能合约上体现。


4 智能合约的特点


4.1 三个特点


1)智能合约被自动执行,很难作弊;

2)交易的结果将是all-or-nothing,当然随着智能合约的进化,当更加智能、复杂的合约出现后,可能会改变all-or-nothing的结果;

3)合约有可被审计的历史记录—所有的数据被存储在区块(共享分布式账簿)中,不会丢失。


4.2 智能合约与传统合约的比较


2.png


5 智能合约的运行


从合约角度看,智能合约可以被视为“autonomous agents”,旨在通过响应特定信息或交易代码来执行协议。从计算角度看,“智能合约”是可以执行任意或开放式用户指定的状态转换函数数组的程序,包括执行信息和存储信息。我们不妨把智能合约的程序机制想象为一个包含价值或信息的加密盒子,它只有在响应某些预设条件时才可以解锁。


从本质上讲,智能合约的工作原理类似于计算机程序的“if-then”语句。智能合约的执行大致可分为以下环节:

首先将合约以代码的形式编入区块链中,签约方的身份是匿名的,而合约在公开账本中得以展现;

其次,全网验证节点会收到相关合约编码,这点类似于传统合约的签章环节;

最后,触发事件(截止日期,价格,或者特定事项)触发,合约根据代码自动执行。


6 对智能合约的疑问


6.1 智能合约智能吗?


虽然叫做智能合约(Smart Contract),但就智能合约的运行来看,与其说是“智能”,其更应该被看作是“确定性”,即触发条件达成后,将不可篡改的自动执行合约内容。


但在现实生活中,可能会发生导致合约撤销、无效等各种事由,在这种情况下,智能合约自身可能无法应对,因为它只是严格按照编入的代码进行运行。


6.2 智能合约安全吗?


“智能合约存在安全漏洞,攻击者窃取数字资产”这样的新闻或事件一直不绝于耳。以太坊的The DAO以及其他项目的智能合约安全漏洞等事件的出现,逐渐引发了普通用户和投资者对智能合约安全性的质疑。


以太坊使用的是图灵完备的solidity语言,与比特币2009年的Script相比能写出类型更多、内容更复杂的合约。但是复杂度高也会导致复杂的合约本身更难以被分析,相对来说也更不安全。换句话说,合约越复杂,漏洞也会相对越多。The DAO事件后,“图灵完备”的智能合约使用热度降低。目前,以太坊ERC(“Ethereum Request for Comment”)系列使用较多的ERC20、ERC721标准均是“非图灵完备”的。


6.3 智能合约完全去中介化吗?


现阶段,对于智能合约是否可以完全去中介化地执行尚无定论。事实上,目前智能合约可以分为两种类型,一种为确定性智能合约,另一种为非确定性智能合约。其中,确定性智能合约不依靠外部中介,仅仅依赖区块链上的信息得以触发和有效执行,例如点对点博彩(peer-to-peer lottery)——资金由区块链持有,随机数字通过智能合约代码产生,最终资金通过区块链转至获胜方账户地址;而非确定性智能合约是指无法仅仅凭借区块链上的信息作出决定的合约,其需要借助oracle机制连接现实世界和区块链系统,需要可靠的链外数据来保障合约的顺利执行,这也被称为“测试准则问题(Oracle problem)”。例如当A把现实资产的所有权转移给B时,合约需要判断AB双方是否真的完成了资产的交接并履行了相关手续,这种判断看起来是需要第三方予以辅助或确认。那么智能合约是否真的可以做到完全去中介化?


我们理解,随着政府部门行政事务管理的公开化和数字化,未来资产转移的问题将通过政府数据公开平台、人工智能以及物联网的结合而解决,所以在可预见的未来,智能合约将可能逐步实现去中介化。


7 智能合约的法律问题


7.1 智能合约的法律适用


从某种意义上说,智能合约是全球范围内的价值转移工具。因此,智能合约的法律适用问题值得合约各方关注。在开发智能合约时,应注意提前将适用法规以及争议解决方式内嵌其中,以便日后出现争议可得以顺利解决。


区块链的全球性决定了智能合约很大程度上会与涉外合同密切相关。当智能合约为涉外合同时,要关注不同类型的涉外合同法律适用的不同要求,包括该司法区域是否承认智能合约的形式、是否可以依据各方意思自治选择适用法律、法律适用的先后顺序、限制等。


我们注意到,在一些token发行方的社区自治中,其逐步探索出了“区块链仲裁”的形式,如EOS的仲裁论坛和仲裁小组,但对于该等机构裁决结果的效力问题仍待探索和承认。


根据《中华人民共和国合同法》(1999.10.01)的规定,合同是平等主体的自然人、法人、其他组织之间设立、变更、终止民事权利义务关系的协议。当事人订立合同,有书面形式、口头形式和其他形式。书面形式是指合同书、新建和数据电文(包括电报、电传、传真、电子数据交换和电子邮件)等可以有形地表现所载内容的形式。智能合约通过数字代码约定合约标的、支付对价及各方权利义务等内容,可以有形地表现所载内容。据此,我们理解,智能合约具备被囊括为法定合同书面形式的可能性。


7.2 智能合约与传统合约的关系


早期的智能合约更多的是格式合同,但随着区块链技术发展,智能合约将作为各种类型传统合约的智能化,将承载合约各方需求的、复杂的、个性的传统合约放入区块链中,形成不同类型的智能合约。


目前,智能合约的支付对价仅为token,但日后很大可能会发展为token化的证券、地产权益等,即security token。譬如投资人通过投资获得公司的security token,即投资人利用公司的security token持有该公司相应比例的股权。这就涉及到智能合约和特定司法区域下必要书面文件(如股权转让协议)的关系问题,包括如何将传统合约的书面语言准确、恰当地翻译或转换为智能合约的代码语言;当智能合约与传统合约出现冲突时,两者的优先效力如何解释等。鉴于目前直至未来很长一段时间内,全球范围内的传统合约仍是无法完全替代的,那么如何处理好智能合约和传统合约的关系将是合约各方需要关注的事项。


7.3 智能合约的开发风险


智能合约作为全球性的价值转移工具,如涉及资金募集、证券、赌博等相关内容,不可避免地会引起全球范围内所涉区域的司法监管。作为智能合约的开发方,即跨国价值转移的发起方,无疑需要承担更多的合规责任。


8 智能合约的应用


尽管存在风险,但智能合约的应用场景仍在不断落地,包括但不限于共享经济、数字身份、拍卖、房地产、医疗保健、供应链等。


目前很多企业正在投资智能合约试点,通过参与开发智能合约技术来实现实体经济的数字化。例如在保险领域的Fizzy,一种利用以太坊区块链智能合约的航班延误保险产品,智能合约与全球空中交通数据库相连,一旦航班延误超过两小时,智能合约就会向被保险的旅行者自动发起补偿。


我们相信,随着区块链行业的不断革新和演进,智能合约将在数字经济领域以其独特的优势发挥更大的潜力,但正如John Wooden所言,Failure to prepare is preparing to fail. 在一个新的商业模式刚兴起的时候,对于该等商业模式的充分理解以及风险的全面评估尤为重要。作为区块链领域的核心技术成果之一,我们也将继续关注智能合约的动态并将合规分析与各行业参与者共享。