什么是共识机制?
共识机制(Consensus Mechanism)是指取得或达成共识的机制。从字面意义上理解,共识机制由共识和机制两部分组成。共识即共同的认识,是指不同阶层、不同利益的人寻求的共同认识、价值、理想。通俗来讲,共识即指不同的个体就一个事务或观点达成一致意见。譬如,A和B都认为比特币是数字黄金,那么也可以说“比特币是数字黄金”是A和B的共识。机制即一种协议或规则,本质上是一种操作方法。在上述例子中,机制即表现为A和B认为比特币是数字黄金的认定方法。譬如,A和B认为比特币满足稀缺性和价值储存特性所以是数字黄金,这里的满足稀缺性和价值储存特性就是认定方法。综上而言,共识机制即指不同的个体为达成共识而采取的特定规则。
共识机制并非区块链领域所特有的概念,譬如“少数服从多数”原则其实就是一种最为常见的共识机制。但这一概念的确是随着区块链技术的发展而广为人知,现如今被提起也多指代不同区块链系统所采取的不同的记账模式,或者说是各区块节点为达成准确记账而采取的特定规则,具体表现为各区块链系统所采取的不同算法及协议。
共识机制的目标
区块链的本质是去中心化,而去中心化的核心是共识机制,因此,共识机制也常被称为区块链的灵魂。不同的区块链,其共识机制的目标都是:在没有中心化机构控制的情况下,在互相没有信任基础的个体之间如何建立信任关系。本质上就是解决分布式账本如何记账的问题,具体体现在:谁来记账(记账权的问题)、如何准确记账、如何保证账本信息一致性等方面。
常见共识机制类型
1.工作量证明(PoW,Proof of Work)
工作量证明是指按照节点的工作量来确定记账权,通俗理解即为按劳分配。生成区块的过程中,系统中所有节点需执行计算,类似算出一道数学题,最先得出答案的节点即可成为区块生产者,获得记账权和对应的区块奖励。代表区块链:比特币。
该共识机制的优点在于:算法简单、容易实现、节点可自由进入、去中心化程度高;同时,破坏系统需要投入极大的成本,系统安全性高。其缺点在于:为保证去中心化程度,区块确认时间难以缩短;没有最终性,需要检查点机制来弥补;能源损耗大和矿机硬件浪费。
2.权益证明(PoS,Proof of Stake)
权益证明是指由系统权益代替算力确定记账权,拥有的权益越大,获得记账权的概率也就越大,通俗理解即为按财分配。最早实践PoS机制的区块链为Peercoin,其将区块记账权与币龄挂钩,币龄越长,挖矿的难度越低。
该共识机制的优点是在一定程度上缩短了共识达成的时间,提高了系统效率,同时不需要消耗大量的能源。其缺点在于实现规则复杂,系统的安全性更多地依赖人性,容易产生安全性问题。
3.委托权益证明(DPoS,Delegated Proof of Stake)
委托权益证明是在PoS共识机制的基础上发展而来的,主要工作原理是由节点选举出若干代理人进行记账,类似于董事会投票,持币者投票选出一定数量的节点进行代理记账。代表区块链:EOS。
该机制的优点在于大幅缩小参与验证和记账节点的数量,大大提升共识达成的速率。其缺点在于整个共识机制依赖于代币,在中心化和安全性能的表现上与PoS机制存在相似的情况。
4.提名权益证明(NPoS,Nominated Proof of Stake)
提名权益证明也是基于PoS共识算法改进的一种机制。在该共识机制中存在提名人和验证人两种角色,持币者可以质押自己的代币,并选择信任的验证人运行节点和生成区块,随后分享验证人的收益。该机制混合BABE和GRANDPA算法进行区块生产和确认。代表区块链为Polkadot。
该机制的优点是在提升区块生产及确认速度的基础上并没有丢失系统安全性,其将区块生产和确认过程分开并使用不同的算法也是其创新之举。
5.有向无环图(DAG,Directed acyclic graph)
有向无环图机制通过改变区块的链式存储结构,并采用DAG的拓扑结构进行区块存储,最初主要为解决区块链效率问题。在区块打包时间不变的情况下,系统可并行打包N个区块,网络交易速率即可得到极大提升。此后,DAG提出了无区块概念,大大加快了系统交易速率。
该机制优点在于交易速度快,无需挖矿,手续费较低;其缺点在于网络规模不大,去中心化程度和安全性不高。
6.实用拜占庭容错机制(PBFT,Practical Byzantine Fault Tolerance)
实用拜占庭容错机制在保证活性和安全性的前提下提供了(n-1)/3的容错性。该机制是应对在区块链网络环境包括运行正常的服务器、故障的服务器和破坏者的服务器情况下,如何在正常的节点间形成网络状态共识的一种方式。通俗理解来说,即当存在N个无效节点时,只要保证总节点数超过3N个,记账的准确性就能得到保证。
该机制的优点在于系统运转可以脱离币的存在,同时共识效率高、可满足高频交易需求。其缺点是当有三分之一或以上记账人停止工作,系统将无法提供服务、其去中心化程度也不是很高。
评判共识机制性能的维度
1.安全性。是否可以防止双重支付、自私挖矿等攻击,是否有良好的容错能力。
2.扩展性。是否支持网络节点扩展,以及应对节点数量及交易数量增加情况下的系统负载能力。
3.性能效率。网络共识达成到区块最终确认所花费的时间,也可以理解为系统每秒可处理的交易数量。
4.资源消耗。网络达成共识的过程中所需要消耗的资源,如硬件设备、系统计算能力等。