7

以太坊核心开发者会议更新 006 ⛓

 3 years ago
source link: https://news.ethereum.cn/Technology/allcoredev-update006
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
ETH   $ 3866.77   -1.42%      Gas:  99 Gwei          Epoch / Slot : 62481 / 1999392       活跃验证者 : 226899       Join Us

以太坊核心开发者会议更新 006 ⛓

回顾以太坊Eth1<->Eth2合并演进之路,介绍合并后将如何运作。


Tim Beiko        2021-09-04

来源 | AllCoreDev Updates

这次更新与以往的有点不同。首先,我决定转移到 Mirror 发布更新。使用这个用于 1559 NFT 项目的平台是很不错的体验,而且我一直在找机会再次使用它。我会在 HackMD 保留更新列表,这样便于在一个地方轻松找到它们。

第二,由于我们现在的工作重点在合并 (The Merge) 上,本文其实不算是一篇“更新”,而是对走到当前架构选择的路线图演变的深入探讨。几周后,会有一篇类似的文章,详细介绍以太坊网络在合并后将如何运作。

合并史前史📜

合并将把以太坊目前的工作量证明 (PoW) 共识算法转为在信标链上运行的权益证明 (PoS) 机制。这个设计是“以太坊2.0”路线图多次迭代的结果。让我们回顾一下过去几年路线图的变化吧。

阶段 0️⃣, 1️⃣, 2️⃣

几年来,权益证明和分片的研发是彼此独立的。在 2018 年台北的一次研讨会上,大家决定将这两项研究计划统一起来,形成一个分三个阶段的“以太坊2.0”路线图。 Ben Edginton 在这篇文章里对当时的研讨会和总的理念作了非常好的总结。正是在这次活动中,Hsiao-Wei 展示了这张现在广为人知的“以太坊2.0”简图:

3 phases

来源

这张图展示了当时新路线图的每个阶段将交付的内容:

  • 阶段 0 将带来信标链
  • 在阶段 1,会加入数据分片
  • 在阶段 2,在每个分片加入虚拟机,以在系统里实现计算。

分片的数量最初定为 100,然后提高到 1024,最近又调低到 64。

提早合并 🌅

随着信标链的工作在 2018 年开启,很明显,这个分三个阶段的以太坊 2.0 路线图将需要几年时间才能完全交付。伴随着使用以太坊人数的快速增长带来的成长阵痛,这带来了工作量证明区块链研究计划的复苏。在 2018 年的 Devcon IV 上,"Ethereum 1.x" 这个术语被提出,用于涵盖这些研究计划。其中最重大的一项是无状态以太坊 (Stateless Ethereum),这个范式会把未被访问的状态从网络中移除,以限制状态的膨胀速度。

一方面有越来越多的关注放在让 PoW 链变得长期可持续上,另一方面开发者们意识到信标链可以比以太坊 2.0 路线图的其他部分更早实现,结合两者后出现了一个“提早合并”的提案。这份提案把现有的 EVM 链作为以太坊 2.0 系统的“分片 0 ”来启动。这样不仅会加快搬到权益证明的速度,还会使应用层的过渡更顺滑,因为搬到权益证明不需要在应用层上做迁移。

这提案出来不久,Danny Ryan 在他的《Eth1+Eth2 客户端关系 (Eth1+Eth2 client relationship)》的文章里探索了 我们可以如何通过利用现有 Eth1 客户端实现提早合并。这将大大减少交付一个合并后系统和利用客户端的开发工作,因为 Eth1 客户端已经在主网上久经沙场了。按这条路走下去还可以给研究者更多时间解决阶段 1 和 2 的开放性问题 (请看这里),和无状态以太坊 (这仍然是非常活跃的研究领域)。

以 Rollup 为中心的路线图 🎯

很快到了 2020 年末:阶段 0 此时的进度已经达到 99%,信标链很快就要启动了。尽管在阶段 1 的工作进展顺利,但将在阶段 1 引入的分片上实现计算功能的阶段 2 仍然有很多未解决的问题:

  • 如何从当前的 EVM 链顺滑过渡到分片的虚拟机?
  • 从性能上看,有哪些替代虚拟机能被部署?
  • 我们要如何确保各种虚拟机是真的安全?
  • 如何协调所有虚拟机上的状态和余额?
  • ......

同时,rollup (例如二层的扩容方案) 方面正发生非常快速的进展。多个团队公布要上测试网,且取得令人鼓舞的早期成果。

大约在这个时候,Vitalik 在 Ethereum Magicians 论坛上发表了长文,论述我们应该把短期和中期的扩容工作集中在 rollup 上。它们不仅会在阶段 2 完成前上主网,还会是阶段 1 的最大受益者。Rollup 会生成大量数据,而分片可以为它提供比 EVM 链消耗更低的存储。下面是文章的截图:

img

