天涯书库 > 区块链:从数字货币到信用社会 > 第四章智能合约[20] >

第四章智能合约[20]

一、智能合约的起源

彼特·托德(Peter Todd)是比特币核心开发者之一。他总结了智能合约(Smart contract)的现状[21],认为“智能合约讨论的结论是:没有人理解智能合约究竟是什么。如果我们要实施智能合约,应该需要预言机(oracles)”。

确实,要想阐明智能合约的理念和本质并非易事。

我们从智能合约理念的起源开始。“智能合约”概念由计算机科学家、加密大师尼克·萨博(Nick Szabo)于1993年左右提出来。1994年他写成了《智能合约》(Smart contracts)论文,是智能合约的开山之作[22]。

尼克·萨博对智能合约的阐述以一个自动售货机的例子开始。我们可以认为智能合约的原始祖先,是不起眼的自动售货机。在经过潜在的、损失有限的评估后,自动售货机使钱箱里的钱远远少于破坏者付出的代价。售货机根据显示的商品价格收取投币,通过一个简单的机制形成了最初的计算机设计科学,并且有限自动、根据投币金额传递变化和产品。自动售货机是一种搬运合约:任何持有硬币的人都可以与供应商交易。锁定钱箱和其他安全机制保护售货机储藏的硬币和货物不被破坏,从而支撑在各种各样的区域部署自动售货机,并且产生盈利。

在自动售货机概念的基础上,尼克·萨博给出智能合约的定义如下:

“智能合约超越了自动售货机中嵌入各种有价属性的范畴,通过数字方式控制合约。智能合约涉及具有动态性、频繁主动执行属性的财产,且提供更好的观察和验证点,其中主动积极的措施必须丝毫不差。”

尼克·萨博告诉我们的是,智能合约本质上的抽象概念是在个人、机构和财产之间形成关系的一种公认工具,是一套形成关系和达成共识的协定。智能合约的条款(如抵押品、产权划分等)可以嵌入到处理硬件和软件中,以这样的方式使违约成本非常昂贵(甚至令人望而却步)。例如,为房屋而设计出的数字保障智能合约,根据智能合约设计策略,持续完善房屋抵押品协议以便其更充分地嵌入到处理合约条款中。根据合约条款,这些协议将使加密密钥完全控制在具有操作属性的人手中,而此人也将正当地拥有该房屋财产。最简单地,为了防止偷窃,使用者需要完成正确的解锁过程,否则房屋将切换至不可使用状态,比如门禁失效和设施失效等。在传统方式中,如果房屋被用做还贷,有一个令债权人头痛的问题是很难查收赖账的房屋,需要通过频繁沟通才能收回房屋钥匙等。为了解决这一问题,我们可以创建一个智能扣押权协议:如果物主不交费,智能合约调用扣押权协议,把房屋钥匙的控制权交给银行。该协议可能会比雇佣追债人更便宜、更有效。

同时,尼克·萨博提出了智能合约的三要素:

①一把可以允许业主同时排除非法第三方的锁;

②一个允许债权人秘密接入的后门;

③后门只在违约且没有付款的一段时间被打开;最后的电子支付完成后将永久地关闭后门。

从本质上讲,这些智能合约的工作原理类似于计算机程序的if-then语句。智能合约以这种方式与真实世界的财产进行交互。当一个预先定义的条件被触发时,智能合约就执行相应的合同条款。尼克·萨博关于智能合约的工作理论迟迟没有实现,是因为缺乏天生能够支持可编程合约的数字系统。如果金融机构仍然需要手动批准资产的转移,那么智能合约的目标就没有实现。瑞波实验室的市场和交易主管菲利·拉波波特(Phil Rapoport)说[23],“实现智能合约的一大障碍是现在计算机程序不能真正地触发支付”。区块链技术的出现和被广泛使用,正在改变阻碍智能合约实现的现状,从而使尼克·萨博的理念有了实现的机会。智能合约技术现在正建立在区块链基础之上,因为区块链本身就是一个计算机程序,智能合约能够与它进行交互,就像它能与其他程序进行交互一样。

在已提出智能合约理念的基础上,结合近几年区块链技术的不断发展,我们将试图给出对智能合约更为具体和详细的阐述。

二、智能合约的定义

智能合约是一套以数字形式定义的承诺,承诺控制着数字资产并包含了合约参与者约定的权利和义务,由计算机系统自动执行。

