
区块、区块头与父区块
理解区块链的链结构,可以先抓住三个问题:数据装在哪里,区块如何相连,哪条历史被认可。区块组织交易等数据;区块头承载关键摘要和验证信息;父区块引用把新区块接到已有历史之后。具体字段和组织方式取决于协议。
比特币开发者指南介绍,区块头保存前一区块头的哈希和交易的默克尔根。以太坊开发文档则展示了父区块引用、状态根和执行载荷等结构。两者都体现了以哈希连接历史的思路,但字段不能直接混用。

哈希与默克尔根:引用和摘要
哈希可以理解为根据数据计算出的指纹。父区块哈希回答“接在哪个区块之后”,默克尔根则用于概括一组交易。修改被这些摘要覆盖的数据,会改变相应的哈希,使原有引用或验证结果不再匹配。

默克尔树通过逐层汇总哈希得到根值,支持用部分中间哈希验证交易是否被某个区块收录。这种包含证明的适用范围有限:证明收录关系,并不等于独立证明交易满足全部规则,也不等于确认该区块属于被认可的链。
创世区块、区块高度与区块哈希
创世区块是链的起点。区块高度描述区块在链上的位置,比特币从高度零开始编号。高度适合表达先后位置,却不能单独承担唯一标识的作用。
例如,两个候选区块都引用同一个父区块,它们就可能拥有相同高度,但内容与哈希不同。因此,定位具体区块时,需要区分“某个高度”和“某个区块哈希”。
分叉与共识:连接有效还不够
链结构中的分叉,是历史出现竞争分支。比特币指南说明,节点在有效分支之间依据累计工作量选择历史,不能简单理解为只数区块数量。未留在所选链上的区块通常称为陈旧区块;它与父区块未知的孤块含义不同。
以太坊文档介绍的权益证明机制使用验证者证明和分叉选择规则。由此理解“主链”时,需要同时考虑结构引用、区块有效性和协议的选择规则;仅有正确的父区块引用,还不足以让一个区块被网络认可。
常见问题:链是否意味着绝对不可修改
哈希链接让历史修改能够被检测,共识机制进一步约束替代历史被接受的条件。因此,“不可篡改”应结合协议和安全假设理解,不能解释为任何情况下都无法发生历史调整。
另一个容易混淆的问题是交易之间的关联。比特币交易输入引用先前交易的输出,描述的是资金的消费关系;区块引用父区块,描述的是账本历史的排列关系。这两种关系同时存在,但属于不同层次。