/
由丹尼·瑞安(Danny Ryan)撰写
翻译:Unitimes_Daid
非常感谢Sacha Saint-Leger,Joseph Schweitzer,Josh Stark和protolambda的宝贵意见和反馈。
我花了很多时间来回答和解释有关ETH2的问题,这确实是很多时间。其中一些是从深层次和技术层面回答的。在这种情况下,我会将研究和规格传达给技术贡献者。但是这些天来,我越来越多地回答社区的进展,方向,动机,设计决策,延误等。我真的很喜欢在此期间(与社区成员进行的对话)。当我解释ETH2时,我突然想到了一种新的方式来描述不同的(ETH2)组件,或者根据听众找到正确的类比。这就像打开齿轮并打开灯泡一样,这会让我兴奋。
但是,这种动态/对话的方法虽然有价值,但仍然使社区中的许多人处于黑暗之中。一次又一次地问我同样的问题,更令人担忧的是,六个月后我会再次被问到同样的问题!显然存在信息传输的问题。该信息存在,但去中心化在Internet上,包括研究帖子,规范,规范性说明文章,公共电话会议,公共聊天室,reddit帖子,博客帖子等。
在decon5会议之后,我第一次尝试通过一系列博客文章“ ETH2快速更新”在对ETH2有深刻理解的人和社区其他成员之间架起一座信息桥梁。这些小片段可以帮助您理解(ETH2),但是我意识到这些系列文章并没有真正传达出更大的图片信息。尽管博客,AMA(在线问题解答)和会议确实能够(向社区)传达和讨论更大的图片信息,但即使如此,书面形式仍然会有所帮助。
所以我写了这篇文章。本文面向社区,为您全面介绍了ETH2的今天:它的去向,可能的发展以及以太坊社区的意义。我将尝试提供适当的技术内容来解释ETH2的动机,愿景,项目进度和要完成的工作,但不会涉及太多的数学或深奥的术语。
本文对仍与ETH2保持一定距离的以太坊技术专家也可能有所帮助。没关系,我可以理解。这个项目庞大而复杂,似乎您将来可以在足够长的时间内忽略它,而专注于解决更紧迫的问题。希望本文能帮助您更好地了解会发生什么。
对于ETH2员工,您可能还会从本文中得到一些帮助:对我们当前的进展和我对未来的看法有更广泛的了解。
免责声明:本文是我(丹尼·瑞安)对当前情况的个人看法。 ETH2不断发展和演进的声音和意见也很多。本文只是我的解释的一部分。
什么是ETH2
“ ETH2是可扩展的PoS基础架构。”
如果您在过去六个月中听过我的讲话,那么您一定已经听过我一次又一次的讲话。 ETH2是为以太坊构建的,最终将成为以太坊。其目标是为当前的以太坊主网提供一个更安全,更可扩展的环境,并且对当前(以太坊)操作的影响不大。同时,它为我们的成长提供了升级的环境。
在以太坊区块链推出之前,人们知道单一的区块链模无法提供足够的带宽来充当新的去中心化互联网的骨干。与以太坊相关的PoS(权益证明)和分片(sharding)研究的历史可以追溯到2014年。
PoS和分片的目的是回答这个问题:给定一定数量的资金来支持加密经济系统,我们是否可以提高安全性和吞吐量,同时仍允许消费者级别的硬件设施参与共识并与区块链保持同步?尽管在这里我不会详细介绍相关的研究历史,但是这种探索花费了数年的时间,不利于一开始多次离开老师。**,这个问题的答案是“是”,并以ETH2项目的形式提出。
ETH2是一个雄心勃勃的多年项目,将分多个阶段启动。已经对此方面进行了广泛的文献记录和讨论,但是在本文中,我将以较快的方式和较少的技术介绍这些阶段涉及的内容。
阶段0
阶段2,也称为信标链阶段,是ETH2新的PoS共识机制的核心。在这里进行所有系统级的活动和协调。阶段0即将与成千上万个共识实体(即验证者)达成共识,这些实体是分布在世界各地的数千个节点。
由于在第1阶段及以后阶段为每个分片分配验证器子集的技术要求,我们需要能够处理大量验证器。 0级(信标链)设计的复杂性很大程度上是由于这一要求。其他未实现分片的PoS机制通常具有数百或数千个验证器,但是ETH2的设计目标是至少携带约16,000个验证器,并期望这一数字在几年内达到数十万个。
阶段1
阶段0是关于达成共识,阶段1是关于达成许多共识。这些“事物”以许多碎片的形式呈现。您可以将每个分片视为具有与当前以太坊链相同的复杂性的区块链,但是分片链存在于ETH2共识下(即分片链存在于下方的信标链中,并由信标构建/控制)链)。信标链的验证者被随机分配短期任务以构建和验证分片链。他们对核心系统(信标链)做出经济承诺,以确保每个分片链的状态,可用性和有效性。
当前,我们预计最初将有64个分片链,并且系统可用的总数据为每秒1到4 MB(是的,这是大量数据)。
1.5阶段
1.5阶段是关于将当前的以太坊主网作为一个碎片合并到新的ETH2共识机制中(将作为第1阶段创建的许多碎片之一存在)。我们知道当前的以太坊链是通过PoW(工作量证明)挖矿算法构建的,但是在被整合到ETH2中之后,该链将由ETH2验证器构建。
对于以太坊链上的当前应用程序和用户,这种共识机制的变化(从PoW到PoS)在很大程度上不会被注意到。这些应用程序将继续运行,但是届时开发人员将拥有一个功能更强大的系统(更高的安全性,严格的经济确定性,用于汇总的第1层数据和其他有趣的应用程序)。
阶段2
第2阶段将向更多分片链添加状态和执行功能,而不仅仅是初始的以太坊分片链(在1.5阶段合并)。这可以以多种形式实现。这是当前研究和原设计的热点,其具体形式和细节将在以后采用。我将在以下各章中进一步讨论。
随着时间的流逝,ETH2对社区的好处
好吧,我们介绍了所有这些阶段,而阶段0实际上即将到来。但是,这个发展路线图似乎还很长。那么在这些升级阶段中,我对ETH2有什么期望?
这是一个很好的问题!总体而言,预计在每个阶段都会有一波升级浪潮,继续在以太坊和社区上产生更多的影响。作为用户,您可以尽早参与阶段0的抵押,也可以等到阶段1.5的以太坊链完全迁移到ETH2(无论是从dapp开发人员还是用户的角度来看,这种迁移都不会进行缝纫)退出),然后参与。无论您选择参与的级别如何,在每个阶段的启动以及每个阶段的启动,都有重要的里程碑和好处值得您关注。
首先,我知道你们中的许多人都是坚定的以太坊持有人,并渴望参与抵押。对于所有潜在的验证者,尤其是爱好者,第0阶段适合您。阶段0有其自身的风险和投资回收期,这对某些参与者来说没有吸引力,因此我个人希望该阶段对发烧友和长期以太坊信徒来说是福音。这个阶段是您进入该领域,促进(ETH2)愿景的独特机会,并且作为早期参与者将获得更高的ETH奖励。
那在第一阶段呢?在将以太坊链迁移到ETH2之前,我们可以对这些数据做些有用的事情吗?答案是肯定的,很高兴你问!
即使没有本地计算,第1层数据也非常有用。实际上,在过去的12个月中,最有前途的第2层可伸缩性解决方案是这些所谓的“汇总”链(乐观汇总和ZK汇总),随着第1层数据可用性的增加,这些链将增加。预计ETH2数据层将为以太坊提供大约每秒1到4 MB的数据可用性。如果与汇总技术结合使用,则可以将这些数据的可用性转换为巨大的可伸缩性改进。
但是,由于以太坊(旧链)和新的ETH2分片系统从一开始就断开连接,因此很难获得ETH2分片数据。这是EIP 2537提案对以太坊主网如此重要的原因之一。通过本地BLS(即新的ETH2签名算法)的预编译,我们可以编写一个高效的ETH2 light客户端作为一个实体契约,以便以太坊上的当前应用程序可以在1.5迁移数据之前获得ETH2中的ETH2。 。
如上所述,阶段1.5的影响是巨大的。 ETH2是为以太坊构建的,在此阶段,ETH2将成为以太坊。我们所知道和喜爱的所有应用程序都将集成到升级的ETH2共识机制中,同时保留我们习惯的特性,开辟由安全PoS共识带来的广阔新前景,并在本地数据层获得高可伸缩性。我认为,这是整个过程的关键,这是取得巨大成功的时刻,因为我们将以太坊(旧链)完全锚定在一个全新的系统中。
另外,随着时间的流逝,在以后的阶段中,通过在其他分片链上实现状态/执行,也可以获得更多的可伸缩性改进。这可以以EVM(以太坊虚拟机)或称为eWA的全新虚拟机的形式表示。无论选择哪种VM(虚拟机),现有的以太坊EVM分片(即在1.5阶段迁移的旧以太坊链)和其他全新的分片链都将能够通过信标链进行交互和通信,因此实现ETH2分片的愿景。
你理解吗?这是一个过程,但是在这个过程中将会富有成果。
此升级方法带来的困难以及为什么值得采用此升级方法
如此多的验证器
分片所依赖的关键组成部分是将共识参与者(即验证人)随机分配给委员会,以验证ETH2协议的一部分(例如分片链)。
如果协议中有足够数量的验证器,并且假定攻击者控制了**数量的验证器节点(例如控制验证器节点的1/3),那么从数学上讲,攻击者将控制任何验证器。一个委员会和整个系统都受到腐蚀[1](概率1/2 ^ 40,趋于零)。
这使我们可以设计系统,以允许任何人使用消费级设备(例如笔记本电脑或旧手机)成为验证者(因为该验证者将分配给系统的特定部分并验证任何部分)可以使用单台计算机的计算资源来完成)。
这是关于分片的不可思议的事情,但同时也是困难。
首先,我们必须有足够的验证器以使此随机分配方法足够安全:这意味着ETH2比大多数其他PoS协议具有更多的验证器。
这给整个过程的每个层次带来了挑战,从技术研究到共识机制的规范,再到资源消耗以及网络和客户的优化。每个新的验证程序都会给系统增加负载,在每个阶段都必须考虑到这一点。每个ETH2客户团队都完成了管理成千上万个验证器以达成共识的艰巨任务,因此我们可以在阶段1中安全有效地集成许多分片链。
如此多的分片链
使我们难以构建的ETH2的另一个基本设计决策是,在以太坊中,我们选择在不牺牲去中心化性的情况下提高可扩展性。
如果我们不在乎用户是否可以自己验证区块链,或者不在乎如何确保数据对网络有用,那么将区块链扩展到每秒数以万计的交易就不难了。分片共识机制的复杂性是必需的,以便可以将系统划分为可验证的小块。制定和执行这种共识机制的准则是一项非常艰巨的任务。
这么多客户
以太坊的核心原则是,协议是第一位的。以太坊是组成协议的抽象规则集,而不是这些规则集的任何具体实现。为此,以太坊社区从一开始就鼓励实施许多客户。
在当前的以太坊主网上,有客户端实现,例如besu,ETHereum,gETH,nETHermind,nimbus,开放式以太坊,三位一体和turbo-gETH。
在ETH2系统中,我们将有客户端实现,例如cortex,lighthouse,lodestar,nimbus,pry,teku和trinity。
多客户端模具有许多重要的优点:
有很多客户可以使社区探索更广泛的想法,算法和体系结构(每个客户都有自己的方法和理念)。当我们构建功能更强大的系统时,此过程将为每个客户之间建立良好的交流氛围,
每个客户通常有不同的设计目标。随着时间的流逝,这将带来用户和应用程序的多样化。客户端可能或多或少地专注于以下任何方面:性能,安全性,水平缩放,UI / UX,轻客户端,浏览器,资源受限的设备等。
因为有许多生产级客户端,所以当主要攻击(例如DOS攻击)击败任何客户端时,其他客户端可以顽强抵抗。这可以在以太坊早期的“上海DoS攻击”中看到。当时的一系列DOS攻击使许多gETH和奇偶校验客户端瘫痪了,但并没有同时销毁它们。
每个客户都是编程语言社区的门户。用特定语言编写的客户欢迎并欢迎使用该语言进行的实验和创新。客户的基本工具通常形成强大的工具和贡献者生态系统,而这种语言和语言就像滚雪球一样。多客户端模增强了以太坊的吸引力。
有这些明显的优势,有必要克服一些困难:
(ETH2)规范和测试必须无懈可击,以免在主网上发生任何意外的分叉。如果该协议只有一个客户端实现,则此实现将成为协议本身。在只有一个客户端的情况下,如果客户端的任何共识“错误”影响了主网,则此错误将成为协议的现实。为了解决这个问题,如果在主网络上分布着许多不同的客户端(例如,没有客户端的节点/验证器数量超过1/3),那么区块链网络可以面对单个客户端。在终端上出现共识问题,它将继续运行。
在**情况下,N个客户端的协作比单个客户端可以带来线性开销,但在某些情况下可能会导致辅助开销(N ^ 2)。我们将使用某种技术来减少这种开销,例如共识(和即将到来的网络)测试,但是这种情况在某种程度上将始终存在。
ETH2客户端和testnet进度
在过去的两年中,ETH2阶段0已经成为一个相当复杂的软件,可以处理成千上万个节点中成千上万个验证者的分布式共识。我们目前处于测试网阶段,并且每天都在接近(信标链的)发布。我原本以为**一英里很长,但事实证明这是真的。
希望在(Beacon Chain)发布之前的这段时间内,您可以走出舒适区并尝试其他客户。这些客户之间有很多折衷,您需要自己使用它来找到最适合您的客户。如上所述,以太坊以多客户端模式运行。为了获得这种方法的好处,我们需要用户运行各种不同的客户端(以便各种类的客户端可以在网络中正常分布)。
此外,ETH2协议还内置了反相关激励机制。在某些极端情况下,例如大客户意外导致大量验证者下线,或使大量验证者执行可能受到惩罚的动作,如果您的验证者节点的行为不同,则相关,那么您收到的惩罚这时候比犯错但与他人无关的惩罚要严厉得多。换句话说,在这些情况下,运行不太受欢迎的客户端比运行占用网络很大一部分的客户端要好得多。
需要明确的是,如果有多个可行且安全的客户端,则应运行较不流行的客户端软件,以促进网络上每个客户端软件的健康分布,这是您的义务。
另外,不关键羞。如果您在文档方面遇到问题,请告知其他人。如果您看到错字,请提交PR。如果崩溃或存在错误,请确保在github或客户端的光盘聊天室中报告该错误。您是测试阶段的用户,在您的帮助下,我们可以使其中的一些人变得更好。
测试网
我们目前正在运行小公共开发网络(denet),大约每隔一到两周就会重新启动一次。之所以将这些测试网称为“开发网络”,是因为这些测试网首先是解决客户团队开发人员的错误,优化和其他问题的工具。
这些测试网络是公开的,欢迎您加入,但是您需要知道这些测试网络的寿命不会像Goerli或Rinkeby那样长。新发布的测试网是由Afri Schoedon领导并运行0.11规范的Witti测试网[2](如果要运行某些节点,请在此处检查README [3])。
每个客户团队都在积极升级到新的0.12版本规范[4],该规范集成了IETF BLS签名标准的新版本。在此基础上,我们将把这些测试网络过渡到0.12规范,并且我们将继续增加这些测试网络的规模,以包括越来越多的客户端负载。
在成功启动具有2-3个客户端的0.12测试网并在高负载下运行它之后,我们将启动一个更公共的测试网,该网将允许您运行大多数节点和验证程序。目标是创建一个长期存在的多客户端测试网,该网尽可能模拟主网(用户将能够运行节点并在该测试网中可靠地执行任何测试)。理想的情况是只建立一次这样的测试网络,并在维护测试网络的同时解决所有故障。但是,根据故障的存在和严重程度,我们可能需要运行多次才能实现此目标。
除了普通的测试网之外,我们还将提供激励性的“攻击网”,客户团队可以在其中运行稳定的测试网,并且我们将邀请您尝试其他方法来攻击该网络。如果攻击成功,以太坊基金会将提供ETH奖励。请继续关注有关此的更多信息!
ETH2工具进度
尽管ETH2的工具仍处于起步阶段,但这是一项令人兴奋且不断发展的任务。如上所述,工具通常来自客户代码库和客户团队的努力,但是每天都有越来越多的人参与其中。
为了更好地理解,保护,增强与ETH2的互动,我们作为一个社区需要构建基本的ETH2工具。
我想为那些为其ETH2工具提供了巨大价值的团队和个人欢呼,并欢迎更多的人来开发新工具并扩展和增强现有工具。
ETH2工具是一个新的机会领域。这是进行研究,提供真实价值并获得认可的**机会。
以下是一些生产中的工具,但还有许多其他工具!
浏览器:Beaconcha.in,ETHerscan,ETH2stats
网络工具:Prrkl [5],谣言[6],Pyrum [7],听诊器[8]
密钥库和钱包:ETHdo [9],deposit cli [10],EIP 2335 [11]和其他新标准
API [12]设计和原绑定[13]
惩罚监控:Pry“散列式甩刀” [14]
以下是一些公共工具的想法:
ETH2验证者警告:当验证者未以**方式执行任务时,它将提供警告节点操作员的服务;
验证者抵押跟踪:通过跟踪验证者的抵押过程,它有助于在当前的以太坊链和ETH2浏览器之间架起一座桥梁
通过**服务保护验证者:使用**服务来跟踪验证者的消息,从而确保您的客户端不会发送不安全的消息。
还有很多,这种类的贡献不限于一个规范。创造力非常重要。如果您想做出贡献,请与ETH2客户团队讨论。
ETH1 + ETH2合并进度
在当前的以太坊客户端(例如gETH客户端)中,几乎所有复杂性都在于处理用户级活动:事务池,块创建,虚拟机计算以及状态存储/检索。协议中的实际核心共识工作证明(PoW)非常简单。大多数复杂性由协议之外的复杂硬件处理。
另一方面,ETH2客户是完全共识的。在PoS和分片中,该协议引入了许多复杂性,以实现可扩展性共识的目标。
这些关注点的差异使ETH1和ETH2完美结合。
ETH1和ETH2合并的初始工作由GETH(以太坊基金会)和TXRX(ConsenSys)团队进行。这项工作涉及:
定义ETH1和ETH2之间的通信协议;
向ETH1客户端添加一个共识引擎,该引擎可以通过通信协议进行控制;
原化并模拟ETH2 Phase 1行为以测试耦合。
我们希望今年夏天能看到一些具体结果。
您可以在此处[15]了解更多有关**ETH1 + ETH2客户关系的信息,并在此处[16]了解合并的技术范围。
状态执行和跨分片通信的进度
如上所述,跨多个分片链执行状态的确切路径是一个深入研究和辩论的领域。在这方面有很多问题要回答,例如:
多少个分片链应实现状态执行功能?
对于新的分片,我们是否将EVM或eWA用作其虚拟机?
我们如何组织和处理跨分片交易?
我们需要对当前的EVM进行哪些更改以支持跨分片交易?
可以/通常应该扩展状态执行和帐户结构吗?
在过去的12个月中,eWA(以太坊基金会)和Quilt(ConsenSys)团队在这些领域进行了广泛的研究。事实证明,解决方案的领域非常广泛,尽管我们现在已经掌握了该领域的广度,但是最近的重点是深入研究简单,实用的解决方案,以便我们可以测试,原设计和真正奠定基础。沟通的基础。这催生了eWA的ETH1x64项目(通过此处[17]对该项目进行**概述并查看正在讨论的一些新规范[18])。
在将抽象的交叉分片通信思想引入特定的规范进行讨论并最终形成原方面,已经取得了迅速的进展。请密切注意这方面的进展,特别是如果您是dapp开发人员。我们打算在接下来的几个月中提供您可以理解的内容,尝试并提供反馈。
无状态的以太坊和ETH2
与ETH2并行的另一项主要研发工作是“无状态以太坊”无状态以太坊旨在解决州规模增长的问题。这将允许参与者验证块而不必在本地存储整个状态。
当前以太坊状态转换函数中有一个隐式输入:整个状态。通过无状态的以太坊,将在区块内提供所需状态的证明(即证人,证人数据)。这允许将块转换/验证为纯函数。
对于用户而言,这种过渡意味着用户可以遵循此链条而无需存储所有状态,甚至可以关注他们关心的状态部分。一些网络参与者(例如区块生产者,区块浏览器,付费状态提供者等)可能存储所有状态,但是绝大多数参与者只会存储一小部分状态。
对于ETH2,这是一种重要的技术机制,可确保节点和验证者可以在不存储每个分片的完整用户状态的情况下验证和保护协议。验证器可以选择成为某些分片的块生产者,而基线验证器可以仅验证无状态块。
无状态的以太坊是ETH2愿景的一个非常有价值的补充,这使分片协议的基础非常“薄”尽管我们计划以无状态方式运行ETH2,但我们有一些选择可以防止无状态方式最终被证明是不可行的(但是我自己对无状态性非常有信心)。
在本文中,我不会深入研究无状态的以太坊。您只需要知道这是确保以太坊的长期可持续性的令人兴奋的并行研发路径即可。如果您想了解更多,可以查看Griffin发表的ETH1.x系列博客文章[19]。
**写
ETH2是一个宏伟的项目,它将为以太坊提供升级的,下一代的高度可扩展,安全和去中心化的共识。每天,数十个团队和数百人努力实现这一目标。我们选择的道路是困难的,但是已经取得了巨大的进步并将继续下去。
这种新机制(信标链)的核心部分即将推出。
如果您是有抱负的验证者,则可以立即加入。通过尝试多个不同的客户端以支持ETH2的这种多客户端模式,并为客户端的多样化为ETH2的创建做出贡献奠定了坚实的基础。
如果您是用户或dapp开发人员,请继续推进当前的以太坊链。同时,我们将继续为您准备一个更安全和可扩展的环境。时间成熟时,从ETH1到ETH2的转换将尽可能地无缝。
多亏了那些伟大的团队和个人,使以太坊得以存活和健康;感谢为ETH2的未来做准备的每个人;和所有用户和开发人员,使以太坊如此吸引人
参考链接:
[1] https://blog.ETHereum.org/2020/03/27/sharding-consensus/
[2] https://witti.beaconcha.in/
[3] https://github.com/goerli/witti
[4] https://github.com/ETHereum/ETH2.0-specs/releases/tag/0.12.0
[5] https://github.com/prrkl
[6] https://github.com/protolambda/rumor
[7] https://github.com/protolambda/pyrum
[8] https://github.com/lsankar4033/stETHoscope
[9] https://github.com/wealdtech/ETHdo
[10] https://github.com/ETHereum/ETH2.0-deposit-cli
[11] https://github.com/ETHereum/EIPs/pull/2335
[12] https://github.com/ETHereum/ETH2.0-apis
[13] https://github.com/protolambda/ETH2.py/
[14] https://github.com/prysmaticlabs/pry/blob/master/slasher/README.md
[15] https://ETHresear.ch/t/ETH1-ETH2-client-relationship/7248
[16] https://ETHresear.ch/t/the-scope-of-ETH1-ETH2-merger/7362
[17] https://ETHresear.ch/t/the-ETH1x64-experiment/7195
[18] https://ETHresear.ch/t/ETH1x64-ariant-1-apostille/7365
[19] https://blog.ETHereum.org/2020/04/02/ETH1x-stateless-tech-tree/
[本文的版权归原始作者所有,其内容和观点不代表Unitimes的立场。重印的文章仅用于传播更有价值的信息。如需合作或授权联系,请发送电子邮件至[email protected]或添加微信unitimes2017】
文章标题:最后,简要介绍Eth2的进度eth2合并的进度状态执行和跨分片通信进度无状态的以太坊和eth2
文章链接:https://www.btchangqing.cn/31745.html
更新时间:2020年06月04日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。