关注以太坊有一段时间的人都知道,以太坊的发展史一路伴随着承诺延期、跳票和对未来计划的沟通不畅。这导致很多人将以太坊归入实验失败的范畴。这种悲观情绪可以理解,如今的以太坊(ETH1)运行缓慢,整个网络的速度受限,每秒只能处理 15 笔交易(TPS),而且进行大规模的复杂运算花费不斐。相比之下,Visa 每秒能处理的交易多达成千上万笔。
以太坊为何又慢又贵?
简单来说,是因为(目前)高昂的去中心化成本。去中心化很贵,就像如今大多区块链一样,以太坊上的每个节点(定义为连接到网络的计算机,如运行以太坊软件的计算机)都必须联网进行所有运算,以确保所有参与者都遵守规则。这会消耗实际能量与资源。就时间成本而言,运行以太坊的节点遍布全球——毕竟这是个为参与者提供无数激励机制的公共网络——同时,不同节点间的通信延迟很高,计算能力有所差异。因此,网络需要保持足够的延迟,以便较慢的节点能够“跟得上”,并继续为网络去中心化投票做出贡献。如果按照目前的架构设计,以太坊网络要在极短时间内处理太多数据,用户的硬件(如笔记本或个人服务器)是无法跟上的,而网络上的唯一功能性节点就只有大型数据中心了。这将严重损害到以太坊的去中心化,因为这些数据中心节点可以轻易构成垄断,并接管网络或对网络进行审查控制。如今有许多加密网络(如EOS)都在实际中遇到此问题。
在公共区块链中保持足够层级的去中心化非常重要。没有去中心化,使用区块链就没有太大意义了,因为集中式区块链可以轻松审查大众的交易,并且效率还比常规的分布式数据库要低得多。针对区块链新手读者,我们可以回忆一下:在中本聪 (Satoshi Nakamoto)在比特币中发明去中心化管理这种新形式之前,实际上任何系统都无法做到实施「去信任的控制」——因为所有的参与者都会对决策施加影响,但没有任何一方能拥有全部或大多的控制权。以太坊的创造者 Vitalik Buterin 关于权衡去中心化和性能的著名回答便指出,任何人都能建立高TPS系统,只要让它成为“冒着热气的集中式垃圾堆”。
假设有可能在各个节点无需处理其他节点交易的情况下,构建一个区块链,还能通过仅处理整个网络交易的一小部分来降低通信消耗,会怎么样呢?
我们就有了ETH2。
ETH2是下一代以太坊,甚至来说,将其称为以太坊有点不恰当了。这是一个完全不同的项目,在区块链的大规模运行方式上采用了新的0-1范式。ETH2目标在于,提高以太坊的可扩展性、安全性和可编程性。单个链处理15个交易成为历史,ETH2能在不损耗去中心化的情况下,每秒通过单个链处理成千上万乃至数以万计的交易(甚至更多)。实际上,与目前比特币和ETH1中使用的工作量证明(PoW)机制不同,ETH2将引入一种更加经济安全的共识机制,即权益证明(PoS)。在传统的PoW区块链(如比特币)中,新比特币的生产和交易都是通过矿工处理的,也就是使用昂贵硬件来解决复杂数学难题的个人及组织。矿工保障网络安全性,以此换取交易费。在PoS机制的区块链(如ETH2)中,情况则不同,新以太币是由锁定自身以太币,为网络提供安全性的验证者生产和交易。实际上,验证者所提供的安全性取决于网络本身的价值,如果某个验证者行为不当(如批准恶意交易),就可以大幅削减其以太币。这种机制令验证者有激励去遵守协议规则。
PoS安全性很卓著的另一个重要原因在于,PoW机制容易受到所谓的“spawn camping”攻击。如果攻击者能够积累足够的挖矿硬件,来攻击比特币或者其他PoW链的话,比特币是无法阻止进一步攻击的,因为网络会不断重启或者硬分叉,最终只会被同一批挖矿硬件无限次攻击。相比之下,以太坊在应对这类攻击时具有更大的弹性——它可以对攻击者的权益进行硬分叉和削减,相当于烧毁攻击者的比特币采矿场。
此外,ETH2令开发者能够创建自己的交易处理方法,即执行环境。从而,开发者可以在需要的时候,在以太坊内使用不同区块链规则。为了极大地简化执行环境,ETH2赋予使用者权利,对交易使用比特币规则、ZCash规则、ETH1规则以及许多其他可能的规则集,其规模比目前高出多个数量级,且同时由同一批大型、资本化的验证者提供安全性保护。ETH2可以通过“分片”实现这一目标:ETH2中的每个分片都类似于区块链,具有自己特有的生成者和验证者,但每个分片与其他分片紧密连接,可以互相通信,从而构成一个大型的网络分片链。这样一来,ETH2上的指定验证者就无需处理整个网络中的单个交易了,只需处理和验证单个分片上的交易。这是一项创新性技术,使得使用客户端硬件的参与者们在ETH2网络上更有意义地参与进来。
这一点很重要:ETH2中的每个分片将与其他分片共享同等安全性,为了破坏单个分片,不得不破坏整个系统。Cosmos上,每个链都负责自身的安全性,从而形成了一个分散且易于被攻击的网络。与Cosmos这样的平台相比,这种安全模型提供了更佳的安全保障。这样一来,为了破坏ETH2,攻击者必须购买并抵押价值数十亿美元的以太币,而且如果以太币价格上涨的话,金额还会增加。
这是传统区块链网络的图像——由数据块构成的单个“链”。无需费心理解 block header 或transactions list 的含义,此图片仅用于说明:
这是ETH2的图像,不过实际中不止两个分片链,而是64个。所有分片都使用信标链(beacon chain)互相协调。与上图类似,不必关心其中的技术细节:
ETH2由9只不同的工程团队构建,他们都获得了以太坊基金会的拨款资助,并收到了以太坊社区的广泛支持。这些团队正在构建客户端——类似于网络浏览器(比如Chrome或Firefox)的东西,只不过客户端是用来在访问并参与到以太坊网络。客户端的多样性是以太坊的核心原则之一,前提性准则:即如果一两个客户端崩溃或者存在bug,整个网络不会崩溃。每个客户端都针对不同的利基用法,但所有客户端都能参与到网络中。例如,一个客户端针对智能手机做了优化,另一个则是为企业使用构建的。工程团队根据以太坊基金会、ConsenSys和更广泛的学术社区那些才华横溢的研究者(大多是计算机科学博士之类)所创建的规范来构建ETH2。许多研究都是以开源方式在ethresear.ch网站上进行的,全世界任何人都可以发表有效的技术想法、建议或者批评。经过数年的反复迭代,这些规范才达到目前的状态:有一阵子研究人员认为已经有了切实有效的设计,但之后又发现了一些缺陷,导致部分甚至整个系统需要重新设计。毫不夸张的说,ETH2的研究团队是整个区块链领域中最有经验和才华的协议设计团队。
下面是ETH2的研究团队名单(随机顺序):
ChainSafe Systems
总部位于安大略省多伦多市,公司有30多人,其中有5名开发者负责ETH2客户端的研究;
草根开发者,于多伦多以太坊开发者交流会上结识;
构建了以JS编写的Lodestar客户端。
PegaSys
ConsenSys(以太坊生态系统的最大的公司)的50多人团队,成员分散在全世界;
构建了对企业友好的ETH1客户端Pantheon;
有一支研究者团队主攻ETH2规范;
构建了基于Java的客户端Artemis,针对企业用途优化。
Harmony
位于俄罗斯的4人团队;
构建Java以太坊客户端;
迄今公开信息有限;
可能会与PegaSys/Artemis合并。
Parity Technologies
位于柏林的60+人团队,有大量远程员工(不是所有人都从事ETH2的工作);
从以太坊基金会获得了500万美元,用于构建ETH2客户端Substrate Shasper;
同时也是互操作性区块链项目Polkadot的幕后团队,这个项目有人认为是以太坊的竞争对手;
构建并维护着第二大热的ETH1客户端Parity
Prysmatic Labs
分散在美国各地的6人团队;
更新博客很积极,其博客是更多了解和跟进ETH2的良好途径;
构建了客户端Prysm,可用于多种主流用途,类似于ETH1中的Geth。
Sigma Prime
总部位于澳洲悉尼的4人团队;
具有强大的学术及软件开发背景;
构建了客户端Lighthouse,适用于主流用例。
Status
分散在欧洲的8人团队;
研发轻量级客户端Nimbus,针对智能手机或其他“轻”环境用途。
Trinity
与以太坊基金会签约的4人团队;
构建的轻量级客户端将用于更高级实现的原型。
Nethermind
位于伦敦和波兰的7人团队;
在.NET中为ETH2构建Windows客户端。
ETH2的发布分为多个阶段,但其中最重要的是前三个阶段。这些阶段交错推出了ETH2的各个组件,不但由于正确构建各个组件很花时间,还因为逐渐引入更改会大幅降低技术风险。对于价值数十亿美元的加密网络来说,“快速行动打破困境”并不明智。与可以迅速推出修复程序的集中型技术公司不同,包含严重bug的加密网络可能会由于网络参与者都必须手动更新到最新的客户端版本,而在很长一段时间内遇到严重破坏,最糟的情况下(如攻击者设法凭空搞出新的以太币)必须回滚大量交易以确保网络的安全性。这将产生极大的负面影响,就如DAO黑客在2016年造成的那样,导致以太坊开发者和用户分出了自己的链Ethereum Classic。
阶段0:可能会在2020年第二季度末,或者第三季度初交付。引入信标链,用作整个ETH2网络的某种“命令与控制”中心。这个信标链将组织验证者,将其分配到不同的分片链上,并且在随机改组到另一个分片之前,负责处理该分片的交易。改组是ETH2安全性的重要组成部分,缺乏改组会导致一小部分验证者可能被贿赂或破坏,感染ETH2的运行。信标链还负责证明不同分片所生成的数据块的准确性,以便可以在不同分片间交换以太币、token和数据。用一句1970年代的加州术语来形容:信标链是管理其他区块链的区块链。
如果信标链是命令和控制,则验证者是处理施工作业的。验证者是PoS网络上的参与者,负责处理和预订网络交易,并将这些内容在彼此间转发,并转给其他参与者。他们可以为此获得交易费和新生产的货币。验证者可以说是加密网络中最重要的角色,为他们设计激励机制也是ETH2想要解决的核心挑战。信标链也负责削减行为不当的验证者。
阶段1:将于2021年交付,自行启动分片链,但不能在分片上处理或构建数据。这些数据将以原始形式(即data blob)形式存在于分片上,主要是为了确保分片链能够互相通信,并将信息传递给信标链。分片无法对数据进行任何计算。阶段1一开始感觉像是优化过的测试网,用途有限,但事实并非如此。新的或现有的DApp可以利用这些数据存储,增加可扩展性。例如:去中心化的Twitter DApp能够将数据存储在分片链上,并在链外执行大部分计算,同时ETH1为其提供了很高的安全性保障。在阶段1,ETH1仍将正常运行,同时1.0和2.0链将同时运行。
在2019年12月末,Vitalik曾提议加快将ETH1移入信标链,以便让以太坊可以实现PoS的用处,并且更快与ETH2融合。最初,ETH1将以特殊分片(而非执行环境)存在,但在阶段2将转为执行环境。目前尚无计划指出实现的时间,但看起来似乎会在阶段1出现。
阶段2:预计将于2021年或2022年启动,这也将实现ETH2真实愿景。到时候,分片可以处理交易,且ETH2网络可用于实际的商务应用程序中。分片的智能契约将在阶段2引入,伴随着运行智能契约的相应执行环境。正如早前提过的,执行环境使得开发者能够创建处理其交易的任意规则集。这也意味着协议开发者能够创建模仿比特币、Zcash、ETH1或其他任何想得到的方法,为区块链交易的计算创建执行环境。与ETH1总结比特币以启动智能契约的方式相同,ETH2将总结ETH1以重新定义区块链计算的本质。
ETH2的某些组件仍存在大量未解决的研究问题,像如何以去中心化的方式(避免小撮数据提供者垄断并控制网络)保持提供和存储数据,跨分片的交易如何运行,执行环境如何管理等等。但是这些问题的相关研究正在迅速推进中。
再次重申ETH2的三个阶段:
阶段0:
于2020年第二季度末或第三季度初交付;
启用信标链,并实现在信标链上的PoS验证;
ETH1会继续正常运行。
阶段1:
于2021年交付;
启动分片链,允许在这些分片链上存储数据,但分片上不处理交易;
ETH1或可继续正常运行,或作为特殊分片并入ETH2。
阶段2:
于2021年末或2022年初交付;
允许在分片上交易;
一段时间后,ETH1将作为执行环境并入ETH2。
以太坊会在阶段2之后继续发展,但未来蓝图仍旧不甚清晰。一些可能的方向包括:使用ZK-SNARK增加可扩展性,轻量级客户端的进一步研发,二次分片(基本上指的是在分片内再分片)。在远期,可望使用CBC Casper这样的共识机制来抽象化分片本身。
从笔者角度来看,以太坊的前景一片光明。以太坊拥有大量的研究人员、开发人员、用户和项目,没有其他的智能契约链能与之媲美,现在介入正是时机。以太坊正面临可能最大最重要的升级,如果成功实现,将会为整个世界创造大量价值。