Merge与测试网

1 Merge

1.1 Merge 路线图

合并后,发行的 ETH 数量预计将下降 90%;

1.2 难度炸弹对时间线的影响

(ACD 140 推迟之前)难度炸弹预计在 5 月左右开始在以太坊网络上出现,并在 6 月 / 7 月开始显著增加区块时间,并在 8 月之前使区块速度变得难以忍受(读取速度 15 - 20 秒)。

如果客户端开发人员认为他们无法在阻塞时间过长之前将 Merge 部署到主网,则需要再次延迟。延迟炸弹可以采用两种方法:

  • 同时进行炸弹延迟和 Merge:如果仅需要延迟炸弹几周,则可以将炸弹延迟与支持 The Merge 客户端发布结合起来。这些客户端会在特定的区块延迟炸弹、恢复 13 秒的区块时间,随后很快激活 The Merge。
  • 单独进行炸弹延迟:如果不希望在区块时间变得难以忍受之后才在以太坊主网上激活 The Merge,那么将需要在 The Merge 之前进行仅延迟难度炸弹的单独网络升级。此时延迟难度炸弹的时间与合并发生的时间无关。例如,如果将炸弹推迟 6 个月,可以在此之前合并。同样,如果将炸弹推迟 3 个月,并在它再次引爆之前发现了一个重大问题,则可以考虑再次延迟炸弹。

1.3 分片

1. 执行分片

在最初的分片路线图(理想状态)中,将有 64 个执行分片。

由于网络将是防欺诈的,这意味着信标链接需要受有关无效分片区块的欺诈性索赔,还要在必要时恢复链、罚没违规的验证者并奖励举报人。这将需要很长时间才能实施(因为整个网络必须恢复到欺诈之前的状态)。这也意味着网络将进入回旋期(在新的最终检查点最终确定之前的一段时间<以epoch度量>),而且还需做出具有边缘情况的同步假设。

但是,分片后执行将更容易实现,并且如果执行的有效性得到证明,则无需那些同步假设。即每个执行分片都在运行 zkEVM,但 zkEVM 仍在研发中,所以执行分片已被降低优先级(并没有取消),数据分片变成了目前正在研究和实施的主要方法。

2. 数据分片

执行分片后的计划是首先通过一种新的交易方式公开数据分片,这也将为在单独的 p2p 层上全面实施分片奠定基础;

但是数据分片需要相当长的时间来完成实施和部署,但 Rollup 现在就可用。而且 EIP - 4844 可以将 Rollup 费用降低几个数量级,并使以太坊在不牺牲去中心化的情况下保持竞争力。

3. Rollup 与 EIP - 4844

Rollup 在合并后仍然部署运行在执行层上,但可以利用共识层的最终确定性;

EIP - 4844(分片 BLOB 交易):它向以太坊引入了一种新的交易类型,信标节点接受 blob 数据并保留一小段时间。这些更改是向前兼容的,不需要 EVM 执行,并且足够小以保持磁盘使用可管理。它运行在信标节点中,而不是在共识层。

6月18日,EIP-4844 Breakout room meeting,演示了 EIP-4844 测试网现场工作:将 blob 上传到 EIP-4844 数据存储、下载并确认有效性;缺少的功能: 强大的同步;收费市场;Blob 删除。

1.4 区块处理过程

在高层次上,合并后的区块处理过程如下:

  1. 选出一个验证者来提议一个区块;
  2. 该验证者通过 Engine API 要求执行层给它发送一个ExecutionPayload
  3. 执行层给共识层返回一个包含有最大利润的一系列已验证交易的负载;
  4. 共识层提议一个包含此负载的区块并将其传播到信标链 p2p 网络上;
    • 个别交易仍在执行层 p2p 网络上传播,执行层仅负责维护交易池,完整的区块在共识层网络上传播。
    • 验证者在执行层上指定他们想要接收费用的地址。交易费用永远不会像验证者权益和奖励那样被“锁定”在信标链上。
  5. 其他验证者证明该区块,如果有效,则在信标链 p2p 网络上传播它;

1.5 Merge后可用的服务

img

1.6 提款与安全性

  • 合并后不会立即启用提款(验证者提取累积的以太币),但会在下一次升级(分叉)中启用;
  • 根据权益证明,如果发生攻击,可以简单地升级网络以移除攻击者的代币;

1.7 一些技术细节

  • 开发人员决定添加两个新标签,finalizedsafe,以及earliestlatestpending,以帮助准确地向用户和 Dapp 开发人员传达以太坊区块的状态。如果尝试在 Merge 之前查询标签,将收到错误消息;

    图像

  • 在 PoW 下,使用区块确认来确定区块不会被重组。在 PoS 下,可以得到一个明确的确认:确定性阈值。因此,JSON RPC 端点将添加一个finalized标志,它将返回最后一个finalized块;

  • 蜂巢测试指共识测试、同步测试、网络测试;

  • 合并后BLOCKHASH仍然可用,但伪随机性较弱;DIFFICULTY 更新并重命名为PREVRANDAO;

2 公共测试网

2.1 Ropsten

2.1.1 基本信息

  • 信标链创世时间戳:1653922800( 2022年 5 月 30 日 晚上 11:00:00 );

  • 创世验证者数量:100012;

  • 总终端难度:43,531,756,765,713,534(6月3日因矿工阻挠推迟:50,000,000,000,000,000 );

  • 预计合并时间:6月8日-9日;

2.1.2 故障记录

