PBFT两两相交确定一个非叛徒节点。已知网络中有N个节点,其中f个是拜占庭节点,这f个拜占庭节点的行为有2种 1).对请求不做相应 2).广播错误的消息到网络。 为了使整个网络仍然能运行,那么对某一个正确节点来说它只需收到N-f条消息就应该能执行接下来的交易,因为f个拜占庭节点可能不响应。这又会产生其他问题,因为这个节点收到的N-f条消息中可能包含了f条拜占庭消息(拜占庭节点网络响应快)。
以节点1(收到N-f条消息)和节点2(收到N-f条消息)收到的消息集为例做交集来确定一个非叛徒节点,由于交集中可能包含f个叛徒节点来的消息,所以交集中至少要有f+1个节点的消息才能确定有至少1个正确节点,因此 (N-f) + (N-f) -N >= f+1.
还有一种更为简单的理解方式,每个节点收到N-f条消息,这其中可能包含了f条拜占庭消息,根据少数服从多数原则,其中还包含至少f+1条正确消息才能做出正确的判断。因此N-f >= f + (f+1), 即 N >= 3f + 1