
先明确“分支方法”的含义
在区块链入门语境中,“分支方法”可以理解为网络出现多条候选链时,节点识别和选择链的机制。学习时需要分开回答两个问题:一个区块是否符合规则,以及多个有效候选区块之间如何取舍。有效性验证与分叉选择承担不同职责。
本文讨论共识规则下的候选分支,不将其等同于协议升级造成的规则分歧。具体选择方法取决于链采用的协议,不能把某一条链的规则直接套用到所有区块链。

分支为什么会出现
区块通过前序区块的哈希建立连接。如果两个新区块指向同一个前序区块,链的末端就可能形成分支。理解这一结构,可以把区块看作连接在共同历史之后的不同候选记录。

比特币开发指南说明,矿工在相近时间产生区块会形成竞争分支;节点最终在有效候选链中遵循累计工作量最大的链。同一高度可能存在多个区块,因此定位区块应使用区块哈希,不能仅依赖高度。
选链规则有哪些适用条件
比较候选链之前,节点需要验证区块。累计工作量或投票权重用于解决合规候选之间的选择,不能代替交易和区块有效性检查。理解“先验证、再选择”,可以避免把资源优势误认为修改规则的权限。
以太坊共识文档介绍,其权益证明机制通过验证者投票及质押余额形成权重,并结合分叉选择与最终性机制协调链状态。因此,比较比特币和以太坊时,应分别理解工作量与投票权重,不能只比较区块数量。
分支变化如何影响交易确认
交易被某个区块收录,说明它出现在该区块代表的历史中。如果节点随后选择另一条分支,原有收录状态就需要重新核对。查询交易时,除了查看包含它的区块,还应关注该区块是否属于当前采用的链。
这里需要区分交易本身的有效性与它在当前链上的收录状态。分支发生变化,不代表其中每笔交易都变成无效;是否能够被其他区块收录,还取决于交易与当前链状态是否相容。
入门时常见的三个疑问
分支是否一定意味着攻击?不一定。正常出块竞争也可能形成短暂分支,判断原因需要更多信息,不能仅凭分支存在就下结论。
“最长链”是否就是区块最多?对比特币而言,准确理解应落在累计工作量上,单看高度不足以说明选链结果。
知道工作量证明或权益证明,是否就理解了共识?还不够。完整理解需要同时关注参与资格、区块验证、分叉选择和状态确认之间的关系,并按照具体协议解释各环节。