CN112769580B - 一种区块链分层激励共识算法 - Google Patents

一种区块链分层激励共识算法 Download PDF

Info

Publication number
CN112769580B
CN112769580B CN202011622845.6A CN202011622845A CN112769580B CN 112769580 B CN112769580 B CN 112769580B CN 202011622845 A CN202011622845 A CN 202011622845A CN 112769580 B CN112769580 B CN 112769580B
Authority
CN
China
Prior art keywords
node
nodes
consensus
message
coefficient
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
CN202011622845.6A
Other languages
English (en)
Other versions
CN112769580A (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.)
Yangjiang Chain Point Innovation Technology Development Co ltd
Guangdong Ocean University
Original Assignee
Yangjiang Chain Point Innovation Technology Development Co ltd
Guangdong Ocean 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 Yangjiang Chain Point Innovation Technology Development Co ltd, Guangdong Ocean University filed Critical Yangjiang Chain Point Innovation Technology Development Co ltd
Priority to CN202011622845.6A priority Critical patent/CN112769580B/zh
Publication of CN112769580A publication Critical patent/CN112769580A/zh
Application granted granted Critical
Publication of CN112769580B publication Critical patent/CN112769580B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/44Star or tree networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明适用于区块链应用技术领域,提供了一种区块链分层激励共识算法。本发明的区块链分层激励共识算法,采用树形通信网络拓扑,节点传输数据时无需每次都通过P2P网络将消息广播给其它节点,而是由双亲节点或孩子节点处理后发送给其他节点,得益于树形通信网络拓扑,系统的通信复杂度得到了大大的降低。本发明的共识算法包含了共识节点动态生成树算法以及对应的奖励机制,传统的PBFT共识算法缺乏相应的奖励机制,节点参与共识时需要付出算力与带宽,导致节点缺乏参与共识的动力。本发明的共识节点激励鼓励节点诚实的参与共识,并通过保持正确的数据共识,从而获取更高的奖励,核心目的是使得节点参与共识,并按照规则传输正确的消息。

Description

一种区块链分层激励共识算法
技术领域
本发明属于区块链应用技术领域,尤其涉及一种区块链分层激励共识算法。
背景技术
区块链是一种目前受到各国战略性关注的革命性技术,它是不可篡改、可追踪、不断增长的分布式账本式数据库。随着比特币近年来的快速发展与普及,区块链技术的研究与应用也呈现出爆发式增长态势,被认为是继大型机、个人电脑、互联网、移动社交网络之后计算范式的第五次颠覆式创新,是人类信用进化史上继血亲信用、贵金属信用、央行纸币信用之后的第四个里程碑。未来的应用将十分广泛,包括计算机(加密、通信、软件、硬件)、法律、金融(货币和市场)、经济、管理、会计、心理、统计、数学、社会学等领域,如公共交易账本、媒体版权保护、个人学位认证、证据存储数据库以及电子货币等显而易见的应用,正成为未来数字社会基础设施。
共识算法(Consensus algorithm)是区块链建立信任的核心技术,能使彼此不信任的参与者以分散的方式对区块链系统中事务的有效性进行验证并达成一致,共识算法的效率直接影响区块链系统的整体性能,因此研究高效的共识算法对区块链技术的发展具有积极推动作用。
在区块链技术不断发展推演的过程中,具有代表性的一致性算法主要有工作量证明算法(ProofofWork,PoW),权益证明算法(ProofofStake,PoS),股份授权证明机制算法(Delegated Proof-of-Stake,DPoS),实用拜占庭容错算法(Practical Byzantine FaultTolerance,PBFT)。在实际应用时,会根据不同的场景选择不同的共识算法,并会在此基础之上进行相应的改进。区块链共识算法根据设计思想可分为以下几类:
(1)证明类:核心思想是建块节点需证明自己具有某种能力或完成了某种事情才能合法建块,通常共识方式是完成一些难以解决却易于验证的难题去竞争建块的权利.常见的有工作量证明(proofofwork,PoW),权益证明(proof ofstake,PoS)等。
(2)拜占庭类:以拜占庭协议为基础设计整个算法,建块节点通常是由其他节点投票选举或从所有符合一定条件的节点中随机选举。常见的有实用拜占庭容错算法(practical Byzantine fault tolerance,PBFT),Algorand算法等。
(3)传统共识类:将传统分布式系统的一致性算法应用于区块链系统。通常算法共识效率较高,但不支持拜占庭容错,即不考虑恶意篡改和伪造数据的拜占庭节点,典型的有Raft算法。
(4)混合类共识:使用多种共识算法的混合体来选择建块节点。比如PoW和PoS混合的Casper算法,Raft与PBFT混合的Tangaroa算法等。
其中,实用拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT)的提出是为了解决拜占庭一致性问题,虽然还有诸如HQ、Zyzzyva等其他常用的解决拜占庭一致性问题的算法,但区块链技术主要使用实用拜占庭容错算法来解决区块链中数据一致性的问题。实用拜占庭容错算法运行图如图1所示。
实用拜占庭容错算法在保证算法的活性(liveness)和安全性(safety)的前提下,允许f=(n-1)/3节点出现错误,其中f为错误节点数,n为节点总数量。安全性是指副本复制服务满足线性一致性,分布式系统就像中心化系统一样原子化执行操作,活性即只要失效副本的数量不超过(n-1)/3,并且延迟delay(t)不会无限增长,所有客户端最终都会收到针对他们请求的回复。如图1所示即为一个节点Replica 3发生错误。算法中将节点区分为主节点和副本节点,并且只有当进行视图变更才会改变主从节点的关系,因此节点之间会产生不对等的情况。在图1中,Replica 0是主节点,Replica 1、Replica 2、Replica 3都是副本节点,Request表示的是客户机发送的请求。
实用拜占庭容错算法除去请求和应答两个阶段,主要有三个阶段:预准备阶段、准备阶段和确认阶段。在算法中,客户机仅会将请求信息发送给主节点,而副本节点是无法接收到相应信息的,因此在整个的一致性过程中,都会依赖于主节点的忠诚度。而在应答阶段,主节点和副本节点都会进行应答,并且客户机会选择多数的应答结果来决定请求的最终结果。
预准备阶段是主节点将从客户机接收到的请求进行编号,并将计算好的数据广播给各个副本节点;而副本节点根据主节点发送的信息进行判断,判断消息签名、摘要、视图编号等信息,最后将节点的判断结果广播给其他所有节点。此阶段由于是主节点发起的一致性过程,因此,主节点不会发送关于这个阶段的决策信息,只有副本节点会将决策信息进行广播。
准备阶段是所有的节点在接受了预准备消息之后,首先会广播节点的准备消息,然后节点在接收到准备消息之后会对准备消息的签名进行验证,并且验证视图编号是否有效。在接收到2f个从不同节点发送出的相同的预准备消息和准备消息之后,准备阶段完成。
确认阶段是在完成了准备阶段之后,首先会对接收到的信息进行验证,若通过,则会将确认信息广播给其他节点,然后进入确认阶段。节点在进入确认阶段之后,当接收到其他节点发送过来的确认消息,会对消息签名进行判断,并对消息所属视图的有效性验证,在接收到2f+1个确认消息之后,确认阶段结束,将确认消息反馈给客户机,从而整个算法过程结束。
共识算法多应用于确保分布式系统数据一致,在区块链中引入共识算法最早是为了解决新交易块加入哈希链表中可能出现的“块冲突”问题,也就是同时多个块被不同的块创建者加入到哈希链表中而引起的链表分叉问题。区块要想加入到区块链系统,需要经过区块链各个节点的共识,同时区块链的不可篡改性也是由区块链的共识算法来保证的。区块链作为一个去中心化的分布式系统,其决策权分散在各个节点中,并且节点之间无需信任,因此,为了达到共同记账的目的,需要使用共识算法使各个节点对区块数据的有效性达成一致。
共识算法作为区块链中的关键技术,直接影响着区块链的交易处理能力、可扩展性和安全性,因此成为区块链技术研究的热点。然而,现有的共识算法也存在一些性能和激励机制的问题。
共识算法作为区块链中的关键技术,直接影响着区块链的交易处理能力、可扩展性和安全性,因此成为区块链技术研究的热点。然而,现有的共识算法也存在一些性能和激励机制的问题。以PBFT、HoneyBadgerBFT、Zyzzyva代表的拜占庭类共识算法虽然理论上具有较高的吞吐量,但是由于节点共识需要通过多次N-N广播通讯的方式进行,这些算法的性能会随着节点数目的增加而急剧下降。节点参与共识出块的积极性不足。超级节点往往具有比较高的硬件配置与网络带宽,现有的拜占庭类共识算法往往由为数不多的超级节点出块并获取出块奖励,普通节点参与维护区块链数据库共同出块的动力不足,这导致区块链系统面临由仅少数节点参与维护的中心化的风险。
发明内容
本发明实施例提供一种区块链分层激励共识算法,通过该算法把参与共识的节点划分为树状层次结构,底层叶节点搜集打包到区块的信息,上层节点搜集子节点信息,顶层节点汇总其他节点的信息后出块,并沿树形层次结构发送给其他共识节点。相比于传统的PBFT算法,区块链分层激励共识算法有效减少了N-N广播的次数,利用树形拓扑结构对消息进行有效的聚合并打包传输。此外,本专利还包括了节点共识奖励机制,节点的层次结构由系统综合考虑节点层次、节点奖励、诚信度、负载均衡等影响因素,对节点的共识奖励和节点所在的层次进行动态调整,鼓励节点正确的参与共识,从而减少“双花攻击”和“发送错误信息”等节点作恶行为的产生。
本发明实施例是这样实现的:
一种区块链分层激励共识算法,通过该算法把参与共识的节点划分为树状层次结构,底层叶节点搜集打包到区块的信息,上层节点搜集子节点信息,顶层节点汇总其他节点的信息后出块,并沿树形层次结构发送给其他共识节点。
一种区块链分层激励共识算法,具体步骤如下:
(1)客户端Clientn向共识节点Nroot发送消息<Request,Cid,m1,d1,t1>,其中Request表示这是一条由ID为Cid的客户端发送的请求消息,m1是发送的请求消息,d1是请求消息m1的摘要,t1是发送消息的时间戳,n为大于1的整数;
(2)底层的共识节点Nroot搜集来自客户端Clientn的事务请求并对其合法性进行验证,验证的内容包括摘要d1与消息m1是否一致,时间戳是否有效;并将系统一个出块时间周期内的搜集到的消息打包成一条请求消息<RequestN,Nid,m1,d1,t1>,存入本地消息日志,并沿树状层次结构向上层节点发送此消息,重复这个过程,直至最顶层;其中RequestN表示这是一条由ID为Nid的共识节点发送的请求消息;
(3)最顶层的共识节点Ntop对接收到的请求消息进行验证,验证的内容包括:消息的签名是否正确,摘要d1与消息m1是否一致,交易是否重复;若消息有效,将其存入消息日志并且向最顶层的其他共识节点广播该消息;
(4)最顶层节点的主节点搜集来自其他共识节点Ntop发送的消息,并对消息进行汇总后产生区块,而后发送一条广播区块信息<Blockid,v,m2,d2,t2>,其中Blockid是指包含主节点ID的区块,v是当前的视图,m2是广播的内容,d2是广播m2的摘要,t2是广播的时间戳;
(5)每个共识节点收到广播信息后,向相同层级内的其他共识节点广播收到的信息摘要d2并进行对广播消息签名,若收集到超过1/3节点的广播消息后,将消息日志中的事务写入本地账本,并向下层孩子节点广播区块信息;重复该过程,直至叶子节点,叶子节点不再主动向上层节点发送回复消息,而是直接向客户端提交结果;
(6)在节点信息广播过程中,对共识节点广播的消息和最终本地执行的消息是否相同进行判断,通过调节奖励系数R对分层共识节点进行激励;
(7)根据步骤(6)中调节奖励系数R的变化,对节点层次进行动态维护。
步骤(1)中所述共识节点的不同节点之间通过可靠的点对点双向通信信道进行通信;
在本发明中,在网络节点弱同步的情况下,分布式系统在异步网络中保持活性;整个网络是可访问的,也就是系统中的节点可以方便的将消息传输到任何节点,每个节点都在其本地维护一个节点的列表,记录其他节点的编号、端口、状态等信息,另外网络结构是动态的,全网可以感知节点的加入和离开。
本发明中,共有n=3f+1个节点,f为P2P网络中任意时刻错误节点的最大数量,错误节点的行为有很多种情况,例如相互串通发送错误的消息,或者共同保持沉默,错误节点可能停机或者导致网络中的消息丢失延迟重复或者乱序。本申请是基于对手不能无限延迟正确的节点,同时对手的算力有限不能破解联盟链中所使用的密码算法,也不能伪造正确的签名以进行身份假冒攻击,不能由Hash值逆运算获取原始信息,也不能找到具有两条Hash值相同的消息。
区块链分层激励共识算法通过层次拓扑网络将全网划分成若干个子网,这些子网分布在不同的层次;在每个子网中,父节点作为主节点,领导孩子节点在该子网范围进行共识;在出块阶段,主节点向其领导的子节点进行广播块消息,该子网内的节点从下一层子网的主节点继续转发该块消息,直至叶子层节点。在消息搜集阶段,下层节点将消息逐层向上传播,客户端只和叶子层节点进行通讯。如果一个节点参与了共识的过程,我们就把该节点称为共识节点,每个节点都有一个唯一的ID。客户端发送交易信息或获取交易状态的最小单位,客户端也可以选择是否成为共识节点参与共识,若客户端参与共识可获取出块奖励,但需要付出网络与算力的代价。
步骤(2)中所述树状层次结构是参与共识的节点层次结构,底层叶子节点搜集打包到区块的信息,上层节点搜集子节点信息,顶层节点汇总其他节点的信息后出块,并沿树形层次结构发送给其他共识节点。
作为优选的实施方式,步骤(2)中所述的树状层次结构中共识节点共分为4层,Level4层的节点是叶子节点,负责搜集客户端Clientn的交易信息,一个叶子节点对应多个客户端Clientn;客户端发送交易信息或获取交易状态时,需要先与叶子节点层中负责与客户端对应的节点进行通信;客户端发送的交易信息沿着Level4→Level3→Level2→Level1的顺序传递,上层节点汇总并验证来自下层节点的交易信息,Level1层选定一个作为主节点生成区块Block,该区块包含多个叶节点搜集的交易信息,生成的区块沿Level1→Level2→Level3→Level4的顺序沿着树形结构发送给下层共识节点,客户端与叶子节点通信,并从叶子节点获取完整的区块信息。
上述中,Level2和Level3层节点为中间层节点,又称为双亲节点,双亲节点负责搜集下层节点的消息请求,打包汇总后继续向顶层传播。此外,双亲节点还需要向孩子节点发送来自祖辈节点的消息。
本发明中,通过区块链分层激励共识算法,可以有效的提高节点的共识效率,提升系统的节点共识的可扩展性,并通过激励机制鼓励节点参与区块共识。
步骤(6)对分层共识节点进行激励,具体包括在节点信息广播过程中,对共识节点广播的消息和最终本地执行的消息是否相同进行判断,根据以下三种情形分别调节奖励系数R实现奖惩:
1)如果节点广播的消息和最终本地执行的消息相同,依据式I中的奖励系数公式,则该节点的奖励系数R逐渐提高;
式I;
其中,Ri表示第i次出块时节点的奖励系数,Ri+1表示第i+1次出块时节点的奖励系数,参数a用于系统控制节点奖励系数的增长速度,L表示节点所在的层次;
2)如果节点在这一层次未能让其它节点与该节点达成一致,体现为该节点没有发送任何消息,依据式II中的奖励系数公式,则该节点的奖励系数R会线性下降;
Ri+1=b×Ri,0<b<1;
式II;
其中,参数b应该根据具体的场景需求进行设置,从而对未能正确参与共识的节点奖励系数R进行调整;
3)如果一个节点向其他节点发送了不一致的消息,那么该节点被系统判定为作恶节点,并将奖励系数R设定为最小值0.1。
不同节点有不同的权限,节点所在的层次按照节点的奖励系数自上而下进行排列,并且不同的奖励系数拥有不同的权限。为了保证系统的稳定运行,规定只有节点奖励系数大于0.5的节点可以担任双亲节点;节点奖励系数大于0.1的节点可以参与节点之间的共识;节点奖励系数小于0.1的节点被判定为异常节点并且从共识节点中删除,不能参与节点共识,只能作为客户端Client向其他节点发送与接收消息,在周期T后,若该节点发出申请成为共识节点的请求,则该节点可以从底层叶子节点开始参与共识。
所述的奖励系数R为节点的参与共识的奖励系数,为在0.1到1.0之间的数,节点新加入区块链共识网络时,初始化的奖励系数为0.1,代表能获取基数奖励的10%;奖励系数越高,节点获取的经济收益越大。
对分层共识节点进行激励能为节点参与共识打下良好的基础,节点保持诚实的参与共识有助于提升节点在区块链系统中的层次,使得节点在更高层级的网络中参与共识从而获取更高的收益,从而减少节点作恶造成的数据不一致等问题。
步骤(7)中所述对节点层次进行动态维护,具体步骤如下:
1.自上而下按照层次遍历的顺序遍历节点,并判断各个节点Ng的奖励系数R,若节点Ng的奖励系数R小于0.1,将该节点从共识节点列表中删除;无论是双亲节点是否被删除,将子树中的所有节点加入候选节点列表;
2.从候选节点列表中选取奖励系数R最大的节点,并判定该节点是否可以作为双亲节点;若该节点的奖励系数R大于0.5,且该节点的奖励系数R大于双亲节点的奖励系数R,则该节点成为新的双亲节点;否则,将该节点从候选节点列表中删除;
3.判定双亲节点是否为空,若双亲节点为空,将该节点及其所有子节点加入候选节点列表,递归直至选出新的双亲节点,则节点层次调整完毕;若递归所有层次子节点依然无法找到满足要求的双亲节点,则说明候选节点均不满足奖励系数大于0.5的条件,无法成为共识节点,只能作用客户端节点接入其他共识节点。
本专利采用自上而下层次遍历的方式对共识节点进行调整,通过周期性的节点调整,可以及时清除系统中的作恶节点与未能很好达成共识的双亲节点,从而调整节点的层次,提升诚实节点的奖励权重与层次,降低作恶节点的收益,从而促使节点遵守协议。通过分层共识算法设计和分层共识节点激励机制的融合,提升系统的安全性和效率。
节点的奖励系数维护是该节点在本地维护其节点列表的过程,节点的奖励系数更新发生在每一次更换顶层主节点之后。从而使得顶层节点中具有最高奖励系数的节点作为主节点;顶层节点中,奖励系数最高的节点作为主节点,负责搜集其他顶层节点发送的事务信息并产生区块;通常情况下,各个层次的节点只需要通过在子网内部对节点的奖励系数和层次结构进行调整和更新,更新的过程由子网单独进行而不需要和其他子网进行通讯;但是在一定时间之后,有可能会出现各个不同子网对全网节点层次拓扑不一致的情况;因此,每隔一定周期(更新周期T),需要对所有节点进行同步处理将子网内的奖励系数和层次结构达成一致,更新周期定义如下:
初始更新周期T1由用户自主定义;Tj+1为j+1次的更新周期;Nj为参与共识节点的数量,随着节点数量的增多,更新周期Tn+1的时间应该缩短,这是因为节点更多意味着节点之间不一致的可能性增大,为了使得节点更快的达成一致,应该缩短更新周期;参数C用来调整更新周期变化的速度,管理员根据系统的运行状态调整C的值。由于奖励系数的更新是周期进行,不会对系统的整体运行效率产生显著的影响。
本发明专利与现有技术相比,具有以下有益效果:
1.与PBFT实用拜占庭容错共识算法相比,区块链分层激励共识算法做出的最重要的一个改变是将PBFT的网状通信网络拓扑变成了树形通信网络拓扑,节点传输数据时无需每次都通过P2P网络将消息广播给其它节点,而是由双亲节点或孩子节点处理后发送给其他节点,得益于树形通信网络拓扑,系统的通信复杂度得到了大大的降低。
2.区块链分层激励共识算法的第二个重要改变是包含了共识节点动态生成树算法以及对应的奖励机制,传统的PBFT共识算法缺乏相应的奖励机制,节点参与共识时需要付出算力与带宽,导致节点缺乏参与共识的动力。此外,采用树形结构进行共识时,如果树形结构频繁的进行调整,网络通信资源的损耗较大。我们设计的共识节点激励鼓励节点诚实的参与共识,并通过保持正确的数据共识,从而获取更高的奖励,核心目的是使得节点参与共识,并按照规则传输正确的消息。
附图说明
图1是现有技术中实用拜占庭容错算法运行图。
图2是本发明实施例中共识算法的Tree-based BFT整体框架结构示意图。
图3是本发明的节点层次动态维护流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后、顶、底……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
在本申请中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
需要说明的是,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。
另外,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
众所周知,共识算法作为区块链中的关键技术,直接影响着区块链的交易处理能力、可扩展性和安全性,因此成为区块链技术研究的热点。然而,现有的共识算法也存在一些性能和激励机制的问题。
(1)共识算法的性能瓶颈问题。性能瓶颈依然是当前区块链面临的最关键挑战之一,中本聪提出的PoW共识算法常应用在公有链中,PoW共识算法将去中心化与安全性发挥到了极致,但是却牺牲了性能。比特币的每秒大概能处理6笔交易,每10分钟生成一个大小为1MB的块,为了使得交易具有不可逆转的高可信度,通常需要等待交易的区块之后又生成了数十个区块,这导致确认交易需要等待一段很长的时间。以PBFT、HoneyBadgerBFT、Zyzzyva代表的拜占庭类共识算法虽然理论上具有较高的吞吐量,但是由于节点共识需要通过多次N-N广播通讯的方式进行,这些算法的性能会随着节点数目的增加而急剧下降。
例如,在具有n个共识节点的联盟链系统中,PBFT算法的通信复杂度为O(n2)。在事务请求阶段,客户端发送n条消息;在预准备阶段,主节点发送n-1条消息;在准备阶段,所有从节点共发送(n-1)2条消息;在确认阶段,主节点及从节点共发送n(n-1)条消息;在回复阶段,客户端共收到n条消息。因此,PBFT算法达成一轮共识,总共需要发送的消息数量为n+(n-1)+(n-1)2+n(n-1)+n=2n2。当节点数量n=200时,网络中发送消息的数量达到80000,这将给通信网络带来极大的负担。
(2)系统存在中心化风险,节点参与共识出块的积极性不足。超级节点往往具有比较高的硬件配置与网络带宽,现有的拜占庭类共识算法往往由为数不多的超级节点出块并获取出块奖励,普通节点参与维护区块链数据库共同出块的动力不足,这导致区块链系统面临由仅少数节点参与维护的中心化的风险。少数参与共识的节点有潜在的网络波动或者作恶的风险,从而导致区块链网络安全风险。
现有的拜占庭类共识算法,节点在进行共识的过程中,常常由超级节点轮流出块而没有设定相应的奖励机制,导致超级节点缺乏参与维护区块链网络的积极性,普通节点很难通过合理的机制成为超级节点参与出块并获取奖励,一个性能优良的共识算法可以通过激励机制,使得贪心矿工通过作恶行为能赚到的报酬低于按照规则可以赚到的报酬,并鼓励诚实的节点有机会成为超级节点参与共识,提升区块链系统的安全性。
本专利旨在提出一种区块链分层激励共识算法,通过该算法把参与共识的节点划分为树状层次结构,底层叶节点搜集打包到区块的信息,上层节点搜集子节点信息,顶层节点汇总其他节点的信息后出块,并沿树形层次结构发送给其他共识节点。相比于传统的PBFT算法,区块链分层激励共识算法有效减少了N-N广播的次数,利用树形拓扑结构对消息进行有效的聚合并打包传输。此外,本专利还提出一种节点共识奖励机制,节点的层次结构由系统综合考虑节点层次、节点奖励、诚信度、负载均衡等影响因素,对节点的共识奖励和节点所在的层次进行动态调整,鼓励节点正确的参与共识,从而减少“双花攻击”和“发送错误信息”等节点作恶行为的产生。
通过区块链分层激励共识算法,可以有效的提高节点的共识效率,提升系统的节点共识的可扩展性,并通过激励机制鼓励节点参与区块共识。
实施例一
一种区块链分层激励共识算法,包括以下内容:
本申请的联盟链中不同节点之间都可以通过可靠的点对点双向通信信道进行通信,虽然由FLP不可能定理我们可以知道在允许节点出错的情况下,完全异步的分布式系统无法保证共识在有限的时间内达成一致。然而,当网络节点弱同步的假设下,分布式系统仍然可以在异步网络中保持活性。相比于实用拜占庭容错共识算法,本申请的网络模型是部分同步的,即子消息发送到被目的节点接受的延迟存在上界。同时整个网络是可访问的,也就是系统中的节点可以方便的将消息传输到任何节点,每个节点都在其本地维护一个节点的列表,记录其他节点的编号、端口、状态等信息,另外网络结构是动态的,全网可以感知节点的加入和离开。
本申请中共有n=3f+1个节点,f为P2P网络中任意时刻错误节点的最大数量,错误节点的行为有很多种情况,例如相互串通发送错误的消息,或者共同保持沉默,错误节点可能停机或者导致网络中的消息丢失延迟重复或者乱序。申请是基于对手不能无限延迟正确的节点,同时对手的算力有限不能破解联盟链中所使用的密码算法,也不能伪造正确的签名以进行身份假冒攻击,不能由Hash值逆运算获取原始信息,也不能找到具有两条Hash值相同的消息。
区块链分层激励共识算法通过层次拓扑网络将全网划分成若干个子网,这些子网分布在不同的层次。在每个子网中,父节点作为主节点,领导孩子节点在该子网范围进行共识。在出块阶段,主节点向其领导的子节点进行广播块消息,该子网内的节点从下一层子网的主节点继续转发该块消息,直至叶子层节点。在消息搜集阶段,下层节点将消息逐层向上传播,客户端只和叶子层节点进行通讯。如果一个节点参与了共识的过程,我们就把该节点称为共识节点,每个节点都有一个唯一的ID。客户端发送交易信息或获取交易状态的最小单位,客户端也可以选择是否成为共识节点参与共识,若客户端参与共识可获取出块奖励,但需要付出网络与算力的代价,共识算法的详细步骤如下:
步骤1:客户端Clientn向共识节点Nroot发送消息<Request,Cid,m1,d1,t1>,其中Request表示这是一条由ID为Cid的客户端发送的请求消息,m1是发送的请求消息,d1是请求消息m1的摘要,t1是发送消息的时间戳,n为大于1的整数;
步骤2:底层的共识节点Nroot搜集来自客户端Clientn的事务请求并对其合法性进行验证,验证的内容包括摘要d1与消息m1是否一致,时间戳是否有效;并将系统一个出块时间周期内的搜集到的消息打包成一条请求消息<RequestN,Nid,m1,d1,t1>,存入本地消息日志,并向上层节点发送此消息,重复这个过程,直至最顶层;其中RequestN表示这是一条由ID为Nid的共识节点发送的请求消息;
步骤3:最顶层的共识节点Ntop对接收到的请求消息进行验证,验证的内容包括:消息的签名是否正确,摘要d1与消息m1是否一致,交易是否重复;若消息有效,将其存入消息日志并且向最顶层的其他共识节点广播该消息;
步骤4:最顶层节点的主节点搜集来自其他共识节点Ntop发送的消息,并对消息进行汇总后产生区块,而后发送一条广播区块信息<Blockid,v,m2,d2,t2>,其中Blockid是指包含主节点ID的区块,v是当前的视图,m2是广播的内容,d2是广播m2的摘要,t2是广播的时间戳;
步骤5:每个共识节点收到广播信息后,向相同层级内的其他共识节点广播收到的信息摘要d2并进行对广播消息签名,若收集到超过1/3节点的广播消息后,将消息日志中的事务写入本地账本,并向下层孩子节点广播区块信息;重复该过程,直至叶子节点,叶子节点不再主动向上层节点发送回复消息,而是直接向客户端提交结果;
步骤6:在节点信息广播过程中,对共识节点广播的消息和最终本地执行的消息是否相同进行判断,对分层共识节点进行激励。
步骤7:根据步骤6中调节奖励系数R的变化,对节点层次进行动态维护。
以图2所示的共识算法的Tree-basedBFT整体框架结构示意图,共识节点共分为4层,Level4层的节点是叶子节点,负责搜集客户端Clientn的交易信息,叶子节点与客户端Clientn是一对多的关系,即一个叶子节点对应多个客户端,但是此时只有一个固定ID叶子节点与该客户端对应;客户端发送交易信息或获取交易状态时,需要先与叶节点层中负责与客户端对应的节点进行通信。图2中客户端Client1将产生的交易信息Tx3发送给与该客户端对应的叶节点同时,客户端{Client3,Client4,Client6}将交易信息{Tx6,Tx9}发送给对应的叶节点/>客户端发送的交易信息沿着Level4→Level3→Level2→Level1的顺序传递,上层节点汇总并验证来自下层节点的交易信息,Level1层选定一个作为主节点生成区块Block,该区块包含多个叶节点搜集的交易信息,生成的区块沿Level1→Level2→Level3→Level4的顺序沿着树形结构发送给下层共识节点,客户端与叶子节点通信,并从叶子节点获取完整的区块信息。
Level2和Level3层节点为中间层节点,又称为双亲节点,双亲节点负责搜集下层节点的消息请求,打包汇总后继续向顶层传播。此外,双亲节点还需要向孩子节点发送来自祖辈节点的消息。如图2所示,节点会搜集来自/>的消息,并验证签名信息后,节点/>汇总并打包传输给/>在发送区块信息阶段,节点/>接收到来自上层节点/>的新生成区块信息后,对比新生成区块信息中该节点负责打包的信息与本地缓存的部分区块信息,若区块信息与本地信息一致,就向该子网中其他同层所有共识节点发送一条广播信息,该广播信息包含共识节点的签名信息与区块的指纹信息,该广播信息是对区块信息的确认。
关于分层共识节点激励机制:
分层共识节点激励机制能为节点参与共识打下良好的基础,节点保持诚实的参与共识有助于提升节点在区块链系统中的层次,使得节点在更高层级的网络中参与共识从而获取更高的收益,从而减少节点作恶造成的数据不一致等问题。
定义1:节点的参与共识的奖励基于奖励系数R进行,奖励系数越高,节点获取的经济收益越大。参与共识的节点,其奖励系数R是在0.1到1.0之间的数,节点新加入区块链共识网络时,初始化的奖励系数为0.1,代表能获取基数奖励的10%。
奖励基数在节点参与共识的过程中不断变化,如果节点广播的消息和最终本地执行的消息相同,那么节点的奖励系数逐渐提高,其计算公式为:
其中,Ri表示第i次出块时节点的奖励系数,Ri+1表示第i+1次出块时节点的奖励系数,a用于系统控制节点奖励系数的增长速度,L表示节点所在的层次。由于采用对数函数,随着节点奖励系数的不断升高,奖励系数R的增长率会降低。采用这种方式可以增加获得较高奖励系数的难度,如果节点想获取比较高的经济激励,则需要节点在网络中处于比较高的层次,从而需要不断维持诚信以获取奖励系数的增加。参数L用于避免较低层级节点奖励增长过快的问题,节点所在的层次越高,节点奖励系数增长的越快,从而鼓励节点保持诚信。
定义2:如果节点在这一层次未能让其它节点与该节点达成一致,甚至该节点没有发送任何消息,则该节点的奖励系数会线性下降,其计算公式为:
Ri+1=b×Ri,0<b<1;
参数b应该根据具体的场景需求进行设置,从而对未能正确参与共识的节点奖励系数进行调整。
定义3:如果一个节点向其他节点发送了不一致的消息,那么该节点被系统判定为作恶节点,并将奖励系数设定为最小值0.1。
不同节点有不同的权限,节点所在的层次按照节点的奖励系数自上而下进行排列,并且不同的奖励系数拥有不同的权限。为了保证系统的稳定运行,规定只有节点奖励系数大于0.5的节点可以担任双亲节点;节点奖励系数大于0.1的节点可以参与节点之间的共识;节点奖励系数小于0.1的节点被判定为异常节点并且从共识节点中删除,不能参与节点共识,只能作为客户端Client向其他节点发送与接收消息,在周期T后,若该节点发出申请成为共识节点的请求,则该节点可以从底层叶子节点开始参与共识。
关于节点层次动态维护机制:
在分层激励共识算法中,节点的层次是决定节点权力和奖励系数的重要依据,因此本专利设计了节点层次动态维护机制,来调整节点在共识中的层次关系。节点层次状态可以采用图3进行调整:
1:自上而下按照层次遍历的顺序遍历节点,并判断各个节点Ni的奖励系数,若节点Ni的奖励系数小于0.1,将该节点从共识节点列表中删除。无论是双亲节点是否被删除,将子树中的所有节点加入候选节点列表;
2:从候选节点列表中选取奖励系数最大的节点,并判定该节点是否可以作为双亲节点;若该节点的奖励系数大于0.5,且该节点的奖励系数大于双亲节点的奖励系数,则该节点成为新的双亲节点;否则,将该节点从候选节点列表中删除;
3:判定双亲节点是否为空,若双亲节点为空,将该节点及其所有子节点加入候选节点列表,递归直至选出新的双亲节点,则节点层次调整完毕;若递归所有层次子节点依然无法找到满足要求的双亲节点,则说明候选节点均不满足奖励系数大于0.5的条件,无法成为共识节点,只能作用客户端节点接入其他共识节点。
本专利采用自上而下层次遍历的方式对共识节点进行调整,通过周期性的节点调整,可以及时清除系统中的作恶节点与未能很好达成共识的双亲节点,从而调整节点的层次,提升诚实节点的奖励权重与层次,降低作恶节点的收益,从而促使节点遵守协议。通过分层共识算法设计和分层共识节点激励机制的融合,提升系统的安全性和效率。
节点的奖励系数维护是该节点在本地维护其节点列表的过程,节点的奖励系数更新发生在每一次更换顶层主节点之后。从而使得顶层节点中具有最高奖励系数的节点作为主节点。顶层节点中,奖励系数最高的节点作为主节点,负责搜集其他顶层节点发送的事务信息并产生区块。通常情况下,各个层次的节点只需要通过在子网内部对节点的奖励系数和层次结构进行调整和更新,更新的过程由子网单独进行而不需要和其他子网进行通讯。但是在一定时间之后,有可能会出现各个不同子网对全网节点层次拓扑不一致的情况。因此,每隔一定周期,需要对所有节点进行同步处理将子网内的奖励系数和层次结构达成一致,更新周期定义如下:
初始更新周期T1由用户自主定义;Nj为参与共识节点的数量,随着节点数量的增多,更新周期Tj+1的时间应该缩短,这是因为节点更多意味着节点之间不一致的可能性增大,为了使得节点更快的达成一致,应该缩短更新周期;C用来调整更新周期变化的速度,管理员根据系统的运行状态调整C的值。由于奖励系数的更新是周期进行,不会对系统的整体运行效率产生显著的影响。
本专利旨在提出一种区块链分层激励共识算法,通过该算法把参与共识的节点划分为树状层次结构,底层叶节点搜集打包到区块的信息,上层节点搜集子节点信息,顶层节点汇总其他节点的信息后出块,并沿树形层次结构发送给其他共识节点。相比于传统的PBFT算法,区块链分层激励共识算法有效减少了N-N广播的次数,利用树形拓扑结构对消息进行有效的聚合并打包传输。此外,本专利还提出一种节点共识奖励机制,节点的层次结构由系统综合考虑节点层次、节点奖励、诚信度、负载均衡等影响因素,对节点的共识奖励和节点所在的层次进行动态调整,鼓励节点正确的参与共识,从而减少“双花攻击”和“发送错误信息”等节点作恶行为的产生。
通过区块链分层激励共识算法,可以有效的提高节点的共识效率,提升系统的节点共识的可扩展性,并通过激励机制鼓励节点参与区块共识。
与PBFT实用拜占庭容错共识算法相比,区块链分层激励共识算法做出的最重要的一个改变是将PBFT的网状通信网络拓扑变成了树形通信网络拓扑,节点传输数据时无需每次都通过P2P网络将消息广播给其它节点,而是由双亲节点或孩子节点处理后发送给其他节点,得益于树形通信网络拓扑,系统的通信复杂度得到了大大的降低。
区块链分层激励共识算法的第二个重要改变是设计了共识节点动态生成树算法以及对应的奖励机制,传统的PBFT共识算法缺乏相应的奖励机制,节点参与共识时需要付出算力与带宽,导致节点缺乏参与共识的动力。此外,采用树形结构进行共识时,如果树形结构频繁的进行调整,网络通信资源的损耗较大。我们设计的共识节点激励鼓励节点诚实的参与共识,并通过保持正确的数据共识,从而获取更高的奖励,核心目的是使得节点参与共识,并按照规则传输正确的消息。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种区块链分层激励共识算法,其特征在于:具体步骤如下:
(1)客户端Clientn向共识节点Nroot发送消息<Request,Cid,m1,d1,t1>,其中Request表示这是一条由ID为Cid的客户端发送的请求消息,m1是发送的请求消息,d1是请求消息m1的摘要,t1是发送消息的时间戳,n为大于1的整数;
(2)底层的共识节点Nroot搜集来自客户端Clientn的事务请求并对其合法性进行验证,验证的内容包括摘要d1与消息m1是否一致,时间戳是否有效;并将系统一个出块时间周期内搜集到的消息打包成一条请求消息<RequestN,Nid,m1,d1,t1>,存入本地消息日志,并沿树状层次结构向上层节点发送此消息,重复这个过程,直至最顶层;其中RequestN表示这是一条由ID为Nid的共识节点发送的请求消息;
(3)最顶层的共识节点Ntop对接收到的请求消息进行验证,验证的内容包括:消息的签名是否正确,摘要d1与消息m1是否一致,交易是否重复;若消息有效,将其存入消息日志并且向最顶层的其他共识节点广播该消息;
(4)最顶层节点的主节点搜集来自其他共识节点Ntop发送的消息,并对消息进行汇总后产生区块,而后发送一条广播区块信息<Blockid,v,m2,d2,t2>,其中Blockid是指包含主节点ID的区块,v是当前的视图,m2是广播的内容,d2是广播m2的摘要,t2是广播的时间戳;
(5)每个共识节点收到广播信息后,向相同层级内的其他共识节点广播收到的信息摘要d2并进行对广播消息签名,若收集到超过1/3节点的广播消息后,将消息日志中的事务写入本地账本,并向下层孩子节点广播区块信息;重复该过程,直至叶子节点,叶子节点不再主动向上层节点发送回复消息,而是直接向客户端提交结果;
(6)在节点信息广播过程中,对共识节点广播的消息和最终本地执行的消息是否相同进行判断,通过调节奖励系数R对分层共识节点进行激励;
(7)根据步骤(6)中调节奖励系数R的变化,对节点层次进行动态维护;
步骤(2)中所述树状层次结构是参与共识的节点层次结构,底层叶子节点搜集打包到区块的信息,上层节点搜集子节点信息,顶层节点汇总其他节点的信息后出块,并沿树形层次结构发送给其他共识节点;
步骤(2)中所述的树状层次结构中共识节点共分为4层,Level4层的节点是叶子节点,负责搜集客户端Clientn的交易信息,一个叶子节点对应多个客户端Clientn;客户端发送交易信息或获取交易状态时,需要先与叶子节点层中负责与客户端对应的节点进行通信;客户端发送的交易信息沿着Level4→Level3→Level2→Level1的顺序传递,上层节点汇总并验证来自下层节点的交易信息,Level1层选定一个作为主节点生成区块Block,该区块包含多个叶节点搜集的交易信息,生成的区块沿Level1→Level2→Level3→Level4的顺序沿着树形结构发送给下层共识节点,客户端与叶子节点通信,并从叶子节点获取完整的区块信息;
其中,Level2和Level3层节点为双亲节点,双亲节点负责搜集下层节点的消息请求,打包汇总后继续向顶层传播;此外,双亲节点还需要向孩子节点发送来自祖辈节点的消息。
2.根据权利要求1所述的区块链分层激励共识算法,其特征在于:步骤(1)中所述共识节点的不同节点之间通过可靠的点对点双向通信信道进行通信。
3.根据权利要求1所述的区块链分层激励共识算法,其特征在于:步骤(6)对分层共识节点进行激励,具体包括在节点信息广播过程中,对共识节点广播的消息和最终本地执行的消息是否相同进行判断,根据以下三种情形分别调节奖励系数R实现奖惩:
1)如果节点广播的消息和最终本地执行的消息相同,依据式I中的奖励系数公式,则该节点的奖励系数R逐渐提高;
式I;
其中,Ri表示第i次出块时节点的奖励系数,Ri+1表示第i+1次出块时节点的奖励系数,参数a用于系统控制节点奖励系数的增长速度,L表示节点所在的层次;
2)如果节点在这一层次未能让其它节点与该节点达成一致,体现为该节点没有发送任何消息,依据式II中的奖励系数公式,则该节点的奖励系数R会线性下降;
Ri+1=b×Ri,0<b<1;
式II;
其中,参数b应该根据具体的场景需求进行设置,从而对未能正确参与共识的节点奖励系数R进行调整;
3)如果一个节点向其他节点发送了不一致的消息,那么该节点被系统判定为作恶节点,并将奖励系数R设定为最小值0.1。
4.根据权利要求1所述的区块链分层激励共识算法,其特征在于:步骤(6)中所述的奖励系数R为节点的参与共识的奖励系数,为在0.1到1.0之间的数,节点新加入区块链共识网络时,初始化的奖励系数为0.1,代表能获取基数奖励的10%;奖励系数越高,节点获取的经济收益越大。
5.根据权利要求1所述的区块链分层激励共识算法,其特征在于:步骤(7)中所述对节点层次进行动态维护,具体步骤如下:
1.自上而下按照层次遍历的顺序遍历节点,并判断各个节点Ng的奖励系数R,若节点Ng的奖励系数R小于0.1,将该节点从共识节点列表中删除;无论是双亲节点是否被删除,将子树中的所有节点加入候选节点列表;
2.从候选节点列表中选取奖励系数R最大的节点,并判定该节点是否可以作为双亲节点;若该节点的奖励系数R大于0.5,且该节点的奖励系数R大于双亲节点的奖励系数R,则该节点成为新的双亲节点;否则,将该节点从候选节点列表中删除;
3.判定双亲节点是否为空,若双亲节点为空,将该节点及其所有子节点加入候选节点列表,递归直至选出新的双亲节点,则节点层次调整完毕;若递归所有层次子节点依然无法找到满足要求的双亲节点,则说明候选节点均不满足奖励系数大于0.5的条件,无法成为共识节点,只能作用客户端节点接入其他共识节点。
6.根据权利要求5所述的区块链分层激励共识算法,其特征在于:节点的奖励系数维护是该节点在本地维护其节点列表的过程,节点的奖励系数更新发生在每一次更换顶层主节点之后;从而使得顶层节点中具有最高奖励系数的节点作为主节点;各个层次的节点只需要通过在子网内部对节点的奖励系数和层次结构进行调整和更新,更新的过程由子网单独进行而不需要和其他子网进行通讯;每隔一定周期,需要对所有节点进行同步处理将子网内的奖励系数和层次结构达成一致,更新周期定义如下:
初始更新周期T1由用户自主定义;Nj为参与共识节点的数量;Tj+1为j+1次的更新周期;参数C用来调整更新周期变化的速度,管理员根据系统的运行状态调整C的值。
CN202011622845.6A 2020-12-31 2020-12-31 一种区块链分层激励共识算法 Active CN112769580B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011622845.6A CN112769580B (zh) 2020-12-31 2020-12-31 一种区块链分层激励共识算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011622845.6A CN112769580B (zh) 2020-12-31 2020-12-31 一种区块链分层激励共识算法

Publications (2)

Publication Number Publication Date
CN112769580A CN112769580A (zh) 2021-05-07
CN112769580B true CN112769580B (zh) 2023-08-01

Family

ID=75698626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011622845.6A Active CN112769580B (zh) 2020-12-31 2020-12-31 一种区块链分层激励共识算法

Country Status (1)

Country Link
CN (1) CN112769580B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113923093B (zh) * 2021-10-29 2024-02-06 博雅正链(北京)科技有限公司 一种基于可信执行环境的新型拜占庭容错共识方法
CN114449000B (zh) * 2021-12-28 2022-10-11 北京邮电大学 一种车联网数据共识优化存储方法及存储系统
CN114584474A (zh) * 2022-03-04 2022-06-03 中国建设银行股份有限公司 联盟区块链及分层部署方法
CN115002111B (zh) * 2022-05-23 2022-12-27 北京航空航天大学 一种基于群组树架构的区块链共识方法
CN115022340B (zh) * 2022-06-01 2024-05-28 蚂蚁区块链科技(上海)有限公司 一种运行联盟链网络的方法和用于区块链网络的节点设备
CN115048337B (zh) * 2022-08-15 2022-11-08 南方科技大学 基于tee的拜占庭容错共识方法及相关设备
CN115623000B (zh) * 2022-09-23 2023-11-14 北京大学 一种数联网上数据高效分发方法与装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111047348A (zh) * 2019-11-08 2020-04-21 北京比特时刻图像科技有限公司 一种新型区块链共识算法及基于该算法的区块链网络系统
CN111049895A (zh) * 2019-12-09 2020-04-21 北京工商大学 一种基于ism的改进pbft共识方法
CN111858105A (zh) * 2020-08-26 2020-10-30 电子科技大学 基于改进多层pbft的个人档案许可链管理系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111047348A (zh) * 2019-11-08 2020-04-21 北京比特时刻图像科技有限公司 一种新型区块链共识算法及基于该算法的区块链网络系统
CN111049895A (zh) * 2019-12-09 2020-04-21 北京工商大学 一种基于ism的改进pbft共识方法
CN111858105A (zh) * 2020-08-26 2020-10-30 电子科技大学 基于改进多层pbft的个人档案许可链管理系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于树形拓扑网络的实用拜占庭容错共识算法;包振山等;《应用科学学报》;20200131(第01期);第34-50页 *

Also Published As

Publication number Publication date
CN112769580A (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
CN112769580B (zh) 一种区块链分层激励共识算法
CN109871669B (zh) 一种基于区块链技术的数据共享解决方法
CN111611315B (zh) 面向金融大数据的多叉树结构区块链集成优化存储方法
Maniatis et al. Secure history preservation through timeline entanglement
Mišić et al. Adapting PBFT for use with blockchain-enabled IoT systems
CN111371905B (zh) 一种基于云计算的区块链分层共识证明系统与方法
CN112907252B (zh) 一种基于多人链下通道的区块链交易方法及系统
CN111082943B (zh) 一种高效的区块链共识方法
Wang et al. Beh-Raft-Chain: a behavior-based fast blockchain protocol for complex networks
Zhang et al. Cycledger: A scalable and secure parallel protocol for distributed ledger via sharding
CN113824563B (zh) 一种基于区块链证书的跨域身份认证方法
CN112636905B (zh) 基于多角色的可扩展共识机制的系统及方法
CN111030993B (zh) 一种在联盟区块链中基于扩展型可信认证的瑞波共识方法
CN111294339B (zh) 基于Fabric架构的同构联盟链跨链方法及装置
WO2021050929A1 (en) Blockchain sharding with adjustable quorums
CN111737352B (zh) 一种基于区块链的供应链信息协同管理方法
CN111798234B (zh) 一种轻量级区块链系统及构造方法
Garoffolo et al. Sidechains: Decoupled consensus between chains
CN114938292B (zh) 一种基于节点可信度的多层次优化pbft共识方法
Song et al. Reliable reputation review and secure energy transaction of microgrid community based on hybrid blockchain
CN116258609B (zh) 一种电力系统交易协同方法、装置及存储介质
Bai et al. Blockchain-based Authentication and Proof-of-Reputation Mechanism for Trust Data Sharing in Internet of Vehicles.
Decker On the scalability and security of bitcoin
Wang et al. A fast and secured peer-to-peer energy trading using blockchain consensus
Yu et al. Blockchain-based pki system and its application in internet of things

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20230627

Address after: 524000 1 Hai Da Road, Mazhang District, Zhanjiang, Guangdong

Applicant after: Guangdong Ocean University

Applicant after: Yangjiang chain point Innovation Technology Development Co.,Ltd.

Address before: 529500 Unit 5, Floor 2, Building 2, Hi-tech Business Incubator, Jiangcheng District, Yangjiang City, Guangdong Province (for office use only)

Applicant before: Yangjiang chain point Innovation Technology Development Co.,Ltd.

GR01 Patent grant
GR01 Patent grant