
误区一:所有区块链都有相同的字段
区块之间通过密码学引用建立联系,但具体字段取决于协议。比特币开发者参考中的区块头包含版本、前一区块头哈希、交易默克尔根、时间、目标阈值编码和随机数。以太坊开发者文档则区分共识层区块与执行负载,涉及提议者、证明和交易执行等信息。
因此,介绍内容结构时应先说明所讨论的网络和层次。把一种链的字段清单当作通用模板,会混淆数据组织与共识机制。

误区二:区块头保存了完整交易
比特币区块的序列化结构包括区块头、交易数量和交易列表。头部的默克尔根用于关联交易集合,本身不包含可直接读取的完整交易内容。

可以把根哈希理解为核验数据的一项依据。掌握摘要与持有原始数据是两件事:只读取头部,无法获得每笔交易的全部字段,也无法完成所有交易规则检查。
误区三:交易根和状态根表达同一件事
以太坊的执行数据区分交易、执行后状态以及交易收据等内容。交易描述要执行的操作,状态体现执行后的结果,收据记录执行相关结果。不同根哈希对应不同的数据对象。
阅读字段时,还要看它属于哪一层。共识层状态根与执行层状态根有不同的对象范围,不能仅凭字段名称相似,就认定它们承诺的是同一份数据。
误区四:区块里的交易可以随意排序
交易顺序可能影响依赖关系与执行结果。比特币要求 coinbase 交易位于首位;同一区块内若一笔交易花费另一笔交易创建的输出,创建输出的交易必须在前。以太坊区块内的交易也有确定顺序。
因此,交易列表不仅是一组条目的集合。解释区块内容时,应同时关注条目本身、排列顺序及其验证规则。
误区五:有哈希连接就代表内容一定有效
哈希连接使历史内容的变化能够被检测,但是否接受一个区块,还要检查交易、执行结果和协议规则。结构上的关联不能独立证明所有内容合法。
常见问题是:区块已经被打包,是否就不需要验证?仍然需要。数据结构提供可核验的组织方式,节点验证与共识规则决定如何处理这些数据。涉及容量、奖励或升级字段时,也应明确协议版本,避免把某一时期的参数当作永久属性。