智能合约是当下非常流行的概念,那智能合约是什么呢?又能用来解决哪些问题呢?
在1997年,Nick Szabo第一次提出了智能合约的概念,这要远早于比特币的诞生。nick Szabo 是一位计算机科学家,法学家,及密码学家。但是我不打算用他的原话来解释这个概念简而言之,他是想使用一种分布式账本来存储合约。如今,智能合约与现实中的合约是类似的唯一的区别,就在于智能合约是完全数字化的,事实上,智能合约是一小段计算机程序,存储在区块链中。
我们来举个例子,理解一下智能合约的运作原理。你可能比较熟悉kickstarter,它是美国最大的一个众筹平台,产品团队可以在Kickstarter上来创建自己的项目,并设置一个融资目标,从那些相信并支持他们想法的人中筹集资金。本质上来说,Kickstarter 是介于产品团队和其支持者之间的一个第三方平台。这就意味着,产品团队和其支持者都必须相信Kickstarter会妥善的处理他们的资金,如果产品可以成功融资,产品团队当然希望平台可以将筹集到的资金给他们,同样,支持者们也希望他们的投资能被他们支持的产品使用,或者当产品最终没有筹得目标资金,平台应将他们的钱进行退还。这样的话,产品团队和其支持者就必须信任Kickstarter。但是使用智能合约,我们同样可以建立一个类似的体系,但却不需要像Kickstarter这样的第三方平台。
接下来我们就来创建一个这样的智能合约。我们可以编写智能合约,使其能够在目标金额达到之前,一直持有接收到的资金。现在,项目的支持者将资金转移到智能合约。如果项目的目标资金可以完全到位,合约将自动把筹得的资金转给项目的创建者。而如果项目没有筹得目标资金,这些钱也将会自动退回给到项目支持者的手中。是不是很棒?
由于智能合约是存储于区块链中的,也就意味着所有的这些信息是完全分布式的。这项技术也保证了没有人可以控制得了这笔钱。但我们又为什么相信这个智能合约呢?
由于智能合约存储在区块链中,因此就继承了一些有意思的特性。即它们不可篡改,且是分布式的不可篡改,也就意味着一旦创建智能合约,就再也不能被修改了,没有人可以篡改已经上链的智能合约。而去中心化,意味着你发布一份智能合约,需要经过网络中所有人的验证。所以,某一个人不可能强制让合约释放这些资金。因为网络中的其他人会发现你的企图,并标记为无效。所以,想篡改智能合约?门儿都没有!
当然,智能合约不仅仅可以应用到众筹上,它还可以应用到许多其它的领域例如:银行可以拿它来发放贷款或者提供自动支付,保险公司可以用它来处理特定的理赔,邮政公司可以把它应用到投递结算等等。
那么,你可能会好奇你将会在哪以及如何使用智能合约。现在已经有一些区块链平台可以支持智能合约了,其中最大的一个平台就是以太坊,它在创立之初的定位就是为了来支持智能合约。智能合约可以用一种叫做Solidity的编程语言来进行编写。这种语言是特意针对以太坊发明的,它的语法类似于JavaScript。值得一提的是,比特币也支持智能合约,尽管和以太坊相比起来,比特币有更多的限制。
现在,你应该已经知道了智能合约是个什么,以及智能合约可以解决哪些问题。