扩容对以太坊来说十分关键,因为以太坊的愿景是作为一个任何人都可参与的、全球性的、去中心化应用公共开源平台。要成为下一代互联网的基础设施,满足互联网主流人群需求,扩容是其必然选择。
Vitalik Buterin对以太坊的期许是成为世界计算机,但是以太坊1.0采用的是PoW共识机制,其TPS仅约15左右,根本无法承担世界计算机的重任。
Vitalik Buterin曾言:“以太坊1.0是几个人为建立世界计算机而作的不懈尝试;以太坊2.0将最终实际成为世界计算机。”
回顾以太坊历史,2014年1月Vitalik发布以太坊白皮书,2015年7月以太坊1.0主网创世。
但在Vitalik发布以太坊白皮书的同一月,他就发表了一篇PoS共识算法Slasher的博客,已经在严肃探讨以太坊未来从PoW转向PoS。
在以太坊主网还未上线的2015年3月,以太坊社区已经规划好太坊未来的技术路径分为是个阶段:前沿(Frontier),家园(Homestead),大都会(Metropolis)和宁静(Serenity),并达成共识,在宁静(Serenity)阶段从PoW转向PoS。为驱动矿工由PoW向PoS转变,以太坊1.0区块链网络还故意设置了“难度炸弹”。
2015年Vitalik和以太坊开发社区开始尝试随机采样(Random Sampling)方式,这对分片技术应用在链上是一个突破。2017年完成了数据可用性证明的突破,证明分片是可行的扩容方案。
完全可以说,以太坊2.0才是Vitalik心中真正的以太坊。
尽管在具体技术路径上,Vitalik也在不断改进看法。比如近期Vitalik表示,以太坊(1.0和2.0)近期和中期的扩容战略以Rollup为中心。
先回顾一下以太坊2.0的路线图。
如上文所述,自以太坊启动就计划了四个发展阶段:前沿(Frontier),家园(Homestead),大都会(Metropolis,)和宁静(Serenity)。
宁静(Serenity)即为以太坊2.0的阶段,其最大的变化是从PoW(工作量证明)到PoS(权益证明)的完全过渡。为这个改变,以太坊2.0至少要分为三个阶段:Phase 0:信标链(Beacon Chains);Phase 1:分片链(Shard Chains);Phase 2:跨分片转账、合约调用、eWASM取代以太坊虚拟机(EVM)等;每个阶段都将以不同的方式改善以太坊的性能。
Phase 0:以太坊2.0的第一阶段,将实施“信标链”(Beacon Chains)。信标链存储和管理验证节点的注册,并将实施以太坊2.0的权益证明(PoS)共识机制。以太坊1.0的PoW链将与新的以太坊PoS链一起运行,以确保数据连续性。以太坊2.0的阶段第0将于2020年启动,预计在7月份
Phas1:以太坊2.0的第二阶段可能会在2021年推出。阶段1的主要改进是集成分片链(Shard Chains)。分片链是一种扩容机制,其中以太坊区块链被“拆分”为64个不同的链,从而允许并行交易、存储和信息处理。按最保守的估计,它的吞吐量将达到以太坊1.0的64倍 。
Phas2:以太坊2.0的第三阶段可能会在2021或2022年启动。与阶段0和阶段1相比,阶段2的定义尚不明确,但会涉及增加以太坊账户并启用转账和提款,实施跨分片转账和合约调用,构建执行环境,以便可以在Ethereum 2.0之上构建可扩展的应用程序,并将Ethereum 1.0链引入Ethereum 2.0,并最终关闭工作量证明。
以太坊2.0信标链主网上线,标志着以太坊2.0正式启动。
什么是以太坊2.0?以太坊2.0,也称为Eth2或“Serenity”,是计划中以太坊区块链的第四个阶段,也是一次彻底的重新设计,共识机制将从PoW(工作量证明)转向到PoS(权益证明)。以太坊规划中的四个阶段为:前沿(Frontier),家园(Homestead),大都会(Metropolis)和宁静(Serenity)。
以太坊1.0和以太坊2.0有什么区别?以太坊2.0将引入以太坊1.0中不存在的两项主要改进:权益证明(PoS)和分片链(Shard Chains)。以太坊1.0的共识机制为工作量证明(PoW)。PoW依靠矿工利用电力驱动物理矿机计算来产生以太坊区块链。而PoS不依赖于矿工和电力,而是依赖于验证节点(虚拟矿工)和ETH存币来产生区块。分片链是一种扩容机制,可以极大地提高以太坊区块链的吞吐量。分片链将把以太坊区块链“拆分”,将数据处理职责分配给许多节点。这允许并行地处理交易。每个分片链就像添加了一个车道,将以太坊从单车道升级为多车道高速公路。分片链有望在以太坊2.0的阶段1推出。
以太坊1.0会发生什么?按照计划,在以太坊2.0第1阶段启动时,以太坊1.0成为以太坊2.0的第一个分片。在此之前,以太坊1.0将继续保持现状。
会有以太坊2.0代币吗?没有新的ETH代币。
如何参与以太坊2.0的staking?ETH持有者可以通过两种方式参与以太坊2.0的staking并获得奖励。1、ETH持有者可以抵押32个ETH来运行自己的验证节点,它需要将32个ETH存入以太坊1.0上的存币合约(Deposit Contracts)。此过程是不可逆的。运行自己的验证节点意味着你有验证和组织区块的责任,如果失责可能会导致ETH的损失。2、ETH持有者通过staking服务提供商或者加入staking矿池抵押ETH,任何人都可以按比例获得staking奖励。
成为以太坊2.0验证节点有什么风险?成为验证节点的好处是可以获得ETH奖励。但以太坊2.0上有“惩罚”机制,因此存在抵押的ETH损失的风险。验证节点可能会损失ETH的第一种方法是掉线,无法正确执行职责。这产生相对温和的惩罚,与可能获得的奖励大致相同。验证节点可能损失资金的另一种方法是发布矛盾信息。在这种情况下,验证节点被大幅惩罚并从系统中驱除。惩罚的金额在1 ETH至全部抵押之间,详细惩罚取决于具体因素
启动信标链需要多少ETH?为启动信标链,将至少需要16384个验证节点,相当于抵押52.4288万个以太坊。信标链达到创始阈值,才开始分配奖励。
当前持有的ETH怎么办?你当前持有的ETH不需要做任何操作。它在以太坊1.0链上继续完全可用。在某个时候,以太坊1.0链将成为以太坊2.0的一部分,并且持有的ETH将像现在一样继续运行,无需执行任何操作。对那些想要参与抵押的人,可以通过将持有的ETH存入以太坊1.0链上的存币合约(Deposit Contracts)中,选择成为以太坊2.0信标链上的验证节点。然后,它成为以太坊2.0信标链上的验证节点余额。此过程是不可逆的。在阶段0期间,这些EHT无法动用,验证节点将不得不等到阶段2才能把这些ETH提取到特定的分片,那时抵押的ETH及所产生的奖励才能在以太坊2.0中完全可用。
谁在开发以太坊2.0?开发以太坊2.0的工作主要由以太坊基金会研究团队领导和协调,开发者大约有数百人。Ethereum 2.0规范在以太坊基金会Github页面上维护。目前有9个独立团队正在以各种不同的编程语言针对不同的用例构建以太坊2.0客户端。这9个团队分别是ChainSafe Systems、PegaSys、Parity Technologies、Prysmatic Labs、Sigma Prime、Status、Trinity、Nethermind、Harmony。
人们为什么抵押ETH2.0参与信标链主网启动?最重要的原因之一就是预期可以获得相对低风险的稳定收益。如果刚好只有524,288ETH的存入,那么,其APR收益可以达到21.6%;如果参与质押的ETH达到2,450,000,其收益率也能达到10%;即便是锁定的ETH高达10,000,000,其APR收益也可以到4.9%,远高于其他DeFi协议的ETH存储收益。这里的APR是用ETH计算,而随着ETH价格增长,其实际APY可能更高,这会激励更多人质押ETH。
信标链使用POS共识算法,其是以太坊2.0的基础架构。在以太坊2.0的第二阶段,分片链将在信标链的帮助下运作。
信标链的工作方式是,为每个分片随机分配不同的验证者,以发布区块,同时还为每个分片链分配一个委员会。该委员会的职责是对分片链验证者产生的区块进行投票。
分片链的区块需要一半以上的委员会成员同意。分片链还可以使用信标链来完成跨分片的操作。信标链启动后将与以太坊1.0链并行运行,在此期间并将依赖以太坊1.0链的状态。
信标链使用PoS算法。在PoS算法中,每个矿工产生区块的概率与矿工的权益成正比。但是,信标链中的每个矿工实际上都具有相同的权利。
每个矿工只能向信标链抵押32个ETH。要成为信标链验证者,您需要将交易发送至以太坊1.0上的存币合约(Deposit Contracts),这要求您拥有32个ETH。以太坊1.0上的存币合约(Deposit Contracts)的公开方法(public method)有两个参数:
Pubkey,信标链中验证者的签名公钥
Withdrawal_credentials,用于以后取回抵押的ETH
成功调用存币合约后,合约返回一个日志事件(log event),信标链将自动被告知以太坊1.0链上的事件。
信标链会将新添加的验证者标记为“等待验证者”(Pending Validators)。一段时间后,他们将成为活跃验证者(Active Validators),这意味着他们可以参与区块生成。
信标链将对长期不活动的或坏的验证者进行处罚。当验证者的权益减少到16ETH时,他们将无法参与POS协议的运作。最后,信标将排除权益低于16ETH的验证者。
信标链区块需要维护以下信息:
登记验证者
等待验证者,这些帐户将添加到验证者列表中
活跃验证者,这些账户已添加到验证者列表中
退出验证者,这些帐户离开验证者列表
轮询信息
验证者投票
随机数,用于随机选择提案人和委员会
提案人选择
在提交区块之前,需要选择验证者作为提案人。以太坊1.0中提交下一个区块的权力取决于矿工的算力。如果矿工的处理能力很大,则该矿工有很大可能被选为下一个区块的生产者。
在以太坊2.0中,产块节点的选择基于随机数;在区块链系统中很难生成高质量的随机数。但是,POS协议要求随机数的源是分布式的,可验证的,不可预测的和不可替代的。
使用随机数从一组验证者中选择提案人,使验证者无法知道谁被选中。这样可以防止它们合谋发起攻击。
在信标链中每6秒生成一个区块。这6秒也称为时间槽间隔期(slot gaps)。在每个间隔期间,选定的提案人从信标链的先前区块的验证者那里收集所有选票,并使用它们形成一个新区块。
委员会
在将提案人提议的区块输入信标链的主链之前,需要对其进行投票。
委员会可以对提案人提议的区块进行表决,通过表决的区块可以收到最终确认。理想情况下,如果可以快速收集选票,则委员会中的成员最好都是系统中的活跃验证者。
主链选择规则
在以太坊中,最长链由算力决定,而以太坊2.0的信标链则使用POS算法。因此,将需要一套不同的规则来确定每个人都需要遵循的分叉链(注:即主链)。信标链通过使用LMD GHOST(Latest Message Driven GHOST)来解决此问题。此方法涉及一种基于消息或换句话说通过投票运行的算法。一般来说,票数最高的分叉链将被视为主链。
笑脸代表投票信息。每个区块中的数字代表投票总数,即该区块的权重。
在上图中,尽管顶部链是最长链,但绿色链是主链。
分片链是以太坊2.0网络未来可扩展性的核心特征。
分片是指将数据库中多个节点(例如去中心化数据库或其他类型的数据库)的数据处理职责分开,从而允许同时进行交易、存储和信息的处理。
分片的概念与当前以太坊1.0的模型有很大不同,后者需要所有全节点来处理和验证每个交易。
信标链将监视分片链的运行。
验证者抵押32个ETH后,将其随机分配给某个分片链以进行验证(此处的随机性可确保验证者的分配路径不可预测,否则将面临被操纵的风险)。
eWASM
在第二阶段,随着新虚拟机eWASM(以太坊版WebAssembly)的引入,分片链将从相当基本的数据标记形式演变为完全的交易链,从而承担起扩展以太坊网络的职责。
为了维持区块链生态系统的正常运行,节点必须在虚拟机中执行交易和智能合约。以太坊1.0的虚拟机为EVM。切换到以太坊2.0后,以太坊网络的虚拟机将升级到eWASM,这是一个基于WebAssembly的虚拟机。按万维网联盟(W3C)的标准WebAssembly是开源的。
由于WASM支持多种编程语言,因此eWASM可以让任何语言编写的智能合约都能运行在以太坊上。与Ethereum 1.0的EVM相比,EVM仅允许以Solidity编程语言编写的智能合约运行在以太坊上。
ETH 1.x是以太坊1.0系列升级的代号,因为以太坊2.0全面启动需要2-3年,这意味着当前的以太坊仍将继续运行。阶段0的信标链和阶段1的分片链将在1-2年内完成。将于阶段2实施的eWASM将于2022年某个时候完成。
以太坊2.0将被部署为独立的区块链,因此它不会取代以太坊1.0,这意味着以太坊1.0的区块链需要在未来5至10年内保持持续发展。
以太坊1.x的开发者仍将继续优化以太坊性能,尤其是在layer 2协议上扩容。
比如Optimism团队近期宣布启动Optimism的第一阶段测试网,同时宣布了迈向主网上线的路线图。Optimism并不是唯一正在实现optimisitic rollup的团队,Fuel的rollup也在向测试网迈进,Arbitrum也在做一个rollup。Loopring、zkSync 实现的基于zk-rollup的rollup方案已经上线,基于Starkware技术的Deversifi也已经上线。plasma方案的OMG的主网测试版上线。
参考资料:
slasher:a punitive proof-of-stake algorithm
ethereum launch process
ethereum 2.0:the road to being the worlds computer