在使用PBFT的系统中,假设最多允许f个节点发生异常,则正常节点数k需满足k>f, 节点总数是n需满足n>2f。 假如f个异常节点没有响应,在不知情的情况下,我们一般认为响应的节点里可能有f个坏节点,则节点总数n>3f,所以节点总数最少为3f+1,可以保证最多有f节点发生异常。 参考论文原文如下,看了好几遍加上查阅资料...
Pbft算法本身是多数一致性算法,就是大多数节点认为打成一致就认为是正确的。假定f个节点是故障节点,f个节点是拜占庭节点,那么达成一致需要的正确节点最少就是f+1个,当然这是最坏的情况,如果故障节点集合和拜占庭节点集合有重复,可以不需要f+1个正确节点,但是为了保证最坏的情况算法还能正常运行,所以必须保证正确节点...
PBFT协议为什么要求N>3f+1 最坏的情况是:f个节点是有问题的,由于到达顺序的问题,有可能f个有问题的节点比正常的f个节点先返回消息,又要保证收到的正常的节点比有问题的节点多,所以需要满足N-f-f>f => N>3f,所以至少3f+1个节点 为什么至少要2f个prepare (包括自己的pre-prepare共2f+1). 这是因为之前论...