承诺定义了智能合约的本质和目的。以一个销售合约为例:卖家承诺发送货物,买家承诺支付合理的货款。数字形式意味着合约需要被写入计算机可执行的代码中,只要参与者达成协定,智能合约建立的权利和义务,就由一台计算机或者计算机网络执行。

我们举个简单的例子,形象化地描述智能合约。

If Event_X_Happened:

Send(爱丽丝, 1000$)

Else:

Send(鲍伯, 1000$)

意思是:如果事件X发生,则合约给爱丽丝发送1000美元;否则,给鲍伯发送1000美元。

这就是最简单的合约。

如图4-1所示是一个智能合约模型示意,其中各组成部分的定义如下。

①合约参与者:执行智能合约的相关参与者。

②合约资源集合:智能合约执行涉及的参与者资源,比如参与各方账户、拥有的数字财产等。

③自动状态机:智能合约下一步执行的关键,包括当前资源状态判断、下一步合约事务执行选择等。

④合约事务集合:智能合约的下一步动作或行为集合,控制着合约资产并对接收到的外界信息进行回应。

图4-1 智能合约模型示意图

智能合约程序不只是一个可以自动执行的计算机程序,它本身就是一个系统参与者,对接收到的信息进行回应,可以接收和储存价值,也可以向外发送信息和价值。这个程序就像一个可以被信任的人,可以临时保管资产,总是按照事先的规则执行操作。

智能合约的实现需要底层协议支持,选择哪个协议取决于许多因素,最重要的因素是在合约履行期间被交易资产的本质。再次以销售合约为例。假设参与者同意货款以比特币支付,选择的协议很明显将会是比特币协议。在此协议上,智能合约被实施。因此,合约必须要用到的数字形式就是比特币脚本语言。比特币脚本语言是一种非图灵完备的、命令式的、基于栈的编程语言。

三、智能合约与传统合约的区别

智能合约与传统合约(如法律合约)有相似之处,比如均需要明确合约参与者的权利、义务,违约方均会受到惩罚等。但是智能合约与传统合约存在着显著的区别,表4-1为两者的对比[24]。

表4-1 智能合约与传统合约对比

①自动化维度。智能合约可以自动判断触发条件,从而选择相应的下一步事务;而传统合约需要人工判断触发条件,在条件判断准确性、及时性等方面均不如智能合约。

②主客观维度。智能合约适合客观性请求的场景,传统合约适合主观性请求的场景。智能合约中的约定、抵押及惩罚需提前明确;而主观性判断指标很难纳入合约自动机中进行判断,也就很难指导合约事务的执行。

③成本维度。智能合约的执行成本低于传统合约,合约执行权利、义务条件被写入计算机程序中自动执行,在状态判断、奖惩执行、资产处置等方面均具有低成本优势。

④执行时间维度。智能合约属于事前预定、预防执行模式;而传统合约采用的是事后执行,根据状态决定奖惩的模式。

⑤违约惩罚维度。智能合约依赖于抵押品、保证金、数字财产等具有数字化属性的抵押资产,一旦违约,参与者的资产将遭受损失;而传统合约的违约惩罚主要依赖于刑罚,一旦违约,可以采用法律手段维权。

⑥适用范围维度。智能合约技术可全球采用,适用于全球范围;而传统合约受限于具体辖区,不同国际地区的法律、人文等因素均影响着传统合约的执行过程。

四、智能合约与区块链

(一)智能合约与区块链的关系

尼克·萨博关于智能合约的工作理论迟迟没有实现,一个重要原因是因为缺乏能够支持可编程合约的数字系统和技术。区块链技术的出现解决了该问题,不仅可以支持可编程合约,而且具有去中心化、不可篡改、过程透明可追踪等优点,天然适合于智能合约。因此,也可以说,智能合约是区块链技术的特性之一。

如果说区块链1.0是以比特币为代表,解决了货币和支付手段的去中心化问题,那么区块链2.0就是更宏观地对整个市场去中心化,利用区块链技术转换许多不同的数字资产而不仅仅是比特币,通过转换创建不同资产的价值。区块链技术的去中心化账本功能可以被用来创建、确认、转移各种不同类型的资产及合约。几乎所有类型的金融交易都可以被改造成在区块链上使用,包括股票、私募股权、众筹、债券和其他类型的金融衍生品如期货、期权等。

