拜占庭将军问题(四)——非全连接下的算法演变

前面几篇文章介绍了解决拜占庭将军问题的算法——OM(m)算法和SM(m)算法。但这个两种算法都是在一个将军能够直接与所有其他将军通信的情况下,进行讨论的。这篇文章将移除这个假设,阐述并非所有的将军都能直接通信的情况下,拜占庭将军问题算法的演变。[1]

拜占庭将军问题

建模

所有将军组成一个有限简单无向图,图的两个节点的边以为着这两个将军可以直接发消息。现在将OM(m)算法和SM(m)算法从全连接的图扩展到多连接的图。

正则邻居集

为了扩展算法,定义如下概念

定义 1.
(a) 节点的集合${i_1, ..., i_p}$被称作节点$i$的正则邻居集,如果满足:

(i) 每个$i_j$是节点$i$的邻居;
(ii) 对于每个不同于$i$的节点$k$,存在开始于$i_j$且不经过$i$的路径$r_{j,k}$,且任意两个不同的路径除了$k$之外没有公共节点。

(b) 图$G$是一个p-正则的,如果每个节点都拥有包含$p$个不同节点的正则邻居集。

如下图所示,图6是一个3-正则图,而图7不是3-正则图,因为中心的节点不存在包含3个节点的正则邻居集。

OM(m)算法扩展

现在将OM(m)算法进行处理,来解决如果$3m$-正则的图$G$中存在$m$个叛徒的情况。

注: $3m$-正则的图至少包含$3m+1$个节点。

算法描述

对于正整数$m$和$p$,当图$G$是$p$-正则的是,定义算法OM(m, p)

算法: OM(m, p)

(0) 选取司令的一个正则邻居集$N$,其中$N$包含$p$个副官;
(1) 司令发送他的值给$N$中的每个副官;
(2) 对于$N$中的每个$i$,令$v_i$为副官$i$从司令接收到的值;如果没有从司令收到指令,默认选择RETREAT。副官$i$发送$v_i$给每个其他的副官$k$,如下:

(A) 如果$m=1$,按照路径$r_{i, k}$发送值。其中,路径的存在由定义1的(a)(ii)部分保证。
(B) 如果$m>1$,副官$i$当作司令,在除去原来司令的图中运行$OM(m-1, p-1)$算法。

(3) 对于每个$k$和$N$中的每个$i$,且$i\neq k$,令$v_i$为副官$k$在第(2)步中从副官$i$处收到的值;如果没收到值,则为RETREAT。副官$k$使用$majority(v_{i_1}, ..., v_{i_p})$作为他的值,其中$N={i_1, ..., i_p}$。

证明

接下来,要证明$OM(m, 3m)$可以解决最多只有m个叛徒的拜占庭将军问题。证明过程和$OM(m)$算法的证明过程类似。

引理 2 对于任意$m>0$和$p\geq 2k+m$,当最多有$m$个叛徒时,算法$OM(m, p)$满足条件IC2

证明: 当$m=1$时,一个副官通过$majority(v_1, ..., v_p)$获得值,其中每个$v_i$是由司令通过与发送别的值的路径互斥的路径发送过来的(即每个$v_i$的路径互斥)。因为至多有$k$个叛徒且$p\geq 2k+1$,因此,一半以上的路径是全部由忠诚的副官组成。因此,如果司令是忠诚的,那么,多于一半的$v_i$值是和司令发送的值一致,故满足条件IC2

当$m>1$时,首先假设在$m-1$时,引理成立,下面证明在$m$时引理也成立。如果司令是忠诚的,那么$N$中的每个副官$p$则会获得正确的值。因为$p>2k$,所以他们中的多数是忠诚的,根据假设,他们会发送正确的值给每个忠诚的副官。因此,在第(3)步中,每个忠诚的副官将获得的值超过半数是正确的,因此,满足条件$IC2$。引理得证。

定理 3 对于任意$m>0$和$p\geq 3m$,当最多有$m$个叛徒时,算法$OM(m, p)$能解决拜占庭将军问题。

证明: 根据引理2,令$k=m$,可知$OM(m, p)$算法满足条件IC2。当司令是忠诚的时,满足条件IC2必然满足条件IC1。所以,只需证明当司令是叛徒时,算法满足条件IC1,也就是说,需要证明在第(3)步时,所有忠诚的副官获得相同的值集。当$m=1$时,因为所有的副官都是忠诚的,且所有路径$r_{i, k}$不通过司令,所以满足条件IC1。当$m>1$时,因为$p\geq 3m$意味着$p-1 \geq 3(m-1)$,通过简单的归纳即可证明。

可以看出,如果只有$3m+1$个将军,那么3m-正则的图其实是全连接的图,因此,$OM(m)$即$OM(m, 3m)$,也就是说,$OM(m)$算法是$OM(m, p)$算法的一个特例。

SM(m)算法的扩展

与$OM(m)$算法不同,$SM(m)$算法可以很容易地扩展到最弱的连接假设。首先来分析如果拜占庭将军问题是可解的需要多少连接。

可解条件分析

因为条件IC2要求忠诚的副官遵守司令的命令,所以,如果司令不能与副官通信时,问题是无解的。尤其是,当司令官发向副官的消息经过叛徒,也是无法保证副官都能收到司令官的命令。同样,如果两个忠诚副官无法通信或者只能通过叛徒进行通信,那么条件IC1也是满足不了的。

对于拜占庭将军问题,如果问题可解那么最弱的连接假设是,由忠诚将军组成的子图是连通的。那么,在这个假设下,无论有多少个叛徒,$SM(n-1)$都能解决拜占庭将军问题,其中,$n$为将军的数量。当然,需要将算法修改为将军只发送消息给他的邻居将军。

证明

令图的直径为$d$,即连接图中任意两点的路径至多包含$d$条边。

定理 4 对于任意$m$和$d$,如果最多存在m个叛徒,且由忠诚将军组成子图的直径为$d$,那么$SM(m+d-1)$算法能解决拜占庭将军问题。

证明:定理4的证明与$SM(m)$算法的证明类似。对于条件IC2,根据假设可知从忠诚的司令到副官$i$至多经过$d-1$个忠诚副官,这些将军会正确转发消息直到副官$i$。条件A4保证了叛徒无法仿制一个不同的指令。

对于条件IC1,假设司令是叛徒,需要证明由忠诚副官$i$收到的指令也会被忠诚的副官$j$收到。假设副官$i$收到指令$v:0:j_1:...:j_k$,且指令没有被副官$j$签名。如果$k<m$,那么副官$i$会将指令发送给他的没有收到指令$v$邻居,通过至多$d-1$步最终会把值转发给副官$j$。如果$k\geq m$,那么消息中$j_1:...:j_k$中至少有一个副官是忠诚的,那么这个忠诚的副官会将值$v$发送给副官$j$。因此,每个忠诚的副官收到的指令集是相同的,通过运行相同的行动函数,忠诚的副官会采取相同的行动。故满足条件IC1

推论 如果忠诚将军组成的图是连通的,那么$SM(n-2)$算法能解决拜占庭将军问题。

证明:令$d$为忠诚将军图的直径。因为一个连通的图的直径小于图的节点的个数,因此,肯定有多于$d$个的忠诚的将军,有少于$n-d$个的叛徒。令$m=n-d-1$,根据定理4,推论则成立。

定理4假设忠诚将军组成的子图是连通的。可以很容易将他的证明进行扩展,得出如下结论:即使不是这种情况,如果至多有$m$个叛徒,算法$SM(m+d-1)$拥有如下属性:

  1. 如果任意两个忠诚的将军通过长度至多为$d$的路径连接,且这个路径只包含忠诚将军,那么这两个忠诚将军遵从相同的指令。
  2. 如果司令是忠诚的,任意忠诚将军通过长度至多为$m+d$的路径与司令连接,且路径只包含忠诚将军,那个这个忠诚将军遵从司令的指令。

小结

本文对Leslie经典论文《The Byzantine Generals Problem》的第5部分进行了介绍,讨论了并不是所有的将军都能直接通信的情况下,对$OM(m)$和$SM(m)$算法的扩展。

论文的第6部分针对构建可靠系统,对假设进行了分析。在此不作介绍,感兴趣的读者可以参考Leslie的原文[2]


  1. 由于简书Markdown编辑器不支持公式,如果这篇文章看的不是很清楚,可移步这里拜占庭将军问题(四)——非全连接下的算法演变

  2. Lamport L, Shostak R, Pease M. The Byzantine generals problem[J]. ACM Transactions on Programming Languages and Systems (TOPLAS), 1982, 4(3): 382-401.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,425评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,058评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,186评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,848评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,249评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,554评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,830评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,536评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,239评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,505评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,004评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,346评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,999评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,060评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,821评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,574评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,480评论 2 267

推荐阅读更多精彩内容