拜占庭容错为什么是3f+1

拜占庭环境

在拜占庭环境中,假设总节点数为N,恶意节点数为F,恶意节点的行为有两种:

  • 一是收不到来自该节点的消息
  • 二是该节点发送任意多的错误消息。

证明

不发送消息的节点是无法侦测的,在一个拜占庭容错环境中,某个节点在参与共识判断时,最坏情况要假设有F个未发送消息的恶意节点存在,我们标注为$latex F_{nomsg}$

总节点数为N, 能收到消息的节点数$latex N-F_{nomsg}$,得满足以下条件才能达成共识

$latex N-F_{nomsg}>F_{nomsg}$

能收到消息的节点数得大于未收到消息的节点数

但收到$latex N-F_{nomsg}$个节点消息后,还不能得出结论,注意恶意节点的第二个行为,恶意节点可能发出错误消息,因此$latex N-F_{nomsg}$个节点中,最多可能包含F个恶意节点。

我们标注恶意节点为$latex F_{mal}$,诚实节点为$latex I$,此时:

$latex (N-F_{nomsg}=F_{mal} + I) >F_{nomsg} $
$latex (I=N-F_{nomsg}-F_{mal}) >F_{nomsg}$

Wait a minute

等等,咱们不是假设了最多F个恶意节点了吗?既然F个恶意节点$latex F_{nomsg}$已经出现在了等式右边,为什么还有另外F个恶意节点$latex F_{mal}$,这一共不是2F个恶意节点吗?

这是因为,从接收者的角度,他无法判断F的分布,F即可能是$latex F_{nomsg}$,也可能是
$latex F_{mal}$,要万无一失的得出正确结论的话,只有假设两个地方都存在F个错误节点,这也是很多人困惑的地方

结论

其中$latex F_{mal}$$latex F_{nomsg}$都最多F个,因此

$latex N-F_{nomsg}-F_{mal} >F_{nomsg}$

等于

$latex N-F-F>F$
$latex N>3F$

即N至少为3F+1。



《 “拜占庭容错为什么是3f+1” 》 有 3 条评论

  1. Red nodes denote variables describing heart function and blood pressure; green nodes, renal function; orange nodes, Na and water reabsorption along a nephron; blue nodes, the renin angiotensin aldosterone system RAAS finasteride on sale no prescription This complexity arises from the fact that AD progresses from a latency phase where no signs or symptoms are observed even though pathophysiological processes are ongoing, to a prodromal phase with mild cognitive impairment MCI, and eventually to dementia 15

  2. buy priligy in usa lipozene blood pressure medicine The well known Figg group among adventurers brands of water pills has ended

  3. Mauricio KSrZjaIYYcFKanKuZ 6 18 2022 paxil or priligy In effect, I ve got a pouch of month old oil inside my hip, walled off by my immune system

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

About Me

一位程序员,会弹吉他,喜欢读诗。
有一颗感恩的心,一位美丽的妻子,两个可爱的女儿
mail: geraldlee0825@gmail.com
github: https://github.com/lisuxiaoqi
medium: https://medium.com/@geraldlee0825