带你秒懂智能合约(上)

DappSo

1 什么是智能合约

一份普通的合约是两个或两个以上的当事人之间的协议,这份协议将当事人与未来的某事紧密联系在一起。比方说【爱丽丝付给鲍勃一些钱作为使用鲍勃房子的回报】——租借;【丹尼斯会每月支付查理一笔费,前提是丹尼斯的车一旦出了故障,查理要帮他修理】——车险。

智能合约与普通合约不同的地方在于,智能合约的情况/条件是由电脑代码评估和执行的,使合同去信任化。比如说,为了借用BOB家的长沙发,Alice协定给BOB支付500刀,租期从即日起截止到三个月后。那么就需要一些电脑代码判定条件是否属实(Alice到底有没有付钱给BOB,真的租用了3个月吗?)然后履行合约。另外,在履行期间双方当事人均不得中途退出。

智能合约的关键特征是无信任执行合约内容。也就是说,不需要借助第三方处理各种状况。智能合约只是按时且客观的履行设定好的应当做的事情,不需要相信第三方所说的好话坏话,不需要依靠律师和法律体系修正问题。

带你秒懂智能合约(上)

2 “不智能”的智能合约

“smart”这个词带有“合同天生就智能”之意,但其实并非这样。智能合约“智能”的点在于不需要第三方协作就可以执行合同。以租房合同为例,智能合约无法将没有支付租金的房客赶出去,但可以将其关在门外。他不是天生就智能。而是有效力的执行此前当事人们协议好的结果。

一个真正智能的合约应该考虑到所有需要斟酌体谅的情况,做出即使面临最黑暗的状况也依然公平的裁定。换而言之,它就像是个优秀的法官。既能十分完美的遵循基本规则,又不会因任何其他事情动摇。

所以,一份去信任的合同代表着合约内容中不能出现任何含糊不清的词语。

3 智能合约实际操作很难

有很多人误认为智能合约只存在于以太坊。其实并非如此。最早在2009年,比特币就出了一个被广泛使用的智能合约语言——“脚本”。不过,比特币的智能合约和以太坊上的智能合约的区别在于,以太坊上的智能合约是图灵完备的,它的Solidity语言能兼容更多更加复杂的合约。

然而,复杂会引来很多难题。要知道即便是普通合同,合同越复杂,执行力度会越发困难。因为复杂增强了合同里事件的不确定性以及解释空间。而对于智能合约,它需要处理运行中面对的每一种可能还要保证合约运行的方向符合作者意图。

在图灵完备的环境中运行是一件非常棘手并且很难分析的事。因为要保证图灵完备的智能合约的安全性相当于要证明计算机程序没有BUG。但大家都知道,几乎所有现存的电脑程序都有BUG。

试想一下,写一份常规合同需要经过好几年的学习,考取律师资格证之后才能胜任这项工作,那智能合约的撰写肯定也需要同等水平的能力。但是目前,大部分合约都由什么都不懂或者只懂皮毛的新手完成。

比特币解决这个问题的方式简单粗暴,不具备图灵完备就好。这样合约便于分析,程序的可能状态也方便一一列举和检测。而以太坊的解决方式是将责任抛给智能合约编写人。

就此会引发出下面的问题,智能合约到底是不是合约呢?它足够安全么?它适用于哪些方面呢?

预知这些内容,请看下回分解。

(未完待续……)

原文链接

https://www.dappso.cn/3083.html

Dapp Store:

https://store.dappso.cn


分享到:


相關文章: