今日起,转区块链。

说起对区块链共识最初的认知,我们几乎都能想到BTC中的 PoW,也就是工作量证明算法。其实它只是众多区块链共识算法中的一个,虽然现在区块链领域中有很多种类的共识算法,但总的来说可以分为两类,一类是联盟链中用到的拜占庭容错算法,而另一类就是公链中用到的类似于 PoW、PoS 之类的算法,而我更愿意将它们统称为激励共识算法。因为是两类共识,理解起来肯定有差异,但是我们却可以从上一讲故事里提取共识的基础要点来进行对比分析。我大致总结了三个要点:

  1. 由谁来生产区块?因为区块链是去中心化网络,节点间权利与义务是对等的,因此在任意一个时刻,任何节点都可以生产区块。但是以谁的为准呢?这是我们在理解区块链共识时需要首先搞清楚的问题。
  2. 什么时刻可以达成共识?分布式共识其实也蕴含一个前提,那就是需要在有限的时间内达成各节点间区块一致。如果共识过程无限期,那么共识本身就不成立了。
  3. 有多少节点参与了共识?通过对拜占庭将军问题的解析,我们知道共识的达成跟叛徒的数量息息相关,不同的共识对于叛徒的容忍程度是不一样的,我们常听到的少数服从多数,51% 攻击等等说的就是这一点。

只要按照以上这三点思考和推演,我们理解共识就会显得比较容易。