智能合约的真相

本文作者Jimmy Song,来源于medium.com,由Laura Li 翻译。


和“区块链”一样,“AI”、“云”和“智能合约”这些概念都在被大肆炒作。

毕竟,让事物“顺其自然”,比按照司法程序管理不是来得更加简单吗?智能合约的承诺会:

1.自动地、无需信任地、公正地强制执行合约内容;

2.在合约的签订、执行和履行过程中,去除对第三方的依赖;

3.(据说可以)替代律师。

对于炒作中的部分信息,我还是支持的。毕竟,一旦去除对可信第三方的依赖,效率会提高许多。

那么,智能合约到底是什么呢?它是以太坊专属的吗?这难道不是未来的必然趋势吗?你为什么要阻碍这种进步?

在本文中,我将说说智能合约是什么,以及它将有哪些应用场景。

智能合约是什么?

一般的合约,是两个(两个以上)当事人之间的协议,协议内容将会对他们即将进行的某件事上进行约束。例如,Alice可以付钱给Bob,以换取Bob房子的使用权(也就是租金)。Denise可能每月给Charlie付款,让Charlie帮忙修理汽车(又名汽车保险)。

智能合约的不同之处在于,它是由计算机代码评估和执行的。如果Alice同意支付500美元给Bob,而Bob需要在3个月后交付一张沙发。代码会确定条件是否属实(Alice支付500美元给Bob了吗?付款后有3个月了吗?)。并执行(从托管到交付沙发),过程中不允许任何一方退出合约或拒绝履行。

智能合约的关键点是,它可以实现可信执行(trustless execution)。也就是说,不需要依赖任何第三方来进行信任背书。因为,与其等着第三方履行诺言,或者依靠律师和法律制度补救,还不如让智能合约来。智能合约可以及时、客观地执行记录在合约中的所有条款。

智能合约其实挺“笨”的

“智能”一词,意味着合约具有某种与生俱来的智慧。实际上,真正执行的时候它没有那么聪明。合约的智能之处在于,只需要将协议写入算法,然后强制双方履行协议,不需要协议双方的合作。就好像,房东会把不付钱的租客赶出去,智能合约会直接把他们锁在门外。

一个真正“智能”的智能合约,会考虑到所有“情有可原”的情况,并审视合约精神,作出最公平的裁决。换句话说,真正的智能合约会表现得像一个优秀的法官。而现实情况是,“智能合约”根本就不智能,因为它是基于规则,并始终遵循规则的,完全不会考虑现实情况或人道主义。

换句话说,一旦使用智能合约,就不允许有任何模棱两可的空间,这也就引出了下一个问题。

智能合约真的很难实现

由于以太坊的影响力太大,人们错误的以为智能合约是以太坊独有的。事实上这是不对的。智能合约从1995年就出现了。2009年比特币出来的时候,也采用了智能合约语言——脚本。拿比特币的智能合约语言和以太坊的相比,最大的区别是以太坊是图灵完备(Turing-complete)的。也就是说Solidity(以太坊智能合约语言)可以运行更加复杂的合约,代价是它也更难分析。

复杂性带来了一些严重后果。虽然复杂的合约可以允许更复杂的情况出现,但复杂的合约也很难维护。在日常生活中,也会出现合约越复杂,就越难强制执行的现象。因为复杂因素增加了不确定因素和解释空间。如果要保证智能合约绝对安全,就要对合约执行中每一种可能进行测试,并确保合约能够完全实现起草者本人的意愿。


保证图灵完备的智能合约,就相当于证明计算机程序没有错误。我们知道这是非常困难的,因为现在几乎所有的计算机程序都不是完美的。

写作一份普通的合约,需要多年的学习,并通过律师考试才能胜任。写作一份智能合约的难度,不亚于此。但目前,大部分智能合约都是新手写的,他们对事物的考虑,做不到尽善尽美。也是因此,可以发现许多智能合约都存在安全漏洞。

比特币为了解决这个问题,放弃了图灵完备性(Turing-completeness)。这使得合约更易于分析,程序更容易枚举和检查。

以太坊的解决方案呢,是把责任转嫁给合约起草者。即,为了保障操作的安全性,合约的起草者应确保自己写作出来的合约尽可能完善。

智能合约不是真正的合约(至少在以太坊上是这样)

把维护合约安全性的的责任交给合约起草者,虽然听起来不错,但在实践中,会产生权利集中的问题。

以太坊是基于“代码就是法律”的理念展开。也就是说,以太坊合约是最终的权威,没有人可以推翻这个合约。这个想法是为了让智能合约起草者明白,合约本身是独立的。如果起草者没有发现自己的智能合约的安全漏洞,那么一旦发生什么事,起草者们是“罪有应得”。当DAO事件发生时,一切戛然而止了。

DAO代表“分布式自治组织”,他们在以太坊上设立了一个基金。用户可以将钱存入DAO,并跟着DAO的投资按比例获得回报。当ETH的交易价为20美元左右时,DAO融资1.5亿美元。从理论上讲,这一切都是可行的。但是,由于代码的安全性没有得到保障,有人找出了漏洞,可以成功的从DAO中拿到钱。

