信用超导重塑社会经济:区块链创新理论与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第三节 区块链2.0(以太坊)和智能合约

一、以太坊横空出世

201312月,以太坊(后被称为区块链2.0)登场。俄罗斯裔加拿大人维塔利克·布特林(Vitalik Buterin)刚刚年满18岁,正是滑铁卢大学的本科学生。维塔利克已经在比特币社区浸泡跟踪了数年,对比特币和比特币背后的区块链技术有了自己的想法。这些想法变成了区块链2.0的宣言—以太坊的白皮书。

以太坊(Ethereum)是一个开源的、基于区块链技术的、具有智能合约功能的公开分布式计算平台。以太坊有自己的编程语言(脚本语言),以实现智能合约这一以太坊的最大亮点。以太坊提供了去中心化的“图灵完备”(图灵完备的编程语言原则上可以解决一切可计算的问题,或者可以实现一切原则上可以通过计算机实现的功能)的虚拟机—以太坊虚拟机(Ethereum Virtual MachineEVM),可以将分散在全网的公共节点连接成一个虚拟机器来执行这个图灵完备的脚本语言。

通常,以太坊(Ethereum)包含4种义:① 以太坊关于价值及其转移的智能合约;② 由以太坊及其智能合约搭建起来的以太坊价值网络(价值转移传递的网络);③ 以太坊价值网络上运行的分布式应用及其生态;④ 以太坊虚拟数字货币—以太币。

以太坊发行虚拟数字货币—以太币(Ether)来支持技术生态。以太币可以用来在以太坊价值网络的节点间传递。

以太坊还有一种特殊的东西,就是用作参与节点共识计算活动的“助燃剂”,称为“燃气”(Gas),以计量以太坊网络上应用交互行为的成本。最初设计的目的是防止恶意浪费网络资源甚至借此攻击以太坊网络,也用来防止过度无用交易,防止垃圾交易和网络资源浪费。每一笔交易背后都包含着成本,这让以太坊成为众多去中心化的分布式应用喜欢的底层区块链基础构架—任何流转都有费用,都可以打上价格的标签出售。

比特币启发了不少奇思妙想,而以太坊正是其中最耀眼的一个。以太坊明确指出,区块链网络可以实现比内置信任的虚拟数字货币更多的功能。

二、智能合约

比特币的单一“货币”功能无法很好地满足这些非支付应用场景的需求。因此,以太坊在比特币的基本框架和概念基础上加入了“智能合约”,使系统可以运行定制化的分布式应用(DApp),让用户可以在区块链网络上进行任何交易,并事先对任何交易的合约编程。

以太坊的基本想法是,运行在以太坊网络上的计算机会展开竞争,争夺执行分布式应用的代码指令(发行和转移数字资产等)的机会。若胜出,则这些计算机会获得以太坊的代币以太币(Ether)作为其提供的运算成果的回报。因为该网络是分布式的,所以这些分布式应用能够以完全公正的方式运行,用户可以相信运行结果是与合约规定一致的。如果这个平台能够实现维塔利克等人的期望,它就会相当于一个全球化的、去中心化的虚拟计算机,并总是能在无人掌控的情况下执行用户的代码指令。

以太坊引发了极大关注。相关社区的人们意识到,这会是首个真正可以实现可扩展的分布式应用开发的平台。在之后的数年,这个开源平台日渐成长,吸引了众多充满热情的应用程序开发者。

这个平台最关键的突破点是智能合约。在比特币之前,尼克·萨博就已经提出了智能合约的初步概念。而维塔利克在区块链1.0的基础上加入智能合约,就更进了一层。

智能合约体系包含三个层面。

第一,智能合约编程语言。这是一种“图灵完备”的脚本语言,用于描述分布式网络上节点间的交易合约。这种合约可以描述任意的尤其是各种带条件的交互行为规则,而比特币系统只有隐含的获得、发送、接收比特币这些简单合约行为。

第二,智能合约作为虚拟机环境。用脚本语言编写的合约程序在这样的虚拟机上运行。

第三,智能合约还是一种机制。这种机制使得系统内交互行为的合约能够在符合条件情况下被触发而不折不扣地执行。

至此,智能合约加上区块链1.0体系已经有的分布式网络同步工具—共识算法、链式数据记录结构、加密数字签名等,区块链系统才获得了真正“信任内置”,也就是可以完全不需要外部环境(包括外部中心化节点或中介节点)提供持续的信任支持,系统自身就可以维持一个内部信任环境。

可以想象,在社会与经济的交互或交易行为中,契约或合同将被智能合约编成代码,从而实现“条件触发,即可执行”“不受人为干预,执行不打折扣”的严格公平社会和经济行为。由此,我们可以展望一个只需依靠数字技术保障的社会和经济交互行为的数字治理模式和方案有可能成为现实。于是人们对以太坊的进展寄予了厚望。

20141月,维塔利克在北美比特币会议上宣布了以太坊。他希望打造“为去中心化应用程序而设的安卓系统”,这个系统应该像智能手机的安卓系统一样,是一个开放的平台,在上面人们可以设计任何新型的应用程序,并能够在以太坊的无人掌控的计算机网络中,以去中心化的方式(而非在某个公司的服务器上)运行这些程序。维塔利克为实现这个目标甚至从滑铁卢大学退学,专注打造这么一个理想中的“去中心化全球超级计算机”的系统。

三、高光背后的阴影

以太坊的发展有光彩也有阴暗。目前,以太坊上活跃有近1300个分布式应用程序。系统内置的以太币从2015年中的1美元多上升到2018年初的近1200美元。维塔利克及其追随者们在这过程中成为千万乃至亿级的富豪,维塔利克本人还在以太坊相关社区群体中获得了如宗教领袖般的崇拜。

但是现实情况是,以太坊的技术仍然处于早期阶段,很不完善,也有不少漏洞。

首先,原本为降低交易成本而设计的智能合约,为全网络分布式运算DApp设计的系统,为了避免恶意攻击和浪费系统资源,又采取了运行DApp收取Gas作为运行费用的方案,交易成本不但没有降低,而且增加了。这自然背离设计的初衷。

其次,以太坊系统设计的灵活性很强,在计算能力应用上提供了很多场景,这也为攻击者大开方便之门,造成了严重后果。例如,以太坊容易遭受分布式拒绝服务攻击(DDoS),黑客发现了代码中的漏洞,并通过海量的交易合约设计堵塞网络中负责验证账本的节点,让系统瘫痪。而ConsenSys公司设计开发的系列工具一方面让开发者方便地在以太坊上开发自己的分布式应用、钱包和智能合约应用,另一方面也为恶意的黑客提供了机会。以太坊联合创始人设计的钱包就在一场攻击中使得用户损失了3000万美元。

再次,以太坊与比特币有很大不同。比特币从一个匿名的创始人和一小群追随者这样不为人知的技术极客开始,逐渐为人所知,比特币一开始总额为零,随后才被参与者逐渐获得;而以太坊一开始就预先设置了7000万个以太币,其中一部分分配给开发、管理、市场销售、创始人等,另一部分则预售给了参与公众而筹集资金。以太币上千倍的价格增长使得当时的参与者成为巨富。这使得以太坊的早期参与者、创始者被认为将个人利益放在首位,而严厉的批评者则直言不讳其“割韭菜”的投机本质。

最后,漏洞修补机制。20166月,以太坊基金The DAO因被攻击而损失了5500万美元的以太币。在攻击者将盗取的资金抽空之前,开发者有机会将漏洞堵上,但并未行动。以太坊社区主导者陷入两难,若以太坊决定用任何分叉的手段作为解决方案,一个由机器来执行的智能合同竟然会被撤销、推翻、回滚,那比现在的纸质合同也没有好到哪里去,这样的决定对以太坊的声誉带来的破坏会是深远的(毕竟以太坊的创始,举的就是去中心化、不可撤销篡改之类的乌托邦大旗);但是什么也不做,严格遵从原有的The DAO的智能合同,虽然可以避免被指责有道德风险,保护了The DAO的宗旨,却显然漠视了大多数投资人的利益。事实上,不管怎么做,以太坊都受到了严重伤害。该事件导致以太坊的一次硬分叉,产生了“以太坊经典”(Ethereum Classic),而黑客攻击者账号虽然被监视但被盗窃的以太币并未能取回。据猜测,攻击者已通过其他方式(可能是事先持有空头套利)完成获利离场。

这些事件对于一个标榜着“内置信任”、被当作新型社会和经济的数字治理新模式新手段的未来希望而言,无疑是致命的“当头一棒”。

当然,这里尚未考虑以太坊本身的系统承载能力和执行效率。前者由一次实验给出了答案,以太坊曾推出一个完全基于以太坊网络智能合约的分布式应用——“Crypto Kitties”电子猫小游戏,用户可以上线养猫、繁殖猫、卖猫。这个游戏已经创造了数百万美元一只电子猫的疯狂记录。然而,这个游戏上线初始就展示了以太坊系统的脆弱,仅约20万用户集中并发的服务需求直接令系统长时间无法响应——系统崩溃了。换句话说,以太坊的最大规模响应能力也就是这区区20万。至于服务效率,目前的数据——两位数的每秒服务响应数(TPS)显然是无法实现任何一种实用的商业系统功能,任何一种我们熟悉的支付平台每秒的处理速度都是以万计量的。

显然,以太坊尚未达到在大多数社会和经济真实场景下的实际使用能力。