一份合约通常可以把合作双方或多方与未来的某件事物联系起来,比如买卖房产、汽车保险等。而智能合约与普通合约的不同之处在于,智能合约当中所有的执行条件都由计算机代码来评估并完成。
在现实生活中,当我们的合约出现问题时,我们只能依赖诸如律师和法院这样可信的第三方来主持公道;而在智能合约中,根本不存在信不信任第三方的问题,因为计算机代码就能够即时客观的帮我们执行合约的所有条款,它相当于一个优秀的法官。
这样听起来“智能合约”似乎很高大上,它应该像人工智能那样“聪明”。但事实却并非如此。
一份合格的智能合约,应该包括一切可能发生的情况。因为智能合约的核心要义就是“即使在最阴暗的环境中,也要做出最公正的裁决”。然而从目前的情况来看,我们所接触到的智能合约都是遵循程序员设定的一系列规则来达到目的的。它完全不考虑规则以外的因素。这也就意味着,在规则之外没有任何让你犹豫不决和法外留情的余地。
这种情况就引出了我们接下来要讲的问题。
1.智能合约真的很难保证安全性
这一点从以太坊的身上就能够看出来。
由于以太坊本身是一个智能合约平台,因此很多人认为只有以太坊才能够实现智能合约。但这其实是认知上的一个误区,从1995年在比特币被发明之前,智能合约的概念就已经存在了;到了2009年比特币开发了一种相当广泛的智能合约语言“脚本(Script)”。
而以太坊与比特币之间的区别在于,以太坊是图灵完备的,通过该平台可以实现种类更多、条款更复杂的合约,当然这样做的代价是,复杂的合约内容使其变得更加难以分析。通常情况下,复杂度与发生漏洞的机率是成正比的;复杂度越高,发生漏洞的机率就越大。
而要在图灵完备的情况下执行这样一份合约也是非常棘手的,因为如果这时你想要证明你的合约是安全的,就相当于要证明计算机程序中没有BUG一样。但这个世界上就根本不存在没有BUG的计算机程序啊!
一个普通人至少需要多年的学习,通过层层考试并不断地实践才能成为一个合格的法官,但是现在写智能合约的门槛相当低,很多程序员都是新手,他们其实并不知道如何来保证这些合约的安全性。
2.智能合约真的没有去信任
即使没有图灵完备,智能合约听起来也还不错,毕竟不需要法院、律师这样的中介,在不需要信任第三方的情况下就能自动执行,效率?***鼗岜绕胀ê显几叩枚唷?
但是这里还有两个问题:
去信任是智能合约的核心特征。但即使智能合约本身是去信任的,合约的执行依然需要依赖第三方;
在去中心化的环境里,要想智能合约真的起到作用,虚拟世界和现实世界之间必须要有一个强关联关系才可以;
以买房为例:如果房子相当于以太坊区块链世界中的ETH代币,那么在虚拟世界里A将房子的所有权转让到B的名下,就可以换取一定数量的ETH,而此时在现实世界中,B也要相信这些ETH实际上就相当于房子的所有权。因此他们还是需要一个权威第三方来证明当B交出ETH之后他就能够在法律上获得这套房子的归属权。
这里就涉及到了“预言机”的问题,预言机是智能合约与外部环境进行数据交互的唯一途径,外部数据作为智能合约的输入参数经过预言机流入智能合约程序。只有通过预言机才能够确定,在虚拟世界和现实世界中你的状态,以及履行合约的情况是否一致。本质上来说,你还是需要信任流入预言机的数据是客观准确的,这与智能合约去信任的思想严重相悖。
如果想的再长远一些,即使当权威机构说这个代币实际上代表房产,但如果这些代币被盗了呢?被盗之后房子属于小偷吗?如果代币丢失了怎么办?这座房子就不能再卖了吗?可以重新换取新的代币来代表这套房子的所有权吗?如果是这样,谁来做这些事情?
而在没有预言机的情况下,唯一能够发挥作用的就是数字不记名工具。从本质上来讲,“数字不记名工具”意味着代币的所有权不能在智能合约所属平台之外再具备任何有依赖性的关系。因此,智能合约大部分时候,只有在像比特币这种内生型代币(不需要外部数据的输入)上才有可能做到真正的去信任。
我们当然希望智能合约能够比普通合约更有效,但不幸的是,现实生活中的很多合约,都包含一系列的假设和既定的法律体系;而且事实也证明,图灵完备的智能合约很容易带来意想不到的结果。交流请加笔者!
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。