比特币共识与确认
了解比特币节点为何会看到竞争中的链尖端、累计工作量如何选择有效链,以及重组会改变什么。
本指南内容两个有效区块可能造成暂时分叉
简短摘要
有效区块几乎同时到达时,比特币节点可能会短暂看到不同的链尖端。每个节点都会验证候选区块,并跟随自己已知的有效链中累计工作量最大的那一条。如果另一条有效分支超过当前活动链,重组会断开部分区块并接入竞争分支,因此交易的确认状态可能改变。
两个有效区块可能造成暂时分叉
矿工基于自己当前知道的链尖端继续工作。如果两个有效区块指向同一父区块,且传播速度不同,节点可能暂时跟随不同的分支。Bitcoin Developer Guide 区块链说明介绍了同时出现的区块和陈旧分支。
比特币比较累计工作量,而非仅比较区块数
每个有效区块都按其工作量目标贡献工作。分支的累计工作量是所有区块工作量之和;难度目标不同,单看高度会误判。Bitcoin Core 的 getblockchaininfo 用 chainwork 表示活动链累计工作量。
“工作量最大”指节点已知的有效链
工作量证明不能使违反共识规则的区块变有效。全节点先按规则验证区块,再比较有效分支的工作量。节点所见还取决于它收到的信息;延迟或隔离会造成不完整视图,可参考 Bitcoin P2P 指南。
重组会断开一条路径并接入另一条
发现更强的有效分支后,节点找到共同祖先,断开其后的活动区块,再验证并连接所选分支。新链尖端的高度可能相同,也可能不同,因为决定因素是工作量,而非高度。这是该节点活动链的变化;不同服务更新状态的时间可能不一致。
可以设想两条有效分支从共同祖先处分开:一条分支包含一笔付款,另一条有效分支之后累积了更多工作。节点得知并验证较强分支后,会断开旧区块并连接竞争分支。于是这笔付款在该节点的活动链中失去原区块确认,即使显示的区块高度恰好相同也一样。付款后续是否仍有效,取决于选中分支中其输入是否已被花费;回到本地内存池并非自动保证,尚未同步的服务也可能继续显示先前视图。

被移出区块中的交易需要重新判断
交易所在区块被断开后,它在该节点活动链上的这次确认不再成立。如果交易仍有效、没有与所选分支中的交易冲突,并符合节点本地政策,它可能回到本地 mempool,但不保证会再次打包。getchaintips只列出该节点已知的链尖端。
确认数表示工作深度,但不等于最终性
包含交易的区块通常算作一次确认,之后每个区块再增加一次。区块后累计工作量越多,通常越难替换,但没有固定确认数能排除重组。支付处理指南说明商家为何会按支付金额和风险制定各自的确认政策。
普通陈旧区块与深度重组并不相同
两个矿工可能几乎同时找到区块;先获得后续区块的分支通常赢得传播竞赛,另一分支就会变成陈旧分支。深度重组可能来自网络中断、有效区块延迟传播或试图替换历史的攻击。更多工作不能迫使验证节点接受无效区块,但隔离节点可能只看到不完整信息。
Core 状态只是本地节点的快照
Bitcoin Core 31.0 的 getblockchaininfo 会显示网络、已验证区块高度、区块头数量、最佳区块哈希、chainwork 和同步字段。getchaintips 可能列出 active、valid-fork、valid-headers、headers-only 或 invalid 状态。请查看与你使用版本相符的 Core RPC 文档。
收到重组提示后再次核对交易包含情况
收到重组提示后,记录交易 ID 和原先包含它的区块哈希,并向可信节点核对该区块是否仍在活动链中,以及交易是否重新包含、仍未确认或与其他支出冲突。浏览器显示的是服务商的视图。存款确认见[存款确认指南](/zh-CN/learn/crypto-deposit-confirmations-finality-explained);节点验证与裁剪见[比特币全节点指南](/zh-CN/learn/bitcoin-full-node-pruning-archive-storage-validation-wallet-trust-explained);费用与 mempool 见[费用指南](/zh-CN/learn/bitcoin-transaction-fees-sats-vbyte-mempool-rbf-explained)。不要仅因界面变化就重新发送,先核实状态。 相关指南: [存款确认指南](/zh-CN/learn/crypto-deposit-confirmations-finality-explained)、[比特币全节点指南](/zh-CN/learn/bitcoin-full-node-pruning-archive-storage-validation-wallet-trust-explained)、[比特币费用指南](/zh-CN/learn/bitcoin-transaction-fees-sats-vbyte-mempool-rbf-explained)。
常见问题
Q1比特币总是选择区块数量最多的链吗?
不是。节点偏好自己已知的有效链中累计工作量最大的那条。高度不能取代工作量比较。
Q2已确认的比特币交易会失去确认数吗?
会。如果包含交易的区块在重组中离开活动链,节点就不再计算这次确认。交易之后可能重新包含,但没有保证。
Q3重组是否意味着比特币共识规则改变?
不一定。有效区块可能因传播速度差异形成短暂分叉。重组改变节点跟随的活动分支,本身并不修改验证规则。
资料来源与延伸阅读
报告问题
我们会准备一封包含本文链接的邮件。发送后,Mark 才会收到你的反馈
快速检查
读完指南后,用 3 道题检查一下
问题 01
比特币节点在两个有效分支间依据什么选择?
选择答案即可查看解释