之前我们了解了区块链技术的一项重要应用比特币,今天我们来看看它的另一个重要应用,智能合约。
智能合约是什么呢?它又能被用来解决什么样的问题?
在1997年Nick Szabo第一次提出了智能合约的概念,这要远早于比特币的诞生。Nick Szabo是一位计算机科学家、法学家及密码学家,但是我并不打算详细的讲述他所提出的这个概念,简单讲一句,他是想使用一种分布式账本来存储合约。
今天要讲的智能合约与现实中的合约也是类似的,唯一的区别就在于智能合约是完全数字化的,具体来说,智能合约是存储在区块链中的一小段计算机程序。下面举个例子,方便理解智能合约的运作原理。
在世界上最大的众筹平台<kickstarter>上,如果有一家创业团队想要开发一件产品,可以在<kickstarter>上来创建众筹项目,并设置一个融资目标,从那些相信他们想法的人中筹集资金。本质上来说,<kickstarter>是介于创业团队和其支持者之间的一个第三方平台,这就意味着创业团队和其支持者都必须相信<kickstarter>会妥善处理他们的资金。如果产品可以成功融资,创业团队自然希望平台可以将筹集到的资金给他们。同样,支持者也希望他们的投资能被创业团队所使用,或者当最终没有筹到目标资金,平台应将支持者的资金进行退还。
按照这个流程,创业团队和其支持者,就必须信任<kickstarter>。而如果借助智能合约,我们同样可以建立一个类似的体系,但却不需要像<kickstarter>这样的第三方平台。
假设我们来创建一个这样的智能合约,我们可以编写合约代码,使其能够在目标金额达到之前,一直保存接收到的资金,现在,项目的支持者将资金转移到智能合约,如果项目的目标资金可以完全到位,合约将自动把筹集到的资金转给项目的创建者,而如果项目没有筹到目标资金,这些资金也将会自动退还到项目支持者的手中,由于智能合约是存储在区块链中的,也就意味着所有的这些信息是完全分布式的,分布式技术可以保证没有人可以控制得了这笔资金,但我们又为什么相信这个智能合约呢?
由于智能合约存储在区块链中,因此就继承了一些有意思的特性,他们不可篡改,且是分布式的。
不可篡改,也就意味着一旦创建智能合约,就再也不能被修改了,没有人可以背着你篡改你的合约。
而分布式意味着你合约的输出,需要经过点对点网络中所有人的验证,某一个人不可能强制让合约转移出这些资金,因为网络中的其他人会发现你的企图,并标记为无效。
当然,智能合约不仅仅可以应用到众筹上,它还可以应用到许多其他的领域,比如,银行可以拿它来发放贷款,或者提供自动支付,保险公司可以用它来处理特定的理赔,邮政公司可以把它应用到投递结算等等。