图解以太坊虚拟机EVM

EVM原理及其功能扩展 EVM原理及其功能扩展EVM运行机制概述EVM即以太坊虚拟机,用于执行智能合约。智能合约可用高级开发语言Solidity进行开发,合约源代码经过编译得到可在EVM中运行的字节码。在部署合约、与合约交互的时候,字节码都是以16进制字符串形式传递和展现。EVM运行过程中,其本身并不是一个独立的协程、线程更不是进程,它只是交易处理的一部分,在交易处理过程中以函数方式被调用。调用路径为:StateProc... 阅读详情

今天聊一聊以太坊虚拟机的原理。

以太坊虚拟机,简称EVM,是用来执行以太坊上的交易的。业务流程参见下图:
在这里插入图片描述
输入一笔交易,内部会转换成一个Message对象,传入EVM执行。

如果是一笔普通转账交易,那么直接修改StateDB中对应的账户余额即可。

如果是智能合约的创建或者调用,则通过EVM中的解释器加载和执行字节码,执行过程中可能会查询或者修改StateDB。

1.固定油费(Intrinsic Gas)

每笔交易过来,不管三七二十一先需要收取一笔固定油费,计算方法如下:
在这里插入图片描述
如果你的交易不带额外数据(Payload),比如普通转账,那么需要收取21000的油费。

如果你的交易携带额外数据,那么这部分数据也是需要收费的,具体来说是按字节收费:字节为0的收4块,字节不为0收68块,所以你会看到很多做合约优化的,目的就是减少数据中不为0的字节数量,从而降低油费消耗。

2.生成Contract对象

交易会被转换成一个Message对象传入EVM,而EVM则会根据Message生成一个Contract对象以便后续执行:
在这里插入图片描述
可以看到,Contract中会根据合约地址,从StateDB中加载对应的代码,后面就可以送入解释器执行了。

另外,执行合约能够消耗的油费有一

区块链技术分享导读目录(持续更新) 还记得第一次接触到以太坊源码时,就被它作为“世界计算机”的宏伟构想深深吸引。实际上,可以认为以太坊是在试图屏蔽底层硬件的差异,制定统一的虚拟指令集,并利用去中心化维护整个系统的稳定性。此外,还可以把以太坊看成一个去中心化的App Store,任何人都可以自由发布自己的app而不用担心各种监管和下架,而且最重要的是,永不宕机。 随着在区块链行业研究的深入,越来越感觉到知识的纷繁庞杂,于是决定把这些学... 阅读详情

相关推荐

【区块链 | 以太坊】EVM 学习手册

EVM 学习手册 , 帮助我们了解以太坊虚拟机的底层原理。这个手册是为有抱负的超级开发者策划的EVM学习的资源清单。在第一性原理的思考中,你把事情归结为最基本的真理,然后你从那里推理。在智能合约领域,"以太坊虚拟机" 以及其算法和数据结构就是第一性原理。

866

以太坊虚拟机 EVM 的原理

作者:禅与计算机程序设计艺术 1.背景介绍 什么是EVM? 以太坊虚拟机(Ethereum Virtual Machine,简称EVM)是一个运行在以太坊区块链网络上执行智能合约、存储数据的软件。它负责部署、验证、执行智能合约的代码,并维护所有账户信息。用

AI天才研究院 1757

以太坊交易执行过程图解:从Gas机制到EVM调用链的全流程解析

摘要:以太坊交易处理流程包含6个阶段:1)用户创建签名交易(包含nonce、gas等参数);2)交易广播至节点并进入mempool等待打包;3)验证者将交易打包进区块;4)EVM初始化执行环境(栈、内存等);5)EVM执行合约指令(如ERC20转账需验证余额并更新存储);6)状态变更上链。整个过程严格遵循Gas经济模型,通过EVM沙盒环境确保安全执行,交易顺序由nonce保证,执行失败会回滚但仍消耗Gas。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1030

1.14---什么是 Gas?手续费计算规则和 Gas War 现象

【摘要】本文由全栈Web3开发者鲲志说撰写,系统讲解了区块链Gas机制的核心原理与实战应用。文章从Gas作为燃料的本质出发,解析了三元组(Gas Limit/Used/Price)的计算逻辑,详细拆解EVM操作码的Gas成本分布,并通过图示说明EIP-1559动态费用模型。针对Gas War现象,分析了NFT/Token抢购场景的手续费飙升机制,最后给出合约开发与前端交互的Gas优化方案。全文兼顾技术深度与实用价值,为开发者提供从原理到实践的完整Gas视角。

鄙人kunzhi96,感恩遇见! 1万+

1.01---Web1 到 Web3 全进化图解:从中心化到可编程资产的互联网革命

《Web3开发者的思维与技术跃迁》摘要:本文系统梳理了Web1到Web3的演进历程,揭示Web3作为价值互联网的本质特征——去中心化、用户主权、可编程资产和链上自治。通过对比三代互联网的核心差异,解析Web3的底层架构(钱包层、合约层、执行层等),重点阐述两大范式转变:1)链上身份取代账号密码,签名即授权;2)资产可编程化,智能合约定义经济规则。文章为Web2开发者提供思维转换指南,从平台控制转向协议信任,涵盖技术栈变迁、安全模型重构等关键认知,辅以代码示例帮助理解智能合约的资产编程逻辑。

鄙人kunzhi96,感恩遇见! 1万+

深入理解EVM:从字节码到Gas的以太坊虚拟机完全指南

虚拟机是计算机科学中隔离运行环境的核心抽象,而以太坊虚拟机(EVM)则将这一概念引入区块链,成为智能合约执行的基础。EVM并非真实物理机器,而是一套被全网节点共同遵守的确定性执行规则。它基于栈结构,以字节码为输入,通过Gas机制为每一步计算明码标价,从而在去中心化网络中实现可控的图灵完备计算。理解EVM的栈、内存、存储与执行上下文,是掌握智能合约运行原理和Gas消耗逻辑的关键。开发者使用Solidity编写合约时,只有深入理解字节码执行流程与Gas定价规则,才能高效优化合约成本并规避常见陷阱。本文结合图解与

weixin_30972263的博客 285

EVM 执行模型与 Gas 计算:从字节码到状态转换的工程实践

虚拟机是区块链执行智能合约的核心抽象,通过栈式架构与操作码实现确定性状态转换。EVM 作为典型的栈式虚拟机,以 Gas 计量执行成本,通过 storage 与 memory 分离管理持久化与临时数据,确保所有节点对同一交易得出相同结果。理解其执行模型与 Gas 机制,是进行合约开发、性能优化与故障排查的基础。在智能合约部署、交易调试与 Gas 优化等场景中,掌握 EVM 的栈操作、内存扩容与存储读写规则,能有效定位 revert 原因并降低链上成本。本文从字节码示例出发,结合本地单步执行与最小代理合约,深入

weixin_29014939的博客 201

EVM 执行原理与 Gas 优化:从栈内存到存储布局的实战避坑指南

以太坊虚拟机(EVM)是区块链上确定性执行智能合约的核心状态机,其栈、内存、存储与 Calldata 的分工决定了合约的行为与成本。理解 EVM 的 opcode 计费规则和存储槽位打包机制,能帮助开发者写出更省 Gas、更安全的 Solidity 代码。在 DeFi、NFT 等高频链上交互场景中,Gas 优化与存储布局设计直接影响交易成功率与用户成本。本文从一笔转账的执行现场出发,结合 Foundry 工具链与真实调试案例,拆解 EVM 运行时结构、Gas 陷阱及五类常见避坑经验,助你掌握链上执行的核心逻

weixin_29011395的博客 138

EVM原理与智能合约部署实战:从字节码到Gas优化

虚拟机是隔离的计算环境,智能合约则依托以太坊虚拟机(EVM)在链上执行。EVM采用栈式架构,并区分内存、存储和calldata三类数据区域,所有操作都通过Gas计费量化成本。理解存储与内存的读写差异,对部署合约和控制Gas开销至关重要。从Solidity编写、框架部署到交易回执与执行追踪,开发者必须掌握从字节码到链上状态的完整路径,并避开存储槽位、ABI编码和热冷存储等常见陷阱。文章通过最小示例与避坑指南,带你透彻理解EVM的执行模型与工程优化方法。

weixin_33793620的博客 283

SIwave仿真手册——信号完整性仿真之S参数的提取(二)

上一篇简单了讲述了软件的各个操作界面,本次博客更新关于的仿真,因为第二章完整的内容比较多,所以分成好几篇博客进行分享。

luohuo9844的博客 1万+

商品评论中的实体情感分析

