
区块链与技术协议的关系
区块链可以从数据结构和协议规则两个层面理解。数据结构规定交易怎样组成区块、区块怎样相互关联;协议规则规定节点接受哪些交易和区块,以及面对不同历史记录时怎样协调选择。因此,理解区块链需要同时关注记录方式与验证方式。
哈希、区块链式结构与默克尔树
比特币开发者指南介绍,区块头记录前一区块头的哈希,并通过默克尔根关联区块内的交易。全节点独立验证区块;交易通过引用此前的未花费输出组织起来。出现有效分支时,节点依据累计工作量选择链。

哈希承担数据关联和完整性校验的作用。交易内容改变会影响相关哈希,继而影响区块之间的引用关系。默克尔树则把多笔交易逐层汇总,便于用较少的中间哈希证明一笔交易被某个区块收录。这样的收录证明与完整验证交易是否有效,属于不同问题。

交易状态与双重支付
交易验证需要结合已有记录判断。在未花费交易输出模型中,一个输出一旦被花费,就不能再次作为有效输入使用。防止双重支付因此涉及两个环节:检查交易引用的输出是否可用,以及让节点对交易顺序形成一致记录。该模型适用于采用相应规则的系统,不能概括所有区块链的状态表示方式。
共识、抗女巫攻击与分支选择
以太坊共识机制文档将共识解释为协议、激励及协调机制的组合。其中,工作量证明和权益证明承担抗女巫攻击及区块生产者选择等职责;分支选择规则处理竞争区块。文档所述权益证明机制还以质押权重、奖励和惩罚约束验证者。
抗女巫攻击要解决的是参与者通过大量虚假身份扩大影响的问题;分支选择要解决的是多个候选历史同时存在的问题。这些职责相互配合,不能仅凭采用工作量证明或权益证明,就判断整个共识协议的行为。
适用条件与常见问题
区块链记录是否绝对不能修改?哈希关联使修改能够被检测,共识机制进一步增加改写被接受历史的难度。实际安全性仍依赖具体协议和网络条件,不能把“难以篡改”理解为绝对保证。
“最长链”是否就是区块最多的链?在比特币这一语境中,应关注有效链的累计工作量。节点也不会仅因一条链工作量更大,就接受其中违反验证规则的区块。
所有节点是否必须瞬间一致?区块传播存在先后,节点可能暂时看到不同分支。理解系统如何运行,需要查看它的验证规则和分支选择规则,而不能只看是否使用链式数据结构。