所以我正在阅读 Lamport 关于拜占庭将军的论文,其中他证明了对于 T 个恶意将军,你需要 2T+1 个将军在一个组中才能阅读共识。但是我不明白怎么做。如果有T个恶意节点编造东西,你只需要T+1票就可以击败他们。为什么事实并非如此?
最佳答案
有a section on Wikipedia about this :
One solution considers scenarios in which messages may be forged, but which will be Byzantine-fault-tolerant as long as the number of traitorous generals does not equal or exceed one third. The impossibility of dealing with one-third or more traitors ultimately reduces to proving that the 1 Commander + 2 Lieutenants problem cannot be solved, if the Commander is traitorous. The reason is, if we have three commanders, A, B, and C, and A is the traitor: when A tells B to attack and C to retreat, and B and C send messages to each other, forwarding A's message, neither B nor C can figure out who is the traitor, since it isn't necessarily A – the other commander could have forged the message purportedly from A. It can be shown that if n is the number of generals in total, and t is the number of traitors in that n, then there are solutions to the problem only when n is greater than or equal to 3t + 1
关于distributed-computing - 拜占庭将军,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13068223/