我管拜占庭容错诞生直到比特币诞生这段时间内的所有BFT算法,包括像是后来诞生的但是还未受到比特币和区块链影响的BFT算法叫做传统BFT算法。这类算法包括著名的PBFT,也包括之前的不那么practical的BFT,和后PBFT时代中提出了“投机型”BFT的Zyzzyva。这类BFT算法的最大特点,就是他们并没有把区块链当做主要的应用场景(废话)。然后这类BFT算法我们又可以拿PBFT和Zyzzyva分成三个阶段。
PBFT 解决的是在拜占庭环境下,如何提供一致性,以及如何持续的提供一致性的问题
继续来读经典论文吧ヾ(◍°∇°◍)ノ゙
上次我们讲到,比特币带来了一个新思路——用经济学和博弈论的原理约束节点,让他们不会作恶,于是整个问题重新回到了异步普通容错问题的轨道,于是整个问题的消息复杂度回到了O(N),即,可扩展。关于扩展性问题我们到以后的文章里再深入说,在这里我们只说它和O(N^2)消息复杂度的传统容错算法,例如PBFT,的最大区别。
为什么比特币 10 分钟出个块,每个块的大小 1 MB?
本文为tendermint paper: The latest gossip on BFT consensus的读书笔记, 本文旨在理清论文中所讲的BFT共识. 如果您在阅读过程中有任何意见可以发起ISSUE, 如果喜欢的话可以点击star.
star
PBFT算法和 Raft算法解决的核心问题都是在分布式环境下如何保持集群状态的一致性,简而言之就是一组服务,给定一组操作,最后得到一致的结果。
PBFT
pBFT为什么不要三个阶段,看完你就知道。
第三代区块链协议有多酷😎