从DAO中拿钱的人被认为是“黑客”。从某种意义上来说,“黑客”确实找到了合约的漏洞,这是出乎合约起草者预料的,但也是事实。从更广泛的意义上说,这根本不是黑客,而是一个利用智能合约安全漏洞来获利的用户。这和一个注册会计师找出税收漏洞来节省客户的钱,并没有太大的不同。

接下来发生的是,以太坊决定不再完全拿代码当法律,并收回了所有投入DAO中的钱。这其实是,合约起草者和投资者做了一些愚蠢的事情,以太坊开发商决定为他们纾困。

这一事件的被记录下来了。后来“Ethereum Classic”诞生,它将“DAO”作为书面形式保存,并保留了“代码就是法律”的原则。此外,因为图灵完备实在难以维护,开发人员开始回避使用这种语言。ERC 20和ERC 721标准是以太坊中最常用的智能合约模板,需要指出的是,这两种类型的合约都可以在没有任何图灵完备的情况下编写。

智能合约仅适用于数字承载设备(Digital Bearer Instruments)

即使没有图灵完整性,智能合约依然听起来很好。毕竟,大家都不想去真正的法庭,使用智能合约不是比普通合约容易得多吗?

智能合约不是也可以应用于房地产领域吗?Alice可以证明房子是她的。Bob可以付钱购买这所房子。不存在所有权问题,在无需信任、不需要法官、中间人或保险机构的环境里,依靠计算机程序来履行合约。听起来就不错,对吧?

这里有两个问题。第一,由中心机构来执行的智能合约,并不能做到真正的可信执行。至少,你还得依赖这个中心机构。可信执行是智能合约的关键特性,因此通过中心机构来执行不是最佳选择。要使智能合约真正做到可信执行,需要的是一个去中心化平台。

这就引出了第二个问题。在分布式的况下,只有在数字世界和现实世界建立直接的联系,智能合约才可能真正运行。也就是说,一旦在数字世界中,房子的所有权发生改变,那么现实生活中房子的所有权也必须发生改变。数字世界需要“对应”现实世界。这被称为“预言机问题”(Oracle problem)。

当Alice把房子转让给Bob时,智能合约需要知道的是,她在现实生活中,也确实把房子转给了Bob。有几种方法可以做到这一点,但它们都有同样的基本问题。必须有一些可信第三方来核对现实世界中的情况。


例如,Alice把房子转化为数字货币,并通过转让数字货币的方式把房子转让给Bob。问题出在这里:Bob需要相信这些数字货币确实代表了真实的房子。必须有一些预言机来担保,将代表房子的数字货币转让给他的同时,也完成了法律上房屋所有权的转让。

此外,即使政府当局明确证明这些数字货币确实代表了房子时,也存在一些问题:如果数字货币被偷了,这房子现在是小偷的吗?如果数字货币丢失了,这房子已经卖不出去了吗?这房子的数字货币能重新发放吗?如果是的话,是由谁来发?

在去中心化系统中,将数字资产与有形资产(无论是水果、汽车还是房屋)联系起来都是一个棘手的问题。在司法管辖范围里,有形资产除了遵循智能合约之外,还需要遵循其他司法规则。也意味着,智能合约中的所有权,并不一定等同于现实世界中的所有权。并且,与普通合同一样,仍然存在信任问题。如果智能合约最终还要依赖第三方,那么它可信执行的特点也就无从说起了。

像电子书、医疗记录或电影这样的数字资产也面临着同样的问题。这些数字资产的“所有权”最终由其他权威机构决定,也对预言机有依赖。

从这个角度来看,预言机只是弱化的法官。你真正得到的不再只是机械的、简化的执行,而是通过对所有风险预估之后进行编码的复杂性。换句话说,你使用了“智能”的合约,却仍然依赖第三方,合约的写作却变得更加复杂了。

在没有预言机的情况下,唯一能工作的就是数字承载设备。本质上,交易双方不仅需要将信息数字化,还需要数字承载设备。也就是说,数字货币的所有权不能依赖智能合约之外的其他存在。只有在拥有数字承载设备后,智能合约才能真正应用于无需信任的环境中。

结论

我希望智能合约可以更实用一点。但是,由于传统合同中有很多约定俗成的,或者难以言明的部分。而智能合约只能执行条理清晰的指令,这些无法明确说明的隐形条款,根本无法通过智能合约表现出来。

此外,图灵完备比较容易受到攻击,会导致各种意想不到的行为出现。我们应该将智能合约标记为图灵易损(Turing-vulnerable),而不是图灵完备。“DAO”事件也证明了合约中的“精神”是隐含可信的,比我们想象的更有助于解决争端。

智能合约很容易被攻击,难以得到保障,太难应用到无需信任的环境中,而且对外部有太多依赖,导致它无法大规模应用。智能合约真正的作用,是在去中心化平台(比如比特币)上使用数字承载设备。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容