CN111010278B - 一种基于DPoS高容错分层共识方法 - Google Patents

一种基于DPoS高容错分层共识方法 Download PDF

Info

Publication number
CN111010278B
CN111010278B CN201911112959.3A CN201911112959A CN111010278B CN 111010278 B CN111010278 B CN 111010278B CN 201911112959 A CN201911112959 A CN 201911112959A CN 111010278 B CN111010278 B CN 111010278B
Authority
CN
China
Prior art keywords
node
nodes
group
consensus
resolution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911112959.3A
Other languages
English (en)
Other versions
CN111010278A (zh
Inventor
李峰
孙传文
潘雨青
薛惠丹
李博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiangsu University
Original Assignee
Jiangsu University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangsu University filed Critical Jiangsu University
Priority to CN201911112959.3A priority Critical patent/CN111010278B/zh
Publication of CN111010278A publication Critical patent/CN111010278A/zh
Application granted granted Critical
Publication of CN111010278B publication Critical patent/CN111010278B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Technology Law (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明属于区块链技术领域,具体涉及一种基于DPoS高容错分层共识方法。通过分层逐层对故障节点进行筛选,第一层通过对网络所有节点进行分组,选出提名节点,对筛选出的恶意节点进行处罚,第二层是对选出所有组内决议节点进一步分组而构成议长组,选出提名节点,对筛选出的恶意节点进行处罚,完成共识,奖励除出块节点各个参与共识的节点。提高了当前共识的容错率,采用动态积分权重提名方法,按积分权重提名保证了节点按参与共识付出算力当选超级节点的可能性,在新一轮共识中,通过对上一轮出块节点积分重置使整个网络不会因积分出现两级分化而破坏系统的公平性。

Description

一种基于DPoS高容错分层共识方法
技术领域
本发明涉及区块链技术领域,具体涉及一种基于DPoS高容错分层共识方法。
背景技术
区块链技术通过链式数据结构利用分布式节点共识方法来生成和更新数据、利用密码学来保证其数据的安全性、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构,它的去中心化和不可篡改的良好特性使被广泛用于缺乏信任、完全自由开放的网络应用中,涉及金融、互联网和农业等多个领域中。而共识方法是保证区块链不可篡改和实现去中心化的核心技术之一,其主要作用于节点信息同步和记账信息达成一致。共识方法的优劣决定着整个去中心化系统运作效率,而共识方法容错率和执行效率是衡量共识方法优劣的重要指标。自区块链问世以来,相继涌现了多种共识算法。在《Consensus Algorithms in Blockchain:Comparative Analysis,Challenges andOpportunities》描述分析了各种共识算法,对于当前主流的共识算法,以牺牲算力为代价的PoW和PoS算法造成计算资的浪费,PBFT算法容错率较低。DPoS算法虽然保证了计算资源充分利用但导致节点权重分化严重而破坏共识的公平性,且容错率也难以保证,中国专利CN201710559333.1提出一种基于奖惩的数据区块链授权参与共识的拜占庭容错方法及其奖惩方法,通过选举出数据块的共识节点进行共识,根据共识结果对节点进行奖惩,此共识算法的奖惩方法激励节点参与共识的积极性,但是此算法基于拜占庭容错算法而是设计,也存在拜占庭算法容错率低的问题,寻求一种高容错共识方法一直是区块链技术的核心问题,相比较各种共识算法,DPoS算法能源消耗低,确认速度快,虽然存在缺陷但可以结合网络结构对其进行改进,在保证公平化基础上设计出一种高容错的共识方法,因此,基于DPoS改进共识算法的研究是近几年共识算法领域的重要研究方向。
发明内容
针对上述存在的问题,本发明在DPoS共识算法的基础上进行改进,引入共识积分奖励方法克服因DPoS中某些节点资产堆积导致的权重失衡而导致的公平性问题,提出一种多层共识多次过滤恶意节点的方法,以提高系统的容错率。
为了实现上述目的,本发明采用的技术方案如下:一种基于DPoS高容错分层共识方法,包括以下步骤:
1)构建区块链网络,区块链网络包含N个节点;
2)初始化节点参数,节点参数包括节点状态位STATE、共识积分CNS_SCORE、错误计数位ERROR_COUNT;
3)对区块链网络中的节点进行分组,其中,组数为G,每组K个节点,不足K个与前一组合并;
4)利用FINDLEADER选举方法计算每一组的提名节点,提名节点编号记为i;
5)核实提名节点,确定决议节点;
6)利用组内决议节点收集并校验交易列表;
7)构建议长组,即节点服务管理集群根据缓存栈中的信息,按照时间顺序对决议节点进行分组,所述分组方法是:每三个组内决议节点构成一议长组,议长组的总数M=G/h,不足h个与前面的议长组合并,h为议长组内节点个数;
8)议长组内轮番校验,即验证被校验节点的全局缓存中的交易签名与进行校验节点重新计算出的节点交易签名的一致性;所述校验过程如下:判断决议节点收到的两个来自其他决议节点的验证结果是否都是否决,如是则该决议节点所在组存在恶意节点,对该组节点进行排查,发现恶意节点并按照节点积分规则扣除积分,并将ERROR_COUNT加e,e为错误步长,转步骤9);否则校验通过,转步骤9);
9)选出组间议长节点,即对已通过轮番校验的决议节点,利用FINDLEADER选举方法计算议长节点编号j,议长节点是由该议长组内多数验证结果相同的节点选出,该议长节点收集其他决议节点的交易信息并存入当前议长组的全局缓存栈;
10)议长节点收集交易列表,即议长节点收集其他通过校验的决议节点的交易列表,然后对交易打包签名后上传到全局缓存栈;
11)选出最后出块节点,即由各个议长节点组成最终决议组,然后在最终决议组中根据积分权重计算出块节点,利用FINDLEADER选举方法计算出块节点编号l;
12)利用出块节点将数据写入到区块链上,即由出块该节点收集其他议长节点的交易列表,通过获取前一个区块的哈希对当前所有的交易进行打包出块,并发送确认消息给各个议长节点;
13)判断各个议长节点是否在规定的时间收到确认消息,如在规定的时间收到确认消息则该共识完成,转步骤14);否则各个议长节点向节点服务管理集群发送超时消息,并根据规则处罚出块节点,转步骤11);
14)对节点进行积分奖励,将CNS_SCORE置为cs,然后对完成共识的节点按照奖励规则进行奖励,cs为积分初始值。
进一步的,上述步骤3)中对区块链网络节点进行分组的方法包括如下步骤:
3.1)设置组数变量G,通过G值来执行分组协议;
3.2)以区块链节点公钥为索引按G值随机对区块链节点公钥进行组合并为每一组分配一小块全局缓存;
3.3)将分组结果暂存到节点服务管理集群中,并将每一组分组列表广播到在列表中的各个节点;
3.4)各个节点接收到分组消息后,按消息中的节点地址进行相互通信进行组网,来完成分组。
进一步的,上述步骤4)中FINDLEADER选举方法包括如下步骤:
4.1)构建每一组的共识积分集合,记为
Figure GDA0003918339050000031
Figure GDA0003918339050000032
表示编号为i、序号为m 的节点共识积分,R为当前组中的节点数上限,N为区块链网络的节点总数,G为第一次分组数,R=N/G;
4.2)计算各个节点共识权重,构建节点权重集合,其中节点共识权重计算公式如下:
Figure GDA0003918339050000033
各个节点权重集合记为:
Figure GDA0003918339050000034
Figure GDA0003918339050000035
表示编号为i、序号为m的节点积分权重;
4.3)对当前节点权重集合中的权重通过asc(arrlist)升序排序函数对集合进行升序排序得到最终权重集合worder
Figure GDA0003918339050000036
4.4)计算选举节点编号i,计算公式如下:
Figure GDA0003918339050000037
其中,getPeerIndex(v)是随机功能函数。
进一步的,上述步骤5)中,核实提名节点的方法包括如下步骤:
5.1)组内其他节点对已选出的提名节点进行投票,并将结果发给提名节点和全局缓存栈;
5.2)判断投票结果,如果提名节点收到该组半数以上的赞成票时,该节点通过核实,当选为决议节点,转步骤6);否则,判断选举次数,如果选举次数小于选举失败次数f转步骤5.1),重新投票,否则,转步骤5.3);
5.3)全局缓存栈执行组解散协议解散该组,该组下所有节点不能继续进行此轮共识。
进一步的,上述步骤6)利用组内决议节点收集并校验交易列表的方法包括如下步骤:
6.1)组内决议节点收集组内其他节点交易列表m和交易列表摘要S1;
6.2)利用摘要函数digest(m)计算交易列表摘要S2;
6.3)比较交易列表摘要S1和交易列表摘要S2,如果S1=S2则校验通过,将该交易列表暂时存储到全局缓存栈中;否则校验不通过,驳回该交易信息,按积分规则扣除共识积分 CNS_SCORE,同时ERROR_COUNT加e,并将该交易列表暂时存储到全局缓存栈中。
本发明通过多层次决议的方式,层层对故障节点进行筛选,使得故障节点在新一层共识中当选超级节点的概率大大降低,从而提高了当前共识的容错率,采用动态积分权重提名制,按积分权重提名保证了节点按参与共识付出算力当选超级节点的可能性,在新一轮共识中,通过对上一轮出块节点积分重置使整个网络不会因积分出现两级分化而破坏系统的公平性。
附图说明
图1为基于DPoS高容错分层共识方法流程图。
具体实施方式
下面结合附图以及具体实施例对本发明作进一步的说明,需要指出的是,下面仅以一种最优化的技术方案对本发明的技术方案以及设计原理进行详细阐述,但本发明的保护范围并不限于此。
所述实施例为本发明的优选的实施方式,但本发明并不限于上述实施方式,在不背离本发明的实质内容的情况下,本领域技术人员能够做出的任何显而易见的改进、替换或变型均属于本发明的保护范围。
一种基于DPoS高容错分层共识方法,如图1所示,包括如下步骤:
1)构建区块链网络,该网络包含N个节点;
2)初始化节点参数,节点参数包括节点状态位STATE、共识积分CNS_SCORE、错误计数位ERROR_COUNT;在本发明具体实施例中,节点状态STATE,为0时表示故障、为1时表示正常、为2时表示警告;初始值为1;共识积分CNS_SCORE的奖励规则为:每当节点完成一次共识,对于所有能正常进行共识的节点按不同身份进行积分奖励,普通节点积分奖励5分,组内决议节点积分奖励10分,议长节点积分奖励15分,对于已成功完成出块节点的共识积分重置为10分,初始值cs为1,这种由动态积分计算出的动态权重使已出块的节点再次当选出块节点的几率降低,使未出块而付出算力多的节点更加容易当选出块节点。从而保证了共识的公平性;处罚规则对应上述奖励规则,节点积分最低为0;错误计数位ERROR_COUNT的取值方法是:每当节点被当前超级节点校验出错误信息,该错误计数累加并且STATE置为2并扣除相应的共识积分,如果该计数位的数值连续累加超过5次则 STATE置为0并且共识积分置为0,并由当前超级节点将该节点加入全网全局黑名单列表;错误计数位ERROR_COUNT的初始值为0;
3)第一层筛选对区块链网络中的节点进行分组:分为G组,每组K个,不足K个与前一组合并,由以上关系可得N=G×K;
3.1)设置组数变量G,通过G值来执行分组协议;
3.2)以区块链节点公钥为索引按G值随机对区块链节点公钥进行组合并为每一组分配一小块全局缓存;
3.3)将分组结果暂存到节点服务管理集群中,并将每一组分组列表广播到在列表中的各个节点;
3.4)各个节点接收到分组消息后,按消息中的节点地址进行相互通信进行组网,来完成分组;
4)利用FINDLEADER选举方法计算每一组的提名节点,提名节点编号记为i;
其中,FINDLEADER选举方法如下:
4.1)构建每一组的共识积分集合,记为
Figure GDA0003918339050000051
Figure GDA0003918339050000052
表示编号为i、序号为m的节点共识积分,R为当前组中的节点数上限;
4.2)计算各个节点共识权重,构建节点权重集合,其中节点共识权重计算公式如下:
Figure GDA0003918339050000053
各个节点权重集合记为:
Figure GDA0003918339050000061
4.3)对当前节点权重集合中的权重通过asc(arrlist)升序排序函数对集合进行升序排序得到最终权重集合worder
Figure GDA0003918339050000062
4.4)计算选举节点编号,公式如下:
Figure GDA0003918339050000063
其中,getPeerIndex(v)是随机功能函数:通过权重累加值产出随机数,然后通过确定随机数在有序权重区间内的位置来确定节点的编号,该编号下的节点为提名节点。
5)核实提名节点,确定决议节点:通过其他节点对当前提名节点进行投票,来进一步核实该节点的公信力,如果核实通过,则确定该节点为组内的决议节点,其核实方法如下:
5.1)组内其他节点对已选出的提名节点进行投票,并将结果发给提名节点和全局缓存栈;
5.2)判断投票结果,如果提名节点收到该组半数以上的赞成票时,该节点通过核实,当选为决议节点;转步骤6),否则,判断选举次数,如果选举次数小于f转步骤5.1)重新投票,如果等于f,转步骤5.3);本发明具体实施例中,f=3;
5.3)全局缓存栈执行组解散协议解散该组,该组下所有节点不能继续进行此轮共识。
6)利用组内决议节点收集并校验交易列表,具体方法如下:
6.1)组内决议节点收集组内其他节点交易列表m和交易列表摘要S1;
6.2)利用摘要函数digest(m)计算交易列表摘要S2;
6.3)比较交易列表摘要S1和交易列表摘要S2,如果S1=S2则校验通过,将该交易列表暂时存储到全局缓存栈中;否则校验不通过,驳回该交易信息,按积分规则扣除共识积分 CNS_SCORE,同时ERROR_COUNT加e,并将该交易列表暂时存储到全局缓存栈中,本发明具体实施例中,e=1;
7)第二层筛选对组之间构建议长组:节点服务管理集群会根据缓存栈中的信息,按照时间顺序对决议节点进一步展开分组。分组方法是:每三个组内决议节点构成一议长组,则议长组的总数M=G/h,不足h个与前面的议长组合并,本发明具体实施例中,h=3;
8)议长组内轮番校验:验证被校验的节点的全局缓存中的交易签名与进行校验节点重新计算出的节点交易签名的一致性。其校验过程如下:判断决议节点收到的两个来自其他决议节点的验证结果,如果验证结果都是否决,则该决议节点所在组存在恶意节点,对该组节点进行排查,发现恶意节点并按照节点积分规则扣除积分,并将ERROR_COUNT加e;否则校验通过;
9)选出组间议长节点:针对已通过轮番校验的决议节点,利用FINDLEADER选举方法计算议长节点编号j,议长节点是由该议长组内多数验证结果相同的节点选出,该议长节点收集其他决议节点的交易信息并存入当前议长组的全局缓存栈;
10)议长节点收集交易列表:议长节点收集其他通过校验的决议节点的交易列表,然后对交易打包签名后上传到全局缓存栈。
11)选出最后出块节点:最后由各个议长节点组成最终决议组,然后在最终决议组中根据积分权重选出出块节点,利用FINDLEADER选举方法计算出块节点编号l。
12)利用出块节点将数据写入到区块链上:
12.1)出块该节点收集其他议长节点的交易列表;
12.2)通过获取前一个区块的哈希对当前所有的交易进行打包出块,并发送确认消息给各个议长节点;
13)当各个议长节点在规定的时间收到确认消息则该共识完成, 转步骤14)。
当各个议长节点未在规定的时间收到确认消息,各个议长节点向节点服务管理集群发送超时消息。并根据规定处罚出块节点,跳转到步骤11)。
14)对节点进行积分奖励:如果出块成功,将CNS_SCORE置为cs,然后对完成共识的节点按照奖励规则进行奖励,本发明具体实施例中,cs=1。

