
误区一:选定PoW或PoS就完成了共识设计
以太坊共识机制文档指出,工作量证明与权益证明属于共识机制的组成部分;完整机制还涉及协议规则、激励以及分叉选择。这意味着,建设系统时仅确定参与者投入何种资源,并不足以说明节点怎样形成一致状态。
具体设计需要回答:谁有资格提出区块,其他节点如何验证,出现竞争区块时如何选择,以及违规行为如何处理。这些规则需要配合,不能由一个算法名称替代。
误区二:节点越多,就一定越安全
开放网络中的一个参与者可能创建多个身份,因此身份数量不能直接代表独立参与程度。抗女巫攻击机制的作用,是使影响共识需要付出资源成本。
判断系统安全性,需要明确参与资格和共识权重的依据。按算力或权益计权的系统,不能直接套用按节点数量计票的理解;不同协议的门槛也不能相互照搬。
误区三:哈希连接让历史绝对无法修改
比特币开发者指南说明,区块通过前一区块头的哈希连接,全节点独立验证区块;有效分支之间的选择依据累计工作量。哈希关联使历史修改牵动后续区块,而共识规则与资源成本共同限制历史改写。
因此,检测出内容变化与阻止修改后的历史被接受,是两个不同问题。建设系统时,应分别说明数据完整性如何验证,以及什么条件下节点会接受另一条历史。
误区四:最长链就是区块数量最多的链
在比特币的语境中,“最长链”通常指累计工作量最大的有效链。比较链之前,节点仍需检查其中的区块是否符合规则,链更长不会让无效交易自动变得有效。
这一理解适用于采用相应工作量证明规则的系统。其他机制可能使用不同的权重和分叉选择规则,不能把同一种链选择方式视为所有区块链的通用标准。
常见问题:出块是否就意味着最终确定
不一定。传播延迟或同时出块可能产生竞争分支,交易进入某个区块与该区块稳定保留在被接受的历史中,是不同状态。应用应按所用协议区分收录、确认与最终性。
区块高度也不能作为全局唯一标识:分叉时同一高度可能出现多个区块。系统记录和核对区块时,应使用区块哈希识别具体区块,并将高度用于表示其位置。