
先区分存储结构与共识规则
“存储规则”涉及不同层次:数据结构描述记录如何组织,编码规则描述数据如何转换为字节,共识规则决定节点接受哪些区块和交易。理解术语时,先判断它属于哪一层,才能避免把“可以写入数据库”误解成“已经被网络认可”。
比特币:区块头、Merkle根与UTXO
比特币区块头包含前一区块头的哈希和交易的Merkle根。前者连接区块,后者通过逐层汇总交易哈希形成。UTXO指尚未被花费的交易输出,是判断普通交易输入能否使用的基础;节点还需依照共识规则验证区块与交易。
这几个术语回答不同问题:区块链接说明历史记录的衔接关系,Merkle根用于核验交易归属,UTXO描述输出是否仍可花费。交易曾被收录,并不表示它产生的输出至今仍未被使用。
以太坊:状态树、路径与节点
以太坊的Merkle Patricia Trie结合路径检索、路径压缩与哈希校验。分支节点处理路径分叉,扩展节点压缩连续路径,叶子节点保存剩余路径和值。状态根、交易根和收据根分别对应不同数据集合;RLP则负责节点数据的序列化编码。
路径可以理解为查找某项数据所需遵循的路线。树规定沿什么路线访问数据,底层键值数据库负责取回相应节点,因此一次树查询可能涉及多次数据库读取。逻辑上的树结构与磁盘中的存放方式需要分开理解。
哈希与证明在什么条件下有效
哈希为数据生成用于校验的摘要,不是可还原原文的压缩文件。根哈希依赖下层数据,在哈希算法的安全假设下,修改数据会使原有校验关系失效。这里的保障来自密码学性质,而不是数学意义上绝不存在碰撞。
Merkle包含证明的用途,是相对于一个已确认可信的根,核验某条记录是否属于对应集合。它不能单独证明交易符合全部共识规则,也不能证明记录描述的现实事件真实发生。
常见问题:有根哈希就能恢复全部数据吗
不能。根哈希提供校验依据,恢复完整内容仍需要相应数据。类似地,验证某条记录的证明,也不等于已经保存整个数据集合。
不同链也不能直接套用同一套术语关系。理解具体系统时,应先确认它记录的是交易历史、未花费输出还是账户状态,再识别对应的根、路径和验证规则。