
验证需要回答哪些问题
理解区块链验证功能涉及哪些技术概念,可以先区分三个问题:数据是否发生变化,交易是否符合规则,以及节点应认可哪条交易历史。这些问题相互关联,却需要不同的技术来解决。
比特币开发文档介绍了全节点独立检查区块、交易花费约束和链结构;以太坊共识机制文档强调,网络一致性还依赖协议、激励和分叉选择。验证因此是一组配合工作的检查过程。

哈希与默克尔树:核对数据及其归属
密码学哈希将数据映射为摘要,用于检查内容是否一致。区块引用前一区块的哈希,使历史内容的变化能够沿引用关系被发现;维持历史可信还需要共识规则提供约束。

默克尔树将多笔交易的哈希逐层汇总为根。结合区块头中的根和必要的中间哈希,可以检查某笔交易是否被该区块收录。适用边界是:收录证明本身不等于交易有效性证明,也不意味着该区块已经获得网络认可。
交易规则与状态:识别重复花费
交易验证需要结合账本状态。以比特币的未花费交易输出模型为例,普通交易引用的输出必须尚未花费,输出总额不能超过输入总额。同一输出不能在有效链中被重复使用。
这说明数据格式正确只是检查的一部分。即使一笔交易能够被解析并计算哈希,节点仍需判断它引用的资源是否可用。这里的交易输出规则适用于比特币模型,不能直接套用到所有区块链。
共识、抗女巫攻击与分叉选择
共识机制协调分布式节点对账本状态形成一致认识。工作量证明和权益证明通过算力投入或质押资源约束参与权重,降低大量虚假身份干扰系统的能力;它们还需要与其他协议规则配合。
多个候选区块出现时,分叉选择负责确定应继续跟随的分支。比特币比较有效候选链的累计工作量;以太坊权益证明机制使用按质押权重计量的验证者证明。比较的前提仍是候选区块符合相应规则。
常见问题与适用边界
区块更长就一定有效吗?区块数量不能替代有效性检查,比特币的链选择也不能简单理解为数区块。被收录的交易一定不会改变位置吗?竞争分支可能引发链重组,收录状态与历史稳定程度需要分别理解。
轻量验证能替代全节点吗?默克尔证明适合核对收录关系,全节点则检查更完整的交易与区块规则。讨论某项“验证功能”时,应明确它验证的对象、依赖的链信息,以及尚未覆盖的检查范围。