因此,我正在阅读Lamport关于拜占庭将军的论文,其中他证明,对于T恶意将军,你需要一组2T + 1名将军来阅读共识。但是我不明白怎么做。如果有T个恶意节点组成东西,你只需要T + 1票就可以投票。为什么不是这样?
有a section on Wikipedia about this:
一种解决方案考虑了可以伪造消息的情况,但只要叛逆将军的数量不等于或超过三分之一,这将是拜占庭容错的情况。如果指挥官是叛徒,那么处理三分之一或更多叛徒的不可能性最终会减少证明1指挥官+ 2中尉问题无法解决。原因是,如果我们有三个指挥官,A,B和C,A是叛徒:当A告诉B攻击而C撤退,B和C互相发送消息时,转发A的消息,既不是B C也不知道谁是叛徒,因为它不一定是A - 其他指挥官可能伪造了据称来自A的消息。可以证明,如果n是总数的总数,则t是数字在那个n中的叛徒,只有当n大于或等于3t + 1时才有问题的解决方案
你只需要T + 1票就可以投票。为什么不是这样?
如果所有忠诚的将军产生相同的答案,这是有道理的,但对于BGP系统来说情况并非如此,其中每个诚实元素可以给出不同的答案。
BGP适用于每个元素看到不同信息的系统。示例:冗余雷达。它不适用于镜像元素的系统(例如冗余HD)。
例: