写在前面
在分布式之PBFT算法 一文中我们分析了PBFT
(pratical byzantine fault tolerant)
算法,但是该算法对恶意节点的个数有要求,即不能超过
(n-1/3)
,试想下如果将该算法用在区块链中,那就麻烦了。想要解决这个问题,就需要用到PoW算法,也正是本文要分析的内容,下面我们就开始吧!
1:PoW算法
首先PoW算法和PBTF算法一样都是一种拜占庭容错的分布式共识算法,但不同于PBFT,PoW全称是proof of work,即工作量证明,即某节点如果是想要加入到集群中,则需要完成一定的工作,什么意思呢?比如某公司招聘Java开发岗位,需要完成一道编程题,你完成了这道编程题,就是
你工作量的证明
,然后面试官负责对你的程序进行审核,进而确定是否满足其要求。在PoW算法就会引入请求方和验证方,请求方执行运算,运算处结果后,将结果发送给验证方进行验证,如下图:

其实在区块链中使用的就是PoW算法,并且在其应用场景中,这个运算的成本是非常高的,有多高呢?以比特币为例,想要完整作恶的话,总的成本大概在百亿。所以Pow算法并非是能够让集群中没有作恶节点,而是通过提高加入集群的门槛
(通过工作量证明)
,来提高坏人作恶的成本,进而让坏人因为得不偿失而不去作恶。
写在后面
参考文章列表
分布式之PBFT算法 。