这种方法将对阶段 0-2 路线图产生几方面的影响。具体如下:

  • 阶段 0 (信标链) 当时正处于部署主网前在测试网上运行的阶段,一旦 PoW 链准备好,信标链就可以成为共识层引擎,而不需要等到阶段 2 以后;
  • 阶段 1 (数据分片) 的实现还需要几年时间,它从扩容的关键障碍变成一项增量改进,它会减少已经开发出来的扩容方案 (例如 rollup) 的开销;
  • 阶段 2 (分片执行) 是有最多开放性研究问题且更复杂的功能,它可以在几年后推出,或完全取消,对扩容路线图没有任何影响。

研究社区快速就这个提案聚集起来,并在一个月内发表了一篇 ethresear.ch 文章,详细介绍了当前这个合并计划!

当前&未来的路线图 🗺

可执行信标链⛓

当前的合并架构在首次于 2020 年 11 月由 Mikhail Kalinin 发表的《可执行信标链 (Executable Beacon Chain)》上得到详细说明。简言之,它结合了多次迭代的以太坊2.0 路线图的洞见:

  • 信标链已经启动了,现在可以作为共识引擎来使用;
  • Rollup 是扩展计算的最佳短期解决方案;
  • 当前的 Eth1 客户端是作为合并后执行层的最佳基础;
  • 搬到权益证明可以通过对当前运行的应用影响最小的方式实现

Mikhail 提议中的一个重大变更是,与其让当前的 EVM 链成为”分片 0”,不如直接与信标链连接。

这是一个简单但重要的见解——Eth1 执行层客户端已经是以共识算法可换的方式构建的。主网使用工作量证明,而测试网和私人以太坊网络使用的是权威证明 (proof of authority) 共识算法 (clique、IBFT 等)。

在文章里,Mikhail 提议直接把权益证明作为客户端使用的新共识算法。换句话说,就是把当前的工作量证明链与信标链合并。下面由 Trent Van Epps 制作的这张图很好地说明这个变化:

roadmap

来源

这种方法将最大程度地减少 PoW 链上客户端团队要做的工作,同时仍然带来“提前合并”和“以 Rollup 为中心路线”的所有好处[1]。

Rayonism 项目☀️

为了验证可执行信标链架构的可行性,在名为 Rayonism 的长达一个月的黑客松里,客户端进行了原型设计。

在几周内,Eth1和 Eth2 客户端的各种混合组合作为合并后的客户端在 EVM 上运行交易,通过信标链达成共识。

高度概括来说,现在的 Eth2 节点变成作为网络的共识层,而现在的 Eth1 节点则作为其执行层。共识层的功能扩展为把最新的链头信息发送给执行层,并向执行层请求区块。执行层仍然负责处理区块、广播交易、存储和管理状态,和处理 JSON RPC 请求。

这个实验验证了可执行信标链的架构是合理的,且可以用作过渡到权益证明的基础,现在这个过程被称为合并。

PoW -> PoS 的过渡 ⛏

Rayonsim 项目里没有测试的是从真正的 PoW 网络过渡到运行中的 Pos 网络。经过几次迭代后,现在已经大致敲定了一份规范。

为了实现从工作量证明到权益证明的过渡,在客户端里需要设置一个 TERMINAL TOTAL DIFFICULTY (终结总难度)。当发现区块上的难度超过了工作量证明链的难度时,客户端会进入过渡模式,它们会开始监听权益证明层的信息来达成共识。一旦共识层最终敲定的一个区块的难度超过了 TERMINAL TOTAL DIFFICULTY,执行层将完全停止监听和广播 PoW 区块信息。这样,合并就完成了🎉!

对于应用,这不会对合约和用户造成任何影响。有一些操作码需要更新,但就仅此而已。对于信标链节点的运行者,在合并中需要选择一个执行引擎。同样地,如果你在工作量证明网络运行一个节点,在合并中需要选择一个共识客户端。随着合并工作的开展,你可以预期会有多个开发者测试网、教程和会议来讨论这些问题。

接下来的工作🛠

尽管合并的总体方案已经确定了,客户端团队还有一长串的事情需要在未来几个月内完成。大部分要做的事都可以在这里追踪到,值得关注的包括确定合并后的同步协议、为整个过程设置创建集成测试、上线开发者测试网并在不利条件下运行它们,以及为过渡期间的各种意外情况做计划。

如果你想深入了解实际的规范,EIP-3675 详细列出执行层客户端需要的变化,而共识规范中的 merge folder 详细列出了共识层的变化。

当事情稍微稳定下来,请期待另一篇深入以太坊客户端在合并后将如何工作的文章。谢谢你的阅读,下次再见👋🏻!


感谢 Danny Ryan、Trent Van Epps 和 Mikhail Kalinin 对本文草稿的反馈。


[1] 一个值得注意的变更是“无状态以太坊”不再是过渡到权益证明的先决条件。

[2] 在过渡阶段根据总难度而不是区块或 slot 号可以更好处理重组情况。想了解更多,请参见 EIP-3675 里的"Transition process (过渡过程)" 部分。

ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ethereum.cn,若需长期转载,请联系[email protected]进行授权。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK