EVM 实战教程
EVM(以太坊虚拟机)听起来很抽象,但它每天处理着数百万笔加密交易。理解 EVM 是合约工程师从「写代码」到「读懂世界」的关键一跳。本文通过四个具体场景带你接触 EVM 的真实运行。完成后,再去解读 Binance 上挂牌项目的字节码就会容易许多。
一、场景一:用反汇编看一段合约真正执行了什么
挑一个已部署的简单合约,例如经典的 Counter。在 Etherscan 上下载 bytecode,用 evm-disasm 或 Solidity 的 forge inspect bytecode 命令反汇编。结果是一段段类似 PUSH1 0x80、MSTORE、JUMPI 的指令。
每条指令都对应一个 EVM 操作,消耗固定 gas。把它和源码对照阅读,你会发现 add(a, b) 编译后包含 PUSH 两个数、ADD、SSTORE 写回 storage。这种字节码视角是 EVM 学习的起点,也是分析 币安 上代币转账实际成本的基础。
二、场景二:用 trace 还原一笔失败交易
在 Sepolia 上故意发起一笔会失败的交易。例如 transfer 超过余额。等待几秒后,用 cast run 0xtxhash --rpc-url ... 查看完整 trace。你会看到调用层级、每步 stack 状态、最终 revert 的具体原因。