CN111052091A - 网络中的共识形成方法以及构成该网络的节点 - Google Patents
网络中的共识形成方法以及构成该网络的节点 Download PDFInfo
- Publication number
- CN111052091A CN111052091A CN201880028826.5A CN201880028826A CN111052091A CN 111052091 A CN111052091 A CN 111052091A CN 201880028826 A CN201880028826 A CN 201880028826A CN 111052091 A CN111052091 A CN 111052091A
- Authority
- CN
- China
- Prior art keywords
- node
- consensus
- message
- proposal
- messages
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/182—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0659—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
- H04L41/0661—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities by reconfiguring faulty entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/183—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
- G06F11/184—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/0816—Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/30—Decision processes by autonomous network management units using voting and bidding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3239—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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Hardware Redundancy (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种适用于在具有参加共识形成的多个节点的网络中假定了f个拜占庭故障节点时的共识形成方法。各节点处于等待状态(S301),通过决定论的计算来选择该回合内的提议者(130)。提议者(130)将包含共识形成对象数据的报文发送至各节点。提议者通过发送而变为提议完毕,其他节点根据接收到该报文这一情况而变为提议完毕(S302)。收领到提议的各节点判定提议的有效性,在有效的情况下,发送有效这一内容的投票报文。在接收到的投票报文的数量达到了规定值Q的情况下,各节点发送采纳提议这一内容的报文(S303‑1)。接着,在接收到的采纳报文的数量达到了值Q的情况下,各节点发送将提议视为达成了共识的提议这一内容的报文而完成共识形成过程(S304)。
Description
技术领域
本发明涉及网络中的共识形成方法以及构成该网络的节点,更详细而言,涉及适用于在网络中假定了拜占庭故障节点的存在时的共识形成方法以及构成该网络的节点。
背景技术
区块链作为能代替基于中央集权性的第三方机构的以往的信用赋予机制的技术而受到关注。称为“区块”的数据的单位被给予参加与该区块相关的共识形成的多个节点,其有效性(validity)在各节点中受到评价(evaluate)。通过满足规定条件,各节点从多个有可能的区块当中判定针对该区块建立了采纳的共识(consensus),从而采纳该区块。更具体而言,将该区块追加至各节点具有的区块链。成为共识形成对象的区块通过任一节点而被提议给各节点。
此处,以何种次序形成共识、将什么内容作为共识形成用的规定条件等共识算法决定了区块链网络的可靠性和性能。根据共识算法的不同,例如因通信状况、电力供给等物理性原因而不正常动作的故障(也称为“良性故障(benign failure)”)的可容忍数量不一样,此外,不遵循由共识算法定下的规定规则这样的任意的一切故障(也称为“拜占庭故障(Byzantine failure)”)的可容忍数量不一样。作为某一节点不遵循规定规则这样的场景,除了物理性原因以外,可列举存在对该节点的不正当访问的情况、该节点的管理者自身有不正当的企图的情况等。
对区块链网络要求何种程度的容错性(fault tolerance)会根据区块链的用途而不同,目前在探索各种可能性。尤其是在一定用途中,在寻求具有不仅能容忍良性故障还能容忍规定数量的拜占庭故障节点的拜占庭故障容忍性(Byzantine fault tolerance)的共识算法。
发明内容
发明要解决的问题
作为共识算法通常需要的性质,在大的程度上有安全性(safety)和活跃性(liveness),前者意指一旦针对某一数据建立了共识,正常活动的所有节点便会共享该共识而不会将其推翻,后者意指能在有限时间内建立共识。
在假定了f个(f为1以上的整数)拜占庭故障节点时,使各节点在何种共识算法下动作能获得足够的安全性及活跃性、尤其是能在较为现实的时间内获得足够的安全性及活跃性这一问题在今后该技术的普及上越来越成为决定性的重要内容。具有安全性的共识算法即使有确定性,有时也要加以显现。
本发明是鉴于这种问题而成,其目的在于提供一种适用于在具有参加共识形成的多个节点的网络中假定了f个拜占庭故障节点时的共识形成方法、以及用于该共识形成方法的程序、还有按照该共识形成方法进行动作的节点。
解决问题的技术手段
为了达成这种目的,本发明的第1形态为一种共识形成方法,其适用于在具有参加共识形成的N个节点的网络中假定了f个拜占庭故障节点的时候,其中,N为1以上的整数,f为1以上不到N/3的整数,该共识形成方法的特征在于,包含如下步骤:从其他节点收领将包含成为共识形成对象的数据的报文作为提议判定为有效的这一内容的第1报文;在收领到的第1报文的数量达到了规定值Q的情况下,自身节点对各节点发送采纳所述提议这一内容的第2报文,在规定时间内有效的第1报文的数量未达到所述规定值Q的情况下,自身节点对各节点发送驳回所述提议这一内容的第3报文;以及,在收领到的第2报文的数量达到了规定值Q的情况下,自身节点对各节点发送将所述提议视为在所述网络中达成了共识的提议这一内容的第4报文。
此外,本发明的第2形态为根据第1形态所述的共识形成方法,其特征在于,在f的值已知的情况下,所述规定值Q为(f+N+1)/2以上的整数。
此外,本发明的第3形态为根据第2形态所述的共识形成方法,其特征在于,所述f不到N/3。
此外,本发明的第4形态为根据第1形态至第3形态中任一项所述的共识形成方法,其特征在于,定期或间歇性地发送第2报文。
此外,本发明的第5形态为根据第1形态至第4形态中任一项所述的共识形成方法,其特征在于,还包含如下步骤,即,在从其他节点接收到同一回合内的第2报文的情况下,对各节点发送所述第2报文,其中,将共识形成过程的单位称为回合。
此外,本发明的第6形态为根据第1形态至第5形态中任一项所述的共识形成方法,其特征在于,在从其他节点接收到第4报文的情况下,完成共识形成。
此外,本发明的第7形态为根据第1形态至第6形态中任一项所述的共识形成方法,其特征在于,定期或间歇性地发送第3报文。
此外,本发明的第8形态为根据第1形态至第7形态中任一项所述的共识形成方法,其特征在于,还包含如下步骤,即,在收领到的第3报文的数量达到了规定数Q的情况下,对各节点发送用于前进至下一回合的第5报文,其中,将共识形成过程的单位称为回合。
此外,本发明的第9形态为根据第8形态所述的共识形成方法,其特征在于,还包含如下步骤,即,在从其他节点接收到同一回合或者比自身节点大的回合内的第5报文的情况下,对各节点发送所述第5报文。
此外,本发明的第10形态为根据第1形态至第9形态中任一项所述的共识形成方法,其特征在于,还包含如下步骤,即,在每一回合内以决定论方式选择进行所述提议的节点,其中,将共识形成过程的单位称为回合。
此外,本发明的第11形态为根据第10形态所述的共识形成方法,其特征在于,各节点被分配能排序的标识符,所述选择中,将回合数设为r,选择通过r mod N定下的顺序的节点。
此外,本发明的第12形态为根据第1形态至第11形态中任一项所述的共识形成方法,其特征在于,在收领到的第1报文的数量达到了规定值Q的情况或者从其他节点收领到第2报文的情况下,设定锁定来限定以后的动作。
此外,本发明的第13形态为根据第12形态所述的共识形成方法,其特征在于,所述限定包含如下内容,即,在被选为进行提议的节点的情况下,进行共识形成对象数据与锁定时相同的提议。
此外,本发明的第14形态为根据第12形态所述的共识形成方法,其特征在于,所述限定包含如下内容,即,在收领到提议的情况下,在与锁定时的共识形成对象数据相同的数据为共识形成对象时,可以发送判断作为提议是有效的这一内容的第1报文。
此外,本发明的第15形态为根据第12形态至第14形态中任一项所述的共识形成方法,其特征在于,在收领到比自身节点的锁定时大的回合内的第2报文的情况下,对所述大的回合内的共识形成对象数据重新设定锁定来限定以后的动作。
此外,本发明的第16形态为根据第1形态至第15形态中任一项所述的共识形成方法,其特征在于,所述第2报文包含成为判定满足所述规定值Q的依据的证据数据。
此外,本发明的第17形态为根据第1形态至第16形态中任一项所述的共识形成方法,其特征在于,所述第4报文包含共识形成对象数据或者根据其计算的哈希值。
此外,本发明的第18形态为根据第1形态至第17形态中任一项所述的共识形成方法,其特征在于,所述数据为区块,在各节点收领到的第2报文的数量达到了规定值Q的情况下,对各节点具有的区块链追加所述区块。
此外,本发明的第19形态为一种程序,其用于使计算机执行适于在具有参加共识形成的N个节点的网络中假定了f个拜占庭故障节点时的共识形成方法,其中,N为1以上的整数,f为1以上不到N/3的整数,该程序的特征在于,所述共识形成方法包含如下步骤:从其他节点收领将包含成为共识形成对象的数据的报文作为提议判定为有效的这一内容的第1报文;在收领到的第1报文的数量达到了规定值Q的情况下,自身节点对各节点发送采纳所述提议这一内容的第2报文,在规定时间内有效的第1报文的数量未达到所述规定值Q的情况下,自身节点对各节点发送驳回所述提议这一内容的第3报文;以及在收领到的第2报文的数量达到了规定值Q的情况下,自身节点对各节点发送将所述提议视为在所述网络中达成了共识的提议这一内容的第4报文。
此外,本发明的第20形态为一种节点,其用于进行适于在具有参加共识形成的N个节点的网络中假定了f个拜占庭故障节点时的共识形成,其中,N为1以上的整数,f为1以上不到N/3的整数,该节点的特征在于,从其他节点收领将包含成为共识形成对象的数据的报文作为提议判定为有效的这一内容的第1报文,在收领到的第1报文的数量达到了规定值Q的情况下,自身节点对各节点发送采纳所述提议这一内容的第2报文,在规定时间内有效的第1报文的数量未达到所述规定值Q的情况下,自身节点对各节点发送驳回所述提议这一内容的第3报文,在收领到的第2报文的数量达到了规定值Q的情况下,自身节点对各节点发送将所述提议视为在所述网络中达成了共识的提议这一内容的第4报文。
发明的效果
根据本发明的一形态,关于收取到后文叙述的提议报文、投票报文、采纳报文、驳回报文、表明报文及下一回合报文各方时的各节点的活动和节点间的通信,通过采用特有的构成,能够提供一种适用于假定了具有参加共识形成的多个节点的网络中的拜占庭故障节点时的共识形成方法。
附图说明
图1为表示本发明的一实施方式中的网络的图。
图2为本发明的一实施方式中的报文的数据结构的示意图。
图3为表示本发明的一实施方式中的各节点的状态转变的图。
具体实施方式
下面,参考附图,对本发明的实施方式进行详细说明。
(第1实施方式)
将参加包含区块的某种数据相关的共识形成的节点的总数假定为N(N为1以上的整数),将拜占庭故障节点的数量假定为f。本发明提供一种在该假定下获得安全性及活跃性的共识形成方法。
图1表示本发明的一实施方式中的网络。关于网络100,作为示例,N为6,各节点110为具备通信接口等通信部111、处理器、CPU等处理部112、以及包含存储器、硬盘等存储装置或存储介质的存储部113的计算机,通过执行规定的程序,可以实现以下说明的各处理,该节点110有时包含1个或多个装置或服务器,此外,该程序有时包含1个或多个程序,此外,可以记录至计算机可读取的存储介质来作为非暂时性程序产品。虽然仅针对符号110所示的节点图示了其硬件的构成,但其他节点也是一样的。
规定的程序中定有涉及共识算法的规则,可以存储在存储部113或者能从各节点110经由网络进行访问的存储装置或存储介质中。拜占庭故障节点120以外的节点根据该规则来进行正常动作。在图1的例子中,f为1。
在节点间直接或间接地收发报文,向构成网络的其他节点传递涉及共识形成的数据,此外,可以从其他节点收取数据。像图2中示意性地所示的那样,报文200中包含要发送的区块等某种数据201,另外,附加基于作为发送者的节点的签名202。各节点具有对构成网络的各节点分配而唯一地识别各节点的一组标识符,通过使用该标识符来验证报文中附加的发送者的签名202,可以确认发送了该报文的节点。具体而言,将与各节点上关联的密钥相对应的公钥作为该节点的标识符,签名202可以设为基于要发送的报文200或数据201或者根据它们计算的哈希值、通过密钥生成的信息。
首先,各节点处于等待(wait)状态(state)(S301),通过决定论的计算来选择任一节点作为提议者(proposer)130。此处,所谓“决定论的(deterministic)”,意指在任何节点中都获得同一结果。在本发明中,将共识形成的试行的单位称为“回合”,以r表示回合的数量。例如,能够通过r mod N的计算而以决定论方式选择成为提议者的节点130。作为一例,利用能排序的标识符来构成上述的一组标识符,由此,在N为6、r为1时选择第1节点,在r为2时选择第2节点。也可设为r+a mod N(a为常数)代替r mod N。在各节点中进行上述计算,由于各节点将自身节点的当前的回合数r存储在存储部113中或者可以经由网络进行访问而可以进行参考,因此,各节点能够判定自身节点是否为提议者。如后文所述,每一节点都存在进入下一回合的情况,因此,有时会接收来自处于不同于自身节点的回合的节点的报文。
提议者130将包含共识形成对象数据的报文以带签名的形式发送至构成网络100的各节点来进行提议。在发送后,提议者变为提议完毕(proposed)状态,其他节点根据接收到该报文这一情况而变为提议完毕状态(S302)。提议者也收取来自自身节点的提议,更通常而言,发送了某种报文的节点也收取来自自身节点的报文。此处,来自自身节点的收取之中包括参考自身节点中存储的报文这一情况。提议者也可根据提议的收取而不是发送来变为提议完毕状态。此外,提议用的报文以及以下说明的其他报文中包含当前的回合数r。
收领到提议的各节点对该提议进行评价,判定其是否有效(valid)。是否有效的判定包含该提议是否是由这一回合内被选为提议者的节点发送的判定,例如,也可进而包含数据形式是否满足与用途相应的规定形式及其他规定条件的判定。判定为有效的节点对各节点以带自身节点的签名的形式发送有效这一内容的报文。该报文意指对有效的提议的投票,有时称为投票报文(与“第1报文”相对应)。投票报文中包含提议内容或者根据其计算的哈希值作为数据201。在以下的处理中也可以视需要进行收取到的报文的有效性的判定,仅将有效的报文作为计数等的处理对象。收取到提议的节点可在该提议有效的情况下转变为提议完毕状态。
在拜占庭故障节点120尽管不是提议者130也对各节点进行了提议这样的时候,此处判定为无效。此外,考虑拜占庭故障节点120为提议者130、尽管共识算法中定下的规定规则上是应在每一回合对各节点进行同一提议却进行了多个不同提议或者对一部分节点没有发送提议等情况。在这种情况下,若有效性的判定只是发送者的适当与否,则由于拜占庭故障节点120作为提议者是有效的,因此各节点会发送对各节点收取到的提议的投票报文。即便在这种状况下,通过以下说明的本实施方式的处理,也能建立共识。
在各节点在同一回合内对接收到的相同提议的投票报文的数量达到了规定值Q的情况下,自身节点对各节点以带签名的形式发送采纳该提议这一内容的报文,转变为采纳(accepted)状态(S303-1)。该报文有时称为采纳报文(与“第2报文”相对应)。采纳报文可以包含成为该节点判定满足规定值Q的根据的证据数据(evidence data)。具体而言,证据数据可以设为收取到的Q个以上的投票报文或者与其相对应的数据。此外,采纳报文可以包含提议内容或者根据其计算的哈希值。处于采纳状态的节点较理想为定期或间歇性地发送采纳报文,以提高活跃性。
此处得知,在f的值已知的情况下,规定值Q设为(f+N+1)/2以上的整数在确保安全性上面是必需的。实际上,设为(f+N+1)/2以上的最小整数即可。即,要确保安全性,对于多个不同提议须避免满足规定值Q,为此,在Q个节点进行了投票时,需要(N-f)个正常节点的过半数进行了投票,必须满足:
Q>(N-f)/2,
在发送了投票报文的Q个节点当中,可能存在最大f个拜占庭故障节点120,因此,还需要满足:
Q-f>(N-f)/2,
它变为:
Q>(N+f)/2,
也可以表示为(N+f+1)/2以上。
此外,要确保活跃性,要求正常节点的数量(N-f)为规定值Q以上。因而,代入上述Q的条件,要求拜占庭故障节点120的数量f在(N-1)/3以下。这也可以表达为不足N/3。在f的值为(N-1)/3以下、除此以外不明的情况下,规定值Q设为(2N+1)/3以上的最小整数即可。作为一例,在N为4时,Q为3。
此外,在各节点在规定时间内接收到的投票报文的数量未达到规定值Q的情况下,自身节点对各节点以带签名的形式发送驳回该回合内的提议这一内容的报文,转变为驳回(dismissed)状态(S303-2)。该报文有时称为驳回报文(与“第3报文”相对应)。上述规定时间例如考虑设为10秒。处于驳回状态的节点较理想为定期或间歇性地发送驳回报文,以提高活跃性。
接着,在各节点接收到的采纳报文的数量达到了规定数Q的情况下,视需要确认各报文的证据数据的存在,之后,自身节点对各节点发送将该提议视为通过网络100达成了共识的提议这一内容的报文,完成共识形成过程(complete)(S304)。该报文意味着将提议视为达成了共识的提议这一内容的表明(commit),有时称为表明报文(与“第4报文”相对应)。表明报文包含提议内容或者根据其计算的哈希值,在提议内容为区块的情况下,接受完成而加上该节点具有的区块链。此外,表明报文可以包含提议内容或者根据其计算的哈希值。此外,表明报文可以包含成为该节点判定满足规定值Q的依据的证据数据。具体而言,证据数据可以设为收取到的Q个以上的采纳报文或者与其相对应的数据。
图3中,以共识形成过程从采纳状态或驳回状态到完成的方式进行了展示,但只要满足条件,即便各节点处于等待状态或提议完毕状态,共识形成过程也能完成。接收到表明报文的节点接受这一事实,视需要确认证据数据的存在,之后完成共识形成过程。
此外,在各节点接收到的驳回报文的数量达到了规定数Q的情况下,对各节点发送用于前进至下一回合的报文,自身节点也转变为下一回合内的等待状态。该报文有时称为下一回合报文(与“第5报文”相对应)。由于未达成共识,因此前进至下一回合,在新的提议者130之下推进共识形成的过程。下一回合报文可以包含成为该节点判定满足规定值Q的依据的证据数据。具体而言,证据数据可以设为收取到的Q个以上的驳回报文或者与其相对应的数据。此外,下一回合报文可以包含提议内容或者根据其计算的哈希值。
图3中,通过虚线箭头、以从采纳状态或驳回状态转变为下一回合的等待状态的方式进行了展示,但只要满足条件,即便各节点处于等待状态或提议完毕状态,也可以前进至下一回合。此外,即便不满足上述条件,也可在从其他节点收取到同一回合的下一回合报文时转变为下一回合的等待状态,进而,也可对各节点发送下一回合报文。
在上述说明中,以从提议完毕状态转变为采纳状态的方式进行了记述,但只要满足上述条件,从等待状态或者从驳回状态也能产生转变。进而,即便在接收到的投票报文的数量未达到规定值Q的情况下,也可在从其他节点收取到同一回合的采纳报文时转变为采纳状态。关于来自比自身节点低的回合的采纳报文,考虑拜占庭故障节点120在应发送采纳报文的回合不发送而延迟发送的情况,若其他节点据此予以采纳,则会对多个提议建立共识,有产生分歧之虞。
再者,请注意,若没有像“仅基于××”、“仅根据××”、“仅××的情况下”这样的“仅”的记载,则是在本说明书中设想了也可能考虑附加性的信息这一情况。
(第2实施方式)
在本发明的第2实施方式中,针对第1实施方式的共识形成方法,进行将各节点的动作限定于固定动作的“锁定(lock)”的设定。通过进行锁定,例如能够抑制一个节点进行多个投票等这样的状况、将针对多个不同提议而满足规定值Q的条件的可能性降到零、提高安全性。
具体而言,各节点可以在转变为采纳状态的同时进行锁定的设定。作为一例,在进行了锁定的情况下,即便收取到提议,只要共识形成对象数据与锁定时的不同,即便该提议有效也不会进行投票。此外,在自身节点被选为提议者的情况下,可以做到必须提议锁定时的回合内的共识形成对象数据。
(第3实施方式)
有时会因网络的切断、延迟等而收取到来自不同回合的报文。具体而言,在收领到比自身节点大的回合内的采纳报文的情况下,若处于锁定状态,则可解除锁定而将自身节点的回合更新为该回合并进而进行锁定的设定而不是忽略该情况。此外,在收领到比自身节点的回合低但比自身节点被锁定时的回合大的回合内的采纳报文的情况下,可以解除锁定而利用该采纳报文的回合内的提议内容来设定锁定,对于回合数,可以保持自身节点的回合不变。通过如此实现锁定的解除,可以提高共识形成中的活跃性。要考虑拜占庭故障节点无根据地发送较大回合的采纳报文这一情况,因此要视需要进行根据数据的存在的确认。
此外,在收领到比自身节点大的回合内的下一回合报文的情况下,可将自身节点的回合更新为该回合,并在该回合内发送下一回合报文。
此外,在收领到比自身节点大的回合内的提议的情况下,可将自身节点的回合更新为该回合,在该提议有效时,在该回合内发送投票报文。更详细而言,在r为2以上的情况下,可在提议的报文中包含前一回合的下一回合报文,收取到提议的节点在确认该下一回合报文的根据数据的存在之后更新自身节点的回合。或者,在收取到提议的报文时,可向发送源节点请求发送前一回合的下一回合报文。
此外,有时会从不同于自身节点的回合收取到表明报文,此时,可以不论回合而且不论有无锁定、将该回合内的提议视为通过网络100达成了共识的提议而完成共识形成过程。
符号说明
100 网络
110 节点
111 通信部
112 处理部
113 存储部
120 拜占庭故障节点
130 提议者
200 报文
201 数据
202 签名。
Claims (15)
1.一种共识形成方法,其适用于在具有参加共识形成的N个节点的网络中假定了f个拜占庭故障节点的时候,其中,N为1以上的整数,f为1以上不到N/3的整数,该共识形成方法的特征在于,包含如下步骤:
从其他节点收领将包含成为共识形成对象的数据的报文作为提议判定为有效的这一内容的第1报文;
在收领到的第1报文的数量达到了规定值Q的情况下,自身节点对各节点发送采纳所述提议这一内容的第2报文,在规定时间内有效的第1报文的数量未达到所述规定值Q的情况下,自身节点对各节点发送驳回所述提议这一内容的第3报文;
在收领到的第2报文的数量达到了规定值Q的情况下,自身节点对各节点发送将所述提议视为在所述网络中达成了共识的提议这一内容的第4报文;以及
在收领到的第3报文的数量达到了规定数Q的情况下,对各节点发送用于前进至下一回合的第5报文,其中,将共识形成过程的单位称为回合,
在f的值已知的情况下,所述规定值Q为(f+N+1)/2以上的整数,
在收领到的第1报文的数量达到了规定值Q的情况下,设定锁定来限定以后的动作。
2.根据权利要求1所述的共识形成方法,其特征在于,
所述限定包含如下内容,即,在被选为进行提议的节点的情况下,进行共识形成对象数据与锁定时相同的提议。
3.根据权利要求1所述的共识形成方法,其特征在于,
所述限定包含如下内容,即,在收领到提议的情况下,在与锁定时的共识形成对象数据相同的数据为共识形成对象时,可以发送判断作为提议是有效的这一内容的第1报文。
4.根据权利要求1至3中任一项所述的共识形成方法,其特征在于,
还包含如下步骤,即,在从其他节点接收到同一回合内的第2报文的情况下,对各节点发送所述第2报文,而且设定锁定来限定以后的动作。
5.根据权利要求1至4中任一项所述的共识形成方法,其特征在于,
定期或间歇性地发送第2报文。
6.根据权利要求1至5中任一项所述的共识形成方法,其特征在于,
在从其他节点接收到第4报文的情况下,完成共识形成。
7.根据权利要求1至6中任一项所述的共识形成方法,其特征在于,
定期或间歇性地发送第3报文。
8.根据权利要求1至7中任一项所述的共识形成方法,其特征在于,
还包含如下步骤,即,在从其他节点接收到同一回合或者比自身节点大的回合内的第5报文的情况下,对各节点发送所述第5报文。
9.根据权利要求1至8中任一项所述的共识形成方法,其特征在于,
还包含如下步骤,即,在每一回合内以决定论方式选择进行所述提议的节点。
10.根据权利要求1至4中任一项所述的共识形成方法,其特征在于,
在收领到比自身节点的锁定时大的回合内的第2报文的情况下,对所述大的回合内的共识形成对象数据重新设定锁定来限定以后的动作。
11.根据权利要求1至10中任一项所述的共识形成方法,其特征在于,
所述第2报文包含成为判定满足所述规定值Q的依据的证据数据。
12.根据权利要求1至11中任一项所述的共识形成方法,其特征在于,
所述第4报文包含共识形成对象数据或者根据其计算的哈希值。
13.根据权利要求1至12中任一项所述的共识形成方法,其特征在于,
所述数据为区块或其哈希值,
在各节点收领到的第2报文的数量达到了规定值Q的情况下,对各节点具有的区块链追加所述区块。
14.一种程序,其用于使计算机执行适用于在具有参加共识形成的N个节点的网络中假定了f个拜占庭故障节点时的共识形成方法,其中,N为1以上的整数,f为1以上不到N/3的整数,该程序的特征在于,所述共识形成方法包含如下步骤:
从其他节点收领将包含成为共识形成对象的数据的报文作为提议判定为有效的这一内容的第1报文;
在收领到的第1报文的数量达到了规定值Q的情况下,自身节点对各节点发送采纳所述提议这一内容的第2报文,在规定时间内有效的第1报文的数量未达到所述规定值Q的情况下,自身节点对各节点发送驳回所述提议这一内容的第3报文;
在收领到的第2报文的数量达到了规定值Q的情况下,自身节点对各节点发送将所述提议视为在所述网络中达成了共识的提议这一内容的第4报文;以及
在收领到的第3报文的数量达到了规定数Q的情况下,对各节点发送用于前进至下一回合的第5报文,其中,将共识形成过程的单位称为回合,
在f的值已知的情况下,所述规定值Q为(f+N+1)/2以上的整数,
在收领到的第1报文的数量达到了规定值Q的情况下,设定锁定来限定以后的动作。
15.一种节点,其用于进行适于在具有参加共识形成的N个节点的网络中假定了f个拜占庭故障节点时的共识形成,其中,N为4以上的整数,f为1以上不到N/3的整数,该节点的特征在于,
从其他节点收领将包含成为共识形成对象的数据的报文作为提议判定为有效的这一内容的第1报文,
在收领到的第1报文的数量达到了规定值Q的情况下,自身节点对各节点发送采纳所述提议这一内容的第2报文,在规定时间内有效的第1报文的数量未达到所述规定值Q的情况下,自身节点对各节点发送驳回所述提议这一内容的第3报文,
在收领到的第2报文的数量达到了规定值Q的情况下,自身节点对各节点发送将所述提议视为在所述网络中达成了共识的提议这一内容的第4报文,
在收领到的第3报文的数量达到了规定数Q的情况下,对各节点发送用于前进至下一回合的第5报文,其中,将共识形成过程的单位称为回合,
在f的值已知的情况下,所述规定值Q为(f+N+1)/2以上的整数,
在收领到的第1报文的数量达到了规定值Q的情况下,设定锁定来限定以后的动作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-128847 | 2017-06-30 | ||
JP2017128847A JP2019012415A (ja) | 2017-06-30 | 2017-06-30 | ネットワークにおける合意形成方法及び当該ネットワークを構成するノード |
PCT/JP2018/024980 WO2019004480A1 (ja) | 2017-06-30 | 2018-06-29 | ネットワークにおける合意形成方法及び当該ネットワークを構成するノード |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111052091A true CN111052091A (zh) | 2020-04-21 |
CN111052091B CN111052091B (zh) | 2023-10-03 |
Family
ID=64742044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880028826.5A Active CN111052091B (zh) | 2017-06-30 | 2018-06-29 | 网络中的共识形成方法以及构成该网络的节点 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11212165B2 (zh) |
EP (1) | EP3647955B1 (zh) |
JP (2) | JP2019012415A (zh) |
CN (1) | CN111052091B (zh) |
WO (1) | WO2019004480A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112929186A (zh) * | 2021-02-22 | 2021-06-08 | 北京航空航天大学 | 一种基于通信模式结构的联盟链共识优化方法 |
CN114565388A (zh) * | 2022-04-29 | 2022-05-31 | 腾讯科技(深圳)有限公司 | 共识轮次的更新方法、装置、电子设备及存储介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110785966B (zh) * | 2019-03-18 | 2022-08-26 | 创新先进技术有限公司 | 用于结束视图更改协议的系统和方法 |
EP3889780A1 (en) | 2019-03-18 | 2021-10-06 | Advanced New Technologies Co., Ltd. | System and method for ending view change protocol |
CN110460484B (zh) * | 2019-10-10 | 2020-02-18 | 杭州趣链科技有限公司 | 一种基于pbft算法改进的单节点异常主动恢复方法 |
KR102285882B1 (ko) * | 2019-11-19 | 2021-08-05 | 한양대학교 산학협력단 | 가변 정족수 기반의 블록체인 합의 방법, 이를 이용하는 블록체인 노드 및 프로그램 |
CN111342971B (zh) * | 2020-02-07 | 2023-08-08 | 数据通信科学技术研究所 | 一种拜占庭共识方法和系统 |
CN111368008B (zh) * | 2020-05-27 | 2020-08-25 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
CN113114613B (zh) * | 2020-12-29 | 2023-05-02 | 上海零数众合信息科技有限公司 | 一种区块链容错共识的流水线处理方法 |
CN113783935B (zh) * | 2021-08-12 | 2022-04-01 | 清华大学 | 一种拜占庭容错方法及装置 |
DE102022111410A1 (de) | 2021-11-11 | 2023-05-11 | Alexander Augst | Verfahren, System, Persönlichkeitsmodell, Avatar Anwendergerät, Computerprogramm sowie ein neuronales Netz zum Unterstützen einer zwischenmenschlichen Kommunikation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070214355A1 (en) * | 2006-03-10 | 2007-09-13 | Microsoft Corporation | Leaderless Byzantine consensus |
JP2015146165A (ja) * | 2014-02-04 | 2015-08-13 | 日本電信電話株式会社 | 障害耐性信号処理装置および障害耐性信号処理方法 |
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
CN106529951A (zh) * | 2016-12-30 | 2017-03-22 | 杭州云象网络技术有限公司 | 一种联盟链网络下采用异步方式的节点共识验证方法 |
CN106656974A (zh) * | 2016-10-17 | 2017-05-10 | 江苏通付盾科技有限公司 | 区块链的分组共识方法及系统 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3655263B2 (ja) * | 2001-06-15 | 2005-06-02 | 株式会社東芝 | 分散システムおよび同システムの多重化制御方法 |
US11159318B2 (en) * | 2015-01-30 | 2021-10-26 | Enrico Maim | Methods and systems implemented in a network architecture with nodes capable of performing message-based transactions |
US11367072B2 (en) * | 2015-05-20 | 2022-06-21 | Ripple Luxembourg S.A. | Private networks and content requests in a resource transfer system |
US20170046689A1 (en) * | 2015-07-14 | 2017-02-16 | Fmr Llc | Crypto Voting and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems |
US11488147B2 (en) * | 2015-07-14 | 2022-11-01 | Fmr Llc | Computationally efficient transfer processing and auditing apparatuses, methods and systems |
WO2017060817A1 (en) | 2015-10-05 | 2017-04-13 | 402 Technologies S.A. | Temporary consensus networks in a resource transfer system |
JP6358658B2 (ja) * | 2015-11-09 | 2018-07-18 | 日本電信電話株式会社 | ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム |
US20170236120A1 (en) * | 2016-02-11 | 2017-08-17 | Oracle International Corporation | Accountability and Trust in Distributed Ledger Systems |
US20170250796A1 (en) * | 2016-02-18 | 2017-08-31 | Gideon Samid | Trans Vernam Cryptography: Round One |
KR20220088507A (ko) * | 2016-05-04 | 2022-06-27 | 실비오 미칼리 | 분산 거래 전파 및 검증 시스템 |
US9774578B1 (en) * | 2016-05-23 | 2017-09-26 | Accenture Global Solutions Limited | Distributed key secret for rewritable blockchain |
US11395092B2 (en) * | 2016-07-18 | 2022-07-19 | Here Global B.V. | Device location verification for updated map data |
US11188883B2 (en) * | 2016-09-23 | 2021-11-30 | International Business Machines Corporation | Using ledger sensors to enable contextual contracts across various enterprise blockchain applications |
US20180096551A1 (en) * | 2016-10-04 | 2018-04-05 | International Business Machines Corporation | Spheres of knowledge |
US10360191B2 (en) * | 2016-10-07 | 2019-07-23 | International Business Machines Corporation | Establishing overlay trust consensus for blockchain trust validation system |
US20180114218A1 (en) * | 2016-10-26 | 2018-04-26 | International Business Machines Corporation | Blockchain: automatic fork protection |
US10657526B2 (en) * | 2016-10-28 | 2020-05-19 | International Business Machines Corporation | System and method to dynamically setup a private sub-blockchain based on agility of transaction processing |
US10158527B2 (en) * | 2016-10-28 | 2018-12-18 | International Business Machines Corporation | Changing an existing blockchain trust configuration |
CN110383757B (zh) * | 2016-12-16 | 2022-08-30 | 维萨国际服务协会 | 用于安全处理电子身份的系统和方法 |
US10447480B2 (en) * | 2016-12-30 | 2019-10-15 | Guardtime Sa | Event verification receipt system and methods |
US10484346B2 (en) * | 2017-02-07 | 2019-11-19 | Microsoft Technology Licensing, Llc | Establishment of consortium blockchain network |
US11196573B2 (en) * | 2017-03-06 | 2021-12-07 | Nokia Technologies Oy | Secure de-centralized domain name system |
US10740733B2 (en) * | 2017-05-25 | 2020-08-11 | Oracle International Corporaton | Sharded permissioned distributed ledgers |
-
2017
- 2017-06-30 JP JP2017128847A patent/JP2019012415A/ja active Pending
-
2018
- 2018-03-06 JP JP2018039982A patent/JP6472116B2/ja active Active
- 2018-06-29 CN CN201880028826.5A patent/CN111052091B/zh active Active
- 2018-06-29 WO PCT/JP2018/024980 patent/WO2019004480A1/ja active Application Filing
- 2018-06-29 EP EP18823052.8A patent/EP3647955B1/en active Active
- 2018-06-29 US US16/609,647 patent/US11212165B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070214355A1 (en) * | 2006-03-10 | 2007-09-13 | Microsoft Corporation | Leaderless Byzantine consensus |
JP2015146165A (ja) * | 2014-02-04 | 2015-08-13 | 日本電信電話株式会社 | 障害耐性信号処理装置および障害耐性信号処理方法 |
CN106445711A (zh) * | 2016-08-28 | 2017-02-22 | 杭州云象网络技术有限公司 | 一种应用于区块链的拜占庭容错共识方法 |
CN106656974A (zh) * | 2016-10-17 | 2017-05-10 | 江苏通付盾科技有限公司 | 区块链的分组共识方法及系统 |
CN106529951A (zh) * | 2016-12-30 | 2017-03-22 | 杭州云象网络技术有限公司 | 一种联盟链网络下采用异步方式的节点共识验证方法 |
Non-Patent Citations (2)
Title |
---|
TYLER CRAIN 等: "(leader/Randomization/Signature)-free Byzantine Consensus for Consortium Blockchains", 《ARXIV.ORG/PDF/1702.03068V1.PDF》 * |
夏清等: "加密数字货币系统共识机制综述", 《计算机系统应用》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112929186A (zh) * | 2021-02-22 | 2021-06-08 | 北京航空航天大学 | 一种基于通信模式结构的联盟链共识优化方法 |
CN114565388A (zh) * | 2022-04-29 | 2022-05-31 | 腾讯科技(深圳)有限公司 | 共识轮次的更新方法、装置、电子设备及存储介质 |
CN114565388B (zh) * | 2022-04-29 | 2022-08-02 | 腾讯科技(深圳)有限公司 | 共识轮次的更新方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3647955A1 (en) | 2020-05-06 |
US20200112476A1 (en) | 2020-04-09 |
EP3647955B1 (en) | 2023-08-23 |
JP6472116B2 (ja) | 2019-02-20 |
WO2019004480A1 (ja) | 2019-01-03 |
EP3647955A4 (en) | 2021-08-04 |
US11212165B2 (en) | 2021-12-28 |
JP2019012510A (ja) | 2019-01-24 |
CN111052091B (zh) | 2023-10-03 |
JP2019012415A (ja) | 2019-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111052091A (zh) | 网络中的共识形成方法以及构成该网络的节点 | |
US11411721B2 (en) | Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system | |
Alaslani et al. | Blockchain in IoT systems: End-to-end delay evaluation | |
JP2020505839A (ja) | ネットワークのトポロジのネットワークの認識を更新するコンピュータにより実装されるシステム及び方法 | |
CN112600678B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
JP2023509889A (ja) | ブロックチェーンに基づくデータ検出方法及び装置並びにコンピュータ装置及びプログラム | |
JP5801482B2 (ja) | キーバリューストレージに対するデータの保存および読み出しを行う方法およびシステム | |
Correia et al. | Bft-to: Intrusion tolerance with less replicas | |
JP2024505692A (ja) | ブロックチェーンネットワークに基づくデータ処理方法、装置及びコンピュータ機器 | |
US11546340B2 (en) | Decentralized access control for authorized modifications of data using a cryptographic hash | |
Le et al. | A lightweight block validation method for resource-constrained iot devices in blockchain-based applications | |
Vizier et al. | ComChain: A blockchain with Byzantine fault‐tolerant reconfiguration | |
Kwak et al. | The design of hierarchical consensus mechanism based on service-zone sharding | |
Mehraein et al. | IGD-ScoreChain: A Lightweight and Scalable Blockchain Based on Node Sharding for the Internet of Things | |
Wu et al. | Blockchain consensus mechanism for distributed energy transactions | |
CN117061538A (zh) | 一种基于区块链网络的共识处理方法及相关装置 | |
CN114584940B (zh) | 切片服务处理方法及装置 | |
Meling et al. | When you don't trust clients: Byzantine proposer fast paxos | |
CN101425925B (zh) | 提供数据通信认证的方法、系统和设备 | |
Ranchal-Pedrosa et al. | ZLB, a blockchain tolerating colluding majorities | |
US20230185969A1 (en) | Consensus method for a distributed database | |
WO2021115554A1 (en) | A service based interface for establishing distributed consensus | |
CN116961892A (zh) | 基于区块链的密钥生成方法、装置、电子设备和可读介质 | |
CN114826592A (zh) | 基于区块链的密钥生成方法、装置、电子设备和可读介质 | |
Rowan et al. | FLARE CONSENSUS PROTOCOL |
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 |