在区块链系统当中,没有一个像银行一样的中心化的权威记账机构,来保证每一笔交易在所有记账节点上的一致性,让全网所有节点认可并且都达成共识。
区块链系统采用的共识机制主要目的就是通过设计一种机制来解决这个问题,使得网络中产生的数据让大家都能认可也就是共识,对于那些非法无效的数据会被丢弃掉。可以说,共识机制的设计主要做两件事,构建区块和维护区块安全性。
每个人都有利己主义的自私基因,如何让所有矿工按照既定的共识要求去创建区块,并且维护区块。那这就要说到共识机制的核心,想要拥有创建区块的权力,那就需要付出一定的代价(或者证明你拥有某种权益),同时对于按照共识机制执行的矿工会获得额外奖励。付出的代价可以提高作恶者的成本防止他们进行破坏,同时按规矩办事的人可以获得奖励提高他们维护节点的积极性。这样几乎所有的矿工都会放弃作恶的想法,转而按照既定的共识机制去维护好区块链的安全性和稳定性来获取奖励获益。
常见的共识算法有PoW(proof of work,工作量量证明)、PoS(proof of stake,权益证明)、DPoS(Delegated proof of stake,股份授权证明)等。
PoW工作量证明
PoW:简单讲就是通过评估你的工作量结果来决定你获得记账权的机率,工作量越大,就越有可能获得此次记账机会。
为什么要引入PoW共识机制,是基于区块链去中心化结构决定的,必须要引入一套共识机制,来保证虽没有中心化权威服务器存在,却可以保障全网节点达成一致共识,从而保障像比特币、以太坊这样的系统正常运行。
显然,PoW的引入就是为了让全网达成共识而设计开发的。以比特币为例,比特币挖矿的过程就是在争取全网记账权利。为了鼓励大家积极参与记账。针对获得记账权利的节点给予比特币奖励,同时还能获得新创区块的矿工费。
PoW算法是通过全网矿工共同计算一道SHA256哈希函数的解来争取获得记账权,而SHA256哈希函数的特点决定,只有不断大量的随机破解求解,别无他法。最后就是谁第一个求解出,将获得本次新区块的创建和记账权。
获得区块记账权的整个过程也是能直接体现出该矿工本次挖矿的过程中工作量要大于其他矿工,所以他能够获得本次区块记账权。
PoS权益证明
PoS:通过评估你持有代币的数量和时长来决定你获得记账权的机率。这就类似于股票的分红制度,持有股权相对多的人能够获得更多的分红。
比特币使用PoW算法挖矿过程中,由于比特币总量的恒定,挖矿的数量会每四年减半。这也促使了越到后面挖矿难度越大,获得比特币奖励所需要消耗的算力就越大。无形中消耗了大量的电力成本,从而导致挖矿成本大大增加。
PoS相比PoW的最大好处就是通过拥有的系统权益代替消耗大量算力来获取记账权。通俗说就是一个根据你持有货币的数量和时间,给你派发利息的一个制度。在股权证明POS模式下,相对POW的算力,POS叫币龄。每个币每天产生1币龄,比如你持有100个币,总共持有了10天,那么,此时你的币龄就为1000。这个时候,如果你发现了一个POS区块,你的币龄就会被清空为0。你每被清空365币龄,你将会从区块中获得0.03个币的利息,相当于年利率1%。
DPoS股份授权证明
DpoS:与POS原理相似,只是选了一些“人大代表”。与PoS的主要区别在于节点选举若干代理人,由代理人验证和记账。
DPoS相对PoS的最大好处在于选取了部分节点,节省时间。能够促使交易验证和记账达到秒级。每一个持币人进行投票,选举产生一定数量的代表来负责生产区块(例如BTS是101位,EOS是21位)。可以将这些代表理解成超级节点或矿池。后期剔除不按规矩办事的节点,选举在产生新的节点来替代,以防止现有节点作恶。
结语
对比一下比特币,以太坊和比特股的处理交易的速度:
采用PoW共识机制的比特币每秒处理3~5笔交易;
采用PoW和PoS混合算法的以太坊每秒处理15笔交易;
采用DPoS算法的比特股每秒处理超10万笔交易;
但目前来看,也不能完全否定PoW算法就是一无是处,他们都是在效率和安全方面做了平衡。