区块链里所说的“智能合约”是什么?

谈到区块链,必然离不开“智能合约”这个词。我们在本系列的第一篇文章中提到“智能合约”(smart contract)是由多产的跨领域法律学者 Nick Szabo 在1995年提出来的,他的定义为:“一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。”那么,我们该如何理解这段话呢?

回顾一下比特币区块链系统中的转账:

Alice 转账给 Bob 100比特币,在比特币区块链系统中是这样记录的:

 

本质上,这就是一个合同。这个合同里面规定了 Alice 要转给 Bob 100比特币,该合同立即生效。注意,里面有一个“解锁信息”,这个“解锁信息”本质上就是 Alice 证明自己是 Alice 的地址持有者时需要提交的一个信息。 

显然,像比特币区块链系统里面,纯UTXO模式的这种合同用处是很有限的。首先,比特币是一个独立运行的封闭系统,它的转账脚本没有提供和外界进行交互的接口。所有信息(这里主要是解锁信息)只能在脚本提交到区块链之前定死,之后就只能按照固定方式运行。这对于“合同”来说是不符合实际应用的。

在我们实际生活中,一个完整的合同制定——执行流程是按照如下方式随着时间流逝而进行的:

其中,条件的达成通常是一个外部输入的事件,这意味着,我们实际生活中的合同通常是“事件驱动”型的。这个“事件”是否发生通常不是区块链上的数据能够判断出来的,而是依靠事件发生的时间点,通过链外输入数据的方式实现。 

以电子商务为例,Alice 在某宝的某个商家购买了一台笔记本电脑,当 Alice下单成功的那一刻,实质上就生成了一个合同。这个合同包含了 Alice 需要在多长时间内付款到第三方平台(事件1)。然后卖家看到 Alice 付款后需要发货,当 Alice 收到货以后需要点击确认收货(事件2),完成整个合同(在不考虑售后的情况下)。

在这个合同的执行过程中,事件1由于是一个纯粹的金融活动,已经高度的虚拟化,能够实现自动发现事件自动触发。而事件2则是一个在现实世界中发生的活动,需要我们“点击确认收货”来把这个事件的发生同步到虚拟世界中,这个“点击确认收货”就是虚拟世界中的事件2。所以,对于某宝的购物合同而言,事件1实质上是 Alice 是否转账到平台,事件2是 Alice 是否点击确认收货。因此,在这个合同中,预留了一个和外部交互的接口——确认收货。

除了和外部的交互能力外,比特币转账合同(脚本)的另一个重要缺陷是它不是图灵完备的。这句话对于非计算机专业的人来说可能不太好理解,我们可以简单的理解为它没有循环能力和复杂的条件控制能力。

合同的循环能力在我们现实世界中是很常见的,例如我们和电信运营商签署的移动电话服务合同,通常就是一个循环合同。这种合同以自然月为单位,每个月自动循环执行。还有类似的企业间签订的长期采购合同,都是一种不断循环的合同。合同中规定的事件(或时间点)全部达成以后,自动循环回第一步,重新执行。 

复杂的条件控制能力就更常见了——合同中的违约条款就是条件控制能力。事件达成怎样,没有达成如何执行违约条款等,这些都需要合同拥有复杂的条件控制能力。 

比特币中的交易是使用比特币区块链底层平台定义的一套脚本语言来写的,由于当初比特币区块链系统是按照一个数字货币的模型进行设计的,因此它并不需要这些复杂的能力。但是如果我们需要区块链技术在其他商业场合进行应用,很多时候就需要这些能力。比如我们利用以太坊平台来实现某个业务,那么整个流程是这样子的:

目前,关于智能合约的争议仍然是很多的。主要包含两方面:

1、合同本身是否是双方真实意思的表达

a)在现实世界中,我们撰写的合同除了受合同细节的约束外,还受到了外部法律和行业惯例的约束。而在智能合约中,外部法律和行业惯例如果不能严格的体现在合同中,那么合同就不是双方真实意思的表达了。

b)在现实世界中,我们撰写的合同通常是由律师或者法律专家来帮我们完成的。不同水平的法律专家,其完成的合同严谨程度是不一样的。同样在智能合约中,我们撰写的合同是由程序员帮我们完成的,程序员的水平决定了合同的严谨性。还有一点,程序通常都会有bug,这些bug是否会导致严重的损失,然而在bug没有被发现之前,都不得而知。

2、合同的仲裁机构是谁

a)在现实世界中,我们通常都会在合同中约定一旦发生纠纷,请哪个仲裁机构对合同进行仲裁。而在区块链中,尤其是公有链平台上的智能合约,一旦我们认为合同没有表达双方真实的意思,我们无法找到一个仲裁机构对合同进行仲裁。

b) 在联盟链中,由于各方各个节点的身份都是已知的,现实世界中的司法机构是可以介入智能合约纠纷的。但是这种介入有时候可能会影响整个联盟链系统的稳定性,这种情况下,怎样介入是一个技术问题,而这个技术问题又可能会带来新的bug。

本文作者:敖萌

本文转自雷锋网禁止二次转载,原文链接

时间: 2025-01-24 05:43:13

区块链里所说的“智能合约”是什么?的相关文章

两学一做,基于区块链的智能合约技术

书接上文,上回书说到如何快速上手大数据处理框架SMACK,由于其强大的处理性能和复杂的技术架构,洋洋洒洒复制粘贴了近三千字依然难表其貌,更多详情移步原文地址.本节云框架将用"两学一做"思想,帮助大家清晰明了理解「基于区块链的智能合约技术」. 学习区块链的核心思想: 学习区块链应用场景-智能合约: 快速上手实践. 区块链核心思想 先给大家讲一个发生在象牙山这块小区故事,带大家认识认识我们屯里的人.... 特点1 去中心化: 传统谢大脚在记账的时候,刘能经常来捣乱说"谢谢谢大脚,

区块链技术指南.

区块链技术指南 邹均 张海宁 唐屹 李磊 等著 图书在版编目(CIP)数据 区块链技术指南 / 邹均等著. -北京:机械工业出版社,2016.11 ISBN 978-7-111-55356-4 I. 区- II. 邹- III. 电子商务-支付方式-指南 IV. F713.361.3-62 中国版本图书馆CIP数据核字(2016)第268750号 区块链技术指南 出版发行:机械工业出版社(北京市西城区百万庄大街22号 邮政编码:100037) 责任编辑:高婧雅 责任校对:殷 虹 印 刷: 版 次

从理想到现实, 你不知道的区块链

区块链究竟是什么? 说得笼统一点,区块链实现的是一种全新的信用系统. 另外一个同义的说法是,区块链系统是一个"Trustless"(无须信用)的系统,无须信用的系统本身就实现了自己的信用. 这个信用系统不基于任何法律法规,是用机器语言来实现的.在系统运作时,这种信用不受使用者的影响,也无法被破坏.借助互联网的传播,这个区块链系统能覆盖全球任何一个角落,并且是简单易用的. 简而言之,区块链(blockchain)说的是由区块(block)用某种方式组织起来的链条(chain). 在本文中

区块链技术指2.2 以太坊

2.2 以太坊 2.2.1 什么是以太坊 自2008年比特币出现以来,数字货币的存在已经渐渐为一部分人所接受.人们也积极展开了基于比特币的商业应用的思考与开发.但是随着应用的扩展,人们发现比特币的设计只适合虚拟货币场景,由于存在着非图灵完备性.缺少保存状态的账户概念,以及PoW挖矿机制所带来的资源浪费和效率问题,在很多区块链应用场景下并不适用.人们需要一个新的基于区块链的具有图灵完备性.高效共识机制.支持更多应用场景的智能合约开发平台.以太坊在这种情况下应运而生. 以太坊的目的是对脚本.竞争币和

网录科技CEO吕旭军:国内区块链产业时间紧迫感更强,很快会超美国

"曾有一段时间,我的家人托我从美国带奶粉回来,最开始觉得只是举手之劳.但后来我在网上去查找,发现在网上做奶粉代购的网站特别多.有这么多网站,为什么家人还坚持认定只有我亲自带回来的奶粉才可信,这就是一个经济的成本."在网录科技CEO吕旭军看来,因信任问题造成的经济成本非常高昂,所以区块链技术在未来还是有着很大的发展前景. 解决信任危机,而这只是其中一个缘由,真正让吕旭军决定去创业的,是当他作为Factom(公证通)中国负责人的身份到中国推广区块链技术受阻后,毅然决然和大学时期的好友一起收

ThoughtWorks技术专家详解:企业级区块链原来是这么玩的

雷锋网AI金融评论报道,5 月 13 日,由 ThoughtWorks 主办的 2017 技术雷达峰会在北京召开.ThoughtWorks 中国区区块链能力负责人.AI慕课学院讲师刘尚奇在大会上发表了题为<Blockchain in Enterprise>(企业区块链)的主题演讲,系统讲解了区块链技术在企业级应用中的实践问题. 刘尚奇表示,区块链的概念近两年逐渐深入人心,但真正进入企业级应用的时候,实际上还面对许多问题.从业者应该清醒认识到:进行区块链选择的决策时,从业者一定要从当前需要解决的

关于“区块链是什么、它的前世今生”,这是最通俗易懂的解说

区块链作为比特币的底层技术,在它疯魔之前,曾发生过哪些机缘的故事,推动其为人所知?在日前由路云区链主办的区块链技术论坛上,路云区链CEO丁浩介绍了区块链的前世今生.丁浩毕业于四川大学和华中科技大学,曾在华为核心网从事用户数据管理解决方案研发工作. 演说内容为丁浩第一人称自述,雷锋网(公众号:雷锋网)整理如下: 2008年正好是全球经济金融危机最严重的时候,金融危机在美国达到高潮并向全世界蔓延. 2008年底,中本聪发表了一个关于他研究的电子现金系统的九页白皮书.2009年初,中本聪在位于芬兰赫尔

智能合约的性能是否被高估了?

雷锋网按:本文译自fintechranking,原文出自LTP,作者Milos Dunjic,fintech技术顾问,拥有25年支付.电子交易软件系统开发经验,曾就职于加密算法RSA实验室等. 智能合约是安装在区块链网络节点中离散的计算机程序组件,从本质上讲,这些自动合约的工作原理类似于其它计算机程序的if-then语句.当智能合约准备好被部署的时候,代码的哈希值会被计算出来并打上数字签名.单向哈希值,数字签名和代码本身会被同时复制到由参加区块链的节点所组成的网络之中.作为部署流程的一部分,每一

区块链距离规模化商用,还缺什么?

关于区块链如何具有划时代意义及其潜在的巨大影响,相信很多人都已经略有耳闻.略知一二,这一点已经逐渐没了异议.而关于区块链何时才能真正改变世界,大多数人则莫衷一是,一些人看到或参与了区块链的初级商用实验而变得乐观,一些人则关注区块链的潜在制约条件而愈发悲观.问题来了,2009年至今,在近8年的时间内,区块链如何一步步进化并趋于壮大的?取得了哪些突破?距离规模化商用,还存在哪些限制性条件?下面笔者做些抛砖引玉的思考,一家之言,欢迎大家留言交流. 区块链的由来及其演进逻辑区块链(blockchain)