PBFT 拜占庭容错算法是一种用于检测共识中发生网络分区(例如客户端或验证者之间的网络不可达)的区块链中的容错算法,它可以防止恶意攻击并保证正确的达成共识。它是由 Michael Backes 和 Miguel Castro 提出的一种原始容错机制,它定义了一种令牌机制,通过它可以防止发生不一致的事件,同时允许一致的分布式系统在网络中运行。
PBFT 使用一个中心的验证者来控制共识(可以是一组验证者),这些验证者处理来自其他验证者的消息,并对其进行验证。每个验证者通过定期发送凭证来认可他们所接收的消息,并通过开放式投票来对消息进行投票。投票结果可以用来决定候选消息的最终状态,而此后所有验证者都将执行此候选消息,这就是 PBFT 在区块链中实现容错的基础。
在 PBFT 的容错机制中,至少有 3/4 的节点必须对消息想法表示认可或不认可。如果少于3/4的节点认可消息,就会发生分歧,这时就会启用PBFT提出的第二种容错机制来处理,称为view change。view change 是一种分布式的投票机制,由验证者节点组成的一个“阶段”团组来实施,团组中至少有“ 3/4 的验证者参与”,每个验证者都会重新投票,确定下一个阶段的状态。如果超过3/4的验证者认可消息,就会产生共识,当前候选消息就会被认可。
最后,PBFT 拜占庭容错算法非常有效,可抑制恶意节点的攻击,保障分布式应用的一致性。它利用一个可以同意高效的原则来达成共识,并在处理延迟、故障和分区的情况下使系统可用。此外,PBFT 算法可以有效地调整网络性能改善并发,网络的可靠性水平也可以大大提高。