比特幣交易生命週期完整解析:從簽名到確認的每一步
以視覺化方式解析比特幣交易的完整生命週期,包括交易建立、數位簽名、節點驗證、Mempool 等待、礦工打包、區塊確認等六個階段。深入解釋手續費機制、RBF、CPFP、零確認等實務議題,適合想要深入理解比特幣運作原理的讀者。
比特幣交易生命週期完整解析:從簽名到確認的每一步
比特幣轉帳這件事,看起來就是「輸入地址、輸入金額、點擊發送」三步驟搞定。但實際上背後發生了什麼?礦工是怎麼把你的交易打包進區塊的?為什麼有時候等半天也沒確認?這篇文章就帶你把比特幣交易的整個生命週期走一遍。
先說結論:交易要經過幾個階段?
一個標準的比特幣交易會經過這些階段:
建立交易 → 簽名廣播 → 節點驗證 → Mempool 等待 → 礦工打包 → 區塊確認
每一個階段都有它的門道,我們一個個來拆解。
第一步:建立交易
當你對著比特幣錢包說「我要轉 0.01 BTC 給這個地址」的時候,錢包在後台幫你組裝了一筆交易資料包。
這筆交易包含兩大部分:輸入(Input)和輸出(Output)。
輸入是什麼?
輸入就是你告訴比特幣網路「這筆錢是我的」的證明。嚴格來說,每個輸入都會引用一筆更早的交易輸出作為資金來源。
舉個例子:你之前收到了兩筆轉帳,一筆 0.5 BTC,一筆 0.3 BTC。現在你想轉出 0.6 BTC。這時候錢包會選中那筆 0.5 BTC 的輸出作為輸入。
輸入:引用「收到 0.5 BTC」的輸出
輸出:轉給別人 0.6 BTC
找零給自己 0.4999 BTC(扣掉礦工費)
你可能注意到了——輸出比輸入少。這就是比特幣的手續費機制,差額自動進了礦工口袋。
輸出格式長這樣
{
"value": 60000000,
"scriptPubKey": "OP_DUP OP_HASH160 89abcdefabbaabbaabbaabbaabbaabbaabbaabba OP_EQUALVERIFY OP_CHECKSIG"
}
value 是以 satoshi 為單位的金額(1 BTC = 100,000,000 satoshi)。scriptPubKey 是鎖定腳本,決定了誰能花這筆錢。
第二步:數位簽名
好了,現在錢包要證明「這筆錢真的是我的」。
錢包會用你的私鑰對交易資料進行數位簽名。這個簽名有兩個作用:
- 證明你擁有私鑰(因為只有私鑰能產生有效簽名)
- 證明交易內容沒被篡改(簽名綁定了交易內容)
比特幣用的是 ECDSA(橢圓曲線數位簽名演算法),具體來說是 secp256k1 這條曲線。數學上保證了:從簽名反推私鑰的難度,堪比在宇宙中找到一顆特定沙粒。
產生的簽名長這樣(十六進位):
30450221009981fe97a3c7c2c1e8d7e1c7c2c1e8d7e1c7c2c1e8d7e1c7c2c1e8d7e1c7c2
02205a3e0e7c2c1e8d7e1c7c2c1e8d7e1c7c2c1e8d7e1c7c2c1e8d7e1c7c2
錢包把簽名和未簽名的交易資料組合成完整的交易資料包,然後廣播出去。
第三步:節點驗證
交易資料包首先發到你連接的比特幣節點(可能是你自己的全節點,也可能是交易所的節點)。
節點收到交易後,會開始一連串驗證:
3.1 格式驗證
- 交易資料結構是否正確?
- 各欄位的資料類型和範圍對不對?
- 區塊鏈歷史中是否真的存在這筆被引用的輸出?
3.2 簽名驗證
節點用輸入中指定的公鑰驗證簽名。如果簽名無效,直接拒絕這筆交易。
3.3 雙花檢查
節點會查詢內存的 UTXO(未花費交易輸出)集合,確認這筆輸入沒有被之前其他交易花掉。如果發現雙花,拒絕。
3.4 Standardness 規則
比特幣節點有個「standardness」的概念——不是所有合法的腳本都能被大多數節點接受傳播。比如 OP_RETURN 資料承載上限是 83 位元組,超過這個大小的交易會被大多數節點當作「非標準」直接拒絕傳播。還好隔離見證升級後,這個限制放寬到了 80,000 位元組(標準節點共識)。
通過所有檢查後,節點會把交易轉發給它連接的其他節點。這個過程在比特幣網路中快速擴散——通常幾秒鐘內就能傳遍全球大多數節點。
第四步:Mempool 等待
交易通過節點驗證後,就進入了記憶池(Mempool)——這是節點維護的一個交易等待區。
Mempool 不是唯一的。 每個節點都有自己的 Mempool,裡面存放的交易可能略有差異。節點會根據一些策略定期清理 Mempool(比如超過 300 個區塊年齡的交易會被剔除)。
交易在 Mempool 裡排隊的邏輯
礦工不是按先來後到打包交易的,而是按手續費率(Fee Rate,sat/vB)排序。單位 fee rate 越高的交易,越容易被礦工選中打包。
所以問題來了:同樣是等區塊,為什麼別人的交易比我快確認?
答案很殘酷:他的手續費率比你高。
拿當前(2024 年)的數據來說:
| 費用類型 | Fee Rate | 預計確認時間 |
|---|---|---|
| 高優先級 | > 20 sat/vB | 下一個區塊 |
| 標準 | 5-20 sat/vB | 1-3 個區塊 |
| 低 | 1-5 sat/vB | 幾個小時到一天 |
| 極低 | < 1 sat/vB | 可能永遠不確認 |
這就是為什麼在網路擁堵的時候,有人願意付 50 美元的手續費就為了讓交易擠進下一個區塊。比特幣市場經濟的好處就是——你可以選擇付多少錢,也可以選擇等多久。
RBF:改主意的好辦法
有時候你發出去交易才發現手續費給低了。別慌,如果你當初啟用了 RBF(Replace-By-Fee),可以發起新的交易用更高的手續費替換掉舊的。
原理很簡單:新的交易使用相同的輸入(等於「佔用」了原交易的輸入),區塊鏈只能接受其中一筆。礦工看到手續費更高的版本,自然就選新的了。
第五步:礦工打包
終於等到礦工注意到你的交易了。
礦工的任務是:找到一個符合條件的隨機數(nonce),使得區塊頭的雙重 SHA-256 雜湊值小於難度目標。
這個過程就是大家常說的「挖礦」——誰先找到符合條件的 nonce,誰就有權把 Mempool 裡的交易打包成新區塊,然後廣播出去。
區塊空間是稀缺資源
比特幣每個區塊的大小上限是 1 MB(隔離見證升級後有「權重上限」的概念,但實質大同小異),平均下來每個區塊能容納大約 2,000-3,000 筆交易。
稀缺就意味著拍賣。你願意為這筆交易付的手續費,就是你競標區塊空間的出價。
礦工怎麼選交易?
理論上,礦工會選 fee rate 最高的交易先打包。但實際操作中還要考慮:
- CoinJoin 或批量轉帳類的交易,雖然手續費總額高,但平均 fee rate 不一定高
- 有些礦工可能願意犧牲一點收益來維護網路公平性
- CPFP(Child Pays For Parent)策略會讓礦工考慮整條交易鏈的總收益
第六步:區塊確認
恭喜!你的交易終於被寫進區塊了。
但故事還沒完。比特幣的安全模型其實是「機率性」的——區塊確認數越多,交易被逆轉的可能性越低。
為什麼?因為如果有人想篡改區塊鏈,需要重新計算那個區塊以及之後所有區塊的工作量證明。區塊越深,重新計算的成本越高。
常見的確認建議:
| 場景 | 建議確認數 |
|---|---|
| 小額轉帳(咖啡、零食) | 1 確認 |
| 一般線上購物 | 3 確認 |
| 大額交易(數千美元) | 6 確認 |
| 交易所充值 | 3-6 確認 |
交易所通常要求 3-6 個確認,主要原因是防止「六區塊逆轉攻擊」。雖然這種攻擊在正常情況下幾乎不可能發生,但交易所本著小心駛得萬年船的原則,寧可多等一會兒。
交易的生命週期圖
用文字描述可能還是有點抽象,讓我畫個示意圖:
[錢包組裝交易]
↓
[私鑰簽名]
↓
[廣播到鄰近節點]
↓
[節點驗證:格式、簽名、雙花]
↓
[傳播至全網 Mempool]
↓
[等待礦工選擇]
↓ (fee rate 排隊)
[礦工找到 nonce]
↓
[區塊寫入區塊鏈]
↓
[全網節點驗證新區塊]
↓
[交易獲得 1 個確認]
↓ (繼續等待後續區塊)
[確認數增加,安全度提升]
關於零確認的迷思
有些人會問:比特幣不是去中心化嗎?為什麼不能轉帳後馬上到帳?
零確認(交易寫入區塊前)的狀態下,理論上存在「雙花」的可能——你廣播一筆轉帳給商家的交易給,同時廣播另一筆把同樣輸入轉給自己的交易。如果你的後者先被礦工打包,商家就收不到錢了。
但實際上,零確認的雙花難度比大多數人想像的高:
- 需要控制足夠多的算力或與礦工串通
- 礦工通常會拒絕零確認雙花(名聲受損划不來)
- 大多數商家會等到起碼 1 個確認才放貨
所以對於小額場景,零確認是可以接受的。當然,大額轉帳的話,乖乖等確認吧。
常見誤解
誤解一:區塊確認就是區塊鏈「把交易寫入資料庫」
不完全對。區塊鏈是分散式帳本,每個節點都有自己的一份副本。礦工廣播新區塊後,各節點會獨立驗證並更新自己的帳本。所以「寫入」這件事,其實是同時在數千個節點上發生的。
誤解二:等六個區塊確認就絕對安全了
數學上,6 個確認的安全性基於「攻擊者擁有低於 50% 算力」的假設。如果攻擊者真的控制了 51% 算力,理論上可以逆轉任意深度的區塊。當然,這種情況發生的概率極低,而且一旦發生,比特幣的價格估計也崩了,攻擊者無利可圖。
誤解三:手續費是固定金額
錯。比特幣手續費是動態的,取決於網路擁堵程度。你可以用 sat/vB(每個位元組多少 satoshi)來理解這件事:位元組越多的交易,總手續費越高,但 fee rate 可能相同。
實務問答
Q: 轉帳後發現手續費給太高了,能撤回嗎?
A: 不能直接撤回,但可以嘗試 RBF(如果啟用的話)或等交易被區塊鏈自動拒絕(很少見)。記得下次用錢包的費用控制功能,先模擬再發送。
Q: 交易卡在 Mempool 裡一直不確認,等下去有用嗎?
A: 要看情況。如果你的 fee rate 太低,網路又不擁堵,等幾個小時到一天可能就輪到了。但如果網路高峰期擁堵,等一個禮拜也可能白搭。建議用區塊流覽器追蹤 fee rate 市場行情,考慮用 CPFP 或 RBF 加速。
Q: 為什麼有些交易所充值需要那麼多確認?
A: 交易所控制的是「充值到帳」的時機。確認數越多,意味著資金越安全。交易所也要防範雙花風險,萬一用戶真金白銀充值後馬上雙花,交易所就虧大了。
Q: 轉帳顯示「未確認」是什麼意思?
A: 說明你的交易還在 Mempool 裡排隊。等礦工把它打包進區塊,就會顯示「1 個確認」。如果等太久,可能是手續費設低了。
比特幣交易的整個生命週期,本質上就是一個分散式共識系統運作的過程。理解這些細節,不僅能幫你最佳化轉帳體驗,還能讓你在這個行業待得更踏實。轉帳時偶爾遇到的手續費波動、確認時間延長,都不是「比特幣出了問題」,而是區塊空間拍賣市場的正常表現。淡定,淡定。
延伸閱讀:
- 比特幣記憶池(Mempool)運作原理
- 比特幣腳本語言與交易類型
- 閃電網路:比特幣的第二層支付方案
相關文章
- 比特幣基礎完全指南:從概念到實作的系統化學習 — 比特幣作為區塊鏈技術的首個成功應用,自2009年誕生以來已發展為價值數千億美元的全球性去中心化貨幣系統。本文從比特幣的基本概念出發,逐步深入到技術細節,涵蓋區塊鏈原理、工作量證明、密碼學基礎、UTXO模型等核心知識,幫助讀者建立完整的比特幣知識框架。
- 比特幣新手完全指南:2026年從零開始的完整攻略 — 專為比特幣新手設計的入門指南,用最白話的方式解釋區塊鏈、私鑰、比特幣地址的核心概念,詳細說明第一次買比特幣、創建錢包、備份助記詞、發送接收比特幣的完整步驟,並提供隱私保護基礎知識和常見錯誤提醒。
- 比特幣常見誤解完整澄清手冊:從技術原理到投資迷思的深度辯駁 — 系統性整理比特幣領域最常見的錯誤觀念,從密碼學原理、經濟學機制、技術架構、監管合規等多個維度,提供有據可查、邏輯嚴謹的澄清說明。涵蓋比特幣稀缺性、量子威脅、區塊鏈不可篡改性、內在價值、價格波動性、環保爭議等核心議題的深度分析。
- 比特幣運作核心概念深度視覺化說明:從密碼學基礎到共識機制的完整引導手冊 — 比特幣的運作原理涉及密碼學、分散式系統、經濟學等多個領域的複雜技術。對於初學者而言,理解比特幣的核心運作機制往往面臨極高的學習門檻。本文以視覺化的說明方式,從比特幣交易的微觀視角出發,逐步擴展到區塊、區塊鏈、網路、共識機制的宏觀層面,幫助讀者建立比特幣運作的完整心智模型。我們將使用大量的示意圖說明、流程圖與數據結構解構,確保即使是沒有技術背景的讀者也能掌握比特幣的核心概念。
- 比特幣學習路徑完整指南:各分類必讀清單與跨領域進階地圖 — 提供系統性的比特幣學習框架,根據不同學習目標推薦必讀文章,並設計從入門到進階的完整學習路徑。涵蓋哲學思想、技術實作、投資理財、安全保管四大領域,共收錄超過50篇精選文章的學習指引。提供3個月速成、6個月專業化、12個月開發者三種整合學習路徑。
延伸閱讀與來源
這篇文章對您有幫助嗎?
請告訴我們如何改進:
評論
發表評論
注意:由於這是靜態網站,您的評論將儲存在本地瀏覽器中,不會公開顯示。
目前尚無評論,成為第一個發表評論的人吧!