常见的 EVM 版本以及它们的区别

EVM(以太坊虚拟机)版本的演进是为了引入新的特性和改进以太坊平台的安全性、效率和功能性。每个版本通常伴随着以太坊网络的硬分叉,这是以太坊协议的重大升级。以下是一些常见的EVM版本及其主要区别:
在这里插入图片描述

  1. Homestead (2016年3月)
    Homestead是以太坊的第一个稳定版本,引入了智能合约和去中心化应用的基本功能。它标准化了账户余额的存储格式,并修复了前端漏洞,提高了安全性。

  2. Tangerine Whistle (2016年10月)
    主要是为了降低DoS攻击的风险,增加了交易的gas价格,使得某些操作更加昂贵,从而提高了网络的安全性。

  3. Spurious Dragon (2017年3月)
    引入了对DAO事件的修复,限制了合同的代码大小(最大24576字节),并且降低了调用数据的gas成本,以提高智能合约的性能。

  4. Byzantium (2017年10月)
    Byzantium引入了一系列改进,包括:

    • 新的预编译合约,用于椭圆曲线操作和随机数生成。
    • 改进了智能合约的性能和安全性。
    • 引入了REVERT操作码,允许智能合约在失败时返回数据。
  5. Constantinople (2019年2月)
    优化了gas成本,使某些操作更加便宜,特别是与SHA3哈希函数相关的操作。此外,它还引入了新的操作码,如CREATE2,用于确定性地创建智能合约地址。

  6. Istanbul (2019年12月)
    进一步优化了gas成本,引入了更多预编译合约,并提高了智能合约的安全性和性能。

  7. Muir Glacier (2020年1月)
    主要是推迟了难度炸弹,这是一个旨在鼓励向权益证明过渡的机制,它会逐渐增加挖矿难度。

  8. Berlin (2021年4月)
    Berlin引入了更多预编译合约,优化了gas成本,并且增强了智能合约的调试能力。

  9. London (2021年8月)
    最显著的改变是引入了EIP-1559,这是一种新的交易定价机制,它包括基础费用的燃烧,从而改变了以太坊的经济模型。

  10. Arrow Glacier (2021年12月)
    延迟了难度炸弹,为向权益证明的过渡准备。

  11. Gray Glacier (2022年6月)
    再次延迟了难度炸弹。

  12. Merge (2022年9月)
    是以太坊历史上最大的升级之一,实现了从工作量证明到权益证明的转变,极大地提高了网络的能源效率和安全性。

每个EVM版本都有其特定的目标和改进,从安全性、性能到经济模型的调整,这些变化都反映了以太坊社区对网络未来发展的愿景。随着技术的发展,EVM将继续进化,以适应不断变化的需求和挑战。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/27253.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中国首台!紧随美国,重磅发布100比特中性原子量子计算机

2024年6月11日上午,“武汉量子论坛—2024”隆重开幕,国家自然科学基金委员会主任窦贤康院士,武汉大学校长张平文院士,以及叶朝辉、徐红星、祝世宁等院士出席大会。在会议上,中科酷原重磅发布国内首台原子量子计算机——…

利用 HTML5 Canvas 实现在线签字功能

目录 前言 一、HTML5 Canvas 简介 二、签字功能的实现 效果演示 完整代码 前言 在现代互联网应用中,有时我们需要让用户在网页上进行签字操作,比如确认文件、填写电子表格或者签署合同。利用 HTML5 的 canvas 画布,我们可以轻松地实现这一…

图片转Base64

在Python中, 可以使用内置的base64模块以及图像处理库(如PIL, 也称为Pillow)来将图片转换为Base64编码的字符串. 以下是一个简单的示例, 说明如何实现这一过程:首先, 需要安装Pillow库(如果尚未安装), 可以使用pip来安装: pip install pillow然后, 可以使用以下Python代码将图片…

RabbitMQ实践——交换器(Exchange)和绑定(Banding)

