智能合约是什么?

来源:扬帆区块链 作者: 段扬扬 2018/05/18

智能合约的工作原理类似于计算机程序的if-then语句,当一个预先编好的条件被触发时,程序就会自动执行相应的合同条款。

很多人可能都听说过“智能合约”这个名词,尤其是谈论到以太坊都会着重提到智能合约,所谓的智能合约,如果把智能二字拿出来,就和我们现实生活中见到的合约没什么两样了。而之所以称之为“智能”,是因为合约的条款可以写成代码的形式,存放到区块链中,一旦合约的条款触发某个条件,那么代码就会自动执行,即便有人想违约也很难,因为代码才不管你呢,它只要满足条件就会立即执行,这就节省了很多人为的沟通和监督成本。

1.智能合约到底是什么?

我们都知道传统合约是指双方或者多方通过协议来进行等值交换,双方或者多方必须彼此信任,能履行交易,否则一旦一方违约,可能就要借助社会的监督和司法机构,而智能合约则无须信任彼此,因为智能合约不仅是由代码进行定义,也会由代码强制执行,完全自动且无法干预。

举一个简单的案例,也许你就能更加明白了。比如说我和一位朋友(简称小明吧)一起看球赛,巴萨对皇马,我支持巴萨,他支持皇马,我们各押了100元钱,约定如果谁支持的球队输了,那么对方就获得所有的赌注。

这种情况,如果我和小明都是很受信用的人,那自然也就没什么问题。但是假如这个时候小明想要抵赖,就是不愿给我那100元钱,理论上我也拿他没办法,毕竟我们没有写什么纸质的合同,更没有签字盖章,即便有估计还得跑到法院帮我们主持公正(还不知道法院是否支持这种赌博行为),为了100元打官司,估计连诉讼费都不够。

就像上面提到的这种违约案例,可能社会上经常会出现,一方违约就可能需要消耗大量的社会资源去保证合约的正常执行,但是如果这个合约是写入区块链的代码中,那么情况就不一样了,一旦比赛结果知晓,那么智能合约代码会自动执行,也就是说代码会自动把资金都转到我的账户下,当然如果是放在区块链上,那么资金就应该是虚拟数字货币。也就是说代码把原来一系列很复杂的社会监督和公正体系要做的事情给代替了,而且速度更快,成本更低。

2. 智能合约如何在以太坊上执行?

那么智能合约到底是如何在以太坊上实现呢?如果展开细讲,至少得单独写一篇文章,还得要求读者有一定的技术基础,这里我就尝试用最通俗易懂的方式展示一下智能合约的技术原理。简单来说呢,每一位想要部署智能合约的人,还是需要会写点代码,否则你怎么将真实的需求映射到区块链上呢。

部署到区块链上的智能合约代码理论上要最小可用,而且逻辑不能过于复杂,虽然以太坊支持各种复杂的逻辑,但是逻辑越复杂的代码需要消耗的以太币就越多。这就如同你去定制一套家具,虽说可以随意定制,但是你定制的需求越多,通常来说价格也越高,人都是理性的,不会跟钱一直过意不去,当然土豪另说。

以太坊给常用的代码逻辑都规定了具体的价格,打个简单的比方,执行一步加法需要多少以太币,一步乘法又需要多少以太币。和定制家具一样的逻辑,你定制某种材料有一套价格,定制主题又有另一套价格,这样不管是智能合约还是定制家具,基本上都可以提前估算出价格,如果价格过高,大家就会主动削减原来那些非必须的需求。这就如同高速公路收费,把那些本来可以乘坐火车、汽车、飞机的乘客都辇出自驾出行市场,而那些必须要自驾出行的人就可以享受到更好的高速公路服务。

部署到以太坊系统上的合约会随着矿工挖矿的过程,自动去执行合约,如果你的合约执行到一半,之前预支付的以太币不够了,不好意思,回到代码一开始的状态,而且消耗的以太币也不会退还,毕竟计算机资源已经使用了嘛,当然如果合约执行完成,多出来的以太币会返回给发起者。

不过这里其实还是有一些问题,比如网络中很多节点的计算机都贡献出了资源,但是以太币收益却只给了矿工一个人,这种付出和收益不匹配的问题,迟早会给以太坊生态带来问题,只是现在智能合约还处于初级阶段,效果并没有那么明显而已。

