网络上介绍区块链共识算法的时候,经常会提到“同步网络”和“异步网络”。究竟在区块链共识算法的范畴下,同步网络和异步网络的区别是什么?
同步网络:网络节点间消息传递有明确的时间范围或者节奏。比特币或者以太坊,是一个例子。它们都是使用的POW(工作量证明)共识算法,比特币每10分钟出一个区块,以太坊每15秒出一个区块。也就是说,比特币或者以太坊的网络节点在“确定” 的时间内会收到生成区块的消息。如果超过时间没消息,确定网络出问题。
异步网络:网络节点间消息传递没有时间范围,也就是说,网络节点A传输给网络节点B的消息,不知道何时到达,有可能时间非常长,甚至消息丢失永远到达不了。HoneyBadgerBFT共识算法是在异步网络的假设下设计的。
部分同步网络:网络节点间消息传递虽然有明确的时间范围,但是不确定具体的范围。PBFT(实用拜占庭容错)算法就属于这一类。