当今社会,执行合约需要耗费大量社会资源。比方说,A、B两家公司签订合同,后来A违反合同条约,导致B损失重大。B想要拿回属于自己的东西,于是向法院起诉。就算B打官司赢了,判决书生效后,他还需要向法院申请强制执行,包括立案,提供财产线索……整个流程下来,每个参与人都很憔悴,尤其是本来就是受害方的B。
而智能合约能让这一切变得简单很多。智能合约和上述传统合约的区别,就在于“智能”,不涉及人类主观想法,一切皆代码。
智能合约,就是一段写在区块链[1]上的代码,一旦某个事件触发合约中的条款,代码即自动执行。也就是说,满足条件就执行,管他愿不愿意。
智能合约的工作原理:
前文提到,智能合约是一段写在区块链上的代码。就像能做出好吃的蛋炒饭,并不需要亲自下蛋一样,本文不涉及代码怎么写,但可以讲讲智能合约的工作原理:
构建→ 存储 → 执行
1)智能合约由区块链内的多个用户共同参与制定,可用于用户之间的任何交易行为。协议中明确了双方的权利和义务,开发人员将这些权利和义务以电子化的方式进行编程,代码中包含会触发合约自动执行的条件。比方说,你把一套闲置的房子租给A,那么,这份智能租约中就规定了A必须在每月5号之前给你打房租、你必须在收到房租时马上给对方钥匙[2]等条款。
2)一旦编码完成,这份智能合约就被上传到区块链网络上,即全网验证节点都会接收到你和A的租房合约。
3)智能合约会定期检查是否存在相关事件和触发条件;满足条件的事件将会推送到待验证的队列中。假设A在4号提前打房租给你,这个事件就成了该合约的触发条件(每月5号以前)。
4)区块链上的验证节点先对该事件进行签名验证[3],以确保其有效性;等大多数验证节点对该事件达成共识后,智能合约将成功执行,并通知用户。
5)成功执行的合约将移出区块。而未执行的合约则继续等待下一轮处理,直至成功执行。
部署到以太坊上的智能合约是要消耗以太币的。就好像把现实中的仲裁人、法官、执行人搬到了区块链上,尽管他们成了一行行的代码,但也是珍贵的计算机资源。智能合约也遵循“Less is more”,逻辑应尽可能地简单。逻辑越复杂,消耗的以太币就越多。
根据区块链大神的说法,以太坊给常用的代码逻辑都规定了具体的价格。就好比你去买车,低配多少钱、高配多少钱,安装最先进的导航系统又多少钱,4S店已经规定好。
既然执行要消费以太币,如何支付呢?这跟淘宝的直通车类似,商家提前存几千块进去,系统会自动执行(匹配推广),费用一旦用完,推广立即停下。智能合约也是预支付,为了合约顺利执行,宁愿提前多打一点以太币,都不要少给了。智能合约比淘宝推广还狠,如果预支付的以太币不足以支撑整个执行过程,就算进行到半路,合约也会回到初始状态;更郁闷的是,消耗的以太币也不会退回给合约发起人。
智能合约有什么用?
在区块链社会里,大家共同维护一个区块链账本,所有交易数据无法篡改、不可伪造,还能减少人工对账的出错概率和人力成本;随着智能合约普及,我们也会变得更加佛系。面对潜在的纠纷,无需自己出马,一切代码说了算。
乘飞机买延误险,理赔就变得简单多了。投保乘客信息、航班延误险和航班实时动态均以智能合约的形式存储在区块链上。一旦航班延符合赔付标准,赔偿款将自动划账到投保乘客账户,保单处理十分高效,你也不需要跟工作人员费口舌、争论计赔时间等问题。
假设你借了一大笔钱给亲戚,虽然打了白纸黑字的借条,但催款的时候,如果对方有一种坚持不要脸的精神,而你也没有撕破脸、或者把对方告上法庭的勇气,你就拿不回本属于自己的钱。智能合约也许是解决办法之一,当然前提是双方把借款金额、还款时间、对方绑定银行卡信息等打包进合约中。到了约定还款日,借款自动划到你的账户里。
通过智能合约,真的就能拿回欠款吗?毕竟智能合约只在金融领域等方面开始有动作,还没有广泛融入普通大众的生活。
这个乌托邦的设想,值得等待。