关于共识机制认知上的几个坑,千万不要踩

谈到区块链一般我们会说,它是一个分布式账本,一个巨大的数据库,那么分布式账本结构、P2P动态网组、非对称加密等各项技术就是守护这个数据库的卫兵,保障数据库的安全不被窃取和篡改。
共识机制则是一套完整的数据入库规则,一个“数据水龙头”,维持数据库持续增长。
布比联合创始人张明裕常用微信群来解释什么是区块链,那么在一个群里是什么决定了大家讨论什么、如何讨论呢?就是共识机制,它是一个群的灵魂。
1. 什么是共识机制

什么是共识机制?对的没错,共识机制就是你理解的那个意思,不用去研究所谓的定义。

关于共识机制认知上的几个坑,千万不要踩

如果你想深入了解一下它的产生背景,下面一段话就是最好的表述:
由于加密货币多数采用去中心化的区块链设计,节点是各处分散且平行的,所以必须设计一套制度,来维护系统的运作顺序与公平性,统一区块链的版本,并奖励提供资源维护区块链的使用者,以及惩罚恶意的危害者。
这样的制度,必须依赖某种方式来证明,是由谁取得了一个区块链的打包权(或称记帐权),并且可以获取打包这一个区块的奖励;又或者是谁意图进行危害,就会获得一定的惩罚,这就是共识机制。
多数情况下,我们谈共识机制谈的就是共识算法本身,算法在设计的时候就包含了一定的规则设计。
所谓共识机制包括共识算法和共识规则的分法其实没必要去深究,只会越厘越乱。
2. 几种主流共识机制的特点
1 POW
工作量证明,就是我们常说的“挖矿”,是中本聪在其论文《一种点对点的电子现金系统》中提出的一种共识规则,通过节点间的算力竞争来保证数据的一致性和不可篡改性。
在该共识机制下,依靠算力来争夺记账权获得系统奖励。因为“挖矿”需要高昂的电力成本和设备成本,普通参与者难以参与,原本去中心化的设计又被集中在了矿工群体的小中心里。
2 POS
权益证明,通过占有的系统token数量和时间来分配权益,争夺记账权。相比POW纯算力的竞争,POS增加了更多制度的设计,效率明显提升,也更适合商用。
万向区块链董事长兼 CEO 肖风在公开演讲中表示,“PoS的技术加上制度设计,加上规则的设计,这两个加一块,也许是解决我们所有的商业应用的一个最合适的方法。”
在POS中,如果重量级节点并不具备专业的知识和足够预算,将会再次拖累共识效率。于是便有了DPOS(委托权益证明),通过类似民主大会的形式,选举出适合的节点代表来运行网络,出块效率进一步提升。
3 PBFT
PBFT是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算法。解决了原始拜占庭容错算法效率不高的问题,使得拜占庭容错算法在实际系统应用中变得可行。该算法诞生于1999年,是公认算法中最成熟的一种。
在PBFT机制下有一个视图的概念,一个视图包含一个主节点和多个备份节点。
主节点负责将来自客户端的请求排好序号发给备份节点。备份节点会主动检测这些序号的合法性,并通过超时机制检测主节点是否宕掉,一旦出现异常,将会触发视图更换协议来选举新的主节点。
主节点的记账信息获得备份节点的共识之后,成为最终发布的区块,并且该区块是不可逆的。所以里面的交易是百分之百确认的,区块不会分叉。
4 DPOS+BFT
在该共识机制下,根据账户中的权益对节点分配权重优先级,形成基于节点权重的记账人节点选取机制。节点可以通过申请成为候选人节点,经过选举/抽签等方式最终成为记账人节点。
共识阶段,在记账人节点中选择出共识区块的提议者,由提议者提出对某个区块进行验证。记账人和提议者每轮验证均会更换,多次验证成功后完成记账,最终形成共识。

关于共识机制认知上的几个坑,千万不要踩

布比区块链基于拜占庭容错算法构建区块链共识,同时支持PBFT、DPOS+BFT等多种共识算法,做到了秒级别确认用户交易,不会产生链分叉。
同时,布比区块链支持多条子链的双层共识、子链共识节点的子集映射,在高性能基础上实现可扩展和安全性。
3. 怎样评价共识机制
谈共识机制,难免会简单地用单维度进行好或者不好、性能优劣、去中心化程度来进行评价。实际上对共识机制的评价应该是多维度的,共识机制是区块链系统中的一部分,需要与系统匹配实现良好运转。

关于共识机制认知上的几个坑,千万不要踩

布比区块链创始人蒋海曾表示,“单纯追求高TPS的意义不大,应该找到合适的应用场景,符合商业逻辑,从实际需求出发。”
如同一颗螺丝钉,我们不能单从它的大小、长度、颜色、材质来评价,而要结合它的使用场景,用在手机里还是挖掘机上它的评价维度是完全不同的。
实际应用中,应该具体根据使用场景来评价和选择共识机制。
比特币是一种加密货币,对安全性和去中心化程度要求很高,那POW算法就是合适的。以太坊增加了智能合约,需要高TPS来支撑,最初的POW算法就无法适应,便要向POS转变。所以选择适合应用场景的共识机制才是最合适的。