左側展示了一個裝滿金幣的金色比特幣保險櫃,象徵比特幣的「數位黃金」特質。右側則是發光的藍色以太坊核心,連結著代表DeFi、遊戲、NFT等圖示,彰顯以太坊的「世界電腦」屬性。頂部有標題「ETHEREUM: THE WORLD COMPUTER」和副標題「Basics & Account Model: Why It’s Programmable」。」 width=

作為一個深耕Web3領域多年的觀察者,我常常被問到:比特幣和以太坊雖然都建基於區塊鏈,卻給人截然不同的感覺。比特幣就像一座堅不可摧的堡壘,專注於儲存價值,簡單而可靠;以太坊則更像一台無邊界的全球運算平台,讓開發者能自由構築應用,從DeFi借貸到NFT創作,無所不能。這篇文章,我們就來深入探討以太坊那獨特的「可程式化」魅力,揭開它背後的運作奧秘。

想像一下,比特幣的帳本就像一疊現金,每筆交易都得精確追蹤那些未動用的餘額,而以太坊則更接近我們日常的銀行系統,直接顯示每個帳戶的即時餘額。

這正是帳戶模型與UTXO模型的根本差異所在。

帳戶模型的運作方式(以太坊的核心機制)

以太坊採用帳戶與餘額模型,這套系統非常貼近我們熟悉的金融帳戶操作:

  • 每個地址都對應一個獨立的「帳戶」。
  • 帳戶內包含餘額(以ETH計價)、nonce(用來標記交易順序,避免重複攻擊)、程式碼(如果是智慧合約的話),以及儲存空間(用來存放合約相關資料)。
  • 進行轉帳時,只需從發送方帳戶扣除ETH,並直接加到接收方帳戶,過程乾淨俐落,不必糾結於具體的資金來源。

這種設計帶來明顯的優勢:

  • 餘額查詢高效:只需檢視帳戶當前狀態,就能一目了然,不像比特幣那樣需要回溯歷史交易來累加計算。
  • 適合程式開發:合約能輕鬆更新自身狀態、互動其他合約,或發送訊息,這正是實現「可程式化」的基石。
  • 使用者體驗流暢:無論是轉帳、支付gas費,還是觸發合約,都能一脈相承,無縫銜接。

當然,也有一些挑戰:

  • 隱私相對較弱:帳戶餘額是公開的,任何人都能窺探你的資產狀況。
  • 狀態膨脹問題:全網的狀態資料會持續增長,對節點的儲存需求日益增加(幸好未來有狀態樹優化方案來緩解)。
左側為比特幣的UTXO模型,顯示錢包中多個獨立的「鈔票」(UTXO),轉帳時需消耗整個UTXO並產生找零。右側是以太坊的帳戶模型,類似銀行介面,顯示餘額和nonce,轉帳直接調整帳戶餘額。」 width=

UTXO模型簡介(比特幣的經典作法)

比特幣則依賴UTXO(未花費交易輸出)模型,這就像使用實體現金那般直觀:

  • 你的資產是由一系列獨立的「鈔票」組成,每張都有特定金額和使用限制(鎖定條件)。
  • 消費時,必須將整張鈔票作為輸入,然後產生新的輸出:一部分給接收者,剩餘找零回饋自己。
  • 優點包括:雙重花費防護天生具備(每張鈔票僅能使用一次),隱私度高(可透過新地址產生新鈔票),並且驗證過程易於並行處理。
  • 缺點在於操作較繁瑣:轉帳需組合多個輸入與輸出,查詢餘額則得掃描整個鏈上相關紀錄。

總之,比特幣強調「簡潔、安全、宛如黃金般穩固不移」。

以太坊則追求「靈活多變、支援複雜邏輯的程式執行」。

因此,以太坊選擇帳戶模型,正是為了讓程式設計師能更自在地面對狀態變更與程式碼撰寫。

狀態樹:以太坊的「全域記憶體」

在以太坊的生態中,有個至關重要的元素,那就是世界狀態(World State)。

它彙整了所有帳戶的最新餘額、合約程式碼,以及儲存的資料……

這些資訊並非散亂存放,而是透過Merkle Patricia Trie(MPT,梅克爾帕特里夏樹)來組織。

MPT是什麼?簡單來說,它融合了Merkle樹與Patricia樹(壓縮前綴樹)的精華:

  • Patricia樹負責路徑壓縮,即使鍵值較長,也不會浪費過多空間,查詢速度飛快。
  • Merkle樹則為每個節點注入哈希值,根哈希一旦改變,就表示整個狀態已更新;即使只修改單一帳戶餘額,根哈希也會隨之變動,讓全網節點即時察覺「狀態有異」。