在之前的文章中我已经将商品评论中的评价实体,也就是特征(feature)给挖掘出来了,我看了一下,挖掘的效果还是不错的。原文链接:http://blog.youkuaiyun.com/chixujohnny/article/details/52794685 下面一步要做的是施加情感因子,也就是说,要将人们评论时候所连带的感情程度施加一下。这项任务的归类应该是情感分析技术。 目前该类问题的情感分析技

chixujohnny 7971

手把手教你用Arduino Uno控制meArm机械臂(附完整代码+避坑指南)

本文提供了一份详尽的meArm机械臂控制指南,涵盖从Arduino Uno硬件连接到Servo库编程的完整流程。重点讲解了如何通过独立供电、软件限位和平滑运动函数实现稳定控制,并设计了串口指令协议与高级功能,帮助创客有效规避舵机抖动、电源不足等常见问题,让机械臂运行更流畅可靠。

gpt4scribbler的博客 541

C# & SQL Server 实时数据同步:7步轻松搞定,代码详解

实时数据同步是指在一个数据库中的数据发生变化时,能够立即或近乎立即地将这些变化同步到另一个数据库中。这种同步可以是单向的(从源数据库同步到目标数据库),也可以是双向的(两个数据库互相同步)。通过本文的详细讲解和代码示例,相信你已经学会了如何使用C#和SQL Server实现数据库的实时数据同步。实时数据同步不仅可以提升系统的响应速度,还能确保数据的一致性和准确性。希望这篇教程对你有所帮助,期待你在C#编程中取得更大的成就!🌟✨如果你有任何问题或建议,欢迎在评论区留言交流!

java专栏 515

基于Simulink的自适应反步法(Adaptive Backstepping)控制​

本文针对非线性系统控制中未知参数和强非线性耦合的挑战,提出基于Simulink的自适应反步法解决方案。通过融合参数在线估计与反步递归设计,该方法显著提升了永磁同步电机(PMSM)速度控制的鲁棒性,使跟踪误差从20%降至3%,参数估计收敛时间小于0.5秒。文章详细阐述了从算法推导到Simulink实现的完整流程,包括系统架构设计、核心算法推导(以PMSM为例)、模块化建模方法、参数优化策略以及工程部署建议。提供的自适应控制器MATLAB代码和关键参数表可直接应用于实际工程,为电机驱动、机械臂等非线性系统控制提

xiaoheshang_123的博客 101

基于sklearn实现LDA主题模型(附实战案例)

目录LDA主题模型1.LDA主题模型原理2.LDA主题模型推演过程3.sklearn实现LDA主题模型(实战)3.1数据集介绍3.2导入数据3.3分词处理 3.4文本向量化3.5构建LDA模型3.6LDA模型可视化 3.7困惑度 其实说到LDA能想到的有两个含义,一种是线性判别分析(Linear Discriminant Analysis),一种说的是概率主题模型:隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA)。 现在讨论的是主题模型

m0_64336780的博客 2万+

QMK固件OLED显示屏配置教程:从零开始实现个性化键盘显示(实操部分)

本教程详细介绍了如何从零开始配置QMK固件的OLED显示屏,实现个性化键盘显示。首先,文章解释了OLED显示屏的基本概念及其在键盘中的应用,并介绍了I2C和SPI两种通信方式。接着,教程逐步指导用户如何在QMK固件中启用OLED功能,包括在rules.mk中启用OLED、在halconf.h和mcuconf.h中配置I2C功能,以及在config.h中设置I2C和OLED参数。最后,教程展示了如何在keymap.c中编写代码,实现OLED显示内容,并提供了进阶定制功能,如显示当前层信息、按键状态和QMK L

Despacito0o的博客 580

STM32+ESP8266+MQTT协议连接阿里云物联网平台

一、环境介绍 单片机采用:STM32F103C8T6 上网方式:采用ESP8266,也可以使用其他设备代替,只要支持TCP协议即可。比如:GSM模块、有线网卡等。 开发软件:keil5 二、实现功能 通过阿里云物联网服务器实现设备数据远程上传、下发,实现数据交互。 在当前使用的开发板上有4盏LED灯、一个蜂鸣器、4个按键。 三、阿里云物联网服务器创建步骤 说明:如果没有账号的话,先点击网页右上角,注册一个账号,并完成实名认证再继续下一步。 产品名称根据自己情况填...

6万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: Go interface深入分析
下一篇: Call,CallCode,DelegateCall,StaticCall,你分得清吗?
TurkeyCock
博客等级 码龄21年 406粉丝 73原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值