《表1 4种典型共识算法比较》
工作证明(proof of work,Po W)是在比特币网络[1]中使用的一种共识算法,该算法要求网络中的每个节点都计算一串特定的哈希散列值.如果计算出的目标散列值的正确性得到了其他所有节点的验证,则该节点将会获得产生新区块的权利.整个工作证明的过程被称为挖矿,计算散列值的节点被称为矿工.矿工们不得不进行大量的计算,然而这些计算除了挑选出一个记录事务的节点外,并没有其他实际意义,因而这种共识因浪费太多的资源而被批判.以太坊提出的股权证明(proof of stake,PoS)[13]是Po W的改进,此时矿工改为证明货币数量的所有权,而不是利用自己的算力计算没有特定含义的哈希散列值.相比之下减少了资源浪费的现象,因此选出下一个生成区块节点的过程也更高效.文献[14]使用的股权委托证明(delegated proof of stake,DPoS)是Po S的改进形式.DPo S被认为是一种代议制民主,由节点投票选择出特定数目的代理节点来生成并验证区块.因为验证块的节点数明显减少,所以加快了区块的确认速度,使事务得到了更快的确认.实用拜占庭容错算法(practical Byzantine fault tolerance,PBFT)是可以容忍拜占庭故障的算法,整个共识过程分为预准备、准备和响应3个阶段.在每个阶段,如果一个节点获得了所有节点中2/3以上的投票就可以进入下一个阶段.因为要为节点投票,所以网络中的节点被要求掌握其他所有节点的信息并与之进行通信,可见该算法不太适用于网络规模较大的情况.PBFT更多地用于节点数量较少的联盟链或者私有链,比如Hyperledger Fabric[15].表1比较了这4种常见的共识算法,而最近又出现了许多改进的共识算法和全新的共识算法.
图表编号 | XD00127444400 严禁用于非法目的 |
---|---|
绘制时间 | 2020.01.30 |
作者 | 方俊杰、雷凯 |
绘制单位 | 北京大学信息工程学院深圳市内容中心网络与区块链重点实验室、北京大学互联网研究院(深圳)、北京大学信息工程学院深圳市内容中心网络与区块链重点实验室、北京大学互联网研究院(深圳) |
更多格式 | 高清、无水印(增值服务) |