智能合约看上去就是一段计算机执行程序,满足可准确自动执行即可,那么为什么用传统的技术很难实现,而需要区块链技术等新技术呢?传统技术即使通过软件限制、性能优化等方法,也无法同时实现区块链的特性:一是数据无法删除、修改,只能新增,保证了历史的可追溯,同时作恶的成本将很高,因为其作恶行为将被永远记录;二是去中心化,避免了中心化因素的影响。

基于区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,而且可以避免恶意行为对合约正常执行的干扰。将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可跟踪、不可簒改。同时,由区块链自带的共识算法构建出一套状态机系统,使智能合约能够高效地运行。

(二)智能合约工作原理

基于区块链的智能合约包括事务处理和保存的机制,以及一个完备的状态机,用于接受和处理各种智能合约,而且事务的保存和状态处理都在区块链上完成。事务主要包含需要发送的数据,而事件则是对这些数据的描述信息。事务及事件信息传入智能合约后,合约资源集合中的资源状态会被更新,进而触发智能合约进行状态机判断。如果自动状态机中某个或某几个动作的触发条件满足,则由状态机根据预设信息选择合约动作自动执行。

智能合约系统根据事件描述信息中包含的触发条件,当满足触发条件时,从智能合约自动发出预设的数据资源,以及包括触发条件的事件;整个智能合约系统的核心就在于智能合约以事务和事件的方式经过智能合约模块的处理,输出还是一组事务和事件;智能合约只是一个事务处理模块和状态机构成的系统,它不产生智能合约,也不会修改智能合约;它的存在只是为了让一组复杂的、带有触发条件的数字化承诺能够按照参与者的意志,正确执行。

基于区块链的智能合约构建及执行分为如下几步。

①多方用户共同参与制定一份智能合约。

②合约通过P2P网络扩散并存入区块链。

③区块链构建的智能合约自动执行。

步骤①“多方用户共同参与制定一份智能合约”的过程,包括如下步骤:

A.用户必须先注册成为区块链的用户,区块链返给用户一个公钥和私钥;公钥作为用户在区块链上的账户地址,私钥作为操作该账户的唯一钥匙。

B.两个以及两个以上的用户根据需要,共同商定了一份承诺,承诺中包含了双方的权利和义务;这些权利和义务以电子化的形式,编程机器语言;参与者分别用各自私钥进行签名,以确保合约的有效性。

C.签名后的智能合约,将会根据其中的承诺内容,传入区块链网络中。

步骤②“合约通过P2P网络扩散并存入区块链”的过程,包括如下步骤:

A.合约通过P2P的方式在区块链全网中扩散,每个节点都会收到一份;区块链中的验证节点会将收到的合约先保存到内存中,等待新一轮的共识时间,触发对该份合约的共识和处理。

B.共识时间到了,验证节点会把最近一段时间内保存的所有合约,一起打包成一个合约集合(set),并算出这个合约集合的Hash值,最后将这个合约集合的Hash值组装成一个区块结构,扩散到全网;其他验证节点收到这个区块结构后,会把里面包含的合约集合的Hash取出来,与自己保存的合约集合进行比较;同时发送一份自己认可的合约集合给其他的验证节点;通过这种多轮的发送和比较,所有的验证节点最终在规定的时间内对最新的合约集合达成一致。

C.最新达成的合约集合会以区块的形式扩散到全网,如图4-2所示。每个区块包含以下信息:当前区块的Hash值、前一区块的Hash值、达成共识时的时间戳以及其他描述信息;同时区块链最重要的信息是带有一组已经达成共识的合约集;收到合约集的节点,都会对每条合约进行验证,验证通过的合约才会最终写入区块链中,验证的内容主要是合约参与者的私钥签名是否与账户匹配。

图4-2 合约区块链示意图

步骤③“区块链构建的智能合约自动执行”的过程,包括如下步骤:

A.智能合约会定期检查自动机状态,逐条遍历每个合约内包含的状态机、事务以及触发条件;将条件满足的事务推送到待验证的队列中,等待共识;未满足触发条件的事务将继续存放在区块链上。

B.进入最新轮验证的事务,会扩散到每一个验证节点,与普通区块链交易或事务一样,验证节点首先进行签名验证,确保事务的有效性;验证通过的事务会进入待共识集合,等大多数验证节点达成共识后,事务会被成功执行并通知用户。

C.事务执行成功后,智能合约自带的状态机会判断所属合约的状态,当合约包括的所有事务都顺序执行完后,状态机会将合约的状态标记为完成,并从最新的区块中移除该合约;反之将标记为进行中,继续保存在最新的区块中等待下一轮处理,直到处理完毕;整个事务和状态的处理都由区块链底层内置的智能合约系统自动完成,全程透明、不可簒改。

五、智能合约应用案例

基于区块链的智能合约应用范围很广,应用案例数不胜数,以下仅仅列出一些典型应用。

(一)房屋租赁

假设用户爱丽丝(Alice)与用户鲍伯(Bob)需要构建一个区块链智能合约,目的是爱丽丝将其房屋租赁给鲍伯,租金为1000元一个月,每月支付,租期为一年。假设爱丽丝房屋门锁可通过互联网控制,其开锁密钥为Key(每月生成一次),爱丽丝的银行账户为MA,鲍伯的银行账户为MB。智能合约的执行包括如下步骤:

①爱丽丝与鲍伯提交合约构建申请给智能合约服务器,生成合约并由服务器发布到区块链生效。

②爱丽丝将Key以及MA提供给智能合约服务器。

③鲍伯通过MB向智能合约服务器支付1000×12=12000元的资金作为抵押,或者鲍伯通过第三方机构的担保,仅向智能合约服务器支付少量资金。

④合约开始执行,智能合约服务器将Key发送到鲍伯,并从鲍伯的抵押资金中扣除1000元,发送到爱丽丝的账户,并生成参与对象记录存入区块链。

⑤每个月智能合约都会定期检查,如果合约未到期,则继续从鲍伯的抵押资金中扣除1000元发送到爱丽丝的账户并发送Key给鲍伯,并生成参与对象记录存入区块链。

⑥整个过程受到第三方机构的监控,所有参与者、第三方机构都可以通过区块链查询合约执行情况。

⑦租约期限到后,智能合约服务器生成一条合约记录,标示合约终止并发布到区块链,合约执行即终止。

(二)差价合约

金融衍生品是智能合约最普遍也最易于用代码实现的应用之一。实现金融合约的主要挑战是其中大部分需要参照一个外部的权威价值发布器。例如,一个大需求应用是用来对冲密码学货币相对美元或欧元价格波动的智能合约,但该合约需要知道密码学货币相对美元或欧元的价格。最简单的方法是通过由某特定金融机构维护的数据提供合约进行,该合约的设计使该机构能够根据需要更新合约,并提供一个接口使其他合约能够通过发送一个消息给该合约以获取包含价格信息在内的回复,从而支撑智能合约的运行。根据前文描述的智能合约和示例,可以很容易地构建出差价智能合约,在此不再赘述合约内容。

(三)代币系统

基于智能合约的代币系统非常容易实现。其中的关键点是所有的货币或者代币系统,从根本上来说是一个带有如下操作的数据库:从A中减去X单位数据并把它加到B上。其前提条件是:

① A在交易之前至少有X单位数据。

②A批准了进行该交易。

实施一个代币系统就是把这样一个逻辑应用到一个合约中去即可。区块链上的代币系统应用不少,从美元资产到公司股票等。单独的代币具有智能资产、不可伪造的优惠券、与传统价值完全没有联系的积分奖励等多种形式。

(四)储蓄钱包

假设爱丽丝想确保资金安全,但担心资金丢失或者被黑客盗走私钥。于是,她把数字货币放到和鲍伯签订的一个合约里:

①爱丽丝单独一人每天最多可提取3%的资金。

②鲍伯单独一人每天最多可提取3%的资金,但爱丽丝可以用她的私钥创建一个交易取消鲍伯的提现权限。

③爱丽丝和鲍伯一起可以提取任意数额的资金。

正常情况下,每天3%的资金对爱丽丝而言足够了。如果爱丽丝想提现更多,她可以联系鲍伯寻求帮助。如果爱丽丝的私钥不幸被盗,她可以找到鲍伯把她的资金转移到一个新合同里。此外,如果爱丽丝弄丢了她的私钥,鲍伯也可以慢慢地把钱提出给爱丽丝。但是如果鲍伯表现出了恶意,爱丽丝可以关掉鲍伯的提现权限,从而保护自己的资金不受损失。

(五)作物保险

很容易且直观的,可以用天气情况作为数据输入创建一个金融衍生品作物保险合约,该合约不是由任何价格指数决定的。如果一个浙江的农民购买了一个基于浙江省的降雨情况进行反向赔付的金融衍生品,那么如果遇到干旱,该农民将自动地收到赔付资金;而如果有足量的降雨,即使没有赔付资金,他也会很开心,因为作物收成会良好。而上述过程利用智能合约可以很方便地实现。

(六)金融借贷

想想看,许多常规的金融交易,律师和银行的工作其实就是重复性地处理一些简单的任务。但是我们还不得不向律师提供的管理工作或者银行提供的抵押贷款工作支付大量的资金作为报酬。

智能合约能够使这些处理过程自动化和非神秘化,使普通人可以节省时间和金钱,而不用担心被骗。此外,假设你购买房产,可以通过一家银行获得抵押贷款,但通常不会持有长达三十年的贷款。银行只是成为你每月还款的处理者,向投资者支付大头资金,小部分资金用于交税,更小部分资金用于房主的保险。如果贷款还款由智能合约处理,那么贷款处理费用将被取消,省下来的钱可以返还给消费者。最终的结果就是使获得房屋所有权的成本更加低,有利于消费者。

(七)设立遗嘱

虽然智能合约仍然处于初始阶段,但是其潜力显而易见。想象一下分配立遗嘱者的遗产,决定谁得到多少遗产只需简单一列就可实现。如果开发出足够简单的用户交互界面,就能够解决设立遗嘱过程的许多法律难题。一旦智能合约确认触发条件,也就是立遗嘱者已经死亡,智能合约就将开始执行,立遗嘱者的财产将被分割。

(八)证券登记清算

智能合约状态可以包含证券所有权的所有信息。如果登记的证券所有者注意到该合约中证券已经出售给了其他的参与者,其他参与者就会把密码学货币发送到担保账户,然后证券登记信息就会更新,货币就会被转发给原来的证券持有者。无论哪个信息先到达,证券或货币都会保管在一个担保账户中,以避免双重使用。当交易取消或过时后,担保也将取消。以上过程利用智能合约可以轻易实现。

(九)博彩发行

假设对手同意某个在互联网能够访问的数据源,他们就可以对数据源的价值进行衍生合约或博彩。博彩发行方创建博彩信息,如中奖方式、投注方式、投注时间、奖池钱包地址及密钥,并向该奖池地址充值作为博彩奖池底金;发行方将博彩信息、钱包地址、奖池底金等信息生成博彩智能脚本,写入区块链,被全网用户所知;用户获取博彩信息,开始投注,确定投注目标,并按照博彩规则向博彩钱包地址充值,产生投注记录(含自身钱包地址),写入区块链;产生中奖信息;中奖信息产生后,进行奖金发放以及颁奖记录发布。

六、智能合约面临的问题

智能合约,尤其是基于区块链的智能合约,目前还处在初级阶段,尚未有任何实质性突破和应用,同时也面临着问题与挑战:一是安全性问题;二是私密性问题;三是意外情景问题。同时,人们对智能合约还存在不少的误解。

(一)安全性问题

关键问题之一是安全性及信任度的问题。这与影响区块链实施的问题类似:智能合约系统都被设计成无须信任的环境,这意味着无法改正出现的错误。这是由区块链的不可逆特性决定的。例如,在区块链中,如果你将货币发送给某个地址,这个操作是无法撤销的。因此,如果你与诈骗犯进行交易或者你已经将货币发送到错误的地址中,那么很不幸,金钱损失是无法挽回的。在现实生活中,这些事情可以通过中心化的系统来撤销,但是在智能合约中不行。同样地,在合约代码的设计过程中也有欺诈的问题:某人需要设计(编程)合约,在合约设计时就会需要确保没有欺诈的问题发生。对于去中心化的系统,用户只能自己承担相应的风险。

(二)私密性问题

有效利用区块链的一大挑战就是区块链提供彻底的透明度。例如,如果十家银行联合在一起建立一个区块链,其中有两家进行了一项双向交易,这项交易将立即在区块链上对其他八家可见。虽然也可以设计缓解这个问题的各种策略,但目前还没有一种策略可以击败简单有效的中央数据库,除非能有一个可靠的管理员完全控制参与者的权限。

智能合约尤其是基于区块链的智能合约,同样存在这样的问题。每个智能合约都包含了自己的区块链数据库,并且具有完全控制能力。由于区块链数据库中所有的读写操作都是由合约代码主导的,所以其他合约无法直接读取其数据。尽管一个智能合约不能访问其他合约的数据,即一个智能合约无法读取其他合约的数据,但是其数据仍然存储在区块链中的每一个验证节点上。对于每个区块链的参与者来说,完全可以控制一个系统的存储器或者磁盘。如果他们想要从自己的系统中阅读信息,通过计算机手段,是完全可以做到的。

那么,把智能合约隐藏到网页数据中去,就像把它隐藏在代码里一样,是否就可以保证隐私了呢?当然,一般的用户不会看到它,因为它并未显示在他们的浏览器窗口。但是,只需要一个网页浏览器的“查看源文件”功能即可使得隐藏的信息变得普遍可见。同样,对于隐藏在智能合约中的数据,所需要的只是有人修改区块链软件显示合约的代码,就可以看到隐藏的内容。这种修改只要一个水平高的程序员花很短时间就可以办到。因此,智能合约的私密性问题目前还是存在的。

(三)意外情景问题

应当承认,在某一层面上,智能合约听起来确实像一个理想化的场景。如果你不付款,你的汽车将被远程自动收回,这一过程不需要任何人为干预。但是在理论上,智能合约有利的一面是将使金融机构更加乐意接受穷人带来的风险,再也不用担心穷人还不清贷款。如果没有智能合约,穷人可能得不到金融机构的贷款。因为,遇到最坏的情况,如果借贷人不能偿还贷款,那么收回资产对银行而言,是件轻而易举的事。除了增加获得金融机构贷款的机会外,智能合约也有潜力为没有优势的人打开其他壁垒较高行业的大门。没有智能合约,这些人就没有机会也没有可能获得收益。

尽管在理论上,智能合约听起来非常好,但如何正确、合适地处理意外场景下的合约执行,是一个问题。比如需要收回的汽车正在高速公路行驶的时候,撤销汽车的使用权操作将是十分粗鲁和危险的,而如何准确判断汽车的执行状态也是存在技术难点的。

(四)对智能合约的几种误解

1. 智能合约与协议合同一样

不是这样的。这在前文智能合约与传统合约的区别中已经详细介绍过。根据尼克·萨博对智能合约的定义,智能合约能够让违反协议的一方付出昂贵代价,是通过数字形式掌控现实世界的资产。所以,智能合约能通过执行实现一种特定的需求,能够证明某些条件是否获得满足。这些实现过程都会相当的严格,例如,如果你没能按时完成对一辆汽车的付款,汽车将会被智能合约数字锁定,直到完成支付才会解除。

2.智能合约具有法律效力

不是这样的。智能合约目前并不能等同于法律,但是它可以代表法律协议的一部分。另外,智能合约合法化工作目前正在进行当中。智能合约的执行结果可以用作审计、追踪,用来证明法定协议的条款是否可以被执行。

3.智能合约包括人工智能

不是这样的。智能合约本身并不是真的非常智能,也不能等同于人工智能。智能合约实际上是运行在区块链上的软件代码,由一些外部数据来触发智能合约,外部数据的接收、判断并非人工智能可以实现。此外,对智能合约中其余数据的修改也并非是通过人工智能来实现的。

4.智能合约只能为高水平软件开发者所用

不是这样的。虽然目前的确如此,但是我们很快就会看到与用户更加友好的方法或系统出现,允许商业或个人用户通过图形界面或者简单的文本语言输入来配置智能合约。相信在未来,不需要懂得编程,也能够制定自己的智能合约并顺利执行。

5.智能合约存在应用程序限定

不是这样的。如HTML、C++一样,应用程序受到编写人的控制,智能合约可以成为现实资产、数字资产、智能财产、物联网、通信网和金融工具相互联系的理想方式。智能合约几乎可以应用到所有状态随着时间而改变的事物,并不会受应用程序的限定,参与者类型也多种多样。

七、智能合约的未来展望

