
一、验证算法是否就是共识算法
讨论区块链验证算法有哪些常见问题,首先要区分三个任务:检查交易是否符合规则,检查区块及其状态变化是否合法,以及在多个合法候选分支之间确定共同认可的历史。它们相互配合,但不能互相替代。
因此,工作量证明和权益证明不能概括全部验证过程。判断一个区块能否被接受,既涉及共识条件,也涉及其中交易的有效性。获得出块机会,不等于可以跳过规则检查。

二、工作量证明是否意味着验证也很耗能
比特币开发者指南说明,工作量证明要求区块头哈希满足目标阈值;全节点还会独立验证区块。普通交易输入需要引用未花费输出,输出总额不能超过输入总额。

这里容易混淆的是生成证明与检查证明。寻找符合要求的哈希需要反复尝试,而检查已有哈希是否达标是另一项任务。讨论性能时,应分别考虑出块计算、交易验证、数据存储与网络传播,不能用一个“耗能”标签代替全部分析。
三、权益证明是否不再需要执行交易
以太坊权益证明文档说明,节点仍需重新执行区块中的交易,检查状态变化,并由共识相关组件处理区块提议和投票。权益证明改变了共识参与方式,并没有取消交易执行验证。
因此,降低出块竞争中的计算消耗,不代表存储、带宽和执行成本都消失了。评价验证效率,需要明确比较的是哪类工作,而不是仅比较共识机制名称。
四、出现分叉是否代表验证失败
比特币可能因近乎同时出块产生竞争分支,并在合法分支中依据累计工作量选择链;以太坊则通过投票权重相关的分叉选择规则确定链头。
分叉可能源于节点接收信息的时间不同,不能一概视为算法故障。“是否合法”与“当前选择哪条分支”是两个问题。另外,比特币的区块高度不是全局唯一标识,同一高度可能对应不同区块。
五、交易入块是否等于最终确认
以太坊通过检查点和达到规定权益比例的投票建立最终性。因此,交易进入区块、区块成为当前链头、区块达到最终性,属于不同状态。
解释确认状态时,应说明具体协议采用什么判定标准。不能把界面上的“已入块”直接解释为所有共识步骤均已完成,也不能把不同链的确认概念机械对应。
六、轻量验证能否替代完整验证
比特币的默克尔证明可以用于核对某笔交易是否包含在特定区块中,但包含关系本身不等于完成了全部交易和区块规则检查。
常见误区是把局部证明当作整体有效性的证明。理解验证结果时,应问清楚:它证明了数据包含关系、规则符合性,还是共识确认状态?上述具体机制分别适用于相应协议,不应直接推广为所有区块链的共同实现。