截至2022年6月5日下午5:00,验证者激活仍然存在故障。

  • Erigon 存在间歇性问题,导致同步失败
  • Besu 存在(间歇性?)问题,导致同步失败
  • Nimbus不能与Geth同步,但可以与其他人同步。目前尚不清楚问题是否与Nimbus,Geth或两者有关
  • Nethermind 可能有内存泄漏

2.1.3 Merge 记录

2022 年 6 月 10 日 0:00 左右(比预计时间晚 2h)到达 TTD,参与率下降了 13%,来源是 Nimbus、besu 客户端的节点配置问题以及 nethermind 的 bug,在修复完成以及重启后,参与率回升到了 99%,随后合并正确运行;

另一方面,一些客户端会构建出 0 交易区块,并且构建过程会超时;

2.2 Sepolia

信标链创世纪6月20日;它将只有少量的验证者,并将主要由开发团队控制;

TTD可能为6月24日;目标是在6月29日

3 升级路线图

1. 影子分叉

影子分叉是通过分叉具有少量节点的实时网络而创建的新测试网络。影子分叉保持相同的状态和历史记录,因此可以重放来自主网的交易。其细节如下:

img

  • Goerli 区块的第一行显示了规范链上的一个节点,该节点不知道影子分叉;
  • Goeli 区块的中间一行显示了影子分叉链上的一个节点,该节点有一个修改后的配置:一旦达到总终端难度(TTD)就分叉;
  • 最下面一行显示了一个仅用于影子分叉的信标链:当到达 TTD 时,它将为链提供共识;
  • 到达 TTD 后,规范链上的节点继续正常生成块,在它们看来没有发生任何事情;
  • 到达 TTD 后,被修改配置的节点会分叉并运行 The Merge,第一个合并后的区块由信标链中的下一个验证者生成,虽然此块可以包含规范链上的任何交易,但实际包含的交易或顺序不一定与规范链上的相同。

主网影子分叉客户端问题

影子分叉7

6 月 22 日合并,将尝试复制在Ropsten中发现的所有问题 - 希望现在全部解决。还会做一些同步测试。

Ethereum Network Status (ethdevops.io)Testnet Ethereum Explorer (ethdevops.io)Mainnet shadow fork 7 Explorer - Index - beaconcha.in - 2022 (ethdevops.io)

影子分叉 6

2022 年 6 月 4 日,主网影子分叉 6 合并成功,但存在一些客户端故障:除 Geth 外的其他执行层均存在部分问题(如不同步或提议无交易的区块);

执行层 共识层 Synced to head? Attesting? Proposing? Proposing non-empty slot?
Geth Lighthouse
Teku
Nimbus
Lodestar
Prysm
Nethermind Lighthouse
Teku
Nimbus
Lodestar ✅ (some are still 0)
Prysm
Besu Lighthouse
Teku
Nimbus
Lodestar
Prysm
Erigon Lighthouse
Teku
Nimbus
Lodestar
Prysm

在影子分叉5中,执行层仅 Geth 正常运行;

在影子分叉4中,执行层 Geth、Nethermind 正常运行;

2. 测试网升级

  • 在 Ropsten 之后,还有 2 个测试网分叉需要在主网之前升级,下一个是 Sepolia 测试网,Sepolia 在合并后将被推荐为新的测试网;
  • 为 Ropsten 分叉部署的代码不是将部署在主网上的代码,Merge 在主网上启动后 Ropsten 会被弃用,迁移到 Goerli / Sepolia 上;
  • Sepolia BC 会保持简单和小巧,而现有的 Prater BC 测试网(最终将与 Goerli 测试网合并,随后可能会作为遗留测试网维护)将继续扩大规模,并更准确地反映主网上验证者的规模;
  • Rinkeby 可能不会进行 merge,并将弃用,因为它仅支持 Geth;

3. 主网 Merge

测试网全部升级完毕、没有致命错误后才会进行主网升级;另一方面,以太坊市值必须足够,否则一旦 Poof of Stake 上线,它就会受到攻击;

主网信标链

主网信标链在 2022 年 5 月 25 日经历了 7 个区块的深度重组(多年来的第一次,还不清楚是由攻击还是网络延时引起),这说明链还不够稳定;

难度炸弹推迟草案:

EIP - 5133,推迟到 2022年 8 月中旬。Delaying Difficulty Bomb to Mid August 2022 by ericmartihaynes · Pull Request #5133 · ethereum/EIPs (github.com)

弱主观性

Weak Subjectivity Checkpoints Have Failed | Symphonious

4. 主网存储瓶颈

主网执行层在未来几年将会遇到历史数据的存储瓶颈,有人提出了几个解决方案:

  • 新建一个专门的历史层(区别于执行层、共识层),通过几百个用户/节点来分散存储历史数据;(希望较大)
  • 强制 Rollup 保管并证明自己的相关数据,但因为 danksharding 不仅仅用于 Rollup,而且有违去中心化,所以这不是好的解决方案;
  • 同上,但 Rollup 不提供任何历史保证,继续通过节点进行扩展;
  • 让其他协议来处理溢出,但这将大大降低安全性;

其中,通过调用数据扩展和分片扩展 Rollup 的分步路线图如下:

  1. 交易调用数据扩展(EIP - 4488)(每年约 250-1000 GB);
  2. 4 个适当的分片;(每年约 2.5 TB)
  3. 64 个分片,受委员会保护;(每年约 40 TB)
  4. 数据可用性采样

谁会在分片下存储历史数据?

增加数据空间的一个必要条件是删除以太坊核心协议负责永久维护达成共识的所有数据。

Kiln

信标链浏览器和存款处理方面存在问题;

相关链接

链上数据:

GitHub:

官方及社区:

新闻:

安全性: