听到以太坊 2.0 这个名字,你或许并不陌生。以太坊在区块链社区中具有重要的地位,而以太坊 2.0,则直接影响到以太坊甚至区块链的未来。
然而,究竟什么是以太坊 2.0 ?说实话,想要清晰回答这个问题并不容易。尽管如此,在这篇文章里,我们还是想试试看。
以太坊社区热闹纷呈, 几乎没有一个区块链社区可以与之匹敌;绝大多数代币和智能合约都在以太坊上运行,对于大部分区块链领域的开发者和公司机构而言,以太坊也是他们的首选。然而以太坊的当前状态,距离它的野望还有很远。换句话说,以太坊的预期生态,还没有正式显现。在最后阶段 Serenity (宁静,寓意为智慧)中,以太坊将正式转换为 PoS 共识机制,展现出来它的最终样貌。
然而,宁静之路,路途漫长。
实践中,从以太坊 1.0 向最终 Serenity (宁静)阶段的过渡,包含了一系列硬分叉的计划。但是由于复杂度超过预期,这一过程耗时费力。社区用“以太坊 2.0” 描述了实现的目标和途径。
以太坊 2.0, 或者 ETH 2.0, 你应该在许多区块链媒体中都看到过这个术语。有上百篇文章提到了以太坊 2.0。但是能够让人满意的文章并不多:有些文章过于简单笼统,无法提供具体信息;另外一些文章,则过于专业和详细,让人难以卒读。
我希望借助这篇文章,描述清楚以太坊 2.0。值得提醒的一点是,这篇文章中包含了当下对于以太坊 2.0 的理解,这些信息可能随时会被更新。
一、为什么需要以太坊 2.0?
首要原因是:目前的以太坊速度太慢了。许多复杂的应用想要扩张规模,要付出非常昂贵的代价。比较一下 Visa 的信用卡处理能力我们就知道了:Visa 每秒钟可以处理上千笔交易,而以太坊每秒钟只能处理 15 笔交易。以太坊之所以缓慢,是因为它是去中心化的架构,并且,需要继续保持去中心化的方式。
那么怎么改进?
一个可能的思路是通过超级节点的方式:用户可以依赖超级节点,即“共识节点”。共识节点有足够强大的服务器来处理所有的交易。这个解决方式够简单,可以让区块链保持原样,所需要做的事情,只是增加客户端机器的并发处理进程就好了。
然而以太坊的开发者们拒绝了这个选择,主要是担心它会损害区块链的去中心化,损害其抗审查的能力。
对于区块链的不可能三角这一论断,我们早就耳熟能详: 去中心化,可扩展性和安全性,只能从三者之中选择两者,无法三者兼顾。如何打破不可能三角,这是所有“第二代区块链”项目想要去尝试的。例如,IOTA 就声称能够解决这个三难问题,包括以太坊 2.0 在内的大多数解决方案,都尝试用其它的共识机制代替 PoW 的挖矿机制。
因此以太坊原先的设计或多或少被看做是失败的。按照 Chromatic Capital 的说法,以太坊 2.0 是“一个完全不同的项目,采用从 0 到 1 的范式,就像区块链的从链一样。”
以太坊 2.0 不仅仅是针对原先版本的升级,而是彻底改造了以太坊区块链。以太坊 2.0 的设计目的是让以太坊更安全、扩展处理能力足以应对数千笔交易,同时可编程能力提升。更关键的是,这些改进不会损害以太坊的去中心化。
以太坊 2.0 打算如何解决这个问题?
对于经典的区块链不可能三角问题,以太坊 2.0 打算借助于三项改进来解决:
分片
PoS 权益证明共识机制
新的虚拟机
等等,这些术语是什么意思?
分片
分片(Sharding) 是一种技术手段,在多个服务器上切割数据库,换句话说,就是对它们进行分区。就像一台计算机的同一块硬盘上有多个分区一样,也可以将区块链分割成几个部分,而不会损害数据一致性。分片(Shard)跟整个系统具有同样的安全性,而不会因为分片而出现风险。
权益证明机制(Proof of Stake)
在 PoS 共识机制下, 不再需要矿工来创建区块。在以太坊 2.0 中,质押验证人(Staker)将承担起来出块的责任:这些节点需要质押一定数量的 ETH。相比于 PoW 共识机制, PoS 的方式不仅节能,更能够提升交易速度,也让区块链上质押验证人的分布更为去中心化。
多年来,以太坊的区块链开发者一直致力于实现一个独特的共识机制,既能够确保交易快速完成,又能够确保参与者遵守规则。借助于 PoS 权益证明机制,以太坊的交易能够在几秒内完结,并且可以抵抗 51% 攻击。
新的虚拟机设计
借助于新的虚拟机设计,开发人员可以创建自己的执行环境。这允许在分片上引入其他区块链的规则。例如,开发者可以将 BTC 或 Zcash 的规则引入到以太坊上。因此以太坊可以成为一套通用架构,供不同的区块链所使用。
不得不说,分片、PoS 共识机制、新虚拟机这三个目标,每一个都是很远大的设想。到目前为止,区块链分片功能还没有实现,社区许多睿智的思考者们也在争论 PoS 共识机制是否真的有效。
以太坊人员正在着手解决区块链开发的多个挑战,致力于创建一个合适的架构,突破现有区块链开发所面临的约束和妥协,让这些问题成为历史。
二、以太坊2.0发展进程
接下来,我们一起梳理下以太坊进化到以太坊 2.0,所需要经过的几个阶段。
阶段 0 : 信标链(Beacon Chain)
信标链是以太坊 2.0 的核心,这个新的区块链上线之后初期阶段,最多可以协调多达 64 条分片链的运作。信标链是整个以太坊 2.0 网络的“指挥和控制中心”。
信标链管理着 “ Caspar 权益证明”协议,会记录质押见证人(Staker/Validator)及其抵押的代币量,并且随机选择质押验证人,也通过随机分配的方式,将分片链分配给验证者。信标链会采用共识规则,制裁不诚实的质押验证人,并充当不同分片之间的链接枢纽。
以太坊 2.0 的验证人通过权益证明机制投票,即使用他们所持有的代币,在被称之为“证书”的结构上投票。一旦分片链获得足够的“证书”,就会在信标链上获得关联(crosslink)关系。从这一刻起,区块获得最终稳定性,不可再被撤销或篡改。在分片链上,区块与主链即信标链上的区块一样,获得了相同的安全性。这个过程,似乎让我们想到 Ripple 的共识机制和 IOTA 的计划:让网络上的节点通过某种方式对区块进行投票。
质押验证人付出了劳动,也会获得相应的奖励:他们会得到 ETH2 作为回报,这是信标链的本地代币。长期看,ETH2 会取代 ETH 代币,ETH2 代币没有总量限制,通过这种方式分配代币给维护区块链运行的验证人,为区块链带来长期的安全性保障。
信标链计划在 2020 年第二季度或第三季度上线。这将启动向 ETH2 过渡的第 0 阶段。用户可以运行一个信标链客户端并且将 ETH (现在称为 ETH1 )支付给信标链,在信标链上,会被切换到 ETH2。这是一种单向兑换方式,ETH1 会被销毁。
因此,如果第 0 阶段成功,将会存在两条以太坊区块链: 以太坊 1.0 和 以太坊 2.0,或者称之为 ETH1 和 ETH2。对于用户来说,此时以太坊 2.0 没有任何意义,因为还没有分片链可以链接到信标链上。
在这一阶段,信标链还是一副没有躯体的骨架,或者你可以将它看做是一艘大船的龙骨,一栋房屋的支架。
阶段 1 : 分片链
大概从 2021 年开始,第一批分片链将会上线投入使用。
这些分片最初将以原始形式存储数据。它们不能根据某些共识规则处理数据,甚至不能显示用户或地址的帐户余额,它们仅被用作实验,用来测试分片效果,但也可能将这些分片用来存储数据,帮助 DApp 更好地扩展。
第1 阶段的重点,会围绕信标链展开。在这一阶段,信标链开始通过交叉链接(crossLinks) 引用分片的状态,从而实现状态的完结性。
我们可以将信标链想象成是这样的一个区块链:其他的区块链会连接到这条信标链上,并且围绕信标链旋转。在这个阶段,这些分片链还不具有多少实际功能。
建立和运行新的 PoS 共识机制,并设置一条区块链作为各种数据链的控制中心,这是一个巨大的挑战。想要将以太坊 1.0 发展到这一阶段,还会有成百上千的细节需要讨论,还会有无数大大小小的更新需要实现。但是关于阶段 1,我们目前只需要知道这一些就够了。
在这个阶段,以太坊 1.0 和 以太坊 2.0 区块链将继续并行运作。从第二阶段开始,事情会变得非常令人兴奋,更有意思起来。
阶段 2 : 实现愿景
根据路线图所述,接下来的阶段将“实现以太坊 2.0 的真正愿景”: 让分片链将能够处理交易。
从这个阶段开始,以太坊 2.0 网络应该可以用在实际的应用程序上了。在项目的后续过程中,智能合约也将在分片链激活。
然后上面提到的新的虚拟机所提供的执行环境也开始生效,它允许激活分片上自己的规则。例如模拟其他区块链,如比特币、Zcash 或以太坊 1.0。
就像以太坊 1.0 通过对比特币抽象化来实现区块链上的智能合约一样,以太坊 2.0 也将对以太坊 1.0 进行抽象化,重新定义区块链计算的基本性质。
阶段 2 会结合所有链条的功能。在阶段 1 中,分片链只是纯粹的数据存储,现在正在成为结构化的链,将智能合约的状态与共识过程也联系起来。
开发者可以在某个分片上创建他们的 DApp, 而以太坊则成为了一个 由信标链控制的多链系统。
第二阶段预计在 2021 年末或 2022 年初完成。根据路线图所述,许多部分例如执行环境的概念化,“仍然在深入研究和开发中”。
阶段 3 – 6
按照计划,以太坊 2.0 将会分为 6 个阶段上线。然而根据路线图,从阶段 3 开始,任何类型的预测都是推测,因为很可能会发生变化。在这些阶段的某个时候,以太坊 1.0 可能会逐渐因为无人参与而衰竭。当然,如果按计划推进的话,或者以太坊 2.0 替代掉原来以太坊 1.0 区块链的时候,所有的用户和以太坊代币都能迁移到新的区块链上了。不过,这一切还没有决定下来。
对于这几个阶段,在以太坊的 Github 文件库中,是以一种开放方式描述的:
阶段 3 : 轻客户端状态协议
实现轻客户端。这么做可能是为了减少各个节点必须携带的以太坊状态的数据大小,但并没有完全消除这些状态。
阶段 4 : 交叉共享交易
交易可以在不同的分片之间共享。
阶段 5 : 与主链安全性紧密耦合
阶段 6 : 更多的分片,二级分片或指数级分片
分片之中会继续包含分片,单个分片链或成为未来其子链的信标链。
然而,关于这些阶段的更具体的信息现在仍然缺失,也只是有一些高度抽象的论文或来自来自在线研讨会的只言片语。
以太坊 2.0 的具体形式是怎样的?至今为止,还没有明确定义。因此,预计以太坊的宁静阶段,可能还需要一段时间——比如 4-5 年,甚至更久时间才能完成。