
数据结构:哈希、区块与默克尔树
密码学哈希将数据映射为固定长度的摘要,可用于检查内容是否改变。区块引用前一区块的哈希,使历史记录形成关联;默克尔树则逐层汇总交易哈希,将交易集合关联到区块头。比特币开发者指南介绍了这些结构,以及利用中间哈希验证交易被某区块收录的方法。
这些概念解决的问题各不相同:哈希用于检查数据一致性,链式引用建立前后关联,默克尔证明支持局部核验。证明交易被收录,并不等于已经验证该交易及整条链的全部规则。

交易状态:输入、输出与双重支付
比特币采用未花费交易输出,即UTXO模型。普通交易引用此前尚未花费的输出,并生成新的输出;同一输出不能在被接受的交易历史中重复花费。节点据此检查是否出现双重支付。

理解交易时,需要同时关注记录内容和状态约束。即使数据格式正确,如果引用的输出已经花费,也不能通过验证。UTXO是特定的交易组织方式,不能直接作为所有区块链的通用账户模型。
分布式共识:规则、参与资格与分叉选择
以太坊共识机制文档将共识解释为协议、激励和规则共同构成的体系。工作量证明与权益证明承担抵抗女巫攻击、确定区块生产参与方式等作用;发生竞争分支时,还需要分叉选择规则。权益证明体系还通过奖励和惩罚约束验证者行为。
女巫攻击指通过制造大量身份影响系统。若仅按身份数量分配影响力,新增身份就可能破坏机制,因此协议需要资源约束。参与者获得出块机会后,所提出的区块仍需满足有效性规则。
适用条件与常见问题
为什么节点可能暂时看到不同历史?网络传播存在时间差,不同区块也可能在相近时间产生。有效性验证判断哪些区块符合规则,分叉选择则帮助节点在有效分支之间协调。比特币比较的是累计工作量,不能简单理解为只数区块数量。
区块链是否绝对不可修改?链式哈希使历史修改留下结构性变化,共识机制进一步增加重写历史的难度。安全性仍取决于协议假设、资源分布和节点验证。理解具体系统时,应分别核对数据结构、交易规则和共识机制,不能仅凭使用了区块链就推断全部安全属性。