3. 智能合约何以让以太坊比比特币更有想象空间?

一般提到智能合约,大家通常都会想到以太坊,而不是比特币,这是为什么呢?其实道理也很简单,比特币支持的智能合约代码能力很有限,逻辑稍微复杂一点的需求比特币可能就爱莫能助了,而以太坊从创立之初,就支持了完备的只能合约代码,理论上任何复杂的代码都可以得到执行,当然这一切都是有代价的,合约越复杂,需要消耗的以太币也就越多。

上文我们提到了一个很简单的赌博案例,推而广之,如果将其用在金融、证券、保险、版权等领域,那将会节省多少人力、物力和财力呀。比如说原来需要人工核对、验证的工作现在几行代码就可以搞定;过去小额金融服务因为成本受限一直无法真正落地,现在低成本的自动化代码可以让这一切变得不再遥不可及;数字化版权时代可以借助区块链和虚拟货币,让版权交易更加便捷和安全。

可能很多人会说,计算机编程早几十年就发明了,为什么到今天才去尝试解决这些问题呢?其实这点也很好解释,我们刚才所举的案例基本上都牵扯到了资金流动,过去不管是银行还是支付宝,都没有实现“可编程的钱”,而区块链和智能合约技术可以将信息流和资金流,做各种各样的排列组合。也就是说过去如果你想要一套家具,你只能从厂家有限的产品中挑选,而今天几乎所有的样式、颜色、主题、材料等全部都可以定制,关键是成本还和过去一样低,甚至更低。

4. 智能合约在未来的区块链发展中将会扮演什么角色?

当然除了以太坊支持智能合约,比特币也在通过技术升级引入侧链来支持智能合约,还有最近一直被大家热议的EOS也有自己的智能合约方案,从这里我们也可以看出,未来智能合约将会在区块链技术中扮演越来越重要的角色。前段时间IBM的区块链工程师分享了一个跨国贸易于区块链结合的案例,我觉得非常能体现智能合约的价值。

在非洲的肯尼亚有很多鲜花产地,这些鲜花会通过巨轮运往荷兰,这中间就牵扯了很多参与方,比如:这个鲜花能够被种出来出口,花农和出口商势必要跟银行贷款,通过融资来支撑这个业务;鲜花出口前需要经过检验检疫部门的检验;要通过当地的海关的验关。在这个过程中,鲜花需要经过第三方物流公司、陆上的货运公司、到达海港。然后万吨巨轮满载装满鲜花的集装箱从肯尼亚的港口出发,经过十多天的海上航行,最后到达荷兰港口上岸。上岸以后,之前在肯尼亚发生的一系列事件还要再发生一次,只是这次换成了荷兰的海关、荷兰的检验检疫和荷兰的运输和物流公司以及荷兰的银行等参与方。

在传统的解决方案中,所有的相关参与方(生产商、销售商、银行、港口、海关、物流公司、运输公司、海运公司),各家基本都有自己的业务系统,相关的数据和信息都存放在自己的数据库。这样就会导致很多问题,比如:流程周期比较长、环节多、透明性差;有些环节可能还没有数字化,甚至需要人工操作,效率很低;数据存在于不同参与方的数据库中,容易出现数据不一致导致的争议;数据本身的安全性和被篡改的风险较大,导致参与方之间出现信任问题。

引入区块链技术以后,相当于大家一起来维护和更新同一个共享的数据库账本。所有的参与方,都拥有和更新自己的一个账本,相关的数据和文档都会写入共享账本。当检疫部门处理完后可以通过区块链同步状态,其他的参与方就会立马可以看到更新后的状态,然后就是海关的处理,而关税可以通过智能合约提前设定好,一旦海关通过,交易自动完成,接下来是海运等等一系列类似的处理流程,信息流和资金流自始至终都是在区块链上完成,不存在不同步、伪造、交易成本高等问题,可以说这是对现有的商业模式一次伟大的改进。

小结

智能合约所展现出来的巨大未来前景,我想不用我再多费口舌了,借用现在很流行的一句话,未来已经来临,只是尚未流行,希望这篇文章可以让你嗅到一丝未来的气息,愿我们都可以活在未来。

编辑:王宝凤
分享到:

相关新闻