你在使用哪种编程语言?快来投票,亲手选出你心目中的编程语言之王 了解详情
写点什么

以太坊柏林硬分叉正式激活,主网将迎哪些更新?

2021 年 4 月 15 日

以太坊柏林硬分叉正式激活,主网将迎哪些更新?

2021 年 4 月 15 日(星期四)下午 6:12 分左右,柏林硬分叉在主网的 12244000 区块上正式激活。近一周以太坊全网算力均值为 502.37 TH/s,平均出块时间 13 秒。目前已有 74.6%的客户端准备就绪。



据悉,因 Geth 客户端的过于集中化的问题,本预期在 2020 年 7 月上线的柏林硬分叉一路延期至今。与早期以太坊网络升级略有不同,此轮升级不需要在 Meta EIP 中进行跟踪。柏林硬分叉之后,其他升级工作均将在 eth1.0-specs repo 当中进行。


柏林硬分叉中包含哪些变更?


此次柏林硬分叉主要优化以太坊的主网性能、优化合约,涵盖 Gas 效率、以太坊虚拟机 (EVM) 读取代码方式的更新,以及防止拒绝服务 (DDOS) 攻击等。在部署到主网以前,此次升级会先在 Ropsten、Goerli 和 Rinkeby 测试网上运行。


具体操作中,柏林硬分叉将以下四个 EIP 引入以太坊网络。


EIP-2565:降低 ModExp 预编译合约成本


https://eips.ethereum.org/EIPS/eip-2565


该项提案主要是对先前用于模块化乘幂的预编译机制 EIP-198 进行重新定价。EIP-198 是一项专门用于模块化幂去处的函数,引入了多种加密算法以支持 RSA 签名验证。EIP-2565 将降低 gas 成本,使其与其他操作的执行成本保持一致。



PEEPanEIP-2565 发布的 gas 定价图表


EIP-2718: 增加交易类型


https://eips.ethereum.org/EIPS/eip-2718


这项提案将引入一种新的交易类型,能够以“信封”(Envelope)形式轻松支持多种交易类型。


当初在以太坊首次登陆主网时,仅支持一种交易类型,其字段为“To”(交易执行的位置)与“Data”(交易中所包含的一切数据)。以太坊客户端采取同步行动,且必须保证各方在完全相同的时间内执行完全相同的变更。因此,如果“To”字段为 0,则所有客户端就必须将“Data”字段解释为合约部署并以特定方式立即执行。


一段时间以来,用户对于交易类型的需求不断发展。这方面趋势最早在 EIP-155 — 对简单重播攻击的保护 中有所体现。但客户当时并不同意引入新的交易类型,而是更倾向于以差异化方式解释该字段。EIP-155 中的“伪龙(Spurious Dragon)”硬分叉是一项共识变更硬分叉,要求所有客户就该字段的解释达成共识。


此次 EIP-2718 的发布无法直接解释 EIP-155 的复杂性问题,但有助于阻止未来更多复杂性因素的引入,同时也让新型交易类型(例如 EIP-1559 式交易)的添加变得更加轻松易行。


EIP-2929: 增加状态访问操作码的 GAS 消耗


https://eips.ethereum.org/EIPS/eip-2929


这项提案关注的是在交易中首次使用 SLOAD,CALL, BALANCE, EXT 与 SELFDESTRUCT 时,存在的 Gas 成本增加问题。


例如,首次执行会令 CALL 系列函数的 gas 成本由 700 大幅增加至 2600,SLOAD 系列函数则增加至 2100。但对于各个地址或存储槽位,这种高额费用只会产生一次。这意味着除首次调用之外,交易中任意数量的后续调用都仅耗费 100 gas。


之所以上调首次调用的 Gas 成本,是为了缓解以太坊中的最大 DoS 攻击向量。这种设计也有助于在无状态以太坊环境下限制必要的见证人规模。目前,Merkle 证明所需要的见证人数量要远大于验证特定区块链的必要数量,以太坊正在寻求新的规模控制方法。


虽然 EIP-2929 还无法彻底解决证人数量问题,但至少控制住了过高的 Gas 成本。另外,EIP-2929 还能降低预编译的调用成本,消除预编译访问所产生的额外 700 gas 开销。


EIP-2930: 可选访问列表


https://eips.ethereum.org/EIPS/eip-2930


此项提案的主要目标是修复现有合约中的重大变更并缓解由 EIP-2929 所引发的部分 Gas 成本增长。此提案将添加一种交易类型,其中包含交易操作打算访问的目标列表(即地址与存储键列表)。通过指定访问列表,客户可以更轻松地处理交易,更安全地降低 Gas 成本。


