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

news2024/12/23 20:27:07

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.coloradmin.cn/o/1821190.html

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

相关文章

图像生成新篇章:Stable Diffusion 3 Medium开源评析

摘要 在数字艺术与人工智能的交汇点上,Stable Diffusion 3(SD3)的开源无疑是一场技术革新的盛宴。就在3月份,我撰写了一篇博文,深入探讨了SD3的技术报告内容与介绍,文章发表在CSDN博客上,https:…

同城如何异地共享文件?

在现代社会中,跨地区的合作变得越来越普遍,而这也带来了共享文件的需求。当我们身处不同的城市,如何高效地共享文件已经成为一项迫切的需求。本文将介绍一种名为“同城异地共享文件”的解决方案,帮助解决这一问题。 2. 天联组网—…

Day02 顺序表

目录 1、顺序表 2、随机访问&顺序访问 3、思考 4、顺序表的封装 1、顺序表 数组在数据结构中是属于线性表的一种,线性表是由一组具有n个相同类型的数据元素组成的。线性表中的任何一个数据元素 有且只有一个直接前驱有且只有一个直接后继首元素是没有前驱的…

学习Java中的Future类

学习Java中的Future类 Future接口在Java 5中引入,作为java.util.concurrent包的一部分。它代表一个异步计算的结果,当计算完成时可以通过Future对象获取结果。Future对象提供了一些方法来检查任务是否完成、等待任务完成并获取任务结果、取消任务等。 …

【python】tkinter编程三大布局管理器pack、grid、place应用实战解析

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

leetcode240 搜索二维矩阵II

题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 输入:matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18…

redis序列化

文章目录 1、为什么要进行序列化操作?2、序列化方式2.1、自定义序列化2. 2、StringRedisTemplate(重点) 1、为什么要进行序列化操作? 不进行序列化向redis存入数据代码: SpringBootTest class RedisDemoApplicationT…

渗透测试练习题解析 6 (CTF web)

1、[HCTF 2018]admin 1 考点:二次注入 先注册一个账号看看,注册 admin 会提示该用户名已存在,那我们就换一个用户名 观察页面功能,存在一个修改密码,开始的思路是想看看能否通过该密码功能抓包然后修改用户名为 admin …

RAG_Example

今天尝试基于langchain进行LLM RAG搭建,感觉使用难度没有想象中大。具体流程参考末尾链接。 主要流程包括下面几个模块,每一个模块都有很多选择,而不是唯一解。 但这里可以感受到潜在的几个问题 1. 文本转换过程中,PDF的信息可…

Android framework的Zygote源码分析

文章目录 Android framework的Zygote源码分析linux的fork Android framework的Zygote源码分析 init.rc 在Android系统中,zygote是一个native进程,是Android系统上所有应用进程的父进程,我们系统上app的进程都是由这个zygote分裂出来的。zyg…

极限网关助力好未来 Elasticsearch 容器化升级

极限网关在好未来的最佳实践案例,轻松扛住日增百 TB 数据的流量,助力 ES 从物理机到云原生架构的改造,实现了流控、请求分析、安全管理、无缝迁移等场景。一次完美的客户体验~ 背景 物理机架构时代 2022 年,好未来整个日志 Elas…

开源AGV调度系统OpenTCS中的路由器(router)详解

OpenTCS中的任务分派器router详解 1. 引言2. 路由器(router)2.1 代价计算函数(Cost functions)2.2 2.1 Routing groups2.1 默认的停车位置选择2.2 可选停车位置属性2.3 默认的充电位置选择2.4 即时运输订单分配 3. 默认任务分派器的配置项4. 参考资料与源…

区间预测 | Matlab实现EVO-CNN-SVM能量谷算法优化卷积神经网络支持向量机结合核密度估计多置信区间多变量回归区间预测

区间预测 | Matlab实现EVO-CNN-SVM能量谷算法优化卷积神经网络支持向量机结合核密度估计多置信区间多变量回归区间预测 目录 区间预测 | Matlab实现EVO-CNN-SVM能量谷算法优化卷积神经网络支持向量机结合核密度估计多置信区间多变量回归区间预测效果一览基本介绍程序设计参考资…

Java——IO流(一)-(4/8):前置知识-字符集、UTF-8、GBK、ASCII、乱码问题、编码和解码等

目录 常见字符集介绍 标准ASCII字符集 GBK(汉字内码扩展规范,国标) Unicode字符集(统一码,万国码) 小结 字符集的编码、解码操作 方法 实例演示 常见字符集介绍 标准ASCII字符集 ASCll(American St…

python数据分析--- ch8-9 python函数及类

python数据分析--- ch8-9 python函数及类 1. Ch8--函数1.1 函数的定义1.2 形参与实参1.2.1 使用位置参数调用函数1.2.2 使用关键字参数调用函数 1.3 参数的默认值1.4 可变参数(*)1.4.1 基于元组的可变参数(* 可变参数)1.4.2 基于字典的可变参数(** 可变参数) 1.5 函数中变量的作…

【PHP开发工程师系统性教学】——thinkPHP的分页操作,不管有几页,用这个你想分几页就分几页

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

【单片机毕业设计选题24005】-基于STM32的智能家居环境监测系统

系统功能: 此设计采用STM32单片机将采集到的环境环境温湿度,光照强度,火焰传感器状态,烟雾值,空气质量值等数据显示在OLED上,并将这些信息通过上报至手机APP。系统可通过手机蓝牙APP修改各传感器阈值. 蓝牙连接后,如果系统处于自动状态则每隔5秒钟上报…

多表联查小情景例子

这里有个需求: 需要给定套餐表setmeal 的 id 查询这个套餐内的所有菜品 dish 实际上如果可能,只需要查询套餐菜品表(setmeal_dish),查看一个套餐内包含包含的所有菜品,然后把这些菜品全部取出即可。 看一下setmeal_dish 表&…

水泥行业超低排放简介

在当今社会,随着环保意识的不断提高,水泥行业作为重要的工业领域,其超低排放的实施范围及成效日益受到人们的关注。朗观视觉小编将从多个角度探讨水泥行业超低排放的实施范围,分析其背后的意义与影响,展望未来的发展趋…

LogicFlow 学习笔记—7. LogicFlow 基础 背景 Background

背景 Background 提供可以修改画布背景的方法,包括背景颜色或背景图片,背景层位于画布的最底层。 info 创建画布时,通过 background 选项来设置画布的背景层样式,支持透传任何样式属性到背景层。默认值为 false 表示没有背景。 …