内容提要
PoS和PBFT区块链面临处理分叉的挑战。在PoS中,使用VRF从候选列表中选择验证者,而在PBFT中,涉及投票过程。当出现分叉时,PoS和PBFT的共识机制在如何处理链的选择上有所不同。在PoS中,利益相关者列表必须一致,而在PBFT中,共识依赖于链选择规则。不同的区块链平台,如Cosmos、Cardano和Ethereum,根据其特定的共识机制采取了各自的处理分叉的方法。
延伸解读
PoS 与 PBFT 分叉处理的核心差异
PoS 和 PBFT 链因出块无需算力成本,无法沿用 PoW 的最长链原则。两者都依赖质押者列表的一致性,但处理分叉的机制不同:PBFT 链在列表一致时通常不会分叉,而 PoS 链即使列表一致,也可能因同一 slot 产生多个块而分叉,需依赖链选择规则恢复。这反映了共识设计对分叉容忍度的根本差异。
以太坊如何通过检查点机制选择主链
以太坊的分叉选择并非基于最长链,而是基于检查点(checkpoint)。每个 epoch 是一个检查点,获得超过 2/3 投票的检查点进入 justified 状态,当下下个检查点也 justified 时,当前检查点 finalized。主链是拥有最多检查点的链。这种机制使交易最终确认需约 15 分钟,但提升了安全性。
Cardano 的链选择规则与最长链攻击防范
Cardano 采用 Ouroboros Genesis 的 maxvalid-mc 规则,引入移动检查点概念。本地链在面对分叉时,若分叉链未超过 k 个块,则选择最长链;若超过 k 个块,则直接不选。这限制了最长链的选择范围,从而避免最长链攻击。该规则经过学术推演和实际检验,体现了对安全性的权衡。
质押者列表一致性:联盟链与公链的对比
联盟链没有质押机制,节点列表通过配置文件静态维护,不一致几乎只可能是配置错误,排查简单。而公链如以太坊,质押者列表动态更新,需通过 Eth Data 字段同步,更新周期约 17 小时,且需超过半数区块确认,确保一致性。这种动态机制更复杂,但适应了开放网络的需求。
Q&A
PoS和PBFT区块链在处理分叉时有什么主要区别?
PoS依赖于质押者列表的一致性,而PBFT则依赖于链选择规则。PoS在分叉时需要确保质押者列表一致,而PBFT在质押者列表一致的情况下不会分叉。
以太坊是如何处理分叉的?
以太坊通过投票机制和检查点选择主链,选择投票数多的块,并基于检查点机制来确定最终链。
Cardano的链选择规则是怎样的?
Cardano使用Ouroboros Genesis版本的链选择规则,结合了移动检查点的特性,确保在面对多条分叉链时选择最长的链。
Cosmos如何处理质押者列表不一致的情况?
在Cosmos中,如果质押者列表不一致,网络会进行投票,确保只有一个块获得超过2/3的投票,从而排除不一致的节点。
PBFT链在什么情况下不会分叉?
PBFT链在质押者列表一致的情况下不会分叉,确保网络正常运行。
PoS链的质押者列表更新周期是多久?
以太坊的质押者列表大约每17个小时更新一次,以确保一致性。