EIP 管理与治理方面迎来哪些变更?


“缪尔冰川”是一项独立的升级提案,也是当初在链上发布 Ice Age 功能时的必要网络要求。为了趁早与其他提案一同部署,以太坊团队在 2020 年 1 月将“缪尔冰川”部署在了主网之上。


为了设计出更好的网络升级流程,EIP 编辑、EIP 作者、客户端开发者、ECH 以及其他社区成员组成了 EIP 改进流程(EIPIP)小组。以太坊 Cat Herders 还组织了一轮项目关键安装调查,希望了解以太坊客户群体中的多样性现状。


此外,客户端开发者将持续研究不同建议,不断改善网络性能与安全性,并为后续升级打下坚实的基础。由于升级周期较为平缓,我们可以充分利用这段时间为下一次的“伦敦(London)”升级添加更多新功能。


节点运营者或矿工需要下载以太坊客户端的最新版本,目前可升级的 Eth1.0 客户端包括:



注:如果您在以太坊公链上使用 Besu,则必须升级至 21.1.2。此版本包含所有受支持的测试网与以太坊主网 Berlin 激活区块。


相关链接:


https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80


2021 年 4 月 15 日 18:294479

评论

发布
暂无评论
发现更多内容

2022秋春招/提前批面经分享总结(字节、腾讯、阿里)

学无止境的阿奔

腾讯 面试 阿里 字节 校招

网络攻防学习笔记 Day62

穿过生命散发芬芳

网络攻防 7月日更

一文看懂 Context

Rayjun

go

架构实战营模块7作业

Veek

架构实战营

这个大垂类在短视频平台迅猛发展,最新榜单解码竞争格局|中国邮政开奶茶店啦!名为“邮氧的茶”

󠀛Ferry

7月日更

【Flutter 专题】97 仿网易新闻标签选择器

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

BATJ2021最新最全Java面试汇总,Java后端高频考点300+(含答案)

神奇小汤圆

Java 程序员 架构 面试

Apsara Clouder认证之旅 使用Quick BI 制作企业数据分析报表

万里无云万里天

阿里云 Apsara Clouder

为什么AI需要大大大大大模型?

脑极体

在线HTML转JS/JSON工具

入门小站

工具

08 | 指针系列(二):记住,指针变量也是变量(2)

Nydia

利用 IComparable<T> 以及 IComparer<T> 定义顺序关系

喵叔

7月日更

仅靠七个步骤,4面通过拿offer,终“跳进”字节跳动

菜菜山

Java 程序员 架构 面试

面试命中率90%!面试官:你知道MySQL锁吗?5分钟我让他刮目相看

java专业爱好者

Java MySQL

七月新开始

IT蜗壳-Tango

7月日更

将 FeignClient 的请求记录成 cURL 格式

哈德韦

微服务架构 前后端分离 log4j curl Spring boot Feign

CVPR2021竞赛结果出炉,阿里淘系多媒体算法包揽3项国际冠军

阿里巴巴淘系技术

CVPR

专科出身,2年进入苏宁,5年跳槽阿里,论我是怎么快速晋升的?

菜菜山

Java 程序员 架构 面试

全表遍历并处理数据有点慢?放开!我来!

林一

jpa Stram @QueryHints

架构实战营模块七作业

竹林七贤

AQS介绍和原理分析(下)

追风少年

并发编程 AQS

Ubuntu 如何强制时间同步

HoneyMoose

二分查找常见套路与分析

gevin

算法 二分查找

腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

菜菜山

Java redis 编程 架构 面试

华为大神珍藏版:SpringBoot全优笔记,面面俱到太全了

神奇小汤圆

Java 编程 架构 微服务

从特斯拉召回事件,窥探OTA汽车进化真面目

脑极体

为什么AI需要大大大大大模型?

白洞计划

Linux之which命令

入门小站

Linux

花2个月备战字节,3轮面试拿下总包60W Offer!

Java架构师迁哥

设计思想解读开源框架:“23种设计模式知识要点”都没读通过,还有脸说摸不清搞不懂?

不秃顶的Java程序员

Java 源码 程序员 架构 设计模式

大专的我,闭关苦学56天,含泪拿下阿里offer,五轮面试,六个小时灵魂拷问

Java架构师迁哥

围绕“三个问题”开展的网易云音乐数据基础建设

围绕“三个问题”开展的网易云音乐数据基础建设

以太坊柏林硬分叉正式激活,主网将迎哪些更新?-InfoQ