通常以去中心化形式呈现的区块链项目,如何让多个节点达成一致的共识是个必须考虑的问题,现在常见的共识算法有POW、POS、POR等。
POW算法
作为区块链的鼻祖,比特币成功使用了POW算法。POW全称Proof of Work,工作证明。这就是说,你获得多少货币,取决于你挖矿贡献的有效工作,也就是说,你电脑性能越好,分给你的矿就会越多,这就是根据你的工作证明来执行货币的分配。POW以一个较为简单的方式来达到了一个在去中心化系统里进行记账权争夺的一个功能。一个账本可以有很多的正确的副本,但是哪一个副本才是被大家共识就需要进行记账权的争夺。但POW发展了这么多年,本质上的问题还是没有被解决,因为它的性能比较低。要在一个没有人组织的情况下达到记账权的争夺,既要拼算力,还要拼运气。被外界大为诟病的电力资源浪费问题也因此而起。
POS算法
POS全称Proof of Stake,股权证明。通过全民投票的方式投出几个大的验证人或者说叫矿池,指定你们几个人去出块那就没有特别大的争抢的空间了。大家按照某种顺序,或者说某种随机性就可以去直接出块,就不存在争抢的空间,那大部分的时间都可以去用于打包交易。 POS之所以说有更高的性能,意思是POS更大比例的时间可以去进行区块打包而不是进行无意义的计算。这样可以节省大量资源消耗,同时由于奖惩机制的设置某种程度上提高了安全性。
有时,我们也经常听到DPOS(Delegated Proof of Stake,委任权益证明)算法,其实绝大多数POS都是DPOS,因为要每个节点都去直接参与记账是不现实的。EOS就是采用了DPOS算法,全球选出21个主节点、100个备用节点来记账。
POR算法
POR全称Proof of resource,资源共识,应用于Filecoin。这个资源共识是在一个去中心化的系统里进行,叫存储功率共识。作为网络的参与者,可以提供多大的存储空间并且提供给你存多长时间,同时提供多少次的读取服务,这三个参数加在一起会形成一个存储功率,这里拼的是谁的存储功率更强,才能决定这个链的出块,所以Filecoin其实是与POW相似的,提供的是一种服务性质上的竞争。

随着技术进步,共识算法从POW过渡到POS是一个趋势。但由于POS算法不再有算力担保,可能会出现短程攻击、长程攻击等问题,通过设置代币锁定期、检查点等办法,有望克服这些问题,保障链的稳定。距离EOS正式上线不到两个月了,POS算法运行是否如大家所期望的高性能,让我们拭目以待。