以太坊柏林升级预计将于北京时间 4 月 15 日下午四点左右发生,作为用户,你需要做哪些准备?
延期多时的以太坊柏林升级(Berlin Upgrade)即将上线,这是继以太坊伊斯坦布尔和穆尔冰川升级之后的最新一次升级。因 Geth 客户端的过于集中化的问题,本预期 2020 年 7 月上线的柏林硬分叉一路延期至今。
柏林升级计划在以太坊主网区块高度 12244000 时上线,具体时间可能会因为出块时间的波动而提前或推迟。目前预计会在北京时间 4 月 15 日下午四点左右发生。
为什么是柏林?
柏林 (Berlin) 仅仅是针对此次以太坊网络升级的一个命名。伊斯坦布尔升级之后,以太坊网络升级均将采用举办 Devcon 的城市(柏林、伦敦、上海等)和顺序命名。
柏林升级意味着什么?
柏林升级意味着以太坊底层协议的一次变更。
以太坊的去中心化本质使得网络升级成为难题,需要社区和以太坊客户端开发者就某些协议变更达成共识,达成共识的协议变更会被写入各个以太坊客户端,例如 Geth、Open Ethereum、Besu 和 Nethermind,在一个特定的区块高度上启动网络升级。
此次柏林升级主要优化以太坊的主网性能,优化合约,涵盖 Gas 效率、以太坊虚拟机 (EVM) 读取代码方式的更新,以及防止拒绝服务 (DDOS) 攻击等。在部署到主网以前,此次升级会先在 Ropsten、Goerli 和 Rinkeby 测试网上运行。
柏林升级包含哪些更新?
此次升级包括至少五个 EIP,分别是 EIP-2565 、EIP-2315 、EIP-2929 、EIP-2718 和 EIP-2930 。但在 3 月 5 日的第 107 次核心开发者会议上,全体通过把 EIP-2315 移出升级列表。
EIP-2565: 降低 ModExp 预编译合约的成本
该提案是对此前的 EIP-198 的重定价,EIP-198 为求模求幂运算引入了一个预编译模块,而 EIP-2565 降低了该模块的 Gas 开销,使之与执行其它操作的开销相持平。
EIP-2929: 增加状态访问操作码的 GAS 消耗
该 EIP 将首次调用 SLOAD、 CALL、BALANCE、EXT 以及 SELFDESTRUCT 时候的 Gas 消耗量(在一笔事物内)增加了约 3 倍,但这种高代价对任意地址或者存储槽都只触发一次。
提高这些操作的 Gas 消耗量是为了缓解以太坊协议仍存留的 DoS 攻击界面。此外,EIP-2929 也有助于在无状态以太坊实现后的环境中限制见证数据的大小。
EIP-2930: 可选的访问列表
为了缓解 EIP-2929 带来的 Gas 消耗量增大问题,柏林升级配套引入了 EIP-2930。EIP-2930 准许用户在提交交易时指定一个「访问列表」让事物指明自己计划访问的状态,以使用低于 EIP- 2929 规定的 GAS 费。
EIP-2718: 标准化的事务类型
该 EIP 引入了一种新的事务类型,在协议级别引进了对多种交易类型的支持,以更加便利地启用对多种事务类型的支持。
以太坊主网上线初期,只有带有字段 TO 和字段 Data 的一种事务类型。2016 年 11 月,以太坊网络对事物类型的需要发生了变化,伪龙硬分叉为了防止重放攻击纳入了 EIP-155。EIP-2718 虽然无法解决由 EIP-155 带来的复杂性,但有效防止了引入更多的复杂性,并且也让 EIP-1599 的实施变得更加容易。
参考阅读:
https://eips.ethereum.org/EIPS/eip-2718
《The Berlin Upgrade Overiew》
作为用户,需要做哪些准备?
作为以太坊用户或 ETH 持有者,不需做任何事情,除非你的交易所或钱包服务商通知你需要额外步骤。
作为节点运行者或矿工,需要下载以太坊客户端的最新版本。考虑到区块时间的可变性,建议在预期日期前几天就升级。柏林升级后,未升级的节点会留在不兼容新链的旧链上,将无法向升级后的以太坊网络发送 ETH,并且无法操作升级后以太坊网络中的智能合约。
下载地址:
* Go-ethereum (Geth) v1.10.1
* OpenEthereum (f.k.a. Parity) v3.2.0
* Nethermind v1.10.31
* Besu v21.1.2
* EthereumJS VM v5.2.0
以太坊升级路线图:EIP-1559 和 ETH2 合并
除了即将到来的柏林升级,以太坊 2021 还将迎来伦敦升级(预计 7 月)以及上海升级(预计 10 月)。
伦敦升级将会于主网部署社区争议性较大的 EIP-1559。由于伦敦升级难度较大,而且实现和测试时间都比以往升级的时间短,因此核心开发者正试图缩小伦敦升级的范围,以便按时完成。
未进入伦敦升级的 EIP 将可能进入上海升级(可能包含 EIP-3298 或 EIP-3322)。以太坊开发者目前正就上海升级的优先级问题进行讨论。其中一种选择是,上海升级将作为另一项功能分叉进行启动,其中包括伦敦升级中未包含的 EIP。另一种选择则是采用 Vitliak Buterin 的快速合并提案,将上海升级作为 Eth1 <> Eth2 的合并。如果采用第一种,将上海升级作为功能分叉启动,那么可能会在 2021 年 10 月启动。如果是后者,则会推迟至更远的时间启动。
参考阅读:
《For those who are unclear on big things happening soon in the Ethereum ecosystem》
《Proposal to prioritize The Merge after London》
《AllCoreDevs Update 001》
参考资料:
《以太坊柏林升级有哪些变化?了解 4 项 EIP 提案》
《以太坊柏林升级要点速览:首先部署到 Ropsten 测试网,主网计划 4 月 14 日升级》