區塊鏈怎麼記錄交易?區塊、雜湊、工作量證明(2026)
本文目錄
上一篇文章講了比特幣的去中心化網路、分散式帳本和共識機制的整體邏輯。
現在我們來拆得更細一點:一個區塊裡面到底存了什麼?礦工到底在「算」什麼?為什麼說一筆交易被確認 6 次之後就很難被推翻?
這三個問題,是理解比特幣區塊鏈運作機制的關鍵。
本文會把比特幣區塊的「內部構造」拆開來看,用生活化的類比講清楚雜湊演算法、Merkle Tree 和工作量證明。不講密碼學數學推導,只講概念和邏輯。
讀完你將理解:
- 比特幣區塊的內部結構——區塊頭裡藏著什麼資訊;
- UTXO 模型——為什麼比特幣不記錄「餘額」,而是記錄「未花費的輸出」;
- Merkle Tree 是什麼,為什麼要用它來組織交易;
- SHA-256 雜湊如何構成比特幣的安全基石;
- 工作量證明(PoW)的「數學題」到底是什麼;
- 為什麼一筆交易被確認越多越安全。
本文是技術原理科普,不構成任何投資建議。
建議先閱讀前一篇 比特幣為什麼不需要銀行?UTXO、節點、PoW,再讀這篇會更順暢。
一個比特幣區塊裡有什麼
一個比特幣區塊,可以分成兩部分:區塊頭和交易列表。
區塊頭(Block Header)
只有 80 位元組,非常小,但包含了驗證整個區塊所需的全部核心資訊:
| 欄位 | 大小 | 存的是什麼 | 作用 |
|---|---|---|---|
| 版本號 | 4 位元組 | 區塊格式版本 | 相容性標記 |
| 前一區塊雜湊 | 32 位元組 | 上一個區塊的 SHA-256 雜湊值 | 把區塊串成鏈的關鍵 |
| Merkle Root | 32 位元組 | 所有交易的「彙總指紋」 | 高效驗證交易是否存在 |
| 時間戳 | 4 位元組 | 區塊生成的大致時間 | 配合難度調整 |
| 難度目標 | 4 位元組 | 當前網路要求的難度值 | 控制出塊速度 |
| 隨機數(Nonce) | 4 位元組 | 礦工不斷改的這個數字 | PoW 挖礦的核心 |

交易列表(Transaction List)
區塊頭下面是交易列表——就是這個區塊打包的所有比特幣轉帳記錄。
一個區塊通常包含幾百到幾千筆交易。
簡單理解:
區塊頭 = 這頁帳本的「頁眉」(頁碼、上一頁摘要、本頁內容指紋)
交易列表 = 這頁帳本的「正文」(實際轉帳記錄)
區塊頭詳解:80 位元組如何支撐整個網路
區塊頭雖然只有 80 位元組,但它的設計非常精妙。這六個欄位各司其職:
前一區塊雜湊:鏈式結構的靈魂
這個欄位裡存的是上一個區塊的區塊頭經過兩次 SHA-256 雜湊計算後的結果。
意義在於:如果有人改了 100 個區塊之前的一筆交易,那個區塊的雜湊就變了 → 下一個區塊裡存的「前一區塊雜湊」就對不上了 → 再下一個也對不上 → 整整 100 個區塊全部作廢,需要重新計算。
這就是「鏈」的本質——用雜湊指標把歷史記錄鎖死。
Merkle Root:交易的「集體指紋」
Merkle Root 是把當前區塊裡所有交易「壓縮」成一個 32 位元組雜湊值的結果。
它的作用不是防篡改,而是讓任何人都能快速驗證「某筆交易是否在這個區塊裡」,不需要下載整個區塊。
具體原理後面細講。
難度目標:控制出塊節奏
難度目標(bits)是一個壓縮格式的數字,決定了礦工要找到的雜湊值必須小於什麼範圍。
難度不是固定的——比特幣網路每 2016 個區塊(約兩週)自動調整一次,目標是讓平均出塊時間穩定在 10 分鐘左右。
如果過去 2016 個區塊只用了 9 天就挖完了(算力太強),難度會自動上調。如果用了 15 天(算力變弱),難度下調。
這是一個完全自動化、不依賴任何人判斷的自調節系統——打開 Mempool.space 這類區塊瀏覽器,就能看到當前難度值和全網算力在根據最新出塊情況即時跳動。
Nonce:礦工競賽的「答案」
Nonce 是一個 32 位元的整數(0 到約 42 億)。礦工的工作就是不斷換 nonce 的值,把區塊頭丟進 SHA-256 算兩次,看結果是否小於難度目標。
由於 SHA-256 的輸出看起來完全隨機,礦工只能暴力窮舉——試運氣。
4 位元組的 nonce 空間(約 42.9 億種可能)對現代 ASIC 礦機來說瞬間就能遍歷完。因此礦工不會只改 nonce——他們還會修改 coinbase 交易中的 extraNonce 欄位、調整交易順序、或微調時間戳,這些操作都會改變 Merkle Root,從而獲得全新的搜索空間,相當於把「樂透號碼池」擴展到了幾乎無限大。
重要前置概念:比特幣不記錄「餘額」,只記錄 UTXO
在繼續講雜湊和 Merkle Tree 之前,有一個關鍵概念必須先釐清——很多新人以為比特幣像銀行一樣,給每個地址維護一個「帳戶餘額」:
錯誤理解:
Alice 帳戶:10 BTC → 轉出 2 BTC → 餘額 8 BTC
Bob 帳戶: 0 BTC → 收到 2 BTC → 餘額 2 BTC
比特幣不是這樣運作的。 比特幣沒有「帳戶餘額」,只有 UTXO(未花費交易輸出,Unspent Transaction Output)。
UTXO 是什麼
把 UTXO 理解成「紙鈔」最直觀:
- 你錢包裡不是「一個數字餘額」,而是若干張不同面額的紙鈔
- 每張紙鈔(UTXO)來自之前某筆轉帳,面額固定
- 你要支付 2 BTC 時,需要拿出一張或多張總額 ≥ 2 BTC 的紙鈔
- 如果拿出了一張 5 BTC 的 UTXO,支付 2 BTC 後,剩下的 3 BTC 會以找零 UTXO 的形式回到你的地址

一個具體例子
Alice 擁有兩個 UTXO:
UTXO-A:3 BTC(來自上個月的一筆轉帳)
UTXO-B:1 BTC(來自上週的一筆轉帳)
Alice 想給 Bob 轉 2.5 BTC:
→ 交易輸入:
消費 UTXO-A(3 BTC)
消費 UTXO-B(1 BTC)
合計輸入:4 BTC
→ 交易輸出:
輸出1:2.5 BTC → Bob 的地址(支付)
輸出2:1.4 BTC → Alice 的找零地址(4 - 2.5 - 0.1 手續費)
合計輸出:3.9 BTC(0.1 BTC 是礦工手續費)
UTXO-A 和 UTXO-B 在這筆交易中被完全花掉(銷毀),同時建立了兩個新的 UTXO——一個給 Bob,一個找零給 Alice。舊的 UTXO 從此不存在了。
為什麼用 UTXO 而不是帳戶餘額模型
| 對比維度 | UTXO 模型(比特幣) | 帳戶餘額模型(以太坊) |
|---|---|---|
| 記錄方式 | 記錄未花費的「紙鈔」集合 | 記錄每個地址的餘額數字 |
| 驗證方式 | 只需檢查輸入 UTXO 是否未被花費 | 需要檢查餘額是否足夠 |
| 平行處理 | 天然支援——不同 UTXO 互不衝突 | 同一地址的交易需排隊 |
| 隱私性 | 更高——每次可用不同地址找零 | 所有操作圍繞同一個地址餘額 |
UTXO 模型是比特幣區別於以太坊的根本設計差異之一。理解了 UTXO,你才能理解為什麼比特幣的交易驗證不需要「查餘額」——只需要確認引用的 UTXO 還沒被花掉就行。
這也解釋了為什麼區塊裡的「交易列表」不是「Alice 餘額 -10,Bob 餘額 +10」,而是引用哪些 UTXO 作為輸入、建立哪些新 UTXO 作為輸出。
雜湊演算法是什麼,為什麼比特幣用它
先理解雜湊是什麼
雜湊演算法(Hash Function)的作用是:輸入任意長度的資料,輸出一個固定長度的「指紋」。
比如把「Hello」丟進 SHA-256,會得到一團 64 位的十六進位字串。把整本《紅樓夢》丟進去,同樣得到 64 位字串。
SHA-256 有三個關鍵特性:
| 特性 | 什麼意思 | 對比特幣的意義 |
|---|---|---|
| 單向性 | 有雜湊值,推不出原始輸入 | 沒人能從區塊雜湊反推區塊內容或 nonce |
| 雪崩效應 | 輸入改一點點(哪怕一個標點),輸出面目全非 | 篡改一筆交易 → Merkle Root 完全不同 → 區塊雜湊完全不同 → 鏈斷了 |
| 抗碰撞 | 極難找到兩個不同輸入,產生相同輸出 | 沒有人能偽造一筆「看起來有效」的假交易來替代真交易 |

比特幣為什麼要做「兩次 SHA-256」
比特幣的雜湊計算幾乎全是double SHA-256——把資料先 SHA-256 算一次,再把結果 SHA-256 算第二次。
這個設計是中本聰加的額外安全層。雙重 SHA-256 不僅增加了一層安全隔離,也規避了單次雜湊在 Merkle-Damgård 結構下可能面臨的長度擴展攻擊(length extension attack)等潛在問題。
一個生活類比理解雜湊:
雜湊就像榨果汁——蘋果、柳丁、西瓜丟進榨汁機,出來都是一杯液體。你沒法從這個液體倒推出原水果長什麼樣,但只要你有一片懷疑的蘋果,再榨一次,如果出來的液體顏色一樣,那這片蘋果就「被驗證」了。
Merkle Tree:怎麼高效驗證一筆交易
沒有 Merkle Tree 的世界
假設一個區塊裡有 2000 筆交易。你要驗證「地址 A 給地址 B 轉了 0.5 BTC」這筆交易在不在這個區塊裡。
最笨的方法:下載整個區塊,逐筆核對 2000 條記錄。
在網路頻寬有限、有些節點是輕錢包(手機錢包)的情況下,這不現實。
有了 Merkle Tree 之後
Merkle Tree 的思路是逐層雜湊、兩兩配對:
- 把每筆交易的資料分別做一次雜湊,得到 2000 個「葉節點雜湊」;
- 把相鄰的兩個葉節點雜湊拼接,再做雜湊,得到 1000 個「第二層雜湊」;
- 繼續兩兩拼接 + 雜湊,直到最後只剩一個雜湊值——這就是 Merkle Root。

驗證某筆交易時,你不需要整個區塊。你只需要:
- 那筆交易本身的資料;
- 從它到 Merkle Root 這條「路徑」上的幾個雜湊值(稱為 Merkle Proof)。
對於 2000 筆交易的區塊,你只需要約 log₂(2000) ≈ 11 個雜湊值,就能完成驗證。
這就是 SPV(簡易支付驗證)的核心原理——手機錢包不需要下載完整的比特幣區塊鏈(幾百 GB),也能驗證交易。
關於錢包的運作原理和類型,推薦閱讀 什麼是加密貨幣錢包?錢包地址、助記詞與資產安全(2026)。
工作量證明:礦工到底在「算」什麼
很多人說「礦工在解數學題」,這個說法不太準確。
礦工不是在解一個有唯一答案的方程,而是在做一件事:反覆猜 nonce(和一個擴展欄位),直到區塊頭的 double SHA-256 結果小於難度目標。

