[求职] 区块链后端开发,熟悉 比特币/以太坊/Solana/Cosmos

76 天前
 smallyu

感觉博客的表达能力比简历还强。如果有合适的工作机会,可以联系我让我发 PDF 简历。
如果对区块链技术感兴趣,或者有其他创意,也欢迎交流。

1282 次点击
所在节点    求职
3 条回复
ghostwind
75 天前
看了博客受益匪浅,我想问下现在有什么方法可以比较好得定投
eyewater
75 天前
看到博主对 PBFT 的两阶段感到困惑,在此解答一下,博主推出来 PBFT 不需要两阶段的原因在于没有考虑网络问题:

假设我们有四个节点 P1,P2,P3,P4 (有一个恶意节点,但是无需标明哪个节点是恶意的)。两个 view ,v1 和 v2 ,以及两个区块 B1 和 B2 。

如果没有两阶段会发生什么(假设只有 prepare 阶段)?

1. 在 v1 ,对于 B1 ,只有 v1 收到了 3 票(2f+1),P2 ,P3 ,P4 都没有收到足够的票(注意,此时已经达到了触发 view change 的条件)。
2. 在 v2 ,对于 B2 ,P2 ,P3 ,P4 收到了 3 票。

此时会发生,在 v1 ,P1 提交了 B1 ,在 v2 ,P2 ,P3 ,P4 提交了 B2 。
此时已经违法了安全性(这是因为网络是半同步)。

如果有两阶段会发生什么( prepare 和 commit )?
1. 在 v1 ,对于 B1 ,只有 P1 收到了 3 个 commit 票,P2 ,P3 ,P4 都没有收到足够的 commit 票。

此时,对于 B1 ,如果 P1 收到 3 个 commit 票,那么至少有两个诚实节点认为 B1 已经 prepared 。

2. 在 v2 ,由于 view change 需要收到 3 个节点的 view change 消息,并且 view change 会包含每个节点认为已经准备好的区块。

由条件 1 ,我们已知有两个节点认为 B1 是 prepared ,在 view change 时,需要三条 view change 消息。那么三条 view change 中至少有两个消息来自诚实节点。

此时,对于 B1 ,有两个诚实节点认为 B1 已经 prepared 。
而 view change 的消息中又包含了两个诚实节点的消息。

我们用 H1 来表示认为 B1 已经 prepared 的诚实节点集合,用 H2 来表示广播 view change 消息的诚实节点集合。

由于|H1| >= 2, |H2| >= 2 ,但是我们只有三个诚实节点,这意味着|H1|与|H2|存在交集。也就是说至少有一个诚实节点认为 B1 已经 prepared 并且广播了一个 view change 消息。

这样,在 v2 ,所有节点还是会对 B1 进行投票。此时,P1 ,P2 ,P3 ,P4 将会提交 B1 。符合安全性。

另外,本人也在找区块链方面的实习,主要研究的是区块链共识协议,对 Ethereum, PBFT, HotStuff 都有比较深入的理解,如果有机会,可以联系我
Yc1992
75 天前
tg 私聊我,okx 和 bg 可以内推

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1145611

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX