计算机应用 ›› 2019, Vol. 39 ›› Issue (6): 1766-1771.DOI: 10.11772/j.issn.1001-9081.2018102049

• 网络与通信 • 上一篇    下一篇

基于投票机制的拜占庭容错共识算法

王海勇1, 郭凯璇2, 潘启青2   

  1. 1. 南京邮电大学 计算机学院, 南京 210003;
    2. 南京邮电大学 物联网学院, 南京 210003
  • 收稿日期:2018-10-10 修回日期:2018-12-19 出版日期:2019-06-10 发布日期:2019-06-17
  • 通讯作者: 郭凯璇
  • 作者简介:王海勇(1979-),男,江苏南京人,副研究员,博士,主要研究方向:计算机网络与安全、信息网络;郭凯璇(1991-),女,山东枣庄人,硕士研究生,主要研究方向:区块链、共识算法、物联网;潘启青(1994-),女,江苏南京人,硕士研究生,主要研究方向:区块链、物联网。
  • 基金资助:
    江苏省教育信息化研究资助重点课题(20172105);江苏省现代教育技术研究2017年度智慧校园专项课题(2017-R-59518);南京邮电大学教学改革重点项目(JG06717JX66);南京邮电大学校园信息化创新项目(NYXX217002,NYXX217004);赛尔网络下一代互联网技术创新项目(NGII20180620)。

Byzantine fault tolerance consensus algorithm based on voting mechanism

WANG Haiyong1, GUO Kaixuan2, PAN Qiqing2   

  1. 1. School of Computer Science, Nanjing University of Posts and Telecommunications, Nanjing Jiangsu 210003, China;
    2. School of Internet of Things, Nanjing University of Posts and Telecommunications, Nanjing Jiangsu 210003, China
  • Received:2018-10-10 Revised:2018-12-19 Online:2019-06-10 Published:2019-06-17
  • Supported by:
    This work is partially supported by the Key Project of Education Informatization Research of Jiangsu Province (20172105), the Special Project of 2017 Smart Campus of Jiangsu Modern Educational Technology Research (2017-R-59518), the Teaching Reform Project of Nanjing University of Posts and Telecommunications (JG06717JX66), the Campus Informatization Innovation Project of Nanjing University of Posts and Telecommunications (NYXX217002, NYXX217004), the CERNET Innovation Project (NGII20180620).

摘要: 针对现有的区块链中实用拜占庭容错(PBFT)共识算法、基于动态授权的拜占庭容错(DDBFT)共识算法、联盟拜占庭容错(CBFT)共识算法普遍存在能耗高、效率低、扩展性差等问题,通过引入投票机制,提出了基于投票机制的拜占庭容错(VPBFT)共识算法。首先,以PBFT算法为基础,将网络中的节点划分为四类具有不同职责的节点。其次,算法中的投票节点具有投票和评分权,监督生产节点诚实可靠地生产数据块;生产有效的数据块的生产节点优先进入下一轮,候选节点能够被选为生产节点,而普通节点则能够成为投票节点或候选节点。最后,不同类型的节点之间具有一定的数量关系,能够在不同类型节点的数目或网络中的节点总数发生变化时动态调整参数,从而使得算法适应动态网络。通过性能仿真分析可知,VPBFT算法相较于PBFT、DDBFT、CBFT等共识算法,具有低能耗、低时延、高容错性和高动态性。

关键词: 区块链, 拜占庭容错, 投票机制, 共识算法, 数据块

Abstract: Focusing on the problems of high energy consumption, low efficiency and poor scalability of Practical Byzantine Fault Tolerance (PBFT) consensus algorithm, Dynamic authorized Byzantine Fault Tolerance (DDBFT) consensus algorithm and Consortium Byzantine Fault Tolerance (CBFT) consensus algorithm existed in the blockchain, Practical Byzantine Fault Tolerant consensus algorithm based on Voting (VPBFT) was proposed by introducing voting mechanism. Firstly, based on PBFT algorithm, the nodes in the network were divided into four types of nodes with different responsibility. Secondly, the voting nodes in the algorithm had voting and scoring rights to supervise the production nodes to produce data blocks honestly and reliably, the production nodes producing valid data blocks had priority to be selected into next turn, while the candidate nodes were able to be voted as production nodes, and the ordinary nodes were able to be voted as production nodes or candidate nodes. Finally, different types of nodes had a certain quantity relationship between themselves, which means the parameters were able to be dynamically adjusted when the number of different types of nodes or the total number of nodes in the network changed, so that the algorithm was able to adapt to the dynamic network. Through performance simulation analysis, the proposed VPBFT algorithm has low energy consumption, short delay, high fault tolerance and high dynamicity compared with consensus algorithms such as PBFT, DDBFT and CBFT.

Key words: blockchain, Byzantine Fault Tolerance (BFT), voting mechanism, consensus algorithm, data block

中图分类号: