“柏林” 升级 我们该做什么?
原文标题:引介 | “柏林” 升级内容概览
继 “缪尔冰川” 升级之后,以太坊区块链计划实施 “柏林” 升级。根据其规范,预计以太坊主网区块链将于 2021 年 4 月 10 日在区块高度 12_244_000 处激活。具体时间可能因出块时间的波动而提前或推迟。
自上一次网络升级以来已有 15 个月,我们在这期间取得了许多进展。以太坊网络的客户端已准备好激活 4 个提案来提高网络的性能并为未来的进一步升级打下基础。
与此前的以太坊网络升级略有不同,本次升级的内容及进度不会在一个单独 EIP 中表现出来。如果您要了解其内容,请阅读 “柏林” 网络升级规范,并在 eth1.0-specs repo 中跟踪其进度。
“柏林” 升级将包含哪些变化?
“柏林” 升级将为以太坊网络引入下列 EIP:
EIP-2565:变更 求模/求幂 运算的 Gas 开销
EIP-2565 提案是对此前的 EIP-198(大数求模求幂运算)的重定价;一开始,EIP-198 为求模求幂运算引入了一个预编译模块,该模块使我们能引入许多需要求模求幂运算的密码学算法,比如 RSA 签名的验证。EIP-2565 降低了该模块的 Gas 开销,使之与执行其它操作的开销相持平。观看 Kelly Olson 的讲解视频,了解该提案的概述以及一些有关 Gas 重定价的有趣图表。
EIP-2718:标准化的事务信封
该 EIP 引入了一种新的事务类型(transaction type),其本身可以作为一种信封,以更加便利地启用对多种事务类型的支持。
在以太坊刚推出主网之时,只有一种事务类型,带有字段 “To”(指明该事务的目的)以及 “Data”(以在事务中包含任意数据)。以太坊客户端为达成共识,必须步调一致、保证处理同样的事务时他们会应用同样的状态变更。所以,如果 “To” 字段为 0,那么所有客户端都必须将 “Data” 字段解释为部署合约,并按特定方式来执行。
一段时间之后,对事务类型的需要发生了变化。EIP-155(重放攻击的简单防护) 提案就体现了这一点(译者注:EIP-155 是通过 “链 ID” 字段来避免事务在兼容以太坊协议的不同网络上被重放)。但是,那时候也没有引入新的事务类型,是客户端团队达成社会共识、对该字段采取不同的解读。“伪龙”(Spurious Dragon) (也就是纳入 EIP-155 的)硬分叉之所以是共识变更的硬分叉,是因为所有的客户端都需要对该字段的解读达成共识。EIP-2718 无法帮助解除由 EIP-155 带来的复杂性,但可以防止未来再引入更多的复杂性,并且,也使得加入新的事务类型(比如 EIP-1559 形式的事务)变得更加容易。想要深入理解该提案,请看 视频 Micah Zoltu 讲解 EIP-2718。
EIP-2929:提高状态访问操作码的 Gas 开销
该 EIP 提高了一笔事务在首次调用 SLOAD、*CALL、BALANCE、EXT* 以及 SELFDESTRUCT 时候的 Gas 消耗量。例如,它将 CALL 家族的函数的 Gas 消耗量从 700 提高到了 2600,而 SLOAD 家族的 Gas 消耗量则从 800 提高到了 2100。不过,(在一笔事务内)这种高代价对任意地址或者存储槽都只触发一次,如果多次调用,则后续调用每次仅消耗 100 Gas 。
提高这些操作的 Gas 消耗量的目的是缓解以太坊协议仍存留的 DoS 攻击界面。此外,它也有助于在无状态以太坊实现后的环境中限制见证数据的大小。当前,纳入默克尔证明所需的带宽远大于验证一个区块所需的合理规模,所以大家都在寻找某种办法能为见证数据施加上限。虽然 EIP-2929 不能解决所有问题,但确实迈出了一步。另一个好处是,对预编译模块的调用会变得更便宜:该 EIP 移除了访问预编译模块时需支付的额外 700 Gas。
EIP-2930:可选的访问列表
该提案背后的理念是:修正由 EIP-2929 对现有合约的破坏作用,并缓解由 EIP-2929 带来的 Gas 消耗量增大问题。该提案会引入一种新的事务类型,该种事务可以包含一个访问列表(地址和存储项键的列表),让事务指明自己计划访问的状态。通过指定一个访问列表,客户端可以更容易处理事务,而 Gas 消耗量也因此可以安全地降低。
观看 Vitalik B. 和 Martin S. 对 EIP-2929 和 2930 的讲解视频,了解更多细节,及其对以太坊区块链的好处。
EIP 管理和以太坊治理有何新闻?
对升级时间间隔有疑问的好奇宝宝看过来!
“缪尔冰川” 升级仅包含一个提案,就是推迟以太坊 PoW 挖矿的冰川期。因为我们等不及与任何其它提案一起部署,所以 “缪尔冰川” 升级发生在 2020 年 1 月。
为了设计一个更好的网络升级程序,来自以太坊社区的志愿者们,包括 EIP 编辑、EIP 作者、客户端开发者、以太坊牧猫人组织以及其他社区成员共同成立了 EIPIP 组织。以太坊牧猫人组织还主持了一个以太坊关键组件装机调查,以更好地理解以太坊客户端多样性的现状。
与此同时,客户端开发者们也在为实现提升性能、安全性以及有助于未来升级的提案而奋斗。因为没有频繁的升级、开发者能最大限度利用开发时间,可以期待后续的 “伦敦” 升级中会有更多的新功能引入,就在不远的将来。
虽说如此,进步无止境。你的反馈,对我们继续提升升级流程的质量,至关重要。
我是一个 节点运营者/矿工,我该做什么?
请下载您所用以太坊客户端的最新版本。
感谢所有开发者、客户端团队、EIP 作者、EIP 编辑,以及加入以太坊网络升级历程的朋友!下一次升级见。
可以在这些地方关注我们以太坊牧猫人组织:Twitter、Medium、GitHub、Website。还有我们的 Discord。
可以在 Gitcoin 和 Clr.fund 上用 token 表达你对我们的喜爱哟!
原文链接:
https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80
作者: Pooja Ranjan
翻译: 阿剑