CN114466034A - 一种基于匿名主节点的区块链共识方法 - Google Patents
一种基于匿名主节点的区块链共识方法 Download PDFInfo
- Publication number
- CN114466034A CN114466034A CN202210275543.9A CN202210275543A CN114466034A CN 114466034 A CN114466034 A CN 114466034A CN 202210275543 A CN202210275543 A CN 202210275543A CN 114466034 A CN114466034 A CN 114466034A
- Authority
- CN
- China
- Prior art keywords
- node
- block
- message
- height
- nodes
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1863—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
- H04L9/3255—Cryptographic 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 using group based signatures, e.g. ring or threshold signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于匿名主节点的区块链共识方法,包括准备阶段、预提交阶段、提交阶段、预决定阶段和决定阶段,该区块链共识方法是一种区块链高效共识算法,主要用于在隐藏主节点身份的条件下,实现可扩展和高效的区块链数据共识,包含匿名节点身份认证机制,支持匿名主节点下的区块共识,降低了主节点被攻击的可能性,而且,本发明提供的基于匿名主节点的区块链共识方法是一种多阶段区块共识算法,通过主节点与其他所有节点的一对多通讯取代n‑n广播,降低了算法复杂度,支持异常处理与故障恢复功能,具有良好的性能与可扩展性。
Description
技术领域
本发明涉及一种基于匿名主节点的区块链共识方法。
背景技术
区块链本质上是一个分布式的数据库,由多个互相独立,物理隔绝,互补信任的节点共同维护,区块链具有防篡改、可追踪、多方参与的特点,已经与金融、贸易、法律、溯源等多重场景结合,为数字化存储提供了信任的基础。
区块链网络中的节点为了获得全局一致的链状数据库,须通过共识算法同步彼此的数据库状态,只要诚实节点占多数,那么共识的结果就是一致的。区块链由单一的区块的形式构成,每一个区块记录了数据库在当前时刻的状态变更,所有的区块可以组合成完整的历史数据,并且为了防止区块链状态的割裂或伪造,使用hash值将区块进行链接,区块之间形成的线性顺序是不可更改的。正是这种特殊的区块结构和运行机制使得区块链技术具备去中心化、匿名性、不可篡改、安全稳定的特性。
计算机科学领域的早期共识研究一般聚焦于分布式一致性, 即如何保证分布式系统集群中所有节点的数据完全相同并且能够对某个提案达成一致的问题,是分布式计算的根本问题之一。
为了获得全局一致的账本,需要通过共识算法(Consensus algorithm)使得各个节点达成一致。共识算法是指在多方协同的条件下,所有参与方对任务执行结果达成共识的算法。共识算法多应用于确保分布式系统数据的一致性,作为区块链系统的核心,直接影响区块链系统的性能与可扩展性。在区块链中引入共识算法最早是为了解决新交易块加入哈希链表中可能出现的“块冲突”问题,也就是同时多个块被不同的块创建者加入到哈希链表中而引起的链表分叉问题。
区块要想加入到区块链系统,需要经过区块链各个节点的共识,同时区块链的不可篡改性也是由区块链的共识算法来保证的。区块链作为一个去中心化的分布式系统,其决策权分散在各个节点中,并且节点之间无需信任,因此,为了达到共同记账的目的,需要使用共识算法使各个节点对区块数据的有效性达成一致。共识算法作为区块链中的关键技术,直接影响着区块链的交易处理能力、可扩展性和安全性,因此成为区块链技术研究的热点。
现有大多数共识算法中,各个节点和身份信息全网公开可见,节点按照固定的顺序依次作为主节点产生区块,容易导致共识节点在网络攻击的条件下存在鲁棒性差,抗攻击性差的问题,从而造成导致主节点的提案被中断,影响系统安全性。此外,在节点共识的过程中,主节点需要与所有的副本节点交互以推动共识状态的更新,随着参与共识的节点数量的增多,主节点处理数据和网络通讯的负载成为系统共识的瓶颈,影响了区块链系统的可扩展性。
发明内容
为了解决上述技术问题,本发明提供一种基于匿名主节点的区块链共识方法。
本发明采用以下技术方案:
一种基于匿名主节点的区块链共识方法,包括:
准备阶段:第一节点更改自身共识状态,生成并向其他节点广播准备消息;
预提交阶段:第二节点接收到准备消息后,对准备消息进行相关验证,若验证通过,则第二节点更改自身共识状态,提议所述第一节点为候选主节点,生成并向所述第一节点发送预提交消息,所述预提交消息包括用于表示第二节点是否同意第一节点作为主节点的投票的第一部分门限签名;
提交阶段:第一节点搜集其他节点发送的预提交消息,并验证所述第一部分门限签名的有效性,若第一节点接收到超过第一预设门限值个有效的部分门限签名,则第一节点更改自身共识状态,生成并向其他节点广播提交消息;
预决定阶段;第二节点对接收到的来自第一节点的提交消息进行相关验证,若验证通过,则第二节点更改自身共识状态,生成并向第一节点发送预决定消息,所述预决定消息包括用于表示第二节点是否同意在预设视图、预设高度下的区块提议的第二部分门限签名;
决定阶段:第一节点接收到预决定消息后对第二部分门限签名进行有效性验证,若第一节点接收到超过第二预设门限值个有效的部分门限签名,则第一节点生成并向其他节点广播决定消息;第二节点接收到决定消息后,根据决定消息判断是否修改第二节点的区块链。
进一步地,所述准备阶段中的准备消息包括领导者节点凭证、第一节点提议新区块的高度和视图,所述第一节点提议新区块的高度为所述预设高度,所述第一节点提议新区块的视图为所述预设视图。
进一步地,所述预提交阶段中,第二节点对准备消息进行相关验证,包括:
验证所述节点凭证的有效性、验证第一节点提议新区块的高度和视图的有效性、验证领导者节点次序的正确性,若三者均验证通过,则判定对准备消息的验证通过。
进一步地,所述第一节点将所述超过第一预设门限值个有效的部分门限签名合成第一完整门限签名,并生成区块提议的消息签名,所述提交消息包括第一节点提议新区块的高度和视图、第一节点提议新区块、所述第一完整门限签名和所述区块提议的消息签名。
进一步地,所述预决定阶段中,第二节点对接收到的来自第一节点的提交消息进行相关验证,包括:对所述第一完整门限签名和区块提议进行验证。
进一步地,所述决定消息还包括第一节点提议新区块的高度和视图;
所述决定阶段中,第二节点根据决定消息判断是否修改第二节点的区块链,包括:
若第二节点判断决定消息中,第一节点提议新区块的高度和视图与第二节点请求生成的新区块的高度和视图相同,将所述第二节点请求生成的新区块的高度更改为第二节点区块的高度,将第一节点提议新区块链接在第二节点的区块链构成第二节点新的区块链;
若第二节点判断决定消息中,第一节点提议新区块的高度大于第二节点请求生成的新区块的高度,且第一节点提议新区块的视图大于第二节点请求生成的新区块的视图,第二节点从第一节点下载缺失的区块信息,所述缺失的区块信息包括大于第二节点请求生成的新区块的高度,且小于或者等于第一节点提议新区块的高度所对应的区块信息。
进一步地,所述基于匿名主节点的区块链共识方法还包括异常阶段,如果第二节点的计时器超时时第二节点仍然无法进入决定阶段对应的共识状态,则进入异常阶段;
所述异常阶段中,第二节点的共识状态更改为异常阶段对应的共识状态,初始化计时器并向其他节点广播异常消息,所述异常消息表示第二节点请求在第一预设空区块高度产生一个第一空区块,所述第一空区块为不包含命令的区块,所述第一预设空区块高度表示提议的第一空区块的高度;
所述第二节点广播异常消息的同时,也在接收来自其他节点发送的异常消息,若第二节点累计接收到预设数量的异常消息,则第二节点重置计时器,更改第二节点的共识状态为决定阶段对应的共识状态,并且,将第二节点对应的区块高度更改为所述第一预设空区块高度,将所述第一空区块加入到所述第二节点对应的区块链,构成新区块链;若第二节点没有接收到所述预设数量的异常消息,则第二节点向其他节点广播请求消息,所述请求消息表示在第二预设空区块高度产生一个第二空区块,所述第二空区块为不包含交易的区块,并重置计时器。
本发明提供的基于匿名主节点的区块链共识方法是一种区块链高效共识算法,主要用于在隐藏主节点身份的条件下,实现可扩展和高效的区块链数据共识,包含匿名节点身份认证机制,支持匿名主节点下的区块共识,降低了主节点被攻击的可能性,而且,本发明提供的基于匿名主节点的区块链共识方法是一种多阶段区块共识算法,通过主节点与其他所有节点的一对多通讯取代n-n广播,降低了算法复杂度,支持异常处理与故障恢复功能,具有良好的性能与可扩展性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍:
图1是本申请实施例提供的一种基于匿名主节点的区块链共识方法的流程图;
图2是本申请实施例提供的一种基于匿名主节点的区块链共识方法对应的算法流程图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
为了说明本申请所述的技术方案,下面通过具体实施方式来进行说明。
如图1所示,为本申请实施例提供的一种基于匿名主节点的区块链共识方法的流程图。图2是本申请实施例提供的一种基于匿名主节点的区块链共识方法对应的算法流程图。
本实施例提供的一种基于匿名主节点的区块链共识方法在算法正常执行时包括五个阶段,分别是准备阶段(Prepare Phase)、预提交阶段(PreCommit Phase)、提交阶段(Commit Phase)、预决定阶段(PreDecide Phase)和决定阶段(Decide Phase)。本实施例中,区块链共识方法还可以包括异常阶段(Exception Phase)。图2中,Leader和其他三个副本(Replica1、Replica2、Replica3)都代表不同角色的节点。如果发生异常则进入异常阶段,实线表示共识正确情况下消息的流向,虚线表示发生异常情况时的消息流向。
以下分别对各个阶段进行具体说明。
准备阶段:第一节点更改自身共识状态,生成并向其他节点广播准备消息:
消息包括领导者节点凭证、节点提议新区块的高度和视图。凭证是节点使用私钥对最新区块产生的数字签名。由于凭证需要用私钥生成,它不能被其它节点伪造。凭证是唯一的,节点通过凭证向其他节点证明自己的主节点身份。为了防止消息被伪造,节点使用私钥和签名函数产生签名。
本实施例中,节点提议的新区块的高度=节点的高度+1。视图分两种情况:第一种情况,节点提议的新区块的视图=节点的视图(当不更新有序领导者序列时,节点视图不变);第二种情况,节点提议的新区块的视图=节点的视图+1(当更新有序领导者序列时,节点视图+1)。
本实施例中,为了节点间的匿名化通信,所有参与共识节点的节点都有凭证,它是共识节点使用私钥对最新区块产生的数字签名。表示节点在区块高度h的凭证,不同高度的对应的凭证不同。凭证需要用私钥生成,节点无法伪造生成其他节点的凭证。由于公钥是公开可见的,凭证可以被节点集合中其他节点验证。节点的身份通过凭证信息进行匿名化,通过最新区块可以计算出凭证,但是根据凭证信息却无法反向计算出最新区块,通过凭证可以实现节点之间的匿名化身份认证。
假设是有序领导者序列中对应的领导者节点,节点提议在高度和视图生成区块,即区块为区块提议,也可以定义为提议的新区块,即本实施例中,区块提议与提议的新区块是相同的概念,比如:节点提议新区块为,节点区块提议也为。节点是节点集合中参与共识的普通节点,该节点提议在高度和视图生成区块,即节点提议新区块为,节点区块提议也为,节点提议新区块的高度和视图分别为高度和视图。有序领导者序列包含了一组身份隐藏的匿名有序主节点。节点只知道自身在有序领导者序列中的排序,其他节点的身份是未知的。
预提交阶段:第二节点接收到准备消息后,对准备消息进行相关验证,若验证通过,则第二节点更改自身共识状态,提议所述第一节点为候选主节点,生成并向所述第一节点发送预提交消息,所述预提交消息包括用于表示第二节点是否同意第一节点作为主节点的投票的第一部分门限签名:
本实施例中,第二节点为节点。节点收到消息后,需要对消息进行相关验证,验证过程由实际需要进行设置,比如可以仅仅是验证消息的实际组成与预设组成是否一样,若一样,则验证通过,若不同,则验证不通过。本实施例中,节点对消息的验证过程为对消息的有效性进行验证,验证分为三个步骤:(1)验证节点凭证的有效性,具体地:把节点自身在高度h上的区块作为输入参数,使用公钥和验证函数验证凭证的有效性。(2)验证节点提议新区块的高度和视图的有效性。与自身对比,判断是否同意在对应高度和视图产生新的区块。(3)验证领导者节点次序的正确性。若上述三者均验证通过,则判定对消息的验证通过。
其中,表示节点命令池搜集的按时间排序命令列表,即消息还包括节点搜集的按时间排序的命令列表。消息无需使用私钥和签名函数产生消息签名,这样可以减少消息的签名和验证的资源消耗。但是,节点需要通过部分门限签名函数生成第一部分门限签名,即部分门限签名。部分门限签名代表节点是否同意节点作为主节点的投票。
提交阶段:第一节点搜集其他节点发送的预提交消息,并验证所述第一部分门限签名的有效性,若第一节点接收到超过第一预设门限值个有效的部分门限签名,则第一节点更改自身共识状态,生成并向其他节点广播提交消息:
节点,即主节点搜集网络中其他节点发送的消息,并验证部分门限签名的有效性。如果节点接收到超过第一预设门限值个有效的部分门限签名,本实施例中,第一预设门限值为门限值,说明在高度和视图下,至少有2f+1个节点投票同意节点是主节点,然后,节点更改共识状态,即将自身共识状态修改为与提交阶段相对应的共识状态。本实施例中,n表示所有参与共识节点的数量,n个节点参与区块链共识,n个节点包含正常与可能的故障节点,f表示可能发生故障的节点数量,n>f。节点生成并向其他节点广播提交消息,即消息。本实施例中,节点将超过门限值个有效的部分门限签名合成第一完整门限签名,第一完整门限签名为完整门限签名。本实施例中,根据收到的来自不同节点的命令列表,生成区块提议,并生成区块提议的消息签名,作为一个具体实施方式,使用私钥和签名函数产生区块提议的消息签名。那么,消息为:
预决定阶段;第二节点对接收到的来自第一节点的提交消息进行相关验证,若验证通过,则第二节点更改自身共识状态,生成并向第一节点发送预决定消息,所述预决定消息包括用于表示第二节点是否同意在预设视图、预设高度下的区块提议的第二部分门限签名:
节点收到来自节点的消息后,对消息进行相关验证,验证方式由实际需要进行设置,比如:验证过可以仅仅是验证消息的实际组成与预设组成是否一样,若一样,则验证通过,若不同,则验证不通过。本实施例中,节点对消息的验证过程包括:对完整门限签名和区块提议进行验证。更加优化地,节点对消息的验证过程包括:节点首先对消息的有效性进行验证,然后对完整门限签名和区块提议进行验证。如果以上两个步骤都验证通过,则认为消息是有效的,节点更改共识状态,即将自身共识状态更改为与预决定阶段相对应的共识状态,节点生成并向节点发送预决定消息,即消息。消息包括用于表示节点是否同意在预设视图、预设高度下的区块提议的第二部分门限签名,其中,预设视图具体为视图,预设高度具体为高度,第二部分门限签名为部分门限签名,即部分门限签名代表节点同意视图、高度下的区块提议。
决定阶段:第一节点接收到预决定消息后对第二部分门限签名进行有效性验证,若第一节点接收到超过第二预设门限值个有效的部分门限签名,则第一节点生成并向其他节点广播决定消息;第二节点接收到决定消息后,根据决定消息判断是否修改第二节点的区块链:
节点接收到消息后,对部分门限签名进行有效性验证,若节点接收到超过第二预设门限值个有效的部分门限签名,本实施例中,第二预设门限值为门限值,说明在高度和视图下,至少2f+1个节点投票同意区块提议。那么,若节点接收到超过第二预设门限值个有效的部分门限签名,则节点生成第二完整门限签名,第二完整门限签名为完整门限签名,本实施例中,节点通过使用签名函数生成完整门限签名,生成并向其他节点广播决定消息,即消息:
节点接收到消息后,根据消息判断是否修改节点的区块链,本实施例中,节点接收到消息后,使用公钥集合和验证函数验证消息中的完整门限签名的有效性,并根据消息中包含的高度和视图,判断是否修改节点的区块链。作为一个具体实施方式,以下给出具体实现过程:
1)如果且,表示节点判断接收到的消息中包含的节点请求生成的新区块的高度和视图与节点自身请求生成的新区块的高度和视图一致。其中,节点自身的高度为,视图为,节点自身的高度为,视图为,节点提议在新的高度和视图生成新区块。节点认为消息中请求生成区块的高度和视图与自身一致,认为验证通过。重置节点的计时器,更改共识状态。执行区块提议对应的命令,更新节点的高度和区块链。其中,表示更新节点的自身的高度信息,将新的高度信息更新自身区块高度,即将新的高度信息更改为自身区块高度。表示节点高度为h+1的区块链的整条链的链状数据库,表示高度为h的区块链的整条链的链状数据库,由于节点判定新的单独一个区块是有效的,因此表示把这个新区块链接在节点自身的区块链上,构成节点新的区块链,链接后从高度h变为高度h+1。当更新有序领导者序列时,视图也应该增加。
2)如果且,说明区块链与区块链相比,缺失从高度到高度的区块信息。其中,表示节点高度为h的区块链的整条链的链状数据库。那么,节点需要从主节点下载缺失的区块信息。缺失的区块信息包括大于高度,且小于或者等于高度所对应的区块信息,即上述中的从高度到高度的区块信息。接下来重置计时器,清空命令缓冲池,更改共识状态。
如果不是上述两种情况,为了保持节点与其他诚实节点的数据一致,节点不执行区块提议的中包含的命令,虽然区块提议经过验证是有效的。此时节点的计时器持续计时。应当理解,由于节点可能发生故障,只有保持诚实,不发生故障的节点之间的数据是保持一致的。那么,本实施例中,其他节点是指:除了节点自身,n个节点中其他n-1个节点都是其他节点。其他诚实节点是指:除了节点自身,n个节点中其他n-f个不是故障节点的节点。
本实施例中,异常阶段是一个可选的阶段。如果节点计时器超时时节点仍然无法进入决定阶段对应的共识状态,即共识状态,则进入异常阶段。异常阶段中,节点更改共识状态,更改为异常阶段对应的共识状态,即,初始化计时器并向其他节点广播异常消息,即消息:
若节点累计接收到预设数量的异常消息,本实施例中,预设数量为2f+1条(包含自身向自己发出的),则认为大多数诚实节点同意在该高度生成空区块,那么,节点重置计时器,更改节点的共识状态为决定阶段对应的共识状态,即,并且,将节点对应的区块高度更改为高度,将空区块链接入到节点对应的区块链,构成新区块链,即区块高度更改为:,区块链更改为:。本实施例中,当更新有序领导者序列时,视图也应该更改为:。
若节点计时器超时,且节点没有接收到预设数量的异常消息,即没有收到超过2f+1条消息请求在高度生成空区块,则节点向其他节点广播请求消息,请求消息表示在第二预设空区块高度产生一个第二空区块,本实施例中,第二预设空区块高度为高度,第二预设空区块高度用于表示与第一预设空区块高度是不同的高度,具体是比第一预设空区块高度大一个高度,第二空区块为不包含交易的区块,即空区块,并重置计时器。
在共识算法的各个阶段,节点会持续接收并保存来自其他节点的异常消息。节点会保存不同高度的异常消息数量,并不断更新计时器的值。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (7)
1.一种基于匿名主节点的区块链共识方法,其特征在于,包括:
准备阶段:第一节点更改自身共识状态,生成并向其他节点广播准备消息;
预提交阶段:第二节点接收到准备消息后,对准备消息进行相关验证,若验证通过,则第二节点更改自身共识状态,提议所述第一节点为候选主节点,生成并向所述第一节点发送预提交消息,所述预提交消息包括用于表示第二节点是否同意第一节点作为主节点的投票的第一部分门限签名;
提交阶段:第一节点搜集其他节点发送的预提交消息,并验证所述第一部分门限签名的有效性,若第一节点接收到超过第一预设门限值个有效的部分门限签名,则第一节点更改自身共识状态,生成并向其他节点广播提交消息;
预决定阶段;第二节点对接收到的来自第一节点的提交消息进行相关验证,若验证通过,则第二节点更改自身共识状态,生成并向第一节点发送预决定消息,所述预决定消息包括用于表示第二节点是否同意在预设视图、预设高度下的区块提议的第二部分门限签名;
决定阶段:第一节点接收到预决定消息后对第二部分门限签名进行有效性验证,若第一节点接收到超过第二预设门限值个有效的部分门限签名,则第一节点生成并向其他节点广播决定消息;第二节点接收到决定消息后,根据决定消息判断是否修改第二节点的区块链。
2.根据权利要求1所述的基于匿名主节点的区块链共识方法,其特征在于,所述准备阶段中的准备消息包括领导者节点凭证、第一节点提议新区块的高度和视图,所述第一节点提议新区块的高度为所述预设高度,所述第一节点提议新区块的视图为所述预设视图。
3.根据权利要求2所述的基于匿名主节点的区块链共识方法,其特征在于,所述预提交阶段中,第二节点对准备消息进行相关验证,包括:
验证所述节点凭证的有效性、验证第一节点提议新区块的高度和视图的有效性、验证领导者节点次序的正确性,若三者均验证通过,则判定对准备消息的验证通过。
4.根据权利要求2或3所述的基于匿名主节点的区块链共识方法,其特征在于,所述第一节点将所述超过第一预设门限值个有效的部分门限签名合成第一完整门限签名,并生成区块提议的消息签名,所述提交消息包括第一节点提议新区块的高度和视图、第一节点提议新区块、所述第一完整门限签名和所述区块提议的消息签名。
5.根据权利要求4所述的基于匿名主节点的区块链共识方法,其特征在于,所述预决定阶段中,第二节点对接收到的来自第一节点的提交消息进行相关验证,包括:对所述第一完整门限签名和区块提议进行验证。
6.根据权利要求4所述的基于匿名主节点的区块链共识方法,其特征在于,所述决定消息还包括第一节点提议新区块的高度和视图;
所述决定阶段中,第二节点根据决定消息判断是否修改第二节点的区块链,包括:
若第二节点判断决定消息中,第一节点提议新区块的高度和视图与第二节点请求生成的新区块的高度和视图相同,将所述第二节点请求生成的新区块的高度更改为第二节点区块的高度,将第一节点提议新区块链接在第二节点的区块链构成第二节点新的区块链;
若第二节点判断决定消息中,第一节点提议新区块的高度大于第二节点请求生成的新区块的高度,且第一节点提议新区块的视图大于第二节点请求生成的新区块的视图,第二节点从第一节点下载缺失的区块信息,所述缺失的区块信息包括大于第二节点请求生成的新区块的高度,且小于或者等于第一节点提议新区块的高度所对应的区块信息。
7.根据权利要求4所述的基于匿名主节点的区块链共识方法,其特征在于,所述基于匿名主节点的区块链共识方法还包括异常阶段,如果第二节点的计时器超时时第二节点仍然无法进入决定阶段对应的共识状态,则进入异常阶段;
所述异常阶段中,第二节点的共识状态更改为异常阶段对应的共识状态,初始化计时器并向其他节点广播异常消息,所述异常消息表示第二节点请求在第一预设空区块高度产生一个第一空区块,所述第一空区块为不包含命令的区块,所述第一预设空区块高度表示提议的第一空区块的高度;
所述第二节点广播异常消息的同时,也在接收来自其他节点发送的异常消息,若第二节点累计接收到预设数量的异常消息,则第二节点重置计时器,更改第二节点的共识状态为决定阶段对应的共识状态,并且,将第二节点对应的区块高度更改为所述第一预设空区块高度,将所述第一空区块加入到所述第二节点对应的区块链,构成新区块链;若第二节点没有接收到所述预设数量的异常消息,则第二节点向其他节点广播请求消息,所述请求消息表示在第二预设空区块高度产生一个第二空区块,所述第二空区块为不包含交易的区块,并重置计时器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210275543.9A CN114466034B (zh) | 2022-03-21 | 2022-03-21 | 一种基于匿名主节点的区块链共识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210275543.9A CN114466034B (zh) | 2022-03-21 | 2022-03-21 | 一种基于匿名主节点的区块链共识方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114466034A true CN114466034A (zh) | 2022-05-10 |
CN114466034B CN114466034B (zh) | 2022-09-02 |
Family
ID=81417103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210275543.9A Active CN114466034B (zh) | 2022-03-21 | 2022-03-21 | 一种基于匿名主节点的区块链共识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114466034B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110246038A (zh) * | 2019-04-26 | 2019-09-17 | 众安信息技术服务有限公司 | 一种区块链交易快速确认方法及系统 |
CN110493198A (zh) * | 2019-07-26 | 2019-11-22 | 北京工业大学 | 一种基于改进PBFT算法防御区块链中Sybil攻击的方法 |
CN111061769A (zh) * | 2019-12-24 | 2020-04-24 | 腾讯科技(深圳)有限公司 | 一种区块链系统的共识方法及相关设备 |
US20210326352A1 (en) * | 2020-04-17 | 2021-10-21 | International Business Machines Corporation | Faster view change for blockchain |
CN114050904A (zh) * | 2022-01-11 | 2022-02-15 | 天津眧合数字科技有限公司 | 一种基于两层级领导节点分片结构的共识系统及方法 |
CN114169670A (zh) * | 2021-10-25 | 2022-03-11 | 网络通信与安全紫金山实验室 | 一种区块链两阶段共识方法、装置、设备和介质 |
-
2022
- 2022-03-21 CN CN202210275543.9A patent/CN114466034B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110246038A (zh) * | 2019-04-26 | 2019-09-17 | 众安信息技术服务有限公司 | 一种区块链交易快速确认方法及系统 |
CN110493198A (zh) * | 2019-07-26 | 2019-11-22 | 北京工业大学 | 一种基于改进PBFT算法防御区块链中Sybil攻击的方法 |
CN111061769A (zh) * | 2019-12-24 | 2020-04-24 | 腾讯科技(深圳)有限公司 | 一种区块链系统的共识方法及相关设备 |
US20210326352A1 (en) * | 2020-04-17 | 2021-10-21 | International Business Machines Corporation | Faster view change for blockchain |
CN114169670A (zh) * | 2021-10-25 | 2022-03-11 | 网络通信与安全紫金山实验室 | 一种区块链两阶段共识方法、装置、设备和介质 |
CN114050904A (zh) * | 2022-01-11 | 2022-02-15 | 天津眧合数字科技有限公司 | 一种基于两层级领导节点分片结构的共识系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114466034B (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109462587B (zh) | 区块链分层共识方法、区块链网络系统及区块链节点 | |
Wan et al. | Recent advances in consensus protocols for blockchain: a survey | |
Xiao et al. | Distributed consensus protocols and algorithms | |
US11128522B2 (en) | Changing a master node in a blockchain system | |
Thin et al. | Formal analysis of a proof-of-stake blockchain | |
US11177939B2 (en) | Blockchain system including a distributed network of a plurality of nodes and a method for achieving an agreement between the plurality of nodes executed by processors of the block chain system | |
Carrara et al. | Consistency, availability, and partition tolerance in blockchain: a survey on the consensus mechanism over peer-to-peer networking | |
CN111131209B (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
CN110189128B (zh) | 一种用于区块快速生成的分布式共识的方法和装置 | |
CN111082943B (zh) | 一种高效的区块链共识方法 | |
CN110771127A (zh) | 用于区块链网络中一致分布式内存池的方法和系统 | |
CN112636905B (zh) | 基于多角色的可扩展共识机制的系统及方法 | |
CN111931220B (zh) | 区块链网络的共识处理方法、装置、介质及电子设备 | |
Liu et al. | Cross-shard transaction processing in sharding blockchains | |
CN115633035B (zh) | 一种基于改进的pbft物联网区块链共识算法 | |
Fu et al. | Teegraph: A Blockchain consensus algorithm based on TEE and DAG for data sharing in IoT | |
Lone et al. | Consensus protocols as a model of trust in blockchains | |
Xu et al. | A scalable two-layer blockchain system for distributed multicloud storage in IIoT | |
CN113568972A (zh) | 一种面向图式区块链的混合共识实现装置及实现方法 | |
CN112395113A (zh) | 实用拜占庭容错共识方法及装置、可读存储介质 | |
Erwig et al. | Commitee: An efficient and secure commit-chain protocol using tees | |
CN115021929A (zh) | 算力网络的信任管理方法及装置、存储介质、电子设备 | |
CN114140233A (zh) | 分片区块链安全跨片视图转换方法及装置 | |
Prabhakar et al. | TCON-A lightweight Trust-dependent Consensus framework for blockchain | |
EP4004853A1 (en) | Unity protocol consensus |
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 |