免责声明:本文旨在传达更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表火星财经官方立场。
小编:记得关注哦
资料来源:巴比特
本文由以太坊2.0 协调员Danny Ryan 发布在以太坊官方博客上。原文为《以太坊2.0的现状》(2020年6月)。在本文中,Danny Ryan介绍了以太坊2.0(eth2)的最新状况、进展和计划。
非常感谢Sacha Saint-Leger、Joseph Schweitzer、Josh Stark 和protolambda 的出色投入和反馈。
我花了很多时间解释和回答有关eth2 的问题。当我与技术贡献者交流相关研究和技术规范时,其中一些是深入的和技术性的,但这些天,我越来越多地向社区询问有关eth2 的进展、方向、动机、设计决策、延迟等问题。我真的很喜欢这些谈话。当我解释eth2、想出新的方法来描述各个部分的进展、或者根据受众找到正确的类比来保持社区的运转和透明时,我会感到非常兴奋。
然而,这种动态/对话方法虽然有价值,但仍然不为社区中的许多人所知。我一次又一次被问到同样的问题,甚至六个月后我又被问到同样的问题!显然这里存在一个信息传递问题。社区想要了解的信息已经公开存在,但以各种形式分散在网络上:研究帖子、技术规范文档、规范文档、公开电话会议、公共聊天频道、reddit 和博客文章。我第一次尝试弥合eth2 内部人员与社区其他人员之间的信息差距,这是继devcon5 之后的一个新博客系列“Eth2 快速更新”。这些是帮助您了解eth2 的小信息片段,但我意识到它们并没有真正传达eth2 的更宏观的观点。虽然确实可以在播客、AMA 和会议上进行交流和讨论,但即便如此,写一些有关eth2 的文章仍然会有所帮助。
这就是本文的目的。本文面向社区,旨在让以太坊社区全面了解eth2 的现状:正在完成的工作、未来可能的发展以及对您意味着什么。我将尝试提供适量的技术内容,以说明相关工作的动机和愿景、项目的当前状态以及即将开展的工作,而不会过于拘泥于数学或术语。
这篇文章对于仍然对eth2 感到困惑的以太坊技术专家可能也有用。别担心,我明白。该项目庞大、复杂,距离实施还有一段距离,您可以在解决当前紧迫问题时忽略它。希望这篇文章可以帮助您更好地了解即将发生的事情。
对于eth2 工作人员来说,您也可以从这篇文章—— 中学到一些东西,以更广泛地了解我们现在的处境以及我对未来的看法。
免责声明:本文内容是我(Danny Ryan)的个人观点。 eth2 正在不断成长和发展,有很多声音和观点。本文只是我自己对eth2的理解。
eth2是什么?
“Eth2 是一个可扩展的权益证明(PoS) 基础设施”
如果你在过去六个月里听过我之前的演讲,你应该一次又一次听到我这样说。 Eth2是为以太坊而构建的,最终将成为以太坊。它旨在为当前的以太坊主网提供更安全和可扩展的环境,同时最大限度地减少对当前工作方式的干扰。同时,它为我们提供了升级的环境。
在以太坊诞生之前,人们就知道单一的区块链范式无法提供足够的带宽来充当新的去中心化互联网的支柱。以太坊相关的权益证明(PoS)和分片研究的历史可以追溯到2014 年。PoS 和分片的目的都是为了回答以下问题:给定一定数量的资本支持加密经济系统,我们能否改进安全性和吞吐量,同时仍允许消费者硬件参与共识?虽然我不会在本文中讨论以前的历史,但我只想说,这个探索已经花费了很多年,并且走向了许多错误的方向。最终我们得到了肯定的答案,并且已经证明这个答案就是eth2项目。
Eth2 是一个雄心勃勃的多年实施项目,将分阶段推出。这已经被广泛记录和讨论,但我将向您简要介绍这些阶段的内容。
阶段0
信标链是eth2的第0阶段,是新共识机制的核心。这是所有系统级活动和编排发生的地方。第0阶段是与分布在全球数千个节点的数十万个共识实体(验证者)达成共识。
由于第1+ 阶段关于跨分片分配验证器子集的技术要求,我们需要能够处理大量验证器。许多工程复杂性源于此要求。与其他拥有100 或1000 个验证者的非分片权益证明机制相比,eth2 被设计为至少拥有约1600 个验证者,预计两年内这个数字将达到数十万。
第一阶段
第0 阶段是达成共识,而第1 阶段是在“很多事情”上达成共识。这些“交易”以许多分片链的形式出现。您可以将分片链视为它自己的区块链,其复杂性与当今的以太坊大致相同,但存在于eth2 共识之下(即在信标链之下并由信标链构建/控制)。信标链验证器被赋予随机的短期任务来构建和验证分片链,从而对每条链的状态、可用性和有效性做出加密经济承诺回到核心系统。
目前,我们预计将推出64 个分片,系统可用的总数据将在1 到4 MB/s 范围内(是的,这是很多数据)。
1.5阶段
第1.5 阶段是将以太坊当前的主网作为分片(作为第1 阶段创建的众多分片之一存在)集成到新的eth2 共识机制中。它不是通过工作量证明(PoW) 挖掘算法构建在以太坊上,而是通过eth2 验证器构建。这种共识机制的热插拔对于现有应用程序和用户来说将是基本上透明的。这些应用程序不断发展,但开发人员此时将拥有更强大的系统(更好的安全性、适当的经济终结性、更多用于汇总的第1 层数据和其他有趣的应用程序)。
第二阶段
第二阶段将在更多的分片上添加状态和执行,而不仅仅是原始的以太坊分片。这可以采取多种形式。弄清楚哪种形式及其背后的细节是当今研究和原型设计的热门话题。我将在下面的部分中详细讨论这一点。
Eth2 对社区的好处
我们已经概述了所有这些发展阶段,而阶段0 实际上感觉就在我们面前。但这个路线图听起来还有很长的路要走。在这些升级阶段,我对eth2 到底能有什么期望?
好问题!总体而言,每一步都会出现一波升级浪潮,越来越多地涉及以太坊网络和社区。作为用户,您可以尽早参与阶段0 的质押,也可以等到以太坊在阶段1.5 完全迁移到eth2(从dapp 开发者和用户的角度来看,这种过渡应该是无缝的)。无论您选择如何参与以及在活动的哪个阶段参与,都有一些重要的里程碑和好处值得关注,因为它们都开始出现。
首先,我知道你们很多人都是“顽固”的ETH持有者,渴望参与未来的质押。对于所有潜在的验证者,尤其是爱好者,第0 阶段适合您。第0 阶段有其自身的风险和时间表,这使得它对一些参与者没有吸引力,所以我个人预计这个阶段对业余爱好者和长期的以太坊信徒来说都是一个福音。这是进入eth2 的独特机会,有助于随着时间的推移影响以太坊愿景,并作为早期采用者获得更高的ETH 奖励。
第一阶段呢?在以太坊集成到eth2 之前,我们能否利用所有这些数据做一些有用的事情?是的
即使没有本地计算,第一层数据也非常有用。事实上,过去12 个月中最有前途的Layer 2 扩展解决方案是这些所谓的“rollup”链(optimistic 和ZK),它们随着Layer 1 数据的可用而扩展。 eth2 数据层预计将为以太坊提供1-4 MB/s 的数据可用性,与Rollup 技术相结合时可转化为巨大的可扩展性。但由于以太坊最初的脱节性质和分片的新世界,很难确定eth2 分片的数量。这就是EIP 2537 对以太坊主网如此重要的原因之一。通过原生BLS(新的eth2 签名算法)预编译,我们可以将高效的eth2 轻客户端编写为Solidity 合约,从而允许以太坊应用程序在1.5 阶段集成之前声明eth2 中数据的所有权。
如上所述,1.5 阶段是巨大的。 Eth2是为以太坊打造的,此时,eth2最终将成为以太坊。我们所了解和喜爱的所有应用程序都将集成到升级后的eth2 共识机制中,并保留我们习惯的功能集,同时开辟安全权益证明共识和对高度可扩展数据层的本机访问的广阔新视野。我认为这就是这个过程的重点。这是我们取得巨大成功的时刻,我们将以太坊完全融入到它的新现实中。
除此之外,随着时间的推移,通过在其他分片链上启用状态/执行,可能会获得更多的可扩展性。这可能以EVM 或称为eWASM 的新虚拟机(VM) 的形式出现。无论选择哪种虚拟机,现有的以太坊EVM 分片和新的分片链都将能够通过信标链进行原生交互和通信,从而完成多执行分片的愿景。
你看到了吗?这是一段旅程,但一路上有很多东西需要学习。
这种方法的困难以及为什么值得
这么多验证者
分片的一个关键部分取决于进入委员会以验证协议的一部分(例如分片)的共识参与者(验证者)的随机样本。如果协议中有足够的验证器,并假设攻击者达到最大规模(例如控制1/3 的验证器),从数学上来说,接管任何一个委员会并破坏系统是不可能的(概率约为1/2^40)。这使我们能够设计系统,以便任何拥有消费计算机(例如笔记本电脑甚至旧手机)的人都可以成为验证者(因为验证者被分配给系统的各个子部分,并且一台机器资源的计算可以验证任何小节)。
这就是分片既令人难以置信又困难的原因。首先,我们必须有足够的验证器来确保随机采样的安全:这意味着eth2 预计将比大多数(我认为)其他权益证明协议拥有更多的验证器。这给整个过程的每个阶段带来了挑战——,从研究到共识机制规范、网络、资源消耗和客户端优化。每个额外的验证器都会在系统的每一步造成系统负载,因此必须予以考虑。 Eth2 客户端团队已经完成了管理数千名验证者共识的艰巨任务,以便我们可以安全地集成第一阶段的许多分片。
这么多碎片
另一个使我们难以构建的基本设计决策是,在以太坊中,我们选择在不影响去中心化的情况下获得可扩展性。
如果我们不关心用户是否真的能够自己验证链,或者网络实际上有多少数据可用,那么扩展区块链以每秒处理数千笔交易并不困难。分片共识机制的复杂性是必要的,以便系统可以分解为字节大小的可验证块。制定和实施这样的共识机制是困难的。
这么多客户
以太坊的核心原则是以太坊是协议第一。以太坊是构成协议的一组抽象规则,而不是这些规则集的任何具体实现。为此,以太坊社区从第0天起就鼓励开发许多客户端实现。如今,在以太坊主网上,有许多客户端实现,例如besu、ethereumJS、geth、nethermind、nimbus、open-ethereum、trinity和turbo-盖斯。在eth2 中,客户端有cortex、lighthouse、lodestar、nimbus、prysm、teku 和trinity。
多客户端范例具有许多重要的优点:
允许许多客户端的存在可以更广泛地探索想法、算法和架构(每个都有自己的方法和视角)。当我们都建立更强大的系统时,在此过程中可以进行良好的相互学习。个别客户通常有不同的设计目标。随着时间的推移,这将导致用户和应用程序更加多样化。客户端可能或多或少地关注以下任何一个:性能、安全性、水平扩展、UI/UX、轻客户端、浏览器、资源受限设备等。当主网上有许多生产级客户端时,就会有一些对可能导致任何一个客户端瘫痪的重大攻击(例如DoS 攻击)的抵御能力,因为其余客户端仍然强大。这在以太坊早期历史中出现的“上海DoS攻击”中就可以看到。当时,多次DoS攻击导致Geth和Parity客户端瘫痪,但没有出现两个客户端同时受到攻击的情况。每个客户端都充当编程语言社区的门户。特定语言客户端的基础是开放的,并邀请使用该语言进行实验和创新。围绕客户端的底层工具通常是由强大的工具和语言贡献者组成的不断增长的生态系统。多客户端范例增加了以太坊的引力。这些明显的优势也带来了一些困难:
这些规范和测试必须单独进行,以避免主网上出现意外分叉。如果协议只有一种实现,那么该实现就成为协议。在单个客户端的情况下,如果在主网上遇到任何类型的共识“bug”,那么它将成为协议的现实。从纯度的角度来看,这并不是很好,但它消除了意外分叉的风险。为了解决这个问题,如果我们在主网上合理分配客户端(例如没有一个客户端拥有超过节点/验证器总数的1/3),即使单个客户端出现共识问题,网络也可以保持正常运行。 N 个客户端的协调最多只会导致单个客户端的线性开销(开销),但在某些情况下可能会导致二次开销(N^2)。我们采用一些技术来减少这种开销——,例如共识(和快速网络)测试套件——,但它始终以某种形式存在。
eth2客户端和测试网客户端现状
在过去的两年里,第0 阶段的eth2 客户端已经成为极其复杂的软件,能够处理数千个节点上数万个验证者的分布式共识。我们目前正处于测试网阶段,每天都离发布越来越近。我预计最后一英里会很长。事实证明是这样。
我请求您在发布前尝试多客户端。这些客户之间存在很多权衡,因此您必须亲自动手才能找到最适合您的客户。如上所述,以太坊以多客户端范式运行。为了获得这种范例的好处,我们要求用户运行各种客户端(以在所有类型的客户端之间创建合理的分布)。
除此之外,该协议还内置了反相关激励。极端情况下,如果某个大客户无意中导致验证人下线或者验证人犯下严重罪行,如果你的验证人的行为与该客户有关,那么这就不是你做错了事,而是别人做错了事。如果你与此事无关,你会受到更多的惩罚。换句话说,在这种情况下,最好运行少量的客户端,而不是运行大量网络份额的客户端。
绝对清楚—— 如果存在多个可行且安全的客户端,那么您有责任运行少量客户端软件以促进客户端软件在网络上的健康分发。
另外,不要害羞。如果您对文档有疑问,请告知其他人。如果您发现拼写错误,请提交PR。如果崩溃或弹出错误,请在github或客户端discord中报告。您是测试版用户,在您的帮助下,我们可以为每个人提供更好的体验。
测试网
我们目前正在运行一个小型公共开发网络(devnet),大约每一到两周重新启动一次。我说“devnet”是因为它们首先是客户端团队开发人员处理错误、优化等的一种方式。它们是公开的,欢迎您加入,但请注意,它们存在的时间不长。戈尔利或林克比。由Afri Schoedon 领导的最新版本是运行v0.11 规范的Witti 测试网(如果您想运行某些节点,请查看此处的自述文件)。
客户端团队正在积极升级到v0.12规范,该规范集成了最新版本的IETF BLS标准。从那时起,随着我们继续扩展网络并向客户端施加越来越多的负载,我们将把devnet 过渡到v0.12。在我们成功建立并可靠运行v0.12 网络并在重负载下运行2-3 个客户端之后,我们将转向更公开的测试网,您将在其中运行大多数节点和验证器。这里的目标是创建一个尽可能模仿主网的长期多客户端测试网(用户可以可靠地练习运行节点并测试他们想要的任何其他内容)。理想的方法是在维护网络的同时启动并运行并分类任何故障。然而,根据故障的存在和严重程度,我们可能需要运行几次才能到达我们想要的位置。
除了正常的测试网之外,我们还将提供一个激励性的“攻击网”,客户团队可以在其中运行稳定的测试网,并邀请您尝试以多种不同的方式破坏它。对于成功的攻击,以太坊基金会将提供ETH 奖励。更多信息即将发布,敬请关注——!
Eth2工具的现状
虽然Eth2 工具仍处于起步阶段,但它是一项令人兴奋且不断发展的努力。如上所述,工具通常来自客户端代码库和客户端团队的努力,但每天都有越来越多的人参与其中。为了更好地与eth2 交互、理解、保护和增强eth2,我们作为一个社区需要扩展和构建基本的eth2 工具。我想向为Eth2 工具提供巨大价值的团队和个人表示感谢,并希望欢迎其他开发新工具以及扩展和增强现有工具的人。
Eth2 工具是一个全新的机会。这是一个令人难以置信的机会,可以利用、提供真正的价值并取得成功。
以下是正在进行的工作示例,但仍有很多工作要做!
资源管理器:Beaconcha.in、Etherscan、Eth2stats 网络工具:Prrkl、Rumor、Pyrum、Stethograph 密钥库和钱包:ethdo、deposit cli、EIP 2335 等新标准API 设计和原型绑定削减检测:Prysm “ha”Hi slinging shaker”以下是开放工具创意的一些示例:
Eth2 验证器警报:提供一项服务,当节点验证器未达到最佳性能时向节点操作员发出警报验证器存款跟踪:通过跟踪验证器存款过程,帮助弥合当前以太坊和eth2 浏览器之间的差距通过代理建立保护验证器的桥梁:使用代理跟踪验证器消息以确保您的客户端不会发送不安全的消息不仅如此,这是一种超出规范的贡献类型。创造力很重要。如果您想做出贡献,请联系eth2 客户端团队以开始。
eth1+eth2整合现状
在当前的以太坊客户端(例如geth 等)中,几乎所有的复杂性都在于处理用户级活动—— 交易池、块创建、虚拟机计算和状态存储/检索。协议中实际的核心共识(工作量证明)相当简单。大多数复杂性是由核心协议之外的复杂硬件处理的。
另一方面,eth2 客户端完全是为了达成共识。在权益证明(PoS)和分片中,协议中引入了大量的复杂性以实现可扩展共识的目标。
这些问题的分离使得eth1 和eth2 客户端能够完美配对。
目前,geth(以太坊基金会)和TXRX(ConsenSys)团队的成员正在将两者合并。这项工作包括(1) 定义eth1 和eth2 客户端之间的通信协议,(2) 向eth1 客户端添加可通过通信协议控制的共识引擎,以及(3) 对eth2 第1 阶段的行为进行原型设计和模拟测试耦合。我们希望今年夏天在这些方面看到一些具体成果。
您可以在此处阅读有关高级eth1 + eth2 客户端关系以及组合技术范围的更多信息。
分片之间的执行和通信
如前所述,跨多个分片实现执行的确切路径是一个经过广泛研究和争论的领域。有很多问题需要回答。例如:
应启用多少个分片来执行?对于其他分片,我们使用EVM 还是eWASM 作为虚拟机?我们如何有效地组织和处理跨分片交易?我们需要对现有的EVM 进行哪些更改才能支持跨分片交易?一般而言,执行和账户结构可以扩展吗?在过去的12 个月里,eWASM (EF) 和Quilt (ConsenSys) 团队在这些领域进行了广泛的研究。事实证明,解决方案空间巨大,虽然我们现在可以很好地处理这个空间的广度,但最近的重点是挖掘简单、切实的解决方案,以便能够测试、原型化和真正构建对话。由此产生了eWASM 的Eth1x64 计划(获得项目的高级视图并查看正在讨论的一些最新规范)。
在将抽象的交叉分片思想转化为具体规范以供讨论并最终形成原型方面,已经取得了快速进展。请密切关注这方面的进展,特别是如果您是dapp 开发人员。在接下来的几个月中,我们打算提供一些您可以理解、使用并提供反馈的信息。
无状态以太坊与eth2的关系
与eth2 并行进行的另一项重大研发工作是“无状态以太坊”。无状态以太坊致力于解决状态规模增长的问题。它允许参与者验证区块,而无需在本地存储整个状态。现在,以太坊状态转换函数中有一个隐式输入:整个状态。对于无状态以太坊,必要状态的证明(见证)将在区块内提供。这允许将块转换/验证为仅该块的纯函数。
对于用户来说,这意味着一个你可以关注区块链的世界,甚至可以专注于你关心的状态部分,而无需存储所有内容。一些网络参与者可能会存储所有状态(区块生产者、区块浏览器、即用即付状态提供商),但绝大多数参与者只需要一部分状态。
对于eth2 来说,这是一种重要的技术机制,可确保节点和验证者可以验证和保护协议,而无需为每个分片存储完整的用户状态。相反,验证者可以选择加入某些分片的区块生产者,而基线验证者可能只验证无状态区块。无状态以太坊是对eth2 愿景的宝贵补充,使分片协议的基础层变得非常薄。虽然我们计划在eth2 上运行无状态,但如果无状态路径最终被证明不可行,我们确实还有一些其他选择(尽管我个人对无状态非常有信心)。
对于这篇文章,我不会做任何深入的研究。只需知道这是一条令人兴奋的并行研发路径,以确保以太坊的长期可持续性。如果您想了解更多信息,请查看Griffin 的1.x 博客系列。
终于
Eth2 是一项艰巨的任务,旨在为以太坊提供升级的、下一代的、高度可扩展的、安全的、去中心化的共识。数十个团队和数百名个人每天都在努力实现这一目标。我们选择的道路是艰难的,但已经取得并将继续取得巨大进展。
这一新机制的核心即将到来。
如果您是一位有抱负的验证者,那么现在是时候探索了。通过对多个客户端进行试验来支持多客户端范式,并帮助从Eth2 的起源为丰富的客户端多样性奠定坚实的基础。
如果您是用户或dapp 开发人员,请立即继续使用以太坊,同时我们将继续为您准备这个更安全和可扩展的环境。到那时,向eth2 的过渡将尽可能无缝地实现。
感谢那些令人难以置信的团队和个人,他们让以太坊今天保持活力和健康;感谢大家为以太坊eth2 的未来做准备;感谢所有让以太坊变得伟大的用户和开发者