什麼是 Ethereum virtual machine(EVM)?
作者 Alchemy
EVM——擁有許多名字的機器
世界電腦。無法阻擋的機器。Ethereum 的核心。Ethereum Virtual Machine(EVM)有許多名字,這凸顯了它對 Ethereum 網路的重要性。正是這項核心功能,使 Ethereum 不只是像 Bitcoin 那樣的「分散式帳本」,而是一個「分散式狀態機」。
EVM 讓開發者能用一種叫做 Solidity 的程式語言來建立智慧合約。智慧合約的一個常見應用是管理代幣的產生與交換。許多應用與協議會使用代幣來獎勵使用者執行對其目標重要的行為。若沒有 EVM,這一切都不可能實現。
為了更了解 EVM 的能力,讓我們來看看它的一些核心組成部分:
虛擬機——EVM 的平台
去中心化網路很難被摧毀。如果你想這麼做,就必須移除目前線上的每一個節點,並想辦法阻止更多節點出現。

要讓去中心化網路擴展,一個好方法是使用虛擬機(VM)。這是因為 VM 可以在不同的作業系統與硬體上執行,也不受地理位置限制。VM 作為程式碼與執行程式碼的機器之間的抽象層運作。
VM 的運作方式類似於具有儲存、記憶體與 CPU 的實體機器,但它們完全以程式碼形式運作。理論上,任何人都可以執行一個 VM,這使它成為去中心化網路中高度可攜的平台。EVM 就是利用去中心化的節點網路來執行智慧合約。
智慧合約——EVM 的應用
智慧合約是能自動執行的程式碼,讓各方無需任何中央權威機構即可互相交易。智慧合約中包含一份定義好的操作清單,當鏈上或鏈下的某些條件被滿足時,這些操作就會被執行。有些操作可能是將資金轉移到某個地址、與另一份合約通訊,甚至建立新的合約。與其由第三方執行交易,任何發送方都可以將資金發送到智慧合約的地址來觸發這些操作。

智慧合約之所以是一種安全的交易方式,是因為程式碼無法被更改或修改。智慧合約永遠會有一個預期的結果,這就是程式碼內建的信任機制。每當一份合約被執行時,就會改變 EVM 的狀態。
EVM 可以被稱為「狀態機」,因為它負責計算執行智慧合約程式碼所產生的狀態變化。這意味著它會維護帳戶的 ether 餘額、智慧合約的資料儲存,以及帳戶與合約層級的交易,並在這些交易完成時進行更新。所有這些動作正是改變網路「狀態」的原因。

智慧合約主要以 Solidity 語言撰寫。EVM 無法直接執行 Solidity,因此程式碼必須先被編譯成較低階的機器指令,稱為 opcode。
Opcode——EVM 的語言
EVM 普遍被稱為圖靈完備,或更準確地說是準圖靈完備。這意味著 EVM 理論上可以解決任何計算問題。這是透過執行稱為 EVM opcode 的機器層級指令來完成的。
EVM opcode 協助 EVM 完成智慧合約或交易的特定任務。目前 EVM 大約可以執行 150 種 opcode,涵蓋各種操作,包括:算術運算、停止、記錄、複製、push、記憶體操作、比較、交換,以及取得區塊與環境資訊。你可以在這裡找到 opcode 清單。

為了提升效率,EVM 會將其 bytecode 轉換成 opcode,每個 opcode 在 bytecode 中對應一個或多個位元組。每個 opcode 操作在被 EVM 執行時,都需要消耗特定數量的 gas。你可能聽過 gas,但它到底是什麼?
Gas——EVM 的燃料
Gas 大概是關於 EVM 討論最多、卻也最少人真正理解的主題。在撰寫本文時,gas 價格可能非常高,不過目前有一些努力正試圖改善這個問題。高昂的 gas 價格可能是 Ethereum 走向主流的一大障礙。但為什麼我們必須支付 gas 費用,又是什麼導致價格這麼高?
Gas 的目的是作為費用,用來支付每個 Ethereum 節點執行智慧合約操作所需的運算成本。之所以需要對運算收取費用,是為了防止攻擊者透過部署大量需要長時間運算的複雜合約,讓網路陷入停擺。這類 DDoS 攻擊之所以會受到抑制,正是因為執行成本太高。
每個 opcode 都被賦予一個gas 成本,越複雜的 opcode 成本越高。舉例來說,簡單的加法運算需要 3 gas,而每筆交易的起始成本是 21,000 gas。大部分的抱怨其實不是針對 gas 本身,而是針對成功完成交易所需的 gas limit。
Gas limit 是發送方願意為交易的執行與驗證支付的最大 gas 數量。要計算 gas 費用,可以將總 gas 成本(各操作的基礎數值)乘以 gas price(完成這些操作的價格)。這就像替汽車加油一樣,既有汽油本身的價格,也有到達目的地所需的油量。
Gas 費用 = 總 Gas 成本 x Gas Price
Gas 費用是用來補償驗證者,因為他們負責確認交易中的資訊是有效的、EVM 沒有出現錯誤或異常,並確認發送方確實擁有支付運算所需的資金。當發送方設定較高的 gas limit 時,這表示該操作較為複雜,也因此激勵驗證者為了獲得更高的報酬而優先處理該交易。

當網路活動量高時,驗證者可以直接從待處理交易池中,挑選 gas limit 較高的交易來處理。因此 gas 費用會受到供需影響。好消息是,任何未被消耗的 gas 都會退還給發送方。
如果預先支付的 gas limit 被用盡,驗證者仍然會因為其工作獲得補償,但該筆交易不會完成。從這個角度來看,EVM 是準圖靈完備的,因為它能完成的運算,會受限於發送方願意支付的金額。
EVM 的使用案例
在了解了 EVM 的各個組成元素後,讓我們來看看這些部分如何結合起來,為 Ethereum 上的各個專案提供動力:
ERC-20 代幣
ERC-20 代幣是可以在地址之間轉移的代幣,其數量固定,且在整個網路中價值一致。遵循 EVM 上定義好的資料結構的智慧合約,被用來建立 ERC-20 代幣。這個資料結構控制代幣的命名、分配、供給量與監控。
有多個應用與專案使用 ERC-20 代幣來激勵使用者。Livepeer 是一個去中心化的影音串流網路,它使用 Livepeer token(LPT)來激勵那些為網路提供資源的人。Nexus Mutual 是建立在智慧合約上的去中心化保險,它使用 NXM token 讓使用者可以購買保障並提出理賠。
去中心化交易所
去中心化交易所會部署智慧合約,讓使用者可以交換 ERC-20 代幣。這些智慧合約被稱為自動做市商(Automated Market Makers,AMM),因為它們讓使用者可以在沒有任何第三方控制的情況下,貢獻資金到特定代幣的流動性池中。一些常見的交易所,如 Uniswap 與 SushiSwap,都是這種 AMM 模型的應用。

ERC-721 代幣
另一個廣受歡迎的代幣標準,是 ERC-20 那不可替代的表親——ERC-721。這些智慧合約被用來鑄造 NFT(Non-fungible token,非同質化代幣),也就是在區塊鏈上具有獨特價值的代幣。創作獨一無二的藝術作品是這類代幣最大的應用場景。其他遊戲領域的專案,如 Axie Infinity 與 God Unchained,也使用這類代幣作為遊戲內的收藏品。
EVM 及其未來
EVM 讓 Ethereum 成為一個平台,而不只是一條區塊鏈。然而,EVM 並非一個完美的系統,在交易速度與網路吞吐量方面仍存在許多挑戰。這是開發社群與 Ethereum 路線圖持續關注的領域。如果 Ethereum 要實現它徹底改變彼此交易方式的承諾,這一切都必須建立在 EVM 不斷改進的基礎之上。
相關總覽
Ethereum2026年7月28日
在 Robinhood Chain 上發行 memecoin
使用 Foundry 和 Alchemy RPC,在 Robinhood Chain mainnet 上撰寫並部署固定供應量的 ERC20,或是透過 Alchemy CLI 將整個發行流程交給 coding agent 處理。
Ethereum2025年11月18日
什麼是 Ethereum Fusaka 升級?12 個 EIP 開發者指南
實務解析 Fusaka 升級,說明 12 個核心 EIP 如何改變 Ethereum 技術堆疊中的資料可用性、密碼學、Gas 成本與驗證者運作方式。
Ethereum2025年5月19日
EIP-7702:Pectra 升級後 Ethereum 開發者快速整合指南
Ethereum 即將迎來 EIP-7702 這項重要升級。以下是給所有開發者的整合考量快速指南。

打造區塊鏈魔法
Alchemy 結合最強大的 Web3 開發者產品與工具,並提供資源、社群與卓越的支援。