作者|丹尼·瑞安(Danny Ryan)
翻译器|核可乐
自4月底以来,以太坊网络变得非常拥挤。
数据显示,以太坊网络的平均燃油价格自5月初以来已增长了两倍多,过去几天平均上涨了30 Gwei。 ETHGasStation表示,这样做的结果是发送一次简单的ETH交易的平均费用为0.16美元,这仍然是使用尽可能少的燃料的价格。 ERC-20代币传输和智能合约调用的成本可能是这个数字的几倍。
资料来源:ETHerscan.io
成本的增加对游戏DApp产生了重大影响。 DappRadar数据显示,5月份游戏DApp的活动急剧下降,而其他类的DApp则略有增加。
归根结底,以太坊网络拥塞的原因是当前网络无法支持不断增长的交易量。 ETH 2.0是可扩展的权益证明基础架构。在即将到来的升级中,区块链协议从PoW转变为PoS共识机制,引入了可扩展性,安全性和性能改进。
ETH 2.0的**进展是什么?以太坊2.0协调员Danny Ryan最近发表了一篇文章,详细介绍了ETH 2.0的**发展和计划。
ETH 2.0飞行状态
该团队目前正在努力启动第1阶段。预计将首先启动64个分片,并且系统的总可用数据将在每秒1-4 MB之间。
注意:ETH 2.0的启动分为四个阶段:阶段0,阶段1,阶段1.5和阶段2。
阶段0的目标是与全世界成千上万个节点和成千上万个共识实体(验证者)达成共识。确保区块链能够处理大量验证程序是目前阶段的难题。其他非分片的权益证明机制通常仅包含100或1000个验证器,而ETH 2.0需要至少包含约1600个验证器,并且预计这个数目在两年内将增长到数十万个。
第一阶段表明将达成大量共识。共识“事物”将以分片链的形式出现,信标链的验证者将获得随机的短期任务来构建和验证每个分片链,以及每个链的状态,可用性和有效性对加密经济学做出承诺并最终将结果返回到核心系统。
1.5阶段将以太坊主网作为一个碎片(在第1阶段创建的许多碎片之一)集成到新的ETH2.0共识机制中。但是与传统的以太坊挖矿算法不同,这次的构建工作由ETH2.0验证程序完成。共识机制的热交换将保持高度的透明度,并且应用程序将保持其原始运行状态。
第二阶段将进一步增加状态和执行。具体操作可以采用多种形式。在目前的研究和原制作工作中,团队的主要工作是弄清楚哪种形式更好,以及选择背后的详细含义。
ETH 2.0客户端和测试网状态
在过去两年的第0阶段中,ETH 2.0客户端已经发展成为一种极其复杂的软件解决方案,能够处理数千个节点中数千个验证程序之间的分布式共识。目前,它已进入测试网阶段,并逐步走向全面启动。
丹尼·瑞安(Danny Ryan)鼓励每个人积极地体验多个客户,但要在稳定性和探索性之间进行权衡。
此外,协议中还建立了反相关激励机制。在极端情况下,如果主要客户无意中使验证程序脱机或执行某些严重的操作,而用户验证程序使用这些操作,则开发人员将受到非常严重的惩罚,其程度远比独立的否定操作严重。换句话说,在这样的系统下,具有更少且更好的操作的客户端是**选择,因为客户端的增加只会增加错误的可能性。
应该强调的是,如果有多个安全且适合您需求的客户端,则用户有义务积极选择其中的几个客户端,以促进网络上不同客户端的健康分布。
测试网状态
目前,以太坊网络上正在运行一个小的公共开发网络,它将每隔一到两周重新启动一次。
“开发网络”主要负责客户团队开发人员的错误处理和系统优化。开发网络是完全公开的,但还不如Goerli或RInkeby成熟。由Afri Schoedon发布的**Witti测试网当前运行版本0.11规范(如果您打算运行节点,请单击此处查看文档)。
客户团队正在积极升级到0.12规范,该规范合并了**版本的IETF BLS标准。基于此,以太坊团队将继续扩大网络规模,增加客户端的负载水平,并最终将开发网络完全过渡到版本0.12。在成功启动2到3个客户端并在网络的0.12版本上运行一些高强度负载之后,该团队将打开一个更开放的测试网,开发人员可以在其中运行大多数节点和验证程序。
testnet的目标是创建一个长期的多客户端测试环境,并尽可能地模拟mainnet的运行状况(用户可以可靠地练习节点运行模式并测试他们要测试的所有内容)。**实践当然是只启动测试网络一次,并对后续网络维护期间的所有故障进行分类。但是,根据实际的故障情况和严重性,团队可能还需要多次启动才能完成测试网的全面启动。
除了普通的测试网之外,团队还将提供一个更具启发性的“攻击网”,客户团队可以在其中运行稳定的测试网,并邀请更多的参与者以不同的方式进行破坏性攻击。一旦攻击成功,每个人都将获得以太奖励。
ETH 2.0工具状态
尽管ETH 2.0的工具系统仍处于起步阶段,但已经带来了许多令人兴奋的结果。工具贡献主要来自客户代码库和客户团队,但是其他贡献来源也显示了其功能。为了更好地与ETH 2.0交互,理解,保护和增强ETH 2.0项目,整个社区都必须构建和扩展更大的ETH 2.0生态系统。
ETH 2.0工具代表了前所未有的商机。每个人都可以在这里挖矿价值并获得真正的成功。
以下是当前正在开发的方向,并且还在进行更多工作:
资源经理:Beaconcha.in,ETHerscan,ETH 2.0stats
网路工具:Prrkl,谣言,Pyrum,听诊器
密钥库和钱包:ETHdo,deposit cli,EIP 2335和其他新标准
API设计和原绑定
斜线检测:Pry“哈希吊线斜线”
以下是一些开放式工具的创意示例:
ETH 2.0验证过程警报:当节点验证过程未达到**性能时,提供服务以警告节点操作员。
验证者余额跟踪:通过跟踪验证者的保证金流程,它在现有的以太坊和ETH 2.0资源管理器之间架起了一座桥梁。
使用**保护验证者:使用**跟踪验证者消息,以确保您的客户端不会发送不安全的消息。
ETH 1.0 + ETH 2.0集成状态
在当前的以太坊客户端(例如gETH等)中,几乎所有复杂性都反映在用户级活动的处理上,包括事务池,块创建,虚拟机计算以及状态存储/检索等。协议中的核心共识(工作量证明)相当简单。大多数复杂性是由核心协议之外的复杂硬件处理的。
另一方面,ETH 2.0客户端已完全达成共识。在权益证明和分片中,大多数复杂性都归为协议,以实现共识的可扩展目标。关注点上的差异使ETH1和ETH 2.0客户端完美匹配。
当前,GETH(EF)和TXRX(ConsenSys)团队的成员正在将两者合并。这项工作的具体内容包括:
1)定义ETH1和ETH 2.0客户端之间的通信协议;
2)向ETH1客户端添加一个可以由该通信协议控制的共识引擎;
3)对ETH 2.0的阶段1中的行为进行原设计和仿真,从而进行测试和耦合。该小组希望今年夏天能取得一些具体成果。
不同分片之间的执行和通信状态
可以跨多个分片正常执行的路径一直是一个有争议的技术问题。在这方面,团队需要回答许多实际问题,包括:
执行期间应启用多少个分片?
对于其他分片,我应该选择EVM还是eWA作为虚拟机解决方案?
我们如何有效地组织和处理跨分片交易?
我们需要对现有的EVM进行哪些更改以支持跨分片交易?
执行和帐户结构可以/应该具有通用的可伸缩性吗?
eWA(EF)和Quilt(ConsenSys)团队正在这些领域投入大量研究资源。事实证明,有许多可能的解决方案,当前的首要问题是找出更简单,更实用的解决方案,以快速测试,建立设计原并有针对性地进行讨论。这就是eWA的ETH1 x64项目诞生的方式。
将抽象的交叉碎片思维引入特定的规范中,讨论和构造基于该规范的实际解决方案,有助于团队在探索方面取得快速进展。 DApp开发人员在接下来的几个月中需要密切注意这一趋势。
无状态以太坊与ETH 2.0之间的关系
与ETH 2.0并行发展的另一个主要研究成果是“无状态以太坊”
无状态以太坊的核心是解决状态规模持续增长的问题。在其帮助下,参与者无需在本地存储完整的区块链状态即可完成区块验证。现在,隐式输入被添加到以太坊状态转换函数:整体状态。在使用无状态的以太坊之后,必要的状态证明(见证)将包含在该块内部,从而确保该块可以作为纯函数进行转换/验证。
对于用户来说,这意味着以太坊将成为一个互不影响的环环相扣的世界。我们只需要注意状态中需要注意的部分。一些网络参与者可能会存储所有状态(例如,块生成器,块资源管理器,按需状态提供者等),但是绝大多数参与者只需要掌握整体状态的一部分即可。
对于ETH 2.0,这将是一种重要的技术机制,可以确保节点和验证器成功验证并保护整个协议,而无需在每个分片上存储完整的用户状态。相反,验证器可以选择访问一些碎片块生成器,而基准验证器可以简单地验证无状态块。无状态的以太坊将是ETH 2.0的发展愿景的重要补充,它负责确保此分片协议的轻量级优势。
当然,如果发现无状态开发路线最终不可行,则团队将准备其他一些替代方案。
ETH 2.0挑战
在ETH 2.0的当前工作中,挑战主要是引入过多的验证器,分片和客户端。
分片机制的关键在于,共识参与者(即验证者)必须以随机抽样的形式加入委员会,并验证协议的特定部分(例如分片)。如果特定协议中有足够的验证者,那么即使攻击者控制了**数量的参与者(例如,所有验证者的1/3),从数学上讲,后者仍然不可能控制委员会并破坏整个系统(成功赔率通常约为1/2 ^ 40)。为了实现此目标,团队需要设计系统以确保用户可以使用消费级计算设备(例如笔记本电脑甚至旧的移动电话)充当验证器(每个验证器将分配给每个子部分)系统资源和单个设备的计算资源足以完成本小节的验证)。
除了有太多的验证者外,另一个基本决定也使建筑变得困难。该团队希望在以太坊中增加可扩展性,同时尽可能减少对去中心化原则的影响。基于此概念,团队必须建立分片共识机制,并使用此机制将系统划分为具有较少人数的可验证块。设计和实施这种共识机制将极其困难。
强调自己的协议属性是以太坊的核心宗旨之一。以太坊代表组成协议的抽象规则集,而不是这些规则集的任何特定实现。为此,以太坊社区鼓励用户在建立之初就开发各种客户端实施解决方案。
今天,在以太坊主网上,您可以看到besu,ETHereum,gETH,nETHermind,nimbus,开放式以太坊,三位一体,甚至是turbo-gETH等。在ETH2中,有皮质,灯塔,lodestar,nimbus,pry,teku和三位一体。
多客户端范例具有几个重要优点:
多个客户的存在意味着社区可以对思想,算法和体系结构进行更广泛的探索(每个客户都有自己的方法和观点)。
不同的客户通常有不同的设计目标。随着时间的流逝,用户和应用程序之间的多样化程度也会增加。
目前,以太坊主网上有多个生产级客户端。尽管大规模攻击可以击倒任何单个客户端(例如DoS攻击),但它们无法完全淹没所有客户端。
每个客户端都是通往编程语言社区的门户。使用特定语言的客户会热情地邀请使用该语言的用户来尝试尝试和创新。
但是太多的客户也会带来以下负面影响:
规格和测试必须严格且小心,以免在主网上意外分叉。如果该协议只有一个实现,则该实现将成为新协议。对于单个客户端,一旦任何形式的共识“错误”出现在网络上,该错误将在协议中变为现实。尽管这可能会损害以太坊的纯度,但也消除了意外分叉的风险。为了解决这个问题,团队将在主网上保持良好的客户端分布(例如,单个客户端的节点/验证器的总数永远不会超过总数的1/3);这样,即使单个客户端有共识问题,网络仍可以保持正常运行。
与单个客户端相比,协调N个客户端将不可避免地导致开销的线性增加,在某些情况下甚至会导致开销的平方增加(N ^ 2)。团队使用一系列技术来减少这种开销,包括共识测试套件(网络测试套件也即将推出),但是这种开销只能减少,并且永远不会完全消失。
文章链接:https://www.btchangqing.cn/32550.html
更新时间:2020年06月06日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。