什么是智能合约?

  对于合约,我们大家应该都不陌生,就是双方之间的一种约定。比如我们租房时签订的合同就是一种合约,坐飞机的时候,咱们买的航班延误险就是一种合约。朋友之间的借条呀,本质上也是一种合约。合约就是规定一个前提条件,一旦这个条件达成了,就按照合约里规定的去办。那么智能合约又是什么东西呢?它到底智能在哪里?今天我们就来聊聊智能合约那些事。

  每当提到区块链,往往都会提及智能合约,仿佛智能合约是伴随着区块链诞生的一样。其实并不是这样的,区块链起始于2008年中本聪的比特币论文,而智能合约的诞生,可以追溯到上个世纪。

  在上世纪七八十年代,大量的研究人员致力于计算机理论的研究,希望能够让计算机帮助人类承担更多的工作,解放人类的生产力。对密码学的研究也在这个时期蓬勃的发展,这些我们在第二讲中已经讲过了。

  在1994年的时候,计算机科学家尼克萨博(Nick Szabo)在他的论文中第一次提出了智能合约的概念:

  一个智能合约是一套以数字形式定义的承诺(promises) ,包括合约参与方可以在上面执行这些承诺的协议。听起来是不是有点绕?别急,尼克萨博还举了一个简单易懂的例子,那就是我们生活中非常常见的自动售货机。

  回忆一下,当你在使用自动售货机买可乐的时候,投入硬币后,自动售货机的系统一旦检测到你应经付款了,就会马上把可乐放出来。

  这就是一个最简单的智能合约。简单的来说,智能合约就是在一个计算机系统上,设置好条件和对应的操作,如果条件被满足,合约就自动执行。也可以理解为就是传统合约的一个数字化的版本。你在网上缴纳电费房租,在手机上购物,每个月的信用卡还款等等,都是一个个的智能合约。那么,它和区块链有什么关系呢?为什么大家总是把区块链和智能合约联系在一起?

  在回答这个问题之前,我先来给大家讲一个科学发展历史上非常著名的赌局——地球是平的。

  历史上很多科学家都特别爱赌,比如著名的斯蒂芬霍金,简直就是个打赌狂人。当然,这个“赌”不是像电影《赌神》里的那种赌博,而是一场场关于科学真理的赌注。

  今天故事的两位主人公都来自19世纪的英国。一位是历史上非常著名的科学探险家阿尔弗雷德·拉塞尔·华莱士,他和达尔文几乎在同一时期提出了自然选择的生物进化理论。另一位是当时的一位科学老顽固——约翰・汉普登。

  故事发生在1870年。那个时候,很多人还相信地球是平的,这其中就包括汉普登。而华莱士则坚信地球是圆的。于是汉普登特意摆了一个赌局,向华莱士挑战,称自己能证明地球是平的,赌注为500英镑。华莱士欣然接受挑战。

  那么怎么判断谁对谁错呢?两人商量后决定,选取老贝德福德运河一段几公里长的平直河道做实验,在一座桥上安置勘测镜,在距桥一近一远两个不同的地方勘察测量同高度的两个记号到水面的距离。如果不同地方的距离有变化,就代表地球表面是有曲率的,从而可以证明地球是圆的。否则就证明地球是平的。还请了一个独立的见证人见证实验结果。

  故事的结局我想你们肯定也知道,测量的结果显示较近的记号比较远的记号高了一米,从而证明了地球表面是球形的,华莱士在赌局中胜出。可是,汉普登不接受这个结果,耍赖说是由于角度造成的,拒绝支付500英镑的赌注。后来也就不了了之了。

  传统合约有哪些不足之处呢?

  罪一:效率低下

  传统的合约,条件的达成和合约的执行往往是彼此完全分开的两个部分。很多时候合约上预设的条件满足了,但是相应的规定并没有得到及时的执行。平时经常坐飞机的朋友可能买过航班延误险。当飞机起飞延误超过一定时间(通常是两小时)时,买了航班延误险的乘客可以得到一定的补偿。听上去好像很简单的一个合约,实际执行起来却非常麻烦。你需要出示一堆证明材料,经过复杂的手续,最后才有可能得到赔偿。具体的过程太麻烦了,感兴趣的朋友可以自己上网查一查。

  罪二:人为干预风险高

  上面提到的两位科学家的赌注里,汉普顿因为不满实验结果,拒绝赔付500英镑的赌注。传统的合约有很多不可控的地方,比如合约一方反悔,单方面撕毁条约,又比如说买通公证人,使结果变得有利于作恶者。这些都是在一个中心化的系统中无法避免的,中心化系统的背后,一定会存在人为干预的风险。

  罪三:安全性不足

  前面两点主要还是针对纸质的那种合约,可是即使是我们日常上网时接触到的各种“智能合约”,我把他们称之为传统的“智能合约”,也有上面提到的这些风险,而且,由于这些合约的代码都存放在中心化的服务器上,一旦遭到黑客攻击,后果不堪设想。

  相信你们听我说我这么多,心里会有点担心了起来。“靠,照你这么说,传统的合约就是个垃圾呀。”哈哈,我可不是这个意思哦,以前的合约虽然有很多不足,但还是在人类生产活动中有着非常重要的作用。

  不过,得益于区块链技术的发展,基于区块链的智能合约出现了。

  上面提到的这些问题,通过把智能合约和区块链结合起来,就可以得到很好的解决。在这门课程的第五讲中,我们提到了区块链的三大特性:去中心化、不可伪造和不可篡改,相信大家对这三点已经理解的比较深刻了。有了这三大特性的加持,智能合约的发展上了一个台阶。

  首先是杜绝了人为干预的风险,“In math we trust”,不用再去担心贿选和耍赖。其次,合约一旦在区块链网络上部署成功,就无法被篡改,不用担心有人偷偷修改了合约的内容。去中心化特性的加持,使得合约全网备份。黑客攻击?呵呵,用最近挺火的一句话来说,被攻击是不可能的,这辈子都不可能的。当然,这是建立在区块链网络本身安全性足够且合约代码没有漏洞的情况下。同时,由于合约的内容已经部署在网络上了,只要条件满足,合约自动被触发执行。原来繁琐的那一套流程,全都省下了。这大大减少了以前履行合约时需要的各种人力成本,提高了效率。

  这么说来,智能合约简直就是救世主呀。其实不然,受限于目前技术的发展水平,区块链智能合约还处于非常早期的阶段,问题依旧很多,目前还尚未得到大规模的应用。但是,随着技术的发展,配套服务的成熟,将来智能合约一定可以大放异彩。