
先建立三个层次的认识
区块链并不是把所有数据放进一条普通链表。入门时可以分成三个问题:区块怎样关联历史,交易怎样被组织和核验,执行交易后的状态怎样保存。链式引用、树形结构和状态模型分别回答不同问题,不能相互替代。
哈希与区块头:建立可核验的关联
哈希把数据映射为固定长度的摘要。相同字节输入得到相同结果;安全性依赖于难以寻找碰撞等密码学性质,而不是数学上不存在碰撞。哈希也不是加密,无法用摘要解密还原原始数据。

比特币区块头引用前一区块头的哈希,并记录交易的Merkle根。这把历史区块和本区块交易关联起来。但关联只能让改动被检测出来,抵抗历史重写还需要工作量证明及节点的共识验证。

Merkle树:核验数据是否被纳入
比特币将交易标识逐层配对计算哈希,最终形成Merkle根。核验某笔交易是否被纳入时,可以使用相关路径上的哈希,而不必获取整块交易。
理解这种证明时必须区分“被纳入”和“有效”:证明交易对应某个根,不等于证明交易满足全部规则;还需要确认这个根属于所认可的区块历史。
交易模型与状态树:不要混为一谈
比特币普通交易通过输入引用此前的输出,尚未花费的输出称为UTXO。同一输出不能重复花费。因此,交易关联不仅是时间排列,还包含对既有输出的引用。
以太坊开发文档介绍的Merkle Patricia Trie结合了按键路径查找、路径压缩与哈希验证,用于组织状态等数据。分支节点表示路径分叉,扩展节点压缩连续路径,叶节点保存路径末端的值。它与聚合交易摘要的Merkle树用途不同,不能视为所有区块链的统一结构。
学习顺序与常见问题
建议先理解字节与序列化,再理解哈希、链式引用和树形证明。序列化决定数据如何转换为字节;即使业务含义相近,字节表达不同也会影响哈希结果。之后再学习交易引用和状态更新,更容易分清数据结构与验证规则。
区块高度是唯一标识吗?不是,分叉时不同区块可能具有相同高度。根哈希能代替完整数据库吗?不能,它用于核验数据,并不保存可直接还原的全部内容。理解这些边界,比记住结构名称更重要。