一、概念
共识:指同一个社会不同阶层、不同利益的人所寻求的共同认识、价值、理想。 ——《新华词典》
为什么共识层在区块链的系统中如此重要,而在传统的系统却没有被着重提及?根本的原因在于,每个公司或者产品都会有一句“xxx保留最终解释权”,这句话的意思其实是,公司说了算,跟你没什么关系。这是传统中心化机构的运行方式,他不需要通过凝聚共识而促成系统的运行。而区块链系统本身是分布式,去中心化的,没有一个强有力的中心可以直接决定任何事情的走向,所以才需要凝聚去中心化网络层中的各个节点,达成一定的共识基数之后才可以继续系统的运行。这就是为什么在区块链的系统中,共识层如此重要的原因。
共识层主要包括共识算法以及共识机制,能让整个系统中的分布式的节点在网络中,对于同一区块的数据有效性进行判断的机制。各个区块链项目的共识层所采用的共识算法不尽相同,不过都是在这一层封装了网络节点的各类共识机制算法,共识算法是决定谁可以在区块链这个公开账本上进行记账的标准。在区块链的P2P分布式网络节点中,共识层是将分散的节点凝聚在一起的根本,所有节点共同承认一个计算结果,或者一个投票标准。只有每个节点都遵守才能真正的实现节点之间的互信,达成合作。
二、区块链共识层
区块链系统中的共识层包含的内容有很多,比如说,某人用一个BTC向A和B进行转账,几乎是同时转给两人。如果没有共识机制的存在,那么A、B都收到一个BTC,这就发生了双花,凭空多创造出一个BTC。此时,BTC系统的共识机制就开始起作用,在某人向AB同时发出BTC的时候,系统中保护共识的矿工会进行记账,谁的交易率先被记录进区块链账本谁就获得一个BTC。整个过程中关于交易信息有效性的确认共识是核心共识之一。
上面所提到的是区块链系统使用者端的共识机制,转到系统维护者,矿工这一端。BTC系统矿工最大的共识在于对最长链的确认。也就是说,在BTC的系统中,只有最长的链才是有效的链。这里最容易出现的问题是:两个矿工如果同时解答出哈希运算的难题,而对交易信息进行打包封装上链。此时在链上出现两个完全相同的区块,如何确定哪个区块才是有效的块呢?此时,相当于对区块链进行了分叉,在BTC的系统中是在6个区块确认之后,后面有更多区块的链会被承认是有效区块,而另外一个区块则是孤块。在共识层面,孤块是不被承认的,在整个的区块链系统账本中也不具有有效性。同时反映在激励层的结果是,挖出有效区块的矿工可以获得系统设定的BTC奖励,而孤块挖出者毛都不会有。这样就保证在BTC的公开账本中,有且只有一条最长的链是有效的。
各个区块链项目所使用的共识机制不尽相同,因为各自要解决的问题和产品方向定位的不同导致,各项目的共识层都有特殊性。如果共识层完全一致,可以说这基本属于山寨币,也叫做ALTCOIN。向LITECOIN和DOGECOIN虽然对BTC的基本系数进行一定的调整,但在共识机制上完全一致,这两个币种也被人习惯性的称为ALTCOIN。
三、共识机制
由于各区块链项目的共识层都不尽相同,在这里仅说几个比较主流的:PoW(Proof of Work)、PoS(Proof of Stake)、DPoS(Delegated Proof of Stake)、PBFT(Practical Byzantine Fault Tolerance)、PoL(Proof of Impoetance)、PoP(Proof of Particpation)......
BTC是一个区块链应用成功的项目,他所采用的共识机制是PoW,就是通常所说的工作量证明机制。但是这里需要重点说明一些,PoW是BTC共识机制中最核心的部分,但不是全部。BTC的分布式共识有网络节点分几个不同过程相互作用而达成:
1、全节点依据一份判别清单对每个交易记录进行独立验证
2、挖矿节点独立将一个交易时段内的交易记录进行打包压缩到新的区块,通过PoW算法的验算
3、节点独立验证新区块并组装进区块链上
4、节点端丽选择最长的链,在PoW机制下工作量累计最多的链
——《016|漫谈区块链共识机制》
BTC采用的PoW共识机制很简单,但是由于需要进行大量的哈希运算,会消耗大量的电,尽管在这是BTC安全的一到护城河,但是如果所有的区块链项目都采用这一机制,一方面可能对能源造成很大的压力,另一方面也很难实现。我会在以后的文章中,在说说其他项目的共识机制.