拜占庭将军问题 The Byzantine Generals problem(五)

拜占庭将军问题 The Byzantine Generals problem(五)
分析多少连通条件能解决拜占庭问题。IC2 要求 忠诚的将领服从忠诚的司令,这要求他们之间要能够通信。特别地,当每一条信息都会通过一个叛徒中转的时候,不能保证将领能获得司令的信息。类似的,如果两个将领只能通过有叛徒的路径通信则IC1无法保证。
拜占庭将军的弱连通假设为,忠诚将军构成的G 的子图要互相连接。在这个条件下,总人数为 n ,不管叛徒的个数,算法 SM(n-2)成立。
接下来证明更加普遍的结果。定义一个图的半径为最小的数 d ,任意两个节点相连至多需要 d 条边。
定理4.
Theorem4. 对任意的 md ,如果有 m 个叛徒且 忠诚将军构成的子图有直径 d, 则 SM(m + d - 1) 解决拜占庭问题。
证明和定理2的证明类似(略)。
推论.如果忠诚将军构成的子图是连接的,则 SM(n - 2)可解决拜占庭问题。
证明,令 d 为忠诚将军构成的图的直径。且已知 d 小于 节点数,所以忠诚将军的人数大于d ,叛徒人数少于 n - d 。令 m = n - d -1 可的证。
可靠的系统大多使用多数票方法保证可靠性,其使用多个处理器得出一致的结果,然后使用多数票表决的方法得到单个值。
使用多数票方法是基于假设不出错的处理器将得到一致的结果。这在它们获得一致的输入时成立。其基于假设出错的处理器不会得到一致的错误结果。但是也有很多其他的情况,无法获得一致的输入,比如出错的程序发送不同的值给其他处理器。比如获取时钟值的时候,很难保证两个处理器获取相同的值等等。所以给出以下前提条件:
1.所有无故障的处理器使用相同的输入。(可以获得相同的输出)
2.如果只输入单元无故障,那么所有无故障的处理器要使用其提供的值作为输入。
【拜占庭将军问题 The Byzantine Generals problem(五)】这里,司令是作为 输入值的提供者,将领是处理器,忠诚为无故障。
剩下部分讲签名的可为造性,以及算法发送信息的可优化性等。

    推荐阅读