小白四问智能合约——帮你理清知识脉络

发布时间:2018-08-19 11:31

八月,我在赞比学堂的《手把手玩转区块链》课程中担任导助。在第二周课程里,秋刀鱼老师给我们讲解了智能合约的概念和应用。我把课程中同学们提的问题分为四类,在这里一一解答,看看这些问题,是否也同样困扰着你。

听完课程后,很多同学对某个协议是否为智能合约存在疑问,因为在生活中,好像随手一抓,都是智能合约的例子。这么高大上的智能合约,真的运用的这么广泛吗?所以我们有必要再次来明确一下,什么是智能合约。

说到智能合约,人们往往会想到以太坊,甚至有人会把以太坊和智能合约画上等号。其实智能合约早在上世纪90年代就被计算机学者尼克·萨博(nick szabo)提出来了,他的理念是:

一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。

智能合约可以被拆分为两块,一块是智能,一块是合约。

所谓智能,其实就是一道程序,比如自动取款机,我们只要输入密码和金额,机器就能自动跳出钱来;比如说智能电灯,我们设置了5分钟之后关掉,它就会在5分钟之后自动关闭。

所谓合约,是针对人和人之间某些行为的约定。

单独做到智能或者合约,都非常容易实现,但是把智能和合约结合起来,把人的行为约定数字化,就变得不那么简单。在区块链技术出现之前,智能合约更多的只是一个概念,并没有实际上的应用。

生活中,类似于自动贩卖机的这样的例子,我们这里称之为广义上的智能合约,它其实就是一道程序,偏向于“智能”这个性能。我们现在所说的智能合约,大多是特指区块链上的智能合约。

既然是区块链上的智能合约,那么它就有区块链独有的去中心化、不可篡改、信息可追踪、信息透明等特点。不同于广义上的智能合约,区块链上的智能合约参与的双方必须拥有该条链上的数字身份,参与双方必须是人、集体或公司。这个在下面会进一步描述。

我们今天就先不纠结那些广义上的智能合约了,我们把讨论的重点,放在区块链上的智能合约。基于这个前提,我简单的来回答一下第一类问题:XX是智能合约吗?

Q1.1:自动售货机就是智能合约?麦当劳自动点餐、车站自助售票、超市自助买单算不算智能合约范畴?那交通充值机应该也算?无人超市也属于智能合约?

A:它们都是广义上的智能合约。但是我们今天就先不纠结那些广义上的智能合约了,我们把讨论的重点,放在区块链上的智能合约。

Q1.2智能合约就是合同?

A:它可以是一个约定、协议或者合同。

Q1.3不用人工就达成的协议就是智能合约?

A:这个问题的充分必要推理一定是不成立的,我这样来回答你:区块链上的智能合约有一个特点,就是不需要第三方就能达成协议。

Q1.4医院药房拿药是否应用了智能合约技术呢?

A:这个例子一定有它自己的一套程序,但是它一定没有运用区块链的智能合约技术。

接下来,我们通过区块链上智能合约的运行,来梳理一些细节,以便理解:

首先,合约的参与方明确需求和合约条款,每个参与方都需要在区块链上生成一个数字身份,以及一对公私钥。

接着,就是编写合约,完成后各自用私钥签名(类似于在合同上的签字),再分发到区块链网络中,等待被打包,类似于比特币的交易过程。

成功打包后,验证者(矿工)就会把这个合约发布到网络中,同步给各个节点。

智能合约会定时检查合约状态,看看合约中的触发条件是否已经被满足,当满足合约触发条件时,那么这些触发条件会被推送到验证队列中,等待被打包。

当验证者(矿工)确认后,就会执行合约细则。合约执行后,智能合约中的状态机制就会判断合约状态并标记状态,如果合约执行完成则将状态改为完成状态,在未打包的交易记录中删除,如未完成等待下一轮处理。

所以在众多验证着的验证下,整个智能合同的执行都是自动完成,不可篡改,完全透明的。

根据上面智能合约运行的知识点,我来回答一下第二类问题:

Q2.1智能合约是怎么公开透明、解决买卖双方资讯不对称的问题?能不能举例,说明一下。

A:因为智能合约和区块链技术相结合,所以有了去中心化,不可篡改等特点,那么,执行合约的触及条件就是人人可见的,是经过节点验证和确认的。

比如说我出了一本书,和出版社约定版税是10%。如果没有智能合约的约束,那么这本书的销量情况,其实不是公开透明的。明明卖了100本,出版社偏偏说只卖了50本,那么这个时候,我的版税实际上是又10%下降到了5%。

如果加入智能合约,并且把分发渠道、销量等都写入条款,那么任何人都可以清楚的看到,书的销量是怎么样的,出版社就没法篡改数据了。这样就能解决公开透明,以及合约双方信息不对称的问题了。

Q2.2智能合约只适用于数字资产吧?线下财产如何自动执行转移?

A:因为上智能合约时,需要参与双方都有一个数字身份,所以参与方必须拥有相应的数字资产。如果想要做到线下财产的转移的话,那么这个线下财产,必须也要数字化。

比如说是房屋买卖的例子,A把房子卖给B,A、B和房子都需要被数字化。当合约未执行时,A的私钥可以打开房子,并入住。当B把房款打到A的账户后,那A对于这个房子的私钥自动失效,同时,B的私钥能打开房子,这样一个智能合约就完成了(这里为了举例,简化了买卖房产的流程,比如还需要完成房产证名字变更等)

Q2.3智能合约的参与对象是否只能是事物,如果是人呢,如果合约参与者拒绝执行合约呢?

A:参与双方必须是人、集体或公司,因为参与双方都需要被数字化。如果智能合约已经上链,但参与者拒绝执行,也就是毁约的情况,那这个合约还是该怎么执行就怎么执行,不受参与方主观意念的影响。

很多同学认为,有了智能合约就能解决所有问题,这可能要让你失望了。都说有人的地方,就有江湖,就存在纠纷。那么那些存在纠纷的点,需要人来协调的地方,就不适合智能合约的运用。可以这样理解:

智能合约的一个关键要素,是有“如果…..那么…..”这个逻辑存在,达到了“如果”的条件,则自动触发了“那么”的内容。

可以应用在哪里?怎么用?要考虑到里面要有“如果…..那么…..”这个逻辑存在。

比如说,我运用智能合约在淘宝上买一本书,并在智能合约设定,如果5天内收到货,系统将自动把我的货款,打到商家账户,如果5天内未收到货,则视为商家毁约,该笔交易自动失效。假设我在第六天才收到货,那么这个智能合约就失效了,我的货款就没有通过智能合约打给商家,这个时候可能就出现了纠纷。

但是这个纠纷和智能合约无关,智能合约已经完成了它的使命,并且作废了。后来,在商家诚恳的道歉后,我还是决定把货款打给商家。所以智能合约之后的纠纷,往往还需要人来协调。

接下来回答第三类问题:

Q3.1智能合约就不会出现纠纷吗?

A:智能合约的执行,没有人工的干预,所以不会出现纠纷。如果出现纠纷,往往是合约条款本身就存在了纠纷隐患。

Q3.2智能合约生效了,怎么修改呢?反悔了怎么办?

A:智能合约一但生效,就无法篡改,反悔了也没用。

Q3.3在保险的例子中,谁去告诉智能合约,此人符合理赔条件?车险这种,智能合约怎么触发呢?谁去触发?

A:现阶段,如果车险的例子要写进智能合约的话,一定不会把“怎样的情况,赔多少”这样相对主观的内容写进智能合约,判断车险是否发生,赔多少,一定还是需要第三方人工确认的。当确定理赔结论后,再通过智能合约来进行赔付。

Q3.4智能合约只在链上生效,在现实中现阶段是不是其实缺乏约束力呢?

A:是的,不上链的智能合约,其实就和纸质的合同类似,需要第三方信任机构来约束它的效力。

Q4.1智能合约可以理解为人工智能吧?

A:不是人工智能,它不会自己思考问题,只会自己执行程序,但是可以和人工智能相结合。

Q4.2比特币区块链的信息和以太坊的信息相通吗?

A:不相通,他们是独立的两条链。

Q4.3目前只有在以太坊的链上才能编写智能合约吗?

A:不是。在以太坊之后开发的公链上,基本都能编写,比如EOS、NEO等。

Q4.4智能合约在以太坊里的应用是什么?

A:全球第二大金融公司,保险业巨头安盛(AXA),推出了基于以太坊公链的智能合约保险产品——Fizzy,如果航班延误超过两个小时,那么被保人会自动获得赔偿。

这个例子有一个前提,就是保险人需要拥有数字身份,这也是智能合约推进困难的一个例子,因为并不是人人都有区块链资产,更不是人人都有以太坊数字资产。

在尼克·萨博提出智能合约后的很长一段时间里,智能合约都因为种种原因,没有得到很好的应用,直到区块链的出现。

区块链去中心化、不可篡改、信息可追踪、信息透明等的特点,使得智能合约找到了一个合适自己的平台。然而,现在区块链智能合约仍然面临着种种困难,它是否能落地的关键,还在于人们把多少资产数据和行为数据放到链上去。

但是,智能合约一定是一个趋势,一个不可逆的趋势,未来的世界会是怎样,让我们共同期待。

对了,想要参加《手把手玩转区块链》课程的同学,欢迎扫码学习哦,据说这是一门大妈都能听懂的区块链课程。HOHO~