本文在某种意义上是传世孤本。
2014年2月24日,以太坊创始人Vitalik Buterin在Bitcoin Magazine上写下了这篇文章。可能连V神都没想到,这篇文章成为以太坊构建之初,自己唯一一篇系统介绍DAO(去中心化自治组织)的传世文章。
可惜的是,这篇文章不仅是孤本还是残本,至今国内无人翻译过,堪称沧海遗珠!
在完成本文前两部分后,Vitalik突然投笔,不再继续本系列的创作。
其间发生了什么,我们不得而知。然而仅这两部分文字的价值,足以被奉为圭臬。
不同于后来区块链玩家的探索乃至专家的研究,以太坊创始人的眼光与角度是无可比拟的。
本文中,Vitalik用简短的几行代码揭示了智能合约的本质;以传统行业的变更预测了自动化技术的应用。甚至,处在以太坊宣传时期,他竟没有分门别类地将DAO的优势一条一条列出。他告诉读者最本质的东西:降低准入门槛。
Vitalik在字里行间表露了他最真实的想法。你可以读到他的期待、他的讽刺和他的担忧。
读完本文,你会发现,他就是那个技术宅,他就是那个理想主义者,他就是那个改变世界的人。
“将原有法律去中心化、近乎乌托邦式的追求、创造完全无信任的社会……”
——Vitalik Buterin
作者 | Vitalik Buterin
译者 | Eli
译者提示:
本文作于2014年初,其中部分区块链术语目前已不再使用。可能由于该类术语使用时间较短,国内尚无对应翻译,编译时处理如下:
例如Factum Law、Factum Money以及Factum Society等,酌情将Factum翻译为共识。再如Judge,在当时可能直接移用为区块链术语,根据上下文语境翻译为法官或第三方权威等。
一
智能合约:自我执行合同
宣传以太坊的许多概念听起来可能非常魔幻,有时甚至令人恐惧。比如所谓的“智能合约”,它能在没有任何人为干预或参与的情况下自我执行指令;人类社会组成类似天网的“去中心化自治组织”,完全生活在云上;然而其控制的强大财力又可以激励人们在物质世界中做实事;将原有法律去中心化、近乎乌托邦式的追求、创造完全无信任的社会……等等。
对于不知情的用户,尤其是那些比特币都没有听说过的用户,很难想象以上这些事物的实现,也无法理解这些想法的价值。本文旨在详细剖析这些想法,说明每个想法的确切意义,并讨论它们的属性、优点和局限性。
本文的第一部分将讨论“智能合约”。
智能合约是一个几十年前就存在的想法,但是它在2005年才被Nick Szabo命名并引起密码学领域的注意。智能合约的定义很简单:智能合约是一种能自我执行的合约。也就是说,普通合约好比是一份PDF文件,其中有要求第三方权威(judge)命令一方在某些条件下向另一方汇款的文字。而智能合约是一种计算机程序,可以在硬件上运行,自动执行这些条件。
Nick Szabo以自动售货机为例:
“这是一个现实生活中的例子,我们可以认为自动售货机是智能合约的鼻祖。在有限的潜在金额损失下(即收费金额低于违反机制的成本),该机器接收硬币,并通过简单的机制,根据既定价格分配和更改产品。自动售货机等于是与交易方签订的合同:任何拥有硬币的人都可以与卖家交易。同时,密码箱和其他安全机制保护存储的硬币和内容,使它们免受攻击者的影响。因此,自动售货机可以在各地部署并盈利。”
智能合约这个概念可以被应用于很多事物。我们可以制定智能金融合约,根据某些程式和条件自动洗钱;智能域名销售订单能以200美元的价格自动销售域名;控制银行账户的智能保险合约能根据相关信息自动支付……等等。
智能财产
然而,同时我们也面临一个重要问题:这些合约如何有效实施?就像传统合约一样,除非有一个第三方权威,并拥有强制执行合约的法律权力,否则它们没有价值。智能合约需要被“插入(plug in)”某个系统才能真正有权做任何事情。
最简单,最老套的解决方案是使用硬件,这个想法也被称为“智能财产”。Nick Szabo的自动售货机就是典型的例子。在自动售货机中,有一种原型智能合约,包含以下计算机代码:
if button_pressed == "Coca Cola" and money_inserted >= 1.75: release("Coca Cola")
return_change(money_inserted - 1.75)
else if button_pressed == "Aquafina Water" and money_inserted >= 1.25: release("Aquafina Water")
return_change(money_inserted - 1.25)
else if ...
左滑即可看完整代码(下同)
合约有四个“钩子(hook)”连接外部世界:button_pressed和money_inserted变量作为输入,release和return_change命令作为输出。所有这四个“钩子”都依赖于硬件。我们仅研究最后三个,因为人类输入通常不成问题。
如果合约在一台2007年的Android机上运行,它将毫无用处。因为该Android机无法获悉有多少钱被放入投币口,当然也无法释放可口可乐或返回更改。而在自动售货机中,合约能自我执行,并且其物理安全性阻止人们在违约的情况下获取可口可乐。
智能财产的另一个更具未来感的应用是租赁汽车:想象在未来世界中,每个人的智能手机都有对应的私钥,当你向某个地址支付100美元后,一辆汽车会自动响应你的私钥指令一天。
房屋也同理。大部分办公楼都是智能财产:访问权限由访问卡控制,每扇门的访问权限由一段代码控制并连接到数据库。如果公司有一个自动处理雇佣合同,并激活新员工访问卡的人力资源系统,那么该雇佣合同在某种程度上就是一份智能合约。
智能货币与共识社会
然而,智能合约的物理属性使其作用非常有限。其物理属性的安全性较低,所以即便你拥有数万美元,其智能属性设置也让你无法完成任何大笔交易。
合约最终涉及转移资金,但是我们怎样才能真正做到让合约转移资金呢?目前几乎不可能。
理论上,我们可以将合约的详细登录信息提供给我们的银行账户,然后让合约在某些条件下汇款,但问题在于这种合约并非真正的“自我执行”。签订合约的一方总是可以在付款到期之前关闭合约,或者用尽他们的银行存款,甚至只是更改账户密码。因此,无论合约怎样与系统结合,总有人有能力将其关闭。
我们如何解决这个问题?该答案在我们目前的社会背景下可能较为激进,但在比特币领域已经人尽皆知:我们需要一种新的货币。
到目前为止,货币经历了三个阶段的演变:商品货币,商品支持货币和法定货币。
关于商品货币的理解很简单:该类货币本身很有价值,因为它同时也是一种具有某种“内在”使用价值的商品。金银就是典型的例子。在更传统的社会中,我们也使用茶,盐和贝壳等。
接下来是商品支持货币,比如银行签发的票券很有价值,因为它们可以兑换黄金。
最后是法定货币(fiat money),其中的“法定(fiat)”就像“要有光(fiat lux)”一样。上帝说“让那里有光”,联邦政府就说“让那里有钱”(译者注:Vitalik此处提及此典故显然有讽刺意味)。法定货币的价值主要在于发行它的政府接受了这种货币,它也成为支付税费及其他几项法律特权的唯一指定货币。
然而,比特币的出现使我们有了一类新的货币:共识货币。
法定货币与共识货币之间的区别在于:法定货币由政府(或其他类型的代理机构)制造并维护。共识货币只是一个资产负债表,其中有一些关于如何更新资产负债表的规则。
比特币是第一个例子,但还有更多衍生的例子。例如,人们可以有一个替代规则,该规则规定只有来自某个“起源交易(genesis transaction)”的比特币才算作资产负债表的一部分。这种货币被称为“彩色硬币”,它也是一种共识货币。
事实上,共识货币的主要优点恰恰是它与智能合约融合得非常好。智能合约的主要问题在于其执行力:如果合约规定当X发生时就向Bob发送200美元,那么我们如何确保将200美元发送给Bob?
使用共识货币的解决方案非常完美:该货币的定义,或者更确切地说是当前资产负债表的定义,是执行所有合约的结果。因此,如果X确实发生了,那么每个人都会同意Bob获得额外的200美元。反之,如果X没有发生,那么每个人也会同意Bob保有他之前的财产。
这是一个令人难以置信的革命性创造。
事实上,我们为合约甚至法律创造了一种有效的工作方式,却不需要依赖任何形式的机制。想要罚款乱扔垃圾的人100美元吗?那么定义一种货币,如果乱扔垃圾就扣除100个货币单位,并让人们接受这个方案。
如果没有下面讨论的一些重要注意事项,这个例子很可能是难以实现的。但它显示了一般规律,该规律在其他许多领域是适用的。
智能合约有多智能?
智能合约显然适用于任何类型的金融应用,甚至是两种不同共识资产之间任何类型的交换。
比如域名销售,像google.com这样的域名是一种共识资产,因为它由服务器上的数据库支持并被人们接受,而购买它的资金也可以是共识货币。目前,销售域名是一个复杂的过程,往往需要专业化服务。而在未来,你可以将销售报价打包成智能合约并将之放在区块链上,如果有人接受,交易将自动进行,并且不存在欺诈的可能性。
在货币领域,去中心化交易所是另一类应用。此外,我们还可以制作对冲和杠杆交易等金融合约。
然而,在某些领域智能合约并不是那么适用。
以雇佣合同为例:A同意为B完成某项任务并获取X单位的货币C作为报酬。智能合约可以轻易处理支付环节。但是,有一个环节却非常困难:确认工作完成。
如果该工作是在物质世界中完成的,就几乎无法确认,因为区块链没有任何方式来访问物质世界。即使工作是在线上完成的,仍然会存在评估质量问题。当然,在某些情况下,计算机程序可以使用机器学习算法有效地判断一些特征。
综上,很多时候一个完全由算法运行的社会是存在问题的。
幸运的是,有一个稳健的解决方案可以结合两个世界的优点:法官(judge)。
法院的法官拥有极大的权力去做他们想做的事情。人们需要提起诉讼,等待相当长的审判时间,最终法官根据法律制度做出判决。整个过程本身并不高效。私人仲裁往往比法院更便宜、更快捷,但仍然存在问题。
然而,共识世界中的法官完全不一样。一份雇佣智能合约可能如下:
if says(B,"A did the job") or says(J,"A did the job"): send(200, A)
else if says(A,"A did not do the job") or says(J,"A did not do the job"): send(200, B)
says是签名验证算法;says(P,T)主要检查是否有人提交了携带文本T的信息和使用p的公钥验证的数字签名。
那么这份合约是如何运作的呢?首先,雇主会将200个货币单位放入合约并让合约托管。在大多数情况下,雇主和雇员都是诚实的,所以A退出并通过签署信息说“A没有完成工作”将资金释放回B。B验证A是否完成了工作,并决定合约是否将资金释放给A。但是,如果A完成了工作,而B不同意,那么由J来判断A是否完成了工作。
请注意,这里将详细描述J的权力。J有权判决A是否完成了这个工作。更复杂的合同还可能赋予J在两个极端间作出判决的权力。但J无权判决A应该得到600个货币单位、或者J应该得到200个单位货币、或者原有定义边界之外的其他任何东西。
J的权力由包含J的公钥的合同执行,因此资金根据其边界自动转到A或B。合约甚至可以要求来自3名法官中的2名的判决,或者它还可以让法官各自评判该工作的不同部分,并让合同基于这些评级自动为B的工作打分。任何合约都可以随心所欲地与任何法官合作(plug in),判断特定事实真实与否、提供某些变量的度量、或者成为推进进度的一方。
这比现有系统好多少?简而言之,这里引入的是“判决即服务”机制。
当前,为了成为“法官”,你需要在私人仲裁公司或政府法院任职,或者自主创业。在加密的共识法律系统中,做一名法官只需要一个公钥和一台可以访问互联网的计算机。虽然听起来不太靠谱,但并非所有法官都需要精通法律。例如,一些法官可以专注于核查产品是否正常发货;其他法官可以核实劳动合同的完成情况;其他人可以评估保险合同的损害赔偿金。
这一切需要合约作者在合约的各个部分安置合适的法官,而这一环节又可以完全使用计算机代码完成。
这一切就是这么简单。
二
最终优势:降低准入门槛
两个行业的故事
我们可以看到在互联网时代,特别是在通信领域和商业领域,使用因特网驱动(internet-driven)技术促进自动化的最大好处是:它提高了工作效率并降低了准入门槛。该技术为传统世界带来了许多积极影响,其中一个典型的例子就是出版业。
在20世纪70年代,如果你想写本书,那么在书到达消费者手中之前,你需要经过大量不透明的、中心化的中介机构。首先,你需要一家有能力编辑和营销你的书、并为消费者提供质量保证的出版社。其次,印好的书需要进行分发,最后在每个书店出售。销售链的每个环节都需要大量的支出。最后,幸运的话,你能够获得每本书10%以上的收益作为版税(royalty)。
请注意“版税”这一术语的用法,这意味着你作为这本书的作者只是销售链中一个无关紧要、消耗几个百分点收益的部分,而不是决定这本书存在的重要人物。
时至今日,情况有了很大的改善。我们现在拥有分工明确的印刷公司、营销公司和书店,每个行业都有清晰准确的定位,并且面临着大量的竞争。此外,如果你不介意仅发行电子书的话,你可以直接在Kindle上出版并获得其70%的盈利额。
现在,让我们看一个完全不同的行业中非常相似的例子:消费者保护,更具体地讲是托管(escrow)。
托管是商业贸易中非常重要的功能,尤其是在线贸易。
当你从小型网上商店或Ebay上的商家购买商品时,你是在参与双方都没有实质声誉的交易。因此,当你默认发送款项时,你无法确保收到对应的商品。而托管可以提供解决方案:你不是直接将钱汇给商家,而是首先将钱汇给托管代理,然后托管代理会等待你确认收到该商品。如果你确认,那么托管代理将钱汇给商家;如果商家确认无法发送该商品,则托管代理会退还款项;如果存在争议,则启动裁定程序,托管代理会根据具体情况做出裁定。
然而,在当前托管的应用方式中,它由中心化实体控制,并附带大量其他功能。
例如,在Ebay的在线市场中,Ebay为卖家提供服务器并托管他们的产品页面、为产品提供搜索和比价功能、以及为买卖双方提供评级系统。Ebay还控股Paypal(大型电子支付平台),它实际上是将钱从卖方转移到买方。从本质上讲,这与20世纪70年代的出版业没有差别。
那么我们如何利用加密货币与智能合约建立一个理想的市场呢?极端一点,我们可以使整个市场去中心化。例如,使用类似Diaspora的模型,允许卖方在专门的网站上、在他们自己的服务器上、或在去中心化的Dropbox实现上托管他们的产品;使卖家在类似Namecoin的系统中存储他们的身份,并在区块链上运行信任网络。然而,我们现在有了一个更稳健和简单的目标:将托管代理功能从支付系统中分离。
比特币为此提供了一种解决方案:多重签名交易。
多重签名交易的介绍
多重签名交易允许用户将资金发送到具有三个私钥的地址,这样你需要其中两个私钥才能解锁资金(多重签名也可以是1-of-3、6-of-9或其他任何类型,但是在实践中,2-of-3是最有用的)。
将之应用于托管的方式很简单:在买方、卖方和托管代理之间创建2-of-3托管,让买方向其汇入资金,当交易完成时,买方和卖方签署交易完成托管。如果存在争议,托管代理会进行裁定,并与买卖双方签署交易以向他们发送资金。在技术层面上,这有点复杂。但幸运的是,Bitrated创建了一个网站,使普通用户可以轻松完成整个过程。
当然,就目前的形式而言,Bitrated并不完美,也没有那么多比特币贸易使用它。它的操作可能也没有那么容易,特别是因为,大多数人不习惯连续几周存储每个交易的特定链接。
如果将它与一个完全成熟的商业程序结合,它会更加强大。一种设计是与类似KryptoKit的网络应用程序结合,向每个用户显示“开放”购买和销售列表,并为每个用户提供“完成”、“接受”、“取消”和“争议”四种按钮。接着,用户就可以与多重签名交易系统进行交互,就好像它是标准的支付处理器一样,但用户会在几周后收到通知以最终确定或返回他们的购买。
但是,如果Bitrated完善它的交互界面,并且该系统被大规模采用,将会带来什么样的变化?答案还是降低准入门槛。
目前,进入消费者托管和仲裁业务很困难。为了做成一个托管服务,你必须构建一个完整的平台和一个生态系统,以便消费者和商家在你的平台上交易。你也不能只托管资金,你首先需要转移资金。
比如,为了保护消费者权益,Ebay需要拥有并控制Paypal。有了Bitrated,所有这一切都会发生变化。任何人都可以成为托管代理人和仲裁员,而类似Ebay的市场可以为仲裁员以及买卖双方提供评级系统。
或者,系统可以在后台处理仲裁,类似于Uber处理出租车司机事务:任何人都可以在通过审查后成为仲裁员,系统会自动奖励评级较高的仲裁员并解雇评级较差的仲裁员。中介手续费会下降,甚至可能大大低于Paypal收取的2.9%。
智能合约
智能合约采用同样的基本理念,甚至走得更远。
人们可以使用基于区块链的金融衍生合约与去中心化的订单簿,而不是依靠像Bitfinex这样的平台对冲比特币持股、或者以高杠杆率投机。这样做不会让中心化机构收取任何费用。维护交易的持续成本,包括操作安全性、服务器管理、DDoS保护、营销和法律费用,都可以替换为一次性编写的合同,其代码可能少于100行。此外,一个完美的交互界面也能一次性构建出来。
从那时起,除了网络费用外,整个系统将是免费的。像Dropbox这样的文件存储平台同样会被替换。虽然硬盘需要花钱,并且系统也不免费,它仍会比目前费用便宜得多。智能合约还可以通过简化供应方参与流程来帮助平衡市场:任何拥有大硬盘、甚至是带有额外空间的小硬盘的人,都可以轻松地安装应用程序并通过出租多余的硬盘空间赚钱。
商务关系可以由智能合约管理,而不再需要昂贵的法院系统和私人仲裁服务,当然其中需要人类解释的合同部分可以分为许多专业化类别。
可能有专门决定是否发运产品的裁判(judge);专门确定网络应用程序设计是否合格的裁判;专门检查卫星图像,并以0.75美元的费用裁定某类财产保险索赔的裁判;也会有能串联以上每一个类别的合同作者。
专业化有其优势,也是社会进步的原因之一,但其缺点之一是它始终需要中介管理和运作,包括专门管理中介关系的中介。智能合约几乎可以完全消除这一类别中介,允许更大程度的专业化,同时降低其他类别的准入门槛。
原文链接:
【part1】https://bitcoinmagazine.com/articles/daos-scary-part-1-self-enforcing-contracts-factum-law-1393297672/
【part2】https://bitcoinmagazine.com/articles/daos-scary-part-2-reducing-barriers-1393728451/
最新热文:
为将傅恒与魏璎珞的爱情上链,作为技术小白的我读了EVM上百行代码,终于搞定了
币价涨涨跌跌,程序员竟如此佛系... | 他说
为什么区块链开发者工资这么高?看看他们需要掌握多少东西就知道了
性能赶超EOS?一文带你深挖并发执行模型
内容转载请联系微信:qk15732632926
商务合作请联系微信:fengyan-1101