拜占庭容错算法(PBFT)

拜占庭将军问题反映到现实情况就是:在一个不可靠的信道上,如何保证信息传递的一致性。

解决方法:拜占庭容错算法(PBFT),分为三个阶段:预准备(pre-prepare)、准备(prepare)、确认(commit)

从图中可以看到C发出一个请求,四个信道中3号信道是有问题的。

第一步:C发出请求,到了0(可以是任意信道)

第二步:0在预准备阶段广播到所有节点,其中3有故障未到达

第三步:准备阶段,如果收到的请求超过一定数量,发出广播

第四部:确认阶段,如果收到的请求超过一定数量,对C进行反馈

在N >= 3F + 1的情况下一致性是可以用这种方法解决的,N是总计算机数,F是有问题的计算机数

可以看出在错误节点小于1/3的时候,这种方法时可行的。央行使用的就是PBFT。