Interpreter REVM 是台计算机的话, Interpreter 就是 CPU . 由它来负责对字节码进行解释执行,完成本次交易想要实现的目的. 前面的内容最多算准备工作,提供 Interpreter 执行所需要的内容. 理解了...
前言 年前又爆仓,加上过年事情多.一直没有时间继续往下写. 过年回来调整了下状态,也为了爆仓后重新找份工作,接着写完这篇. 上一篇介绍了 Interpreter 的成员属性.这一篇写执行流程和Opcode. 为了配合这篇文章,写了个简单...
Solidity的动态数组,乍一看就是个能伸能缩的列表,简单得不行,但你真以为它就这么好搞定?别天真!这玩意儿在以太坊虚拟机(EVM)里藏着无数玄机,从存储布局到gas消耗,从数组操作到字节码细节,稍不留神就可能写出个天价gas的合约!...
以太坊节点是做什么的? 以太坊节点的核心功能是执行区块。一个区块是一批交易,每笔交易都是一个状态转换函数:它接收世界(账户余额、合约存储、字节码)的当前状态,并生成一个新状态。 EVM (Ethereum Virtual Machine...
以太坊存储看似简单:32 字节的槽位保存着 32 字节的值。但将这些槽位映射回有意义的变量名才是有趣的地方。特别是当目标不仅仅是生成一个简单的布局,而是要逆向工程交易追踪中的 SSTORE 时。这就是我的项目 SlotScan.info 的...
理解事件 —— EVM 内置的日志系统 每次合约交互都会留下痕迹,但并非所有痕迹都存储在存储中。事件,也称为日志,是以太坊记录交易内部发生的事情的原生方式,而无需修改状态。 在本文中,我们将分解事件在底层的工作原理:topics...
在以太坊与通用区块链生态中,智能合约安全性与效率始终是关键命题。许多开发者停留在 Solidity 编写层面,对编译后的字节码、Gas 优化、底层执行机理、形式化验证等难以深入理解。 Patrick Collins 出品的这门课程正是为那...
相比之下,Move 采用了一种资源导向型方法,它源于 Solidity 的经验教训。 在 Move 中,代码存在于模块中(类似于合约,只是没有存储功能),数据作为资源存储在帐户中或作为独立对象存在,而不是在合约实例中。这是思维方式上的...
简介 在本文中,我们将深入探讨 以太坊执行层规范 (EELS),重点介绍其目的、它定义的核心模块,以及最近硬分叉引入协议的一些不太为人所知的概念。 EELS 是 以太坊执行客户端核心组件的 Python 参考实现,非常注重可读性和清晰度...
高级 Foundry 作弊码系列:第 6 部分 - 使用 Forge 进行高级模糊测试 认为你的测试覆盖了极端情况?Forge 的模糊测试证明你是错的。一个参数 = 数百个随机输入。自动捕获溢出、回滚和奇怪的错误。 简介 在单行作弊...