第27讲:共识机制历史及3种主流共识机制
 1500

试听180第27讲:共识机制历史及3种主流共识机制

倍速播放下载收听

00:00
11:10


购买所属专辑,收听更多内容

你好,我是朱嘉伟,欢迎收听由虫洞社区和火币集团共同打造的《从0到1,全面学透区块链》V3.0最新版。

 

上一节课,我们学习了什么是拜占庭将军问题以及比特币是如何解决拜占庭将军问题的。今天我们来学习第27讲的内容:共识机制历史及3种主流共识机制。

 

首先,来看看,我们为什么需要共识机制?共识机制到底是什么?

 

为什么需要有共识机制这个东西?在一个中心化的结构体系中,系统的共识是由中心决定的,各参与方只需要服从中心下达的命令就可以了。因此,中心化体系共识建立是极为高效的。这也就是为什么中心化的机构要比去中心化的机构相对来说效率更高的缘故。

 

比如说,你上一所大学,什么时间之前要交多少人民币学费,要打到哪个账号,到哪栋楼报道,基本都是学校规定的,你服从就行。如果你不按照规定的时间、地点和方式进行报道,你有可能损失你上学的机会,从而没有资格加入这个中心化的体系。所以你一定会按照要求进行报到。这种中心化的方式也会让入学报名工作井井有条,并且快速完成程序。

 

而在一个去中心化的结构体系中,由于各个参与方的地位是平等的,当出现分歧的时候,如何达成共识就成了问题。试想一下,如果你和学校、老师之间的地位是平等的,如果办理入学,会出现什么样的情况?是不是很有意思。在报名环节,你和同学们、老师、校长最有可能商议出来,谁年纪最大听谁的。这样一种协商后的达成统一的规则,就叫共识机制。

 

由此可见,一个设计精妙、实际操作起来简单的共识机制是一个分布式的体系能够顺利自运转下去的关键所在。简而言之,共识机制就是解决达成共识的依据,也是区块链的核心之一,它使得去中心化的体系能够公共维护同一个账本。

 

了解了为什么需要共识机制,再来看看共识机制发展的历史路径是怎样的?

 

市场上广义认为区块链起源于08年中本聪发布的比特币论文,但与区块链相关的分布式系统问题,比如说上一讲提到的拜占庭将军问题,很早就出现了。于是大家普遍将共识算法分为两类,中本聪共识与BFT类共识。

 

我们先说第一条主线,中本聪类共识:

 

中本聪类共识是由PoW(工作量证明)为代表以及其演变而来的一系列共识机制,主张节点无需许可验证,随意进出。PoW最早出现于中本聪的比特币论文中,随后被各类区块链项目广泛利用。

 

但是随着时间推移,人们发现PoW有各种缺点,包括耗能高、算力逐渐中心化等,于是人们开始以PoS权益证明的方式来替代PoW工作量证明。


早期权益证明项目代表为PeerCoin,不过因为其币龄等不合理的设计,很快消失在人们的视野中。但学术界从来没有停止对PoS的探索,近些年各大高校已经发表了多篇关于PoS的论文,例如康奈尔大学发表的《Snow White》,爱丁堡大学发表的《Ouroboros》,以及MIT的《Algorand》;总的来说学术界将所有PoS的解决方案集中在一点上,就是如何实现生成的新区块随机可验证,未来相信也会有越来越多的学者在这条路上探索。

 

除了学术界,真正落地派也十分热衷PoS的探索,从以太坊的Casper,到EOS的DPoS。不过企业PoS没有学术界那么严谨的论证,也不在意是否能实现随机可验证,而是将更多精力放在共识机制与经济模型、治理模型的结合上,在这里不多做论述。

 

现在我们来说另一条主线,BFT类共识:

 

BFT类共识由最早分布式系统研究产生,在1981年Leslie Lamport发布的 《The Byzantine Generals Problem》,正式拉开了拜占庭容错问题的讨论。1999年Miguel Castro发表的《Practical Byzantine Fault Tolerance》让针对分布式系统拜占庭容错问题的研究告一段落。直到2009年比特币的诞生,让人们发现了BFT类共识研究的价值,学术界也重启了相关的研究。现在BFT类共识很多时候已经和中本聪类共识融合,已经没有那么明确的边界,更有一些项目直接命名为Hybrid Consensus,混合共识,将中本聪共识和BFT共识融合在了一起。

 

学习完,共识发展的两条主线,接下来我们学习3种主流的共识算法:

 

首先是比特币:

 

比特币所使用的PoW共识机制是目前使用最广泛,并且唯一通过时间验证的共识机制。无论是最早无人问津的时候大家就CPU挖矿,再到后来升级用GPU挖矿,再到如今资本注入开始用专用矿机挖矿,虽然历经波折,但比特币网络依旧运行稳定,作为市值超过千亿美金的经济体,安全性肯定是最重要的。

 

但PoW的共识机制缺陷也比较明显。首当其冲的就是对”耗能“的批评。为了安全模型的稳固,各节点的矿机都在做无意义的运算,也就是除了维护网络之外并没有对实体经济做出贡献,造成资源能源浪费。也正是因为这一点人们才开始了对PoS的探索。

 

另一个缺陷就是网络的吞吐量,同样是出于安全模型的考虑,由于全网传输信息大概有半分钟的延迟,因此区块间隔设在10分钟(区块间隔必须远大于网络延迟,否则恶意节点只需要少于51%的算力就可以发起攻击),而区块容量限定在1M,因此每秒的吞吐量只有7笔。究其原因还是PoW共识算法的限制。

 

然后我们介绍下BFT类共识中被应用最多的一类,PBFT,实用拜占庭容错共识机制:

 

前几节课中我们已经了解了什么是拜占庭将军问题,而PBFT共识就是为解决分布式系统而研究出的方案。

 

分布式系统中,不同节点通过信息传输交换达成共识;有时候,部分节点服务器可能因为故障或被别人控制导致影响最终的系统一致性。拜占庭将军问题就是控制可能的拜占庭节点(包括恶意节点和故障节点)数量,寻找可能的解决办法,尽量高效的达成共识。

 

1999年Miguel Castro发表的论文《Practical Byzantine Fault Tolerance》中,已经为PBFT的共识机制完成论证:在 N ≥ 3F + 1 的情况下可以达成共识。其中,N为节点总数,F为拜占庭节点数。

 

PBFT共识机制对于节点进出都有严格的审核措施,因此多用于联盟链系统中。

 

最后我们来学习下最近市场上大火的EOS:

 

EOS所使用的共识机制是DPoS,权益委托证明机制,是PoS算法在企业界最主流的一种衍生物。持币用户用手中的选票选出21个超级节点进行出块。

 

DPoS机制最大的优势就是,真正参与共识的节点少,从而避免算力或权益的竞争,保证优势资源集中,节点将精力投入在软硬件设施,从而高效的系统。区块生成者(BP:Block Producer)之间是合作关系大于竞争关系,保证共识能高效的完成,延迟低,吞吐量高。

 

DPoS的缺点也是显而易见的。在上一讲中我们提到过,无论学术界还是工业界,PoS的迭代演进最主要一点都是为了追求下个区块生成者的选择是随机并且可验证的,这样能最大限度降低节点作恶可能。

 

而无论是EOS还是其他使用DPoS共识机制的项目,都放弃了传统PoS这样一个目标,转而去信任节点自身的行为。这点或许是DPoS能够得到大规模应用最大的障碍。

 

总结下本节课的学习内容,今天我们核心学习了一种协商后的达成统一的规则叫共识机制,共识机制发展有两条主线,一类是中本聪类共识,第二类是BFT类共识,最后我们学习了3种主流的共识机制,分别是PoW和DpoS、PBFT。

 

按照惯例给你留一道思考题:上文提到共识算法研究分成学术派和工业派,你更看好那一派别的共识算法能够获得大范围应用呢?为什么呢?

 

最后,恭喜你完成《从0到1,全面学透区块链》第27讲的学习。下节课,我们将一起学习第28讲:区块链项目的社区治理。


评论

    还没有评论,快来发表第一个评论!

打开喜马拉雅,发表评论