eyewater's recent timeline updates
eyewater

eyewater

V2EX member #277185, joined on 2017-12-27 08:29:43 +08:00
eyewater's recent replies
d29zaGl6aGVuZGVwaUBnbWFpbC5jb20=
谢谢老板
Oct 28, 2025
Replied to a topic by dinosjk 酷工作 [深圳] 全栈工程师 / 后端工程师
有实习岗吗?
UID: 1176721767
Solana 地址(我是在币安充值拿到的这个地址,对吗?):3hdY9aznGrdHp79uPgT51k1q9mnMyphVQKMMvrunpcvu
Oct 16, 2025
Replied to a topic by Titans 酷工作 交易所招聘,岗位多多
请问招实习吗?
看到博主对 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 都有比较深入的理解,如果有机会,可以联系我
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2992 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 187ms · UTC 07:32 · PVG 15:32 · LAX 00:32 · JFK 03:32
♥ Do have faith in what you're doing.