Claims (2)

1.一种基于DPoS高容错分层共识方法,其特征在于,包括以下步骤:
1)构建区块链网络,所述区块链网络包含N个节点;
2)初始化节点参数,所述节点参数包括节点状态位STATE、共识积分CNS_SCORE、错误计数位ERROR_COUNT;
3)对区块链网络中的节点进行分组,其中,组数为G,每组K个节点,不足K个与前一组合并;
4)利用FINDLEADER选举方法计算每一组的提名节点,提名节点编号记为i;
所述FINDLEADER选举方法包括如下步骤:
4.1)构建每一组的共识积分集合,记为
Figure FDA0003918339040000011
Figure FDA0003918339040000012
表示编号为i、序号为m的节点共识积分,R表示当前组中节点数上限,N为区块链网络的节点总数,G为第一次分组数,R=N/G;
4.2)计算各个节点共识权重,构建节点权重集合,其中节点共识权重计算公式如下:
Figure FDA0003918339040000013
各个节点权重集合记为:
Figure FDA0003918339040000014
Figure FDA0003918339040000015
表示编号为i、序号为m的节点积分权重;
4.3)对当前节点权重集合中的权重通过asc(arrlist)升序排序函数对集合进行升序排序得到最终权重集合worder
Figure FDA0003918339040000016
4.4)计算选举节点编号i,计算公式如下:
Figure FDA0003918339040000017
其中,getPeerIndex(v)是随机功能函数;
5)核实提名节点,确定决议节点;
所述核实提名节点的方法包括如下步骤:
5.1)组内其他节点对已选出的提名节点进行投票,并将结果发给提名节点和全局缓存栈;
5.2)判断投票结果,如果提名节点收到该组半数以上的赞成票时,该节点通过核实,当选为决议节点,转步骤6);否则,判断选举次数,如果选举次数小于选举失败次数f转步骤5.1),重新投票,否则,转步骤5.3);
5.3)全局缓存栈执行组解散协议解散该组,该组下所有节点不能继续进行此轮共识;
6)利用组内决议节点收集并校验交易列表;
所述利用组内决议节点收集并校验交易列表的方法包括如下步骤:
6.1)组内决议节点收集组内其他节点交易列表m和交易列表摘要S1;
6.2)利用摘要函数digest(m)计算交易列表摘要S2;
6.3)比较交易列表摘要S1和交易列表摘要S2,如果S1=S2则校验通过,将该交易列表暂时存储到全局缓存栈中;否则校验不通过,驳回交易信息,按积分规则扣除共识积分CNS_SCORE,同时ERROR_COUNT加e,并将该交易列表暂时存储到全局缓存栈中;
7)构建议长组,节点服务管理集群根据缓存栈中的信息,按照时间顺序对决议节点进行分组,所述分组方法是:每三个组内决议节点构成一议长组,议长组的总数M=G/h,不足h个与前面的议长组合并,h为议长组内节点个数;
8)议长组内轮番校验,验证被校验节点的全局缓存中的交易签名与进行校验节点重新计算出的节点交易签名的一致性;所述校验过程如下:判断决议节点收到的两个来自其他决议节点的验证结果是否都是否决,如是则该决议节点所在组存在恶意节点,对该组节点进行排查,发现恶意节点并按照节点积分规则扣除积分,并将ERROR_COUNT加e,e为错误步长,转步骤9);否则校验通过,转步骤9);
9)选出组间议长节点,对已通过轮番校验的决议节点,利用FINDLEADER选举方法计算议长节点编号j,议长节点是由该议长组内多数验证结果相同的节点选出,该议长节点收集其他决议节点的交易信息并存入当前议长组的全局缓存栈;
10)议长节点收集交易列表,议长节点收集其他通过校验的决议节点的交易列表,然后对交易打包签名后上传到全局缓存栈;
11)选出最后出块节点,由各个议长节点组成最终决议组,然后在最终决议组中根据积分权重计算出块节点,利用FINDLEADER选举方法计算出块节点编号l;
12)利用出块节点将数据写入到区块链上,由出块该节点收集其他议长节点的交易列表,通过获取前一个区块的哈希对当前所有的交易进行打包出块,并发送确认消息给各个议长节点;
13)判断各个议长节点是否在规定的时间收到确认消息,如在规定的时间收到确认消息则该共识完成,转步骤14);否则各个议长节点向节点服务管理集群发送超时消息,并根据规则处罚出块节点,转步骤11);
14)对节点进行积分奖励,将CNS_SCORE置为cs,然后对完成共识的节点按照奖励规则进行奖励,cs为积分初始值。
2.如权利要求1所述的基于DPoS高容错分层共识方法,其特征在于,所述步骤3)中对区块链网络节点进行分组的方法包括如下步骤:
3.1)设置组数变量G,通过G值来执行分组协议;
3.2)以区块链节点公钥为索引按G值随机对区块链节点公钥进行组合并为每一组分配一小块全局缓存;
3.3)将分组结果暂存到节点服务管理集群中,并将每一组分组列表广播到在列表中的各个节点;
3.4)各个节点接收到分组消息后,按消息中的节点地址进行相互通信进行组网,来完成分组。
CN201911112959.3A 2019-11-14 2019-11-14 一种基于DPoS高容错分层共识方法 Active CN111010278B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911112959.3A CN111010278B (zh) 2019-11-14 2019-11-14 一种基于DPoS高容错分层共识方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911112959.3A CN111010278B (zh) 2019-11-14 2019-11-14 一种基于DPoS高容错分层共识方法

Publications (2)

Publication Number Publication Date
CN111010278A CN111010278A (zh) 2020-04-14
CN111010278B true CN111010278B (zh) 2023-04-07

Family

ID=70113372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911112959.3A Active CN111010278B (zh) 2019-11-14 2019-11-14 一种基于DPoS高容错分层共识方法

Country Status (1)

Country Link
CN (1) CN111010278B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110661867B (zh) * 2019-09-25 2021-07-23 东北大学 一种基于改进工作量证明与权益证明的区块链共识方法
CN111899094A (zh) * 2020-05-12 2020-11-06 成都芯域矩阵科技有限公司 一种基于节点信用评分和预交诚意金的区块链共识方法及系统
CN111695996B (zh) * 2020-05-12 2024-02-20 成都芯域矩阵科技有限公司 一种基于预交诚意金的区块链共识方法及系统
CN111695997B (zh) * 2020-05-12 2024-02-20 成都芯域矩阵科技有限公司 一种基于节点信用评分和预交诚意金的区块链共识方法及系统
CN111695994B (zh) * 2020-05-12 2023-12-26 成都芯域矩阵科技有限公司 一种基于信用评分的区块链共识方法及系统
CN111770103B (zh) * 2020-06-30 2021-12-14 中国科学技术大学 基于区块链共识结果反馈的网络节点安全属性评估方法
CN111858105B (zh) * 2020-08-26 2021-03-16 电子科技大学 基于改进多层pbft的个人档案许可链管理系统及方法
CN113422805B (zh) * 2021-05-25 2023-04-07 江苏大学 一种基于可验证随机函数的分片共识方法
CN115374216B (zh) * 2022-08-10 2024-04-02 深圳市沃享科技有限公司 共识方案的构建方法、装置、终端设备及计算机介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445711B (zh) * 2016-08-28 2019-04-30 杭州云象网络技术有限公司 一种应用于区块链的拜占庭容错共识方法
CN108366113B (zh) * 2018-02-08 2020-12-15 南京邮电大学 一种基于dpos的分组高容错共识机制
CN109246122A (zh) * 2018-09-29 2019-01-18 上海海事大学 一种基于谣言传播协议的拜占庭容错区块链生成方法

Also Published As

Publication number Publication date
CN111010278A (zh) 2020-04-14

Similar Documents

Publication Publication Date Title
CN111010278B (zh) 一种基于DPoS高容错分层共识方法
CN112039964B (zh) 一种基于区块链的节点信誉共识方法
CN110677485B (zh) 一种基于信用的动态分层拜占庭容错共识方法
CN109639837B (zh) 基于信任机制的区块链DPoS共识方法
CN111026578B (zh) 一种基于预言机的智能合约安全检测方法
WO2018049713A1 (zh) 一种基于区块链技术一致性算法的数据管理方法及系统
CN109872152A (zh) 基于股份授权证明机制的区块链共识方法及相关设备
CN110796547A (zh) 一种基于联盟区块链的改进的实用拜占庭容错系统
CN111106942A (zh) 一种基于ap-pbft算法的区块链信用机制
CN110611701B (zh) 一种基于区块链的参数配置和交易处理方法
CN110602117B (zh) 基于区块链的车联网节点一致性共识方法
CN110445778A (zh) 一种应用于联盟链的共识算法
CN110602705B (zh) 一种适用于车联网环境的改进pbft共识方法
CN111935207A (zh) 基于改进型c4.5算法区块链系统共识方法
CN109889382A (zh) 一种基于区块链混合共识的域名信息维护系统
CN109214795A (zh) 一种基于dag算法的区块链混合共识方法
CN113407632A (zh) 一种基于pbft的委托权益证明区块链共识算法
CN110298754A (zh) 一种应用于区块链的共识方法
CN112104482A (zh) 一种基于并行投票的共识方法
CN112597240B (zh) 一种基于联盟链的联邦学习的数据处理方法与系统
CN113422805B (zh) 一种基于可验证随机函数的分片共识方法
CN113014635A (zh) 区块链系统的节点类型划分方法、装置及区块链系统
CN113448694B (zh) 一种提高事务处理能力的区块链共识方法
CN111490994B (zh) 区块链节点群间dpos与节点群内pow结合的共识机制方法
CN110768798A (zh) 面向物联网的轻量级区块链共识方法、系统及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant