
保存、校验与共识分别解决什么
区块链保存原理涉及哪些技术概念,可以从三个问题理解:数据以什么形式保存,记录有没有被改变,多个节点如何认可同一段历史。数据结构与编码解决组织问题,哈希与证明支持校验,共识规则约束哪些记录能够被接受。这些功能相互配合,单靠复制文件无法完成全部工作。
比特币:区块链接与交易验证
比特币开发者指南介绍,区块头记录前一区块头的哈希和交易Merkle根,将区块顺序与交易内容关联起来。全节点独立验证区块;交易通过未花费交易输出(UTXO)衔接,防止同一输出重复花费。工作量证明提高改写历史的成本,出现有效分支时,节点依据累计工作量选择链。

这里要区分内容校验与交易有效性:哈希能够帮助发现内容变化,但不能单独判断某笔交易是否重复花费。后者需要节点结合已有记录执行验证规则。

以太坊:状态树与底层数据库
以太坊开发文档介绍的Merkle Patricia Trie,将按键查找的路径结构与哈希校验结合,用于组织账户等状态。它通过压缩路径减少冗余,以确定性编码建立可验证的根值。树的逻辑路径与底层键值数据库不同:一次沿树查询可能需要多次数据库读取。
因此,逻辑上由树组织的数据,物理上仍需要持久化存储。序列化负责将结构转成明确的字节表示,使节点能够对相同内容进行一致计算;根哈希则提供核对数据的依据。
Merkle证明的适用条件
Merkle证明利用目标数据与相关路径信息,验证它是否属于某个根值所代表的数据集合。使用时必须先明确所依据的根值是否可信,以及证明覆盖的是交易还是状态。证明某条记录被包含,并不等于完成该记录的全部业务规则验证。
比特币的交易组织方式与以太坊文档描述的状态结构服务于不同需求,不能直接互换,也不能据此断言所有区块链都采用相同的存储模型。
常见问题:哈希能代替原始数据吗
不能。哈希是校验摘要,无法用于还原完整记录;若要读取具体内容,仍需取得相应数据。类似地,保留根值并不意味着完整内容始终可供访问。
“不可篡改”也不宜理解为绝对无法修改。改变记录会破坏原有校验关系,而修改后的历史能否被网络接受,还取决于共识规则及其安全条件。区块高度只是位置编号;分叉时同一高度可能对应不同区块,识别区块还需要区块哈希。