感觉博客的表达能力比简历还强。如果有合适的工作机会,可以联系我让我发 PDF 简历。
如果对区块链技术感兴趣,或者有其他创意,也欢迎交流。
1
ghostwind 16 天前
看了博客受益匪浅,我想问下现在有什么方法可以比较好得定投
|
![]() |
2
eyewater 15 天前
看到博主对 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 都有比较深入的理解,如果有机会,可以联系我 |
![]() |
3
Yc1992 15 天前
tg 私聊我,okx 和 bg 可以内推
|