Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
blockchain_guide
提交
6c910613
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 搜索 >>
提交
6c910613
编写于
5月 16, 2017
作者:
Y
yeasy
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of github.com:yeasy/blockchain_guide
上级
a1f45708
46580ce1
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
5 addition
and
5 deletion
+5
-5
bitcoin/lightning_network.md
bitcoin/lightning_network.md
+1
-1
distribute_system/bft.md
distribute_system/bft.md
+4
-4
未找到文件。
bitcoin/lightning_network.md
浏览文件 @
6c910613
...
...
@@ -22,7 +22,7 @@ Recoverable Sequence Maturity Contract,中文可以翻译为“可撤销的顺
不太恰当的例子,约定一定时间内,有人知道了某个暗语(可以生成匹配的哈希值),就可以拿到这个指定的资金。
推广一步,甲想转账给丙,丙先发给甲一个哈希值。甲可以
跟先
乙签订一个合同,如果你在一定时间内能告诉我一个暗语,我就给你多少钱。乙于是跑去跟丙签订一个合同,如果你告诉我那个暗语,我就给你多少钱。丙于是告诉乙暗语,拿到乙的钱,乙又从甲拿到钱。最终达到结果是甲转账给丙。这样甲和丙之间似乎构成了一条完整的虚拟的“支付通道”。
推广一步,甲想转账给丙,丙先发给甲一个哈希值。甲可以
先跟
乙签订一个合同,如果你在一定时间内能告诉我一个暗语,我就给你多少钱。乙于是跑去跟丙签订一个合同,如果你告诉我那个暗语,我就给你多少钱。丙于是告诉乙暗语,拿到乙的钱,乙又从甲拿到钱。最终达到结果是甲转账给丙。这样甲和丙之间似乎构成了一条完整的虚拟的“支付通道”。
HTLC 的机制可以扩展到多个人,大家可以想象一下,想象出来了就理解了闪电网络。
...
...
distribute_system/bft.md
浏览文件 @
6c910613
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录