比特幣共識與確認
了解比特幣節點為何會看到競爭中的鏈尖端、累積工作量如何選擇有效鏈,以及重組會改變什麼。
本指南內容兩個有效區塊可能造成暫時分叉
簡短摘要
有效區塊幾乎同時到達時,比特幣節點可能短暫看到不同的鏈尖端。每個節點會驗證候選區塊,並跟隨自己已知的有效鏈中累積工作量最大的一條。如果另一條有效分支超越目前的活動鏈,重組會斷開部分區塊並接上競爭分支,因此交易的確認狀態可能改變。
兩個有效區塊可能造成暫時分叉
礦工會從自己知道的鏈尖端繼續工作。如果兩個有效區塊指向同一父區塊,且傳播速度不同,節點可能暫時追隨不同分支。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-TW/learn/crypto-deposit-confirmations-finality-explained);節點驗證與裁剪見[比特幣全節點指南](/zh-TW/learn/bitcoin-full-node-pruning-archive-storage-validation-wallet-trust-explained);費用與 mempool 見[費用指南](/zh-TW/learn/bitcoin-transaction-fees-sats-vbyte-mempool-rbf-explained)。不要只因畫面變化就重送,先確認目前狀態。 相關指南:[存款確認指南](/zh-TW/learn/crypto-deposit-confirmations-finality-explained)、[比特幣全節點指南](/zh-TW/learn/bitcoin-full-node-pruning-archive-storage-validation-wallet-trust-explained)、[比特幣費用指南](/zh-TW/learn/bitcoin-transaction-fees-sats-vbyte-mempool-rbf-explained).
常見問題
Q1比特幣總是選區塊數最多的鏈嗎?
不是。節點偏好自己知道的有效鏈中累積工作量最大的那一條。高度不能取代工作量比較。
Q2已確認的比特幣交易會失去確認嗎?
會。如果包含交易的區塊在重組中離開活動鏈,節點便不再計算那次確認。交易可能再次被包含,但沒有保證。
Q3重組是否表示比特幣共識規則改變?
不一定。有效區塊可能因傳播差異形成短暫分叉。重組改變節點追隨的活動分支,本身不會改變驗證規則。
資料來源與延伸閱讀
回報問題
我們會準備一封包含本文連結的電子郵件。寄出後,Mark 才會收到你的回報
快速檢查
讀完指南後,用 3 道題檢查一下
問題 01
比特幣節點如何選擇兩條有效分支?
選擇答案即可查看解釋