什么是共识机制?我们都知道,区块链可以看作一本记录所有交易的分布式公开帐本,区块链网络中的每个参与者都把它看作一本所有权的权威记录。公开账本历史数据不可篡改,只允许往后添加区块,每个节点都具有相同的权限,那么就带来一个问题:公开账本每个新区块由谁来负责写入?因为所有节点都一样,如果所有节点同时一起写入账本数据,那么数据可能会不一致。
因此需要一种机制来保证区块链中的每一区块只能由一个节点来负责写入,如何选出写入账本数据的节点,这就是共识机制。让平等的参与者按照某种秩序达成一致意见。
目前共识机制主要分为三个,PoW, PoS和DPoS。
PoW, proof of work, 即工作量证明。简单理解就是一份确认你做过一定量的工作的证明。就像你去挖黄金,你的设备越先进,挖的时间越长,说明你的工作量越高,挖得的黄金也越多。
POW是最早的共识机制,其代表当属比特币。个人认为中本聪设计POW的初衷,应该是希望每个人都有平等获得比特币的权利,完成最大限度的民主和去中心化。虽然其中依据人性的逐利性设计了挖矿和记账的奖励机制,但是他也远远未曾想到,水能载舟亦能覆舟,逐利的本性一旦被激发,将一发不可收拾,为了获得更大的收益,人们开始建立日趋中心化的矿池、矿场采取联合挖矿的方式来获取收益,而且某种程度上背离了比特币的设计初衷。另外,中心化的矿场也意味着更加容易受到监管者和政府机构的控制。
PoS, proof of stake, 即权益证明。就是有钱人说了算,拥有的币越多,你的责任越大,就有更多的机会写入新的区块。
PoS 挖矿和 PoW 矿机挖矿一样,都可以维护区块链的增长和安全。POW共识可以理解为是一个下注机制:矿工选择一个块基于它进行挖矿,也就是赌这个块会成为主链的一部分;如果赌对了,他可以收到奖励,而如果赌错了,他会损失电费。只要所有的矿工都将他们的算力下注到同一条链上,使这条链拥有最多的工作量,共识就是安全的。
DPoS, delegated proof of stake, 即授权股权证明。类似于权益证明,只是把写入新区块的打包工作授权给了更专业的代表处理,而代表生成区块奖励的token也会分出一定额度给你。
DPoS的工作原理如下:每个股东按其持股比例拥有相应的投票权,51%股东投票的结果将是不可逆且有约束力的,其挑战是通过及时而高效的方法达到“51%批准”。DPoS的投票模式可以每30秒产生一个新区块,并且在正常的网络条件下,区块链分叉的可能性极其小,即使发生也可以在几分钟内得到解决。
DPoS的优点:大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。
DPoS的缺点:整个共识机制还是依赖于代币,而很多商业应用是不需要代币的。
哪种共识算法最好?每一种共识算法都有各自的应用场景,没有绝对的好坏之分,到底选择哪个共识来进行区块链的实施取决于哪类网络和数据。