比特幣共識與確認
了解比特幣節點為何會看到競爭中的鏈尖端、累積工作量如何選擇有效鏈,以及重組會改變甚麼。
本指南內容兩個有效區塊可能造成暫時分叉
簡短摘要
有效區塊幾乎同時到達時,比特幣節點可能短暫看到不同的鏈尖端。每個節點會驗證候選區塊,並跟隨自己已知的有效鏈中累積工作量最大的一條。如果另一條有效分支超越目前活動鏈,重組會斷開部分區塊並接上競爭分支,因此交易的確認狀態可能改變。
兩個有效區塊可能造成暫時分叉
礦工會以自己知道的鏈尖端為基礎繼續工作。若兩個有效區塊指向同一父區塊,而傳播速度不同,節點可能暫時跟隨不同分支。Bitcoin Developer Guide 區塊鏈說明介紹同時出現的區塊與陳舊分支。
比特幣比較累積工作量,而非只看區塊數
每個有效區塊按其工作量目標貢獻工作。分支的累積工作量是所有區塊工作的總和;難度目標不同時,只看高度會造成誤判。Bitcoin Core 的 getblockchaininfo以chainwork顯示活動鏈工作量。
「工作量最大」是節點已知的有效鏈
工作量證明不能令違反共識規則的區塊變成有效。全節點先按規則驗證區塊,再比較有效分支的工作量。節點所見資料亦受網絡傳播影響;延誤或隔離可造成不完整視野,參閱Bitcoin P2P 指南。
重組會斷開一條路徑並接上另一條
得知較強的有效分支後,節點會找到共同祖先,斷開其後的活動區塊,再驗證並接上選定分支。新鏈尖端高度可以相同或不同,因為工作量而非高度決定選擇。這是該節點活動鏈的改變;不同服務可能在不同時間更新。
可假設兩條有效分支從共同祖先分開:一條分支包含一筆付款,另一條有效分支其後累積了更多工作。節點得知並驗證較強分支後,會中斷舊區塊並連接競爭分支。於是這筆付款在該節點的活躍鏈上失去原區塊確認,即使顯示高度剛好相同亦然。付款之後是否仍然有效,取決於所選分支中其輸入有否被花費;回到本機 mempool 並非自動保證,未同步的服務亦可能繼續顯示先前狀態。

被移出區塊的交易需要重新判斷
交易所屬區塊被斷開後,它在該節點活動鏈上的該次確認便會失去。若交易仍有效、不與選定分支的交易衝突,並符合節點本地政策,可能返回本地 mempool,但不保證再次打包。getchaintips只列出該節點知道的鏈尖端。
確認數表示工作深度,並非最終性
包含交易的區塊通常算一次確認,其後每個區塊再增加一次。區塊後累積工作越多,通常越難取代,但沒有固定確認數可排除重組。付款處理指南說明商戶為何按付款及風險制定不同確認政策。
一般陳舊區塊與深度重組不同
兩位礦工可能幾乎同時找到區塊;先取得下一個區塊的分支通常贏得傳播競賽,另一分支便成為陳舊分支。深度重組可能與網絡中斷、有效區塊延誤或試圖取代歷史的攻擊有關。較多工作不能迫使驗證節點接受無效區塊,但被隔離的節點可能只看到不完整資料。
Core 狀態只是節點本地快照
Bitcoin Core 31.0 的 getblockchaininfo會顯示網絡、已驗證高度、區塊頭數量、最佳區塊哈希、chainwork及同步欄位。getchaintips可能列出active、valid-fork、valid-headers、headers-only、invalid等狀態。請參考符合你版本的Core RPC 文件。
收到重組提示後再次核對交易包含狀態
收到重組提示後,記下交易 ID 及原先包含它的區塊哈希,並向可信節點查詢該區塊是否仍屬活動鏈,以及交易是否重新包含、仍未確認或與另一筆支出衝突。瀏覽器只反映服務商的視角。存款確認見[存款確認指南](/zh-HK/learn/crypto-deposit-confirmations-finality-explained);節點驗證與裁剪見[比特幣全節點指南](/zh-HK/learn/bitcoin-full-node-pruning-archive-storage-validation-wallet-trust-explained);費用與 mempool 見[費用指南](/zh-HK/learn/bitcoin-transaction-fees-sats-vbyte-mempool-rbf-explained)。不要只因畫面改變便重送,先確認狀態。 相關指南: [存款確認指南](/zh-HK/learn/crypto-deposit-confirmations-finality-explained)、[比特幣全節點指南](/zh-HK/learn/bitcoin-full-node-pruning-archive-storage-validation-wallet-trust-explained)、[比特幣費用指南](/zh-HK/learn/bitcoin-transaction-fees-sats-vbyte-mempool-rbf-explained)。
常見問題
Q1比特幣是否總選區塊數最多的鏈?
不是。節點偏好自己知道的有效鏈中累積工作量最大的一條。高度不能取代工作量比較。
Q2已確認的比特幣交易會失去確認嗎?
會。如果包含交易的區塊在重組中離開活動鏈,節點便不再計算該次確認。交易可再次被包含,但沒有保證。
Q3重組代表比特幣共識規則改變嗎?
不一定。有效區塊可能因傳播速度差異而短暫分叉。重組改變節點跟隨的活動分支,本身不會改變驗證規則。
資料來源與延伸閱讀
回報問題
我們會準備一封包含本文連結的電郵。寄出後,Mark 才會收到你的回報
快速檢查
讀完指南後,用 3 道題檢查一下
問題 01
比特幣節點如何在兩條有效分支間作選擇?
選擇答案即可查看解釋