每個區塊頭內包含三個根哈希:

  • 交易樹根
  • 收據樹根
  • 狀態樹根(這是最核心的部分)

輕量級節點只需保留區塊頭,就能利用Merkle證明來確認「特定帳戶餘額是否為X」,無需下載完整鏈條。

這設計確保了以太坊在維持去中心化的同時,仍能高效驗證資料。

狀態樹正是以太坊「可程式化」落地的關鍵:

每當執行合約,EVM更新狀態 → 產生新狀態哈希 → 嵌入新區塊頭 → 全網達成共識。

狀態一經變動,大家的「記憶體」便同步刷新。

EVM:以太坊的「運算核心」

接下來進入重頭戲——EVM(Ethereum Virtual Machine,以太坊虛擬機)。

EVM堪稱以太坊的「運算大腦」。

它是一款堆疊式虛擬機,專門處理位元組碼(bytecode)的執行。

整個流程大致如下:

EVM執行流程圖。從撰寫Solidity程式碼、編譯成位元組碼、部署合約、在EVM中執行(載入、運行動作碼、消耗Gas)、更新狀態,最終刷新世界狀態樹的全貌。」 width=
  1. 開發者撰寫Solidity程式碼,經編譯轉換為位元組碼。
  2. 部署合約:透過交易發送,EVM將位元組碼儲存至合約帳戶的code欄位。
  3. 呼叫合約:發送訊息觸發,EVM將合約程式碼載入記憶體。
  4. 執行階段:依序處理操作碼(像是ADD、MUL、CALL、SSTORE等)。
  5. 每步驟皆扣除gas:若gas不足,則中止並回滾變更。
  6. 狀態調整:儲存內容變更、餘額轉移、事件發佈……
  7. 交易完成:新狀態正式提交,狀態樹根隨之更新。
     

EVM如何賦予以太坊「可程式化」的能力?

  • 圖靈完備性:支援迴圈、條件判斷、遞迴等,理論上能處理任何複雜邏輯(比特幣的腳本則刻意限制不完備,以避免無限迴圈癱瘓網路)。
  • 確定性執行:相同輸入下,全網結果必須一致,否則共識將崩潰。
  • 沙盒環境:合約僅能存取自身儲存或呼叫其他合約,無法任意干涉節點檔案。
  • Gas計費:阻擋DoS攻擊,並限制無限迴圈,執行時間越長,成本越高。

舉例來說,在Uniswap進行代幣交換:觸發swap函數 → EVM運行相關邏輯 → 更新資金池儲備、轉移代幣、收取手續費、記錄事件……

這整個流程具備原子性:成功則全數生效,失敗則完全撤銷。

這樣的複雜操作,在比特幣上簡直難以想像。

比特幣 vs 以太坊核心差異對照表(2026視角)

項目比特幣 (BTC)以太坊 (ETH)
帳本模型UTXO(未花費輸出)帳戶/餘額模型
主要用途數位黃金、價值儲存世界電腦、智能合約平台
可程式化程度有限(腳本簡易,非圖靈完備)圖靈完備(Solidity等語言)
狀態儲存UTXO集合全域狀態樹(MPT)
執行引擎無(僅驗證簽名)EVM(虛擬機執行位元組碼)
共識機制(當前)PoWPoS(合併後)
TPS/擴展性低(Layer2如閃電網路)中等(分片、Layer2如Optimism等)
典型應用轉帳、持有DeFi、NFT、DAO、遊戲、RWA
隱私性較佳(新地址)一般(帳戶公開)
2026定位機構避險資產、數位黃金DeFi+穩定幣主導、RWA代幣化前沿

以太坊「可程式化」的精髓,一句話道盡

它將區塊鏈從單純的「記帳工具」升級為「能執行程式碼的分散式電腦」:

  • 帳戶模型讓狀態變更與查詢變得輕而易舉。
  • 狀態樹確保全網狀態的安全驗證。
  • EVM允許任何人上傳程式碼,全網一致執行,結果無虞。

比特幣宛如一台永恆運轉的保險櫃,安全卻功能單一。

以太坊則是全球共享的超級伺服器,能運行應用程式、自動化薪資發放、智慧借貸……當然,也伴隨著更高的複雜度、gas成本,以及潛在的程式錯誤風險。

現在,你應該更清楚了:

比特幣解決了「信任貨幣」的難題。

以太坊則攻克了「信任程式碼」的挑戰。

如果想更深入探討?像是Solidity的撰寫技巧、gas計算方式、EVM操作碼細節,或是2026年以太坊分片進展?

歡迎留言討論,一起交流~

 

推薦全球Top3加密交易所:

大而全首選幣安,專業操作選OKX,追逐山寨幣挑Gate!趕緊註冊,享終身手續費折扣~