智能合约是区块链最重要的特性之一,也是区块链能够被称为颠覆性技术的主要原因,更是各国央行考虑使用区块链技术发行数字货币的重要考量因素,是可编程货币、可编程金融的技术基础。智能合约在今后可能会让人类社会结构产生重大变革,尽管智能合约还有一些需要解决的问题存在。幸运的是,智能合约技术已经从理论走向实践。全球众多专业计算机科学人才、金融界人才也在共同努力完善智能合约。

毋庸置疑,智能合约已经生根发芽了。智能合约是真正的全球经济的基本构件,任何人都可以接入到这一全球经济中,不需要事前审查和高昂的预付成本。在许多经济交易中,智能合约移除了对第三方的信任,在其他情况下,将信任转移到可以信任的人或机构中。智能合约意味着区块链交易远不止买卖货币这些交易,将会有更广泛的指令代码嵌入到区块链技术中。传统合约是指双方或者多方协议做或不做某事来换取某些物品,每一方都必须信任彼此,并须履行义务。而智能合约无须彼此信任,因为智能合约不仅是由代码进行定义的,也是由代码强制执行的,完全自动且无法干预。智能合约与传统合约本质上都是解决相同问题:以一种方式形成一种合约关系,使得承诺可以执行。只不过它们采用了不同的方法。就这一点而言,智能合约似乎是更好的解决方案,因为智能合约事前执行,不像传统合约一样,事后执行。多重签名智能合约也是未来的一个趋势,比如基于多重签名的交易合约,部分参与者的私钥就可以使用合约中的资金。甚至于,合约可以更加细化。比如参与者共有6人,那么其中的6把私钥里集齐5把就可以花全部资金,如果只有4把则每天最多花20%的资金,只有3把就只能每天花1%的资金等。

在这个蓬勃发展的智能合约领域,尤其是基于区块链的智能合约领域,尽管自动化、高效率和低成本的潜力巨大,但还是有明显的不足。现有区块链技术的一个缺陷就是,智能合约的代码需要向网络内所有参与者尤其是验证者公开。对于很多金融贸易、企业交易来说,这是个巨大的缺陷。因为这就意味着资金投入之后,网络中非参与者可能会了解并积极参与贸易中并给参与者带来麻烦。这同时意味着区块链智能合约的非参与者可以囤积或出售资产,这将损害参与者的利益。此外,尽管智能合约可能给金融服务业带来最具颠覆性的改变,就如同曾经的计算机数据处理带来的变革一样。但是,在实现这个目标之前,我们首先需要清除一些障碍。幸运的是,自区块链技术出现和取得突破之后,智能合约技术已经离开学术的殿堂并走进了社会生活。全球成千上万的互联网金融人才正致力于扩大合约创新的规模,为现代金融机构提供便利。

智能合约的发展可能需要经历漫长的道路,但是更多的智能合约机制正在被设计出来,更多领域的人才正在加入。目前为止,对来自截然不同的领域,如经济学、密码学、网络科学、金融学的自动化合约执行来说,共同设计研究合约准则是必经之路。如果缺少交叉沟通,无论是对技术的缺乏还是对商业用途模式意识的缺乏,都将造成智能合约的低效。

目前Orisi、Codius、Symboint、Hedgy、BitHalo、Mirror、Hyperledger、Eris Industries、Ethereum、智能坊、小蚁、Colored Coin、IBM等已经致力于智能合约的平台开发及相关研究,相信智能合约的应用前景一片光明。

参考资料

[1]http://www.fastcolabs.com/3035723/app-economy/smart-contracts-could-be-cryptocurrencys-killer-app

[2]https://medium.com/@heckerhut/whats-a-smart-contract-in-search-of-a-consensus-c268c830a8ad

[3] http://www.wtoutiao.com/p/14dyEMP.html

[4]http://www.coindesk.com/smart-contract-myths-blockchain/

[5]http://8btc.com/article-1921-1.html

[6]http://wangxiaoming.com/blog/2016/03/03/blockchain-2-0-he-yue/

[7]http://blockchain.hk/smartcontract/

[8]Vitalik在中国台湾的演讲:区块链、智能合约和以太坊

[20] 本章由海滨写作完成。

[21] https://medium.com/@heckerhut/whats-a-smart-contract-in-search-of-a-consensus-c268c830a8ad.

[22] http://szabo.best.vwh.net/smart_contracts_idea.html.

[23] http://www.fastcolabs.com/3035723/app-economy/smart-contracts-could-be-cryptocurrencys-killer-app.

[24] http://8btc.com/doc-view-376.html.