
验证算法指的是什么
“区块链验证算法”容易被当作一个统称。实际上,节点需要检查交易和区块是否符合规则,也需要在出现多个有效区块时,依据共识规则选择要跟随的链。工作量证明和权益证明主要涉及参与资格、出块及抗女巫攻击;它们不能代替交易有效性检查或分叉选择规则。
为什么通过哈希检查还不够
区块哈希和前一区块哈希把记录关联起来,交易构成的默克尔树则支持检查某笔交易是否被纳入区块。但“交易被纳入”不等于“交易必然有效”:节点仍须按相应网络的规则检查交易及区块。例如,在比特币的未花费交易输出模型中,重复使用已花费的输出属于双重支付,不能仅凭一条默克尔证明排除这种问题。

同时出现两个区块怎么办
两个有效区块可能在相近时间产生,或被不同节点先后收到,因而出现暂时分叉。这不必然表示某个节点验证错误;节点还要按照分叉选择规则决定跟随哪条链。比特币的工作量证明链比较累计工作量,以太坊的权益证明机制则将验证者投票及其质押权重用于链头选择。两者的规则不能混为“区块数较多就正确”。

验证通过是否意味着记录不会变化
不意味着。尤其在链头附近,后续区块或投票可能改变节点跟随的分支,使原先看到的记录受到影响。因此,应区分“当前节点接受了有效区块”和“记录在该网络的共识规则下已足够稳定”。判断稳定性的具体方式取决于所讨论的区块链,不能把一种网络的确认方式直接套用到另一种网络。
不同机制适用于哪些讨论
讨论工作量证明时,重点是区块是否满足难度要求、节点是否遵守相同的有效性规则,以及分叉的累计工作量如何比较。讨论权益证明时,还需要关注验证者如何提出和确认区块、投票权重如何进入分叉选择,以及奖惩机制如何约束行为。无论采用哪种机制,验证结果都依赖明确的网络规则;脱离具体协议,无法用一个统一的算法名称概括全部安全性质。