大纲 direct型交换器默认交换器命名交换器 fanout型交换器topic型交换器headers型交换器 RabbitMQ在概念上由三部分组成: 交换器(Exchange):负责接收消息发布者发布消息的结构,同时它会根据“绑定关系”(Ba…

基于SpringBoot+VueBBS论坛系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,还…

sku与spu的区别!!!

一个 SPU 可以有多个 SKU。

攻防演练之-成功的钓鱼邮件溯源

书接上文,《网络安全攻防演练风云》专栏之攻防演练之-网络安全产品大巡礼二,这里。 演练第一天并没有太大的波澜,白天的时间过得很快。夜色降临,攻防演练中心内的灯光依旧明亮。对于网络安全团队来说,夜晚和白天并没有…

教育培训知识付费在线课程小程序开发

教育培训知识付费在线课程小程序功能概述 核心功能 课程报名与缴费:支持线上报名、缴费,自定义课程时间、人数等。 砍价功能:用户通过分享邀请好友参与砍价,享受低价购买课程的优惠。 视频课程:支持倍速播放&#x…

Linux 基本指令3

date指令 date[选项][格式] %Y--年 %m--月 %d--日 %H--小时 %M--分 %S--秒 中间可用其他符号分割,不能使用空格。 -s 设置时间,会返回设置时间的信息并不是改变当前时间 设置全部时间年可用-或者:分割日期和时间用空格分隔&#xff…

Qt创建静态库及静态库使用

Qt创建静态库及静态库使用 1. 创建一个库文件 选择静态库 将需要打包的.h 和.cpp文件添加到程序中, 在编译器版本下的debug和release模式下分别编译(右键项目,点击“qmake”,再点击“构建”)后,在对应的的build目录下…

“探索机器学习的多面世界:从理论到应用与未来展望“

博客主页:誓则盟约系列专栏:机器学习 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 目录 一、机器学习基础理论 1.机器学习的定义与分类 监督学习 无监督学…

Python数据分析与机器学习在医疗诊断中的应用

文章目录 📑引言一、数据收集与预处理1.1 数据收集1.2 数据预处理 二、特征选择与构建2.1 特征选择2.2 特征构建 三、模型选择与训练3.1 逻辑回归3.2 随机森林3.3 深度学习 四、模型评估与调优4.1 交叉验证4.2 超参数调优 五、模型部署与应用5.1 模型保存与加载5.2 …

Python:从头创建 Asyncio (2)

引言 现在,asyncio 已成为 Python 社区中的热门话题,并且名副其实——它提供了一种非常出色的处理 I/O 密集型程序的方法!在我探索 asyncio 的过程中,我起初并不太明白它的工作原理。但随着深入学习,我意识到 asyncio …

Java 反射机制 -- Java 语言反射的概述、核心类与高级应用

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 010 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自…

GitLab教程(二):快速上手Git

文章目录 1.将远端代码克隆到本地2.修改本地代码并提交到远程仓库3.Git命令总结git clonegit statusgit addgit commitgit pushgit log 首先,我在Gitlab上创建了一个远程仓库,用于演示使用Gitlab进行版本管理的完整流程: 1.将远端代码克隆到本…

导出 Whisper 模型到 ONNX

前言 在语音识别领域,Whisper 模型因其出色的性能和灵活性备受关注。为了在更多平台和环境中部署 Whisper 模型,导出为 ONNX 格式是一个有效的途径。ONNX(Open Neural Network Exchange)是一个开放格式,支持不同的深度…

吴恩达2022机器学习专项课程C2W3:2.25 理解方差和偏差(诊断方差偏差正则化偏差方案搭建性能学习曲线)

目录 引言名词替代影响模型偏差和方差的因素1.多项式阶数2.正则化参数 判断是否有高偏差或高方差1.方法一:建立性能基准水平2.方法二:建立学习曲线 总结 引言 机器学习系统开发的典型流程是从一个想法开始,然后训练模型。初次训练的结果通常…

今日分享丨inBuilder低代码平台打印格式设计器

打印在企业日常办公中占据核心地位,是处理各种关键文件不可或缺的一环。无论是签署合同、报销费用、记录凭证与账表、处理回单与库存单据、开出库单据,还是开具发票、制作条码与标签,打印都发挥着至关重要的作用,确保企业运营的高…

rv1126-rv1109-串口显示路径不变化

串口只有#, 后来看了教程改成如下 但是没有变化,那个路径都只显示rootLonbon# 于是最后改成了这样 因为: