【发布时间】:2012-10-15 14:45:45
【问题描述】:
所以我正在阅读 Lamport 关于拜占庭将军的论文,他证明对于 T 恶意将军,您需要 2T+1 个将军在一个小组中阅读共识。但是我不明白如何。如果有 T 个恶意节点组成东西,你只需要 T+1 票就可以超过它们。为什么不是这样?
【问题讨论】:
标签: distributed-computing distributed-transactions
所以我正在阅读 Lamport 关于拜占庭将军的论文,他证明对于 T 恶意将军,您需要 2T+1 个将军在一个小组中阅读共识。但是我不明白如何。如果有 T 个恶意节点组成东西,你只需要 T+1 票就可以超过它们。为什么不是这样?
【问题讨论】:
标签: distributed-computing distributed-transactions
您只需要 T+1 票即可超过他们。为什么不是这样?
如果所有忠诚的将军都给出相同的答案,这是有道理的,但对于 BGP 系统,情况并非如此,每个诚实的元素都可以给你不同的答案。
BGP 适用于每个元素看到不同信息的系统。示例:冗余雷达。它不适用于元素被镜像的系统(例如冗余 HD)。
示例:
【讨论】:
有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 时才解决问题
【讨论】: