Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
blockchain_guide
提交
46580ce1
B
blockchain_guide
项目概览
OpenDocCN
/
blockchain_guide
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
blockchain_guide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
46580ce1
编写于
4月 14, 2017
作者:
B
Baohua Yang
提交者:
GitHub
4月 14, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #42 from qianyingshuo/master
Fix math formulations
上级
0964d9c4
d1855c39
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
4 addition
and
4 deletion
+4
-4
distribute_system/bft.md
distribute_system/bft.md
+4
-4
未找到文件。
distribute_system/bft.md
浏览文件 @
46580ce1
...
...
@@ -14,17 +14,17 @@
对于拜占庭问题来说,假如节点总数为 N,叛变将军数为 F,则当 $$N
\g
e 3F+1$$ 时,问题才有解,即 Byzantine Fault Tolerant (BFT) 算法。
例如,$$N=3
,
F=1$$ 时。
例如,$$N=3
,
F=1$$ 时。
提案人不是叛变者,提案人发送一个提案出来,叛变者可以宣称收到的是相反的命令。则对于第三个人(忠诚者)收到两个相反的消息,无法判断谁是叛变者,则系统无法达到一致。
提案人是叛变者,发送两个相反的提案分别给另外两人,另外两人都收到两个相反的消息,无法判断究竟谁是叛变者,则系统无法达到一致。
更一般的,当提案人不是叛变者,提案人提出提案信息 $$1$$,则对于合作者来看,系统中会有 $$N-F$$ 份确定的信息 $$1$$,和 $$F$$ 份不确定的信息(可能为 $$0$$ 或 $$1$$,假设叛变者会尽量干扰一致的达成),$$N
−
F > F$$,即 $$N > 2F$$ 情况下才能达成一致。
更一般的,当提案人不是叛变者,提案人提出提案信息 $$1$$,则对于合作者来看,系统中会有 $$N-F$$ 份确定的信息 $$1$$,和 $$F$$ 份不确定的信息(可能为 $$0$$ 或 $$1$$,假设叛变者会尽量干扰一致的达成),$$N
-
F > F$$,即 $$N > 2F$$ 情况下才能达成一致。
当提案人是叛变者,会尽量发送相反的提案给 $$N-F$$ 个合作者,从收到
1 的合作者看来,系统中会存在 $$
\f
rac{N-F}{2}$$ 个信息 1,以及 $$
\f
rac{N-F}{2}$$ 个信息 0;从收到 0 的合作者看来,系统中会存在 $$
\f
rac{N-F}{2}$$ 个信息 0,以及 $$
\f
rac{N-F}{2}$$ 个信息 1
;
当提案人是叛变者,会尽量发送相反的提案给 $$N-F$$ 个合作者,从收到
$$1$$ 的合作者看来,系统中会存在 $$
\f
rac{N-F}{2}$$ 个信息 $$1$$,以及 $$
\f
rac{N-F}{2}$$ 个信息 $$0$$ ;从收到 $$0$$ 的合作者看来,系统中会存在 $$
\f
rac{N-F}{2}$$ 个信息 $$0$$ ,以及 $$
\f
rac{N-F}{2}$$ 个信息 $$1$$
;
另外存在
F−1
个不确定的信息。合作者要想达成一致,必须进一步的对所获得的消息进行判定,询问其他人某个被怀疑对象的消息值,并通过取多数来作为被怀疑者的信息值。这个过程可以进一步递归下去。
另外存在
$$F-1$$
个不确定的信息。合作者要想达成一致,必须进一步的对所获得的消息进行判定,询问其他人某个被怀疑对象的消息值,并通过取多数来作为被怀疑者的信息值。这个过程可以进一步递归下去。
Leslie Lamport 证明,当叛变者不超过 $$
\f
rac{1}{3}$$ 时,存在有效的算法,不论叛变者如何折腾,忠诚的将军们总能达成一致的结果。如果叛变者过多,则无法保证一定能达到一致性。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录