以太坊區塊鏈新手入門手冊:用白話文搞懂區塊結構、交易類型與 Gas 費用

專為區塊鏈新手設計的入門指南,用生活化的比喻與實際程式碼範例,帶你搞懂以太坊區塊結構、交易生命週期、Gas 費用機制,以及 EVM 的基本運作原理。拋棄艱澀術語,用最直白的方式建立區塊鏈核心概念。

以太坊區塊鏈新手入門手冊:用白話文搞懂區塊結構、交易類型與 Gas 費用

前言:這篇不是學術論文,是給人的說明書

老實說,網路上關於以太坊的技術文章,十篇有九篇寫得跟論文似的——公式一堆、術語爆炸、看完腦袋直接宕機。我寫這篇的目的很簡單:讓你真的搞懂以太坊是怎麼運作的,而且不會看到一半就想把瀏覽器關掉。

我是那種寫程式遇到問題寧願自己試三遍也不願意翻文件的工程師,所以我懂那種「能不能直接給我個能跑的範例」的心情。這篇就對標那種風格,理論要講,但重點是讓你帶走一些能實際用的東西。


區塊到底是什麼?

區塊跟你我生活裡的快遞包裹差不多

想像你在網上買了一個東西。快遞公司不會把你的包裹和全小區的包裹混在一起送對吧?他們會把一段時間內的訂單打包成一個「批次」,一次處理一批。

以太坊的區塊就是這個概念。

一段時間內(平均大概 12 秒)網路上所有待處理的交易,會被打包成一個區塊,然後被廣播出去讓所有節點驗證、接受、存起來。就這麼簡單。

但區塊裡裝的不只是交易資料這麼簡單。讓我掀開它的洋蔥皮給你看。


區塊結構:拆開來看

標頭(Header):區塊的身分證

每個區塊都有一個「標頭」,你可以理解成快遞外包裝上的那一欄資訊——寄件人、收件人、重量、寄件時間之類的。

以太坊區塊標頭包含這些東西:

欄位名在說什麼比喻
parentHash上一個區塊的指紋包裹的快遞單號,串起整條鏈
stateRoot處理完這區塊後,所有帳戶的最新狀態小區住戶名單的最終版
transactionsRoot這區塊裡所有交易的指紋這批包裹的清單
gasLimit這區塊能塞多少計算量這班快遞車的承載上限
gasUsed這區塊實際用了多少計算量車子實際載了多少貨
timestamp生產時間快遞什麼時候出發的
baseFeePerGas最低收費標準(EIP-1559 之後才有)基本運費

我特別想聊聊 stateRoot 這個欄位,因為它是以太坊厲害的地方。


stateRoot:整個世界的快照

傳統資料庫要查某個人有多少錢,得去翻整本帳本對吧?但以太坊不用。

stateRoot 就像一本濃縮的字典。任何人都可以透過這個「根」快速驗證某個帳戶的餘額是否正確,而不用下載所有人的資料。

你有沒有想過,為什麼區塊鏈號稱「不可篡改」?答案就在這裡。

每個區塊的 stateRoot 包含了「處理完這個區塊後,所有人的狀態」。如果有人想偷偷改一筆交易的金額,他不只改那筆交易就好——他還得把後面所有區塊的 stateRoot 全部重新算一遍,因為每個區塊都會參考前一個的 hash。

就像你在一本連續編號的發票本上撕掉一張重寫——後面所有發票的號碼全得跟著改,而且你自己還沒有空白的備用聯。


交易類型:不是只有轉帳那麼無聊

很多人聽到「區塊鏈交易」,第一個想到的就是轉 ETH。沒錯,那是第一種交易類型,但遠不是全部。

第一種:外部發起的簡單轉帳

這是最基本的一種。從你的錢包發起,把 ETH 轉給另一個人。

// 用 web3.js 發起轉帳大概是這樣
const tx = {
  from: '0x1234...abcd',
  to: '0x5678...efgh', 
  value: web3.utils.toWei('0.1', 'ether'),
  gas: 21000,
  maxFeePerGas: '20000000000', // 20 gwei
  maxPriorityFeePerGas: '2000000000' // 2 gwei
}

21000 這個數字不是亂寫的,這是 EVM 執行一筆簡單轉帳所需要的「基本工時」。就像你叫一輛計程車,不論距離多近,司機都會跟你收一個「起步價」。

第二種:建立智能合約

當你部署一個智能合約的時候,交易的目的地(to 欄位)是空的(或者寫成 0x0),而你的合約位元碼會包在交易的 data 欄位裡一起送出去。

// 部署合約時的交易結構大概長這樣
const tx = {
  from: '0xCreator...',
  to: '0x0000...0000', // 空地址表示新建合約
  data: '0x608060405234...', // 合約的 bytecode
  gas: 3000000, // 部署合約比轉帳貴多了
  // ... 其他欄位
}

這裡有個很有趣的細節:合約的地址不是你自己選的,而是根據你的地址 + 你的 nonce(你發過多少筆交易)計算出來的。

合約地址 = keccak256(發送者地址 + nonce)[12:]

所以每次部署合約,因為 nonce 會遞增,合約地址都會不一樣。這也是為什麼合約不能「搬家」——它跟它的地址是綁死的。

第三種:呼叫合約函數

這是最常用、也是花樣最多的交易類型。你不只轉 ETH,還順便叫合約幫你做點事——比如在 Uniswap 上 swap 代幣、質押到 Aave 借錢、 mint 一個 NFT 之類的。

這種交易複雜的地方在於:你得知道兩件事——要叫哪個函數(function selector),以及參數怎麼編碼(ABI encoding)。

// 以 ERC-20 的 transfer 為例
// 函數簽名是 transfer(address,uint256)
// keccak256("transfer(address,uint256)") 的前4位元組 = 0xa9059cbb

// 所以完整的交易 data 長這樣:
// 0xa9059cbb + 左補零到 32 bytes 的接收地址 + 左補零到 32 bytes 的數量

const data = '0xa9059cbb' + 
  '0000000000000000000000005678efghijklmnop' + // 地址
  '0000000000000000000000000000000000000000000000000000000000000selenium' // 數量 (0.1 ETH = 100000000000000000 wei)

我知道這看起來很噁心對吧?沒關係,現代錢包和 DApp 都幫你處理好了,你只需要點「確認」就好。但如果你在做開發,這些底層邏輯遲早會遇到的。


交易的生死週期:從你按下確認到上鏈

第一階段:等待打包

你按下「確認轉帳」之後,交易並不是馬上就被寫入區塊的。它會先進入一個「記憶體池」(mempool),有點像快遞公司收件之後先放在倉庫等著分配快遞員的狀態。

在 mempool 裡,你的交易就曝露在大庭廣眾之下了。任何人——包括那些想搶你生意的機器人——都能看到你這筆交易的內容和願意付的手續費。

這就是所謂的 MEV(Miner Extractable Value / 最大可提取價值)問題。驗證者(或以前的礦工)可以看到 mempool 裡的所有交易,然後決定怎麼排序對自己最有利。

第二階段:被打包進區塊

以太坊平均每 12 秒會產生一個區塊。每個區塊有個「容量上限」(目前大約是 3 千萬 gas)。

驗證者會從 mempool 裡挑選交易塞進區塊。通常的邏輯是:優先選擇願意付最高手續費的的交易。

所以如果你在網路擁堵的時候想要交易快點確認,你就得把手續費提高。現實生活中的「加錢插隊」只存在於黑市,但在區塊鏈上,這是光明正大的經濟激勵機制。

第三階段:執行與驗證

區塊被打包好之後,網路上的其他節點會重新執行一遍區塊裡的每一筆交易,確保結果一致。

區塊裡記錄的是「交易後的最終狀態」,而不是「交易本身」。所以節點在驗證時,會 replay 每一筆交易,看看算出來的 stateRoot 跟區塊標頭裡記的是不是一樣。

如果一樣,那就接受這個區塊;如果不一樣——抱歉,這區塊有問題,拒掉。

第四階段:等待最終確認

以太坊實作的是「機率性最終確認」。嚴格來說,理論上還是有可能被逆轉——只是機率極低。

你可能聽過「六個區塊確認」這個說法。意思是:一筆交易被寫入區塊之後,如果後面又接了六個新區塊,那麼這筆交易被逆轉的機率就低到可以忽略不計了。

為什麼是六個?這是比特幣留下來的經驗法則,後來以太坊也跟著用。數學上可以算,但實際上這更像是一個社群共識——大家都說六個夠了,那六個就夠了。


EIP-1559 前後的 Gas 費用變化

這是一個很多人搞不清楚的主題,讓我直接說重點。

以前的拍賣模式(EIP-1559 之前)

你發起交易,然後你說「我願意付 10 gwei 的手續費」。礦工看到這筆交易,決定要不要打包。如果交易太多,付得少的就慢慢等。

問題來了:如果你不知道網路堵不堵,你要怎麼設手續費?設太高白花錢,設太低等半天。

現在的動態基準模式(EIP-1559 之後)

EIP-1559 把手續費拆成了兩部分:

Base Fee(基礎費用):這是網路自動算出來的,你沒得選。區塊越滿,Base Fee 越高;區塊越空,Base Fee 越低。這個費用會被「燃燒」(burn)掉,直接從流通量裡扣掉。

Priority Fee(優先費用):這是你願意多給驗證者的小費,影響他們選擇你的交易的意願。如果你不趕時間,設 0 也行。

總費用 = (Base Fee + Priority Fee) × 使用的 Gas 量

燃燒機制是 EIP-1559 最有趣的部分。以前礦工(現在是驗證者)拿走所有手續費;現在 Base Fee 直接從經濟體系裡消失。這讓 ETH 有點像一種「燒油的燃料」——用的人越多,流通量縮得越快。

截至 2026 年第一季度,EIP-1559 實施以來已經燒掉了超過 500 萬枚 ETH。


以太坊的世界計算機比喻

我聽過最貼切的比喻是:把以太坊想成一台世界計算機。

傳統計算機以太坊
CPUEVM(以太坊虛擬機)
記憶體Memory(臨時計算空間)
硬碟Storage(持久化數據,寫入區塊鏈)
程式語言Solidity / Vyper
執行一次要多少電費Gas
作業系統升級硬分叉

傳統電腦如果想要變快,你升級 CPU、加大記憶體就好。但以太坊要去中心化、又要安全、又要能抵抗審查——這些約束條件疊在一起,就不可能靠單純提升硬體效能解決問題。

所以才有了分片、Layer 2、種種擴容方案。這些都是為了讓這台世界計算機在不犧牲去中心化和安全性的前提下,變得更快、處理更多交易。


實用小工具推薦

如果你想自己查鏈上的資料,這幾個工具是我自己日常在用的:

  1. Etherscan(https://etherscan.io)- 以太坊的區塊瀏覽器,幾乎所有鏈上資料都可以在這裡查到。
  2. Ultrasound Money(https://ultrasound.money)- 追蹤 ETH 的燃燒情況,看看以太坊是通縮還是通膨。
  3. Gas Tracker(https://etherscan.io/gastracker)- 看看現在 Gas 多少錢,決定要不要現在交易。
  4. EVM Codes(https://www.evm.codes/)- 查每個 opcode(機器指令)的說明和 Gas 消耗。

結語

這篇文章覆蓋了以太坊區塊鏈最核心的幾個概念:區塊結構、交易類型、Gas 費用、以及整個系統是怎麼運作的。

區塊鏈的厲害之處不在於某一個單一技術的創新,而在於把密碼學、共識機制、經濟激勵這些東西組裝在一起,創造出一個不需要信任任何單一機構就能運作的系統。

理解底層邏輯不見得能幫你赚钱,但它能幫你少踩坑。起碼下次看到「智能合約」四個字的時候,你心裡有個底,知道那玩意兒是什麼、能做什麼、極限在哪裡。


參考資料

本網站內容僅供教育與資訊目的,不構成任何投資建議或推薦。在進行任何加密貨幣相關操作前,請自行研究並諮詢專業人士意見。所有投資均有風險,請謹慎評估您的風險承受能力。

資料截止日期:2026年3月

延伸閱讀與來源

這篇文章對您有幫助嗎?

評論

發表評論

注意:由於這是靜態網站,您的評論將儲存在本地瀏覽器中,不會公開顯示。

目前尚無評論,成為第一個發表評論的人吧!