<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Evm on Website of SauceWu</title><link>https://saucewu.github.io/tags/evm/</link><description>Recent content in Evm on Website of SauceWu</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Thu, 20 Apr 2023 14:00:00 +0000</lastBuildDate><atom:link href="https://saucewu.github.io/tags/evm/index.xml" rel="self" type="application/rss+xml"/><item><title>EVM 字节码与合约执行过程详解</title><link>https://saucewu.github.io/posts/evm-%E5%AD%97%E8%8A%82%E7%A0%81%E4%B8%8E%E5%90%88%E7%BA%A6%E6%89%A7%E8%A1%8C%E8%BF%87%E7%A8%8B%E8%AF%A6%E8%A7%A3/</link><pubDate>Thu, 20 Apr 2023 14:00:00 +0000</pubDate><guid>https://saucewu.github.io/posts/evm-%E5%AD%97%E8%8A%82%E7%A0%81%E4%B8%8E%E5%90%88%E7%BA%A6%E6%89%A7%E8%A1%8C%E8%BF%87%E7%A8%8B%E8%AF%A6%E8%A7%A3/</guid><description>&lt;h1 id="evm-字节码与合约执行过程详解"&gt;EVM 字节码与合约执行过程详解&lt;/h1&gt;
&lt;h2 id="目录"&gt;目录&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;一、EVM 是什么&lt;/li&gt;
&lt;li&gt;二、Solidity 到字节码的编译过程&lt;/li&gt;
&lt;li&gt;三、EVM 的运行时结构&lt;/li&gt;
&lt;li&gt;四、核心 OPCODE 分类详解&lt;/li&gt;
&lt;li&gt;五、一个完整的合约调用流程&lt;/li&gt;
&lt;li&gt;六、Gas 的本质&lt;/li&gt;
&lt;li&gt;七、常见安全问题的字节码视角&lt;/li&gt;
&lt;li&gt;八、总结&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="一evm-是什么"&gt;一、EVM 是什么&lt;/h2&gt;
&lt;p&gt;EVM（Ethereum Virtual Machine）是以太坊的智能合约运行环境。它是一个&lt;strong&gt;基于栈的虚拟机&lt;/strong&gt;，与 JVM 的基于栈架构类似，但设计上做了很多针对区块链场景的取舍：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;确定性&lt;/strong&gt;：相同输入永远产生相同输出，所有节点独立执行后结果必须一致&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;隔离性&lt;/strong&gt;：合约运行在沙箱里，无法访问网络、文件系统、随机数&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;计量性&lt;/strong&gt;：每条指令都有固定 Gas 费用，防止无限循环&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;EVM 使用 &lt;strong&gt;256 位字长&lt;/strong&gt;（32 字节），这是它最核心的设计决定——与 Keccak-256 哈希和椭圆曲线密钥长度对齐，避免频繁的位数转换。&lt;/p&gt;</description></item></channel></rss>