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

钱包与账户

区块链分类存储的特点的适用条件有哪些:账本与状态数据的区别

摘要

“分类存储”并非一种统一的区块链数据结构。理解这一问题,可以区分按顺序记录的区块数据、用于验证交易是否被收录的默克尔树,以及支持按键查询的状态树,再根据数据用途判断适用条件。

冷钱包和热钱包的区别的科技主题配图

先明确“分类存储”的含义

区块链中的数据并不都以同一种方式组织。“分类存储”可以理解为:根据数据承担的任务,选择不同的组织和验证方式,而不是把它视为某项通用的协议功能。例如,历史记录需要保留顺序,当前状态需要按键定位,验证某条记录是否存在则需要能够连接到可信根值的证明。具体系统是否同时采用这些结构,仍取决于其设计。

按顺序保存历史记录

以比特币的区块链结构为例,区块按顺序记录交易,区块头包含前一区块头的哈希,从而将区块连接起来。区块内的交易哈希还可组成默克尔树,其根值写入区块头。这种组织方式适合需要核对交易收录情况、追溯记录先后关系的场景。

冷钱包硬件钱包的科技主题配图

哈希链接有助于发现历史内容被改动,但不能仅凭“数据已上链”就断言记录真实或绝对不可更改。验证仍要结合区块和交易的有效性规则,以及对相关区块头的信任依据。

区块链纸钱包的科技主题配图

按键组织可查询的状态

以太坊执行层使用改进的默克尔帕特里夏树组织状态等数据。状态可以理解为某一时点账户和合约等信息的集合;树中的路径用于定位键值,节点哈希与根哈希则用于校验数据之间的关系。相较于单纯沿时间顺序查找记录,这种结构更适合需要按键读取、更新并验证当前状态的场景。

该结构还通过压缩没有分叉的路径减少冗余节点。不过,树上的一次查询可能涉及多次底层数据库读取,因此不能把树的查找过程等同于一次数据库查找。选择这类结构时,需要考虑查询需求、更新方式和存储开销。

适用条件与常见问题

如果重点是保存可追溯的历史顺序,应关注区块链接及记录验证;如果重点是确认某笔交易已被某个区块收录,默克尔树提供了依据根值和中间哈希进行验证的方式;如果重点是频繁定位并核验当前键值状态,则应关注状态树一类的索引结构。这些用途可以同时存在,并非互斥的三种区块链。

常见疑问是:有根哈希,是否就不必取得原始数据?答案是否定的。根哈希用于核对数据或证明的一致性,不能替代实际数据。另一个疑问是:所有区块链是否都采用以太坊的状态树?也不是。比特币区块中的交易默克尔树与以太坊用于组织状态的默克尔帕特里夏树,解决的问题不同,不能直接视为同一种存储方案。

← 返回全部文章

延伸阅读 · 相关栏目

安全防护钱包与账户风险识别信息核验