具體過程
- 礦工從記憶體池(mempool)裡挑選交易,構建候選區塊。
- 填好區塊頭的五個欄位(版本、前雜湊、Merkle Root、時間戳、難度目標)。
- 從 nonce = 0 開始,計算
SHA256(SHA256(區塊頭))。 - 如果結果 ≥ 難度目標 → nonce + 1,再來一次。
- 如果結果 < 難度目標 → 恭喜,挖到了! 立刻廣播給全網。
為什麼這道「題」沒有捷徑
SHA-256 的輸出看起來完全隨機。你沒辦法根據目標值「推導」出哪個 nonce 能命中——只能一個個試。
這就像買彩券:每改一次 nonce 就是刮一張彩券,想中獎只能多刮。算力越大 = 刮得越快 = 中獎機率越高。這套用算力競爭記帳權的機制,最早由中本聰在 比特幣白皮書 第 3-4 節中完整闡述。
難度有多高
截至 2026 年,比特幣網路的難度目標極高——合法區塊雜湊的實際判斷標準是雜湊值是否小於目標值(target),而不是固定數量的前導零。以當前難度來看,合法區塊雜湊通常會包含大量前導零(約 20 個),這讓「前導零」成了一個便於理解的近似說法,但協定層並不數零。
找到一個滿足條件的 nonce 的機率,大約是 1/2²⁰⁰ ——這個數字大到什麼程度?大概相當於你連續拋一枚公平硬幣,連續 200 次都是正面的機率。
全網的 ASIC 礦機加在一起,平均要花約 10 分鐘才能找到一個合法的 nonce。
如果你想更深入理解區塊鏈技術,推薦閱讀 什麼是區塊鏈?原理、用途和風險(2026)。
最長鏈原則:出現分叉怎麼辦
如果兩個礦工幾乎同時挖出了合法區塊,網路會出現短暫的「分叉」——一部分節點先收到了區塊 A,另一部分先收到了區塊 B。
比特幣網路的處理方式非常樸素:認最長的鏈。
後續礦工選擇在其中一條鏈上繼續挖。當下一個區塊被挖出並加到其中一條鏈上時,那條鏈就更長了——全網節點和礦工都會切換到最長鏈。
這帶來的兩個後果
- 孤塊(Orphan Block):被放棄的短鏈上的區塊成為「孤塊」,這個礦工拿不到區塊獎勵。這是礦工的營運風險之一。
- 交易確認不是即時的:一筆交易被打包進區塊後,如果這個區塊所在的鏈後來被廢棄,交易需要重新排隊等待打包。這就是為什麼交易所通常要求 2-6 個確認才計入餘額。
「6 個確認」的安全性
每多一個確認,意味著你的交易在鏈上「埋」得更深了一層。攻擊者要從你的交易所在區塊開始,連續重算多個區塊才能在最長鏈上超過誠實網路。中本聰在 白皮書第 11 節 中用機率模型證明:隨著確認數增加,攻擊成功的機率呈指數級下降——即使攻擊者掌握可觀的算力,在 6 個確認之後,雙花成功的機率也已經低到可以忽略不計。
6 確認不是魔法數字,而是安全性和等待時間之間的經驗平衡。對於絕大多數日常轉帳,2-3 個確認就已經足夠安全了。
51% 攻擊的成本到底有多高
51% 攻擊(多數算力攻擊)是比特幣最常被討論的極端情況。下面的分析幫你理解為什麼它「理論上可能,現實中極難」。
攻擊者能做什麼
如果控制了全網超過 50% 的算力,攻擊者可以:
- 把自己剛花掉的幣「拿回來」(雙花攻擊)——重算包含自己交易的那個區塊及之後所有區塊
- 阻止特定交易被確認——故意不打包某些地址的交易
- 偷別人的幣——沒有別人的私鑰,改不了別人的簽名
- 憑空創造比特幣——違反發行規則,全節點直接拒絕
- 修改歷史區塊裡的交易——需要重算從攻擊目標區塊到最新區塊的全部內容,算力需求極高
成本估算
截至 2026 年,比特幣全網算力在數百 EH/s 級別(1 EH/s = 每秒 100 億億次雜湊),且持續成長中。即時資料可透過公開區塊瀏覽器查詢。
租用或購買達到 50% 以上算力所需的 ASIC 礦機,硬體成本在數十億美元級別,還需要對應的電力基礎設施。加上攻擊一旦被察覺,比特幣價格可能暴跌——攻擊者手裡的 BTC 和礦機都會大幅貶值。
攻擊的淨收益極大機率是負的。 這就是為什麼比特幣主網運行了十幾年,至今沒有出現過成功的大規模 51% 攻擊案例。
關於加密貨幣安全的更多內容,推薦閱讀 錢包被盜怎麼防?助記詞、錯鏈轉帳、授權風險(2026)。
一張表總結:比特幣區塊鏈的關鍵參數
| 參數 | 數值 | 說明 |
|---|---|---|
| 區塊頭大小 | 80 位元組 | 固定大小,不隨交易數量變化 |
| 平均區塊大小 | ~1.5 MB | 含交易資料,SegWit 後實際可達 ~2-3 MB |
| 平均出塊時間 | ~10 分鐘 | 由難度自動調整維持 |
| 初始區塊獎勵 | 50 BTC | 2009 年 |
| 當前區塊獎勵 | 3.125 BTC | 2024 年減半後,持續至 ~2028 年 |
| 最終總量 | ~2100 萬枚 | 約在 2140 年達到 |
| 雜湊演算法 | SHA-256 × 2 | Double SHA-256 |
| 難度調整週期 | 每 2016 個區塊 | 約 2 週 |
| 全網算力(2026) | 數百 EH/s 級別 | 即時變化,可透過區塊瀏覽器查詢 |
常見問題 FAQ
礦工除了區塊獎勵,還能賺什麼?
礦工每打包一個區塊,獲得兩部分收入:① 區塊獎勵(目前 3.125 BTC,由網路規則發行);② 交易手續費(區塊內所有交易的手續費總和)。隨著區塊獎勵每四年減半,手續費將逐漸成為礦工的主要收入來源。
如果礦工打包了一筆無效交易,會發生什麼?
全節點在收到新區塊後,會獨立驗證區塊內的每一筆交易。如果發現無效交易(比如簽名不對、double spend、憑空造幣),全節點直接拒絕整個區塊,不會把它加到鏈上。礦工投入的算力就白費了——拿不到區塊獎勵。所以理性的礦工不會冒這個險。
比特幣的難度只能升不能降嗎?
可以降。難度調整是雙向的——如果過去 2016 個區塊的實際出塊時間超過兩週(算力減少),難度會自動下調。歷史上發生過多次難度下調,通常在礦工大量關機或中國禁止挖礦等算力驟降事件之後。
為什麼全節點要儲存幾百 GB 的資料?
全節點儲存的是從創世區塊(2009 年第一個區塊)到最新區塊的完整帳本。截至目前,比特幣區塊鏈總大小約 500-600 GB。全節點需要完整資料來獨立驗證每一筆歷史交易。但你可以運行「裁剪模式」(pruned mode),只保留最近的區塊資料 + 所有 UTXO 集合,這樣可以縮減到幾個 GB。
比特幣的區塊會不會「滿」?
會,而且這是一個持續的社群討論。比特幣主鏈的吞吐量受區塊大小(~1-3 MB)和出塊時間(~10 分鐘)限制,大約每秒 3-7 筆交易。當交易需求高時,mempool 會擁堵,手續費上漲。擴容方案包括閃電網路(鏈下支付通道)、側鏈和未來的軟分叉升級,這仍然是一個活躍的技術演進方向。
比特幣區塊大小是多少?為什麼不能直接擴容?
比特幣區塊大小被限制在 1 MB(SegWit 升級後實際可達約 2-3 MB)。這個限制是中本聰早期為防止垃圾交易攻擊而設置的。擴容方案一直在社群討論中:主鏈保持去中心化(任何人都能運行全節點),高頻小額支付走閃電網路(Lightning Network)等二層方案。這是一個「安全去中心化 vs 吞吐量」的經典權衡。
比特幣為什麼不能修改歷史交易?
因為每個區塊都包含了上一個區塊的雜湊值——改了任何一筆歷史交易,那個區塊的雜湊就變了,它後面所有區塊的「前一區塊雜湊」全部對不上,整條鏈從修改點開始全部斷裂。攻擊者必須重算從被修改區塊到最新區塊的所有 PoW,而誠實礦工還在不斷延長最新鏈——追上來的機率隨確認數增加而指數級下降。這就是「鏈」這個詞的真正含義。
私鑰和比特幣網路運行有什麼關係?
比特幣網路的運行不依賴任何人的私鑰。但發起交易需要私鑰簽名——私鑰是你的「數位簽名筆」,證明你有權動用某個地址裡的 BTC。私鑰不需要聯網,甚至可以寫在紙上。關於私鑰的保管,推薦閱讀 什麼是助記詞?為什麼丟了沒人能幫你找回資產(2026)。
總結
比特幣區塊鏈的運行機制,核心就是下面這些環環相扣的設計:
- UTXO 模型 → 比特幣不記錄「餘額」,只記錄未花費的交易輸出,像紙鈔一樣流轉;
- 區塊 + 鏈式雜湊 → 讓歷史記錄很難被篡改(改一筆 = 改全鏈);
- Merkle Tree → 讓任何人能高效驗證交易,不需要下載整個區塊;
- SHA-256 → 單向、雪崩、抗碰撞,構成密碼學安全基礎;
- 工作量證明(PoW) → 用算力競爭替代中心化投票,讓「誰說了算」有經濟代價;
- 最長鏈原則 → 用最簡單的規則解決分叉衝突,全網自動收斂到同一狀態。
這些設計組合在一起,讓一個沒有中心伺服器、沒有公司營運、沒有 CEO 的網路,在全球數萬個節點上協調運行了十幾年。
對新手來說,不需要記住每個欄位的位元組數。記住一件事就夠了:比特幣的安全不是靠「沒有人攻擊」,而是靠「攻擊的成本遠高於收益」。
下一步建議了解比特幣的交易全流程——一筆 BTC 轉帳從發起、廣播、進入 mempool 到被打包進區塊、獲得 6 個確認,經歷了什麼。推薦繼續閱讀本專題的後續文章。
相關推薦
- 比特幣為什麼不需要銀行?UTXO、節點、PoW —— 本系列第一篇
- 什麼是比特幣(BTC)?原理、價值和風險(2026) —— BTC 基礎入門
- 什麼是區塊鏈?原理、用途和風險(2026) —— 區塊鏈全景科普
- 錢包被盜怎麼防?助記詞、錯鏈轉帳、授權風險(2026) —— 資產安全
- 什麼是加密貨幣錢包?錢包地址、助記詞與資產安全(2026) —— 錢包基礎
免責聲明
本文僅用於比特幣和區塊鏈技術原理科普,不構成任何投資建議、理財建議或交易建議。
加密資產價格波動較大,相關服務可能存在平台風險、市場風險、網路安全風險和操作風險。用戶應根據自身風險承受能力謹慎判斷,並以所在地法律法規為準。
- Bitcoin Whitepaper — Satoshi Nakamoto第 3-4 節 PoW 機制與第 11 節確認機率模型
- Bitcoin.org — 開發者文件區塊結構與交易開發文件
- Blockchain.com Explorer查詢區塊、交易與鏈上資料
- Mempool.space — 比特幣區塊瀏覽器即時難度值與全網算力
- Bitnodes.io全節點分布與數量查詢
CoinTrailHub 編輯團隊,專注加密貨幣新手教育、交易所安全與 P2P 交易風險研究。本文基於官方資料、公開鏈上資料與區塊瀏覽器資訊整理,內容經人工審核,力求準確但不構成投資建議。
最後更新:2026-08-04 · 內容經人工審核 · 了解更多
© 2026 CoinTrailHub · 本文為原創內容,未經授權禁止轉載、採集或改寫。