区块链 · 数字资产知识 · 行业资讯
文章库关于本站

政策资料

区块链的存储机制入门需要了解什么:数据结构、验证与状态

摘要

理解区块链存储,需要区分交易记录、区块关联、状态数据与节点本地数据库。本文以比特币的区块和UTXO、以太坊的Merkle Patricia Trie为例,解释哈希与树结构如何支持验证,以及这些机制的适用范围和常见误区。

玻璃文档与棱镜的原创资料研究概念插画

先区分存什么、怎样组织和如何验证

区块链存储可以从三个问题入门:保存哪些数据,数据之间怎样关联,节点怎样检查数据可信。交易记录描述发生过的变化,状态数据反映处理交易后的结果;区块和树结构组织这些内容,验证规则约束哪些变化能够被接受。理解这些层次,有助于避免把区块链仅仅看成不断追加的文件。

比特币:区块连接历史,UTXO支持支出检查

比特币开发者指南介绍,区块保存交易,区块头通过前一区块头的哈希连接历史,并用默克尔根关联块内交易。节点独立验证区块;UTXO表示尚未花费的交易输出,用于检查后续支出。对于有效的竞争分支,节点遵循累计工作量最大的链。

这里需要分别理解历史记录与可用输出:前者用于追溯交易,后者帮助判断某个输出还能否被花费。防止重复支出既需要保存相关信息,也需要执行验证规则,单纯复制账本并不能完成这项检查。

以太坊:用树结构组织可验证的状态

以太坊开发文档介绍的Merkle Patricia Trie将键值数据组织为可验证的树,并通过路径压缩减少冗余层级。文档区分状态树、交易树与收据树,以及区块头中对应的根。逻辑上的树查询,可以涉及底层键值数据库的多次读取。

因此,学习存储机制时,要把逻辑结构与磁盘上的保存方式分开。树结构规定数据如何关联、如何形成证明;底层数据库负责实际保存和读取。知道一个根哈希,并不意味着已经拥有它所对应的全部数据。

哈希与证明能说明什么

哈希可以理解为数据的校验指纹。在密码学安全假设下,修改内容会使相关哈希发生变化,树结构还能把这种变化关联到根。根哈希不是可解压的数据副本,无法用它还原全部交易或状态。

默克尔证明适用于核验某项数据是否属于指定根所代表的数据集合。使用它的前提,是确认所依据的根具有可信的链上依据。证明某笔交易被某个区块收录,也不等于独立检查了该区块的全部交易和所有共识规则。

常见问题与适用范围

区块链是否绝对无法修改?哈希关联让修改能够被发现,共识机制进一步约束哪份历史被接受。比特币还通过工作量证明提高重写历史的成本,因此理解安全性时需要同时考虑数据结构与共识条件。

所有区块链都采用相同存储机制吗?不同系统可能采用不同的交易模型、状态结构和验证规则。UTXO与上述状态树应放在各自的技术背景下理解,不能直接推导为所有区块链的统一实现。

← 返回全部文章

延伸阅读 · 相关栏目

行业资讯研究与报告政策资料交易平台观察