CN113660272B - 抗拜占庭排序的异步共识方法及装置 - Google Patents
抗拜占庭排序的异步共识方法及装置 Download PDFInfo
- Publication number
- CN113660272B CN113660272B CN202110948509.9A CN202110948509A CN113660272B CN 113660272 B CN113660272 B CN 113660272B CN 202110948509 A CN202110948509 A CN 202110948509A CN 113660272 B CN113660272 B CN 113660272B
- Authority
- CN
- China
- Prior art keywords
- protocol
- asynchronous
- consensus
- node
- participants
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000012163 sequencing technique Methods 0.000 title claims abstract description 27
- 238000012545 processing Methods 0.000 claims description 12
- 238000012795 verification Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 9
- 238000012856 packing Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 6
- 238000012790 confirmation Methods 0.000 description 5
- 241000282344 Mellivora capensis Species 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Hardware Redundancy (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种抗拜占庭排序的异步共识方法及装置,其中,方法包括:将各个参与方运行可靠广播协议得到的提议值发送至其它参与方;接收其它参与方发送的提议值,并为提议值提供本地时间戳;对提议值运行信号驱动的异步公共子集协议,并将本地时间戳作为输入,使得在协议运行完成所有的异步公共子集协议后,每个参与方取各个异步公共子集协议输出的时间戳集合的中位数作为对应提议值的时间戳。由此,解决了现有的异步共识系统不能抵抗针对排序攻击的拜占庭敌手的问题,可以在异步网络中抵抗排序攻击,具有更高的安全性,并且可以为区块链系统提供底层数据一致性保证,增强区块链的安全性。
Description
技术领域
本发明涉及信息安全和电子商务技术领域,特别涉及一种抗拜占庭排序的异步共识方法及装置。
背景技术
在分布式系统中,拜占庭故障节点协同网络敌手可能给共识系统带来严重的破坏。为了让分布式系统能够在拜占庭故障和网络敌手同时存在时正常运行,提出了一种诸多拜占庭异步共识系统,解决了在异步网络模型下,所有的诚实节点能够就同一序列的请求达成一致的问题。排序攻击是一种恶意敌手操纵交易达成共识的顺序来获利的新型攻击方式。现有的拜占庭异步共识系统还不能抵抗这种排序攻击。
相关技术中,HoneyBadger是第一个使用异步公共子集构造的异步共识系统。异步公共子集协议是指在协议开始前各个参与方分别提议一个值,在协议执行完成后,各个参与方将输出一个一致的集合,该集合是所有参与方提出的值的集合的子集。HoneyBadger协议使用批处理技术保证了系统的高吞吐量,然而批处理技术不能改善共识延迟,每笔交易确认的延迟仍然需要秒级时间。这在时间敏感的系统中,几乎是不可用的。而且,由于使用批处理技术进而导致HoneyBadger无法对交易的顺序做实时的处理,进而丢失了良好排序的性质,这使得HoneyBadger协议受限于无序存储相关的应用场景。
抗拜占庭排序是一种良好的排序性质。抗拜占庭排序性质是指共识系统可以抵抗针对交易顺序进行攻击的恶意敌手。相关技术中提出的Pompe协议是第一个实现了抗拜占庭排序的共识系统,它使用超时机制来区分恶意敌手和诚实节点,保证了协议的安全性。但是,Pompe协议依赖于带有时间假设的网络模型,无法抵抗强大的网络敌手。
目前还不存在既能抵抗传统的敌手攻击,又能抵抗新的排序攻击的共识协议。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种抗拜占庭排序的异步共识方法,解决了现有的异步共识系统不能抵抗针对排序攻击的拜占庭敌手的问题,可以在异步网络中抵抗排序攻击,具有更高的安全性,大大增强区块链的安全性。
本发明的另一个目的在于提出一种抗拜占庭排序的异步共识装置。
为达到上述目的,本发明一方面实施例提出了抗拜占庭排序的异步共识方法,包括以下步骤:
将各个参与方运行可靠广播协议得到的提议值发送至其它参与方;
接收所述其它参与方发送的提议值,并为所述提议值提供本地时间戳;以及
对所述提议值运行信号驱动的异步公共子集协议,并将所述本地时间戳作为输入,使得在协议运行完成所有的异步公共子集协议后,每个参与方取各个异步公共子集协议输出的时间戳集合的中位数作为对应提议值的时间戳。
本发明实施例的抗拜占庭排序的异步共识方法,解决了现有的异步共识系统不能抵抗针对排序攻击的拜占庭敌手的问题,可以在异步网络中抵抗排序攻击,具有更高的安全性;通过预先为交易添加时间戳,降低了交易确认延迟,能提高共识协议的性能;并且可以为区块链系统提供底层数据一致性保证,增强区块链的安全性。
另外,根据本发明上述实施例的抗拜占庭排序的异步共识方法还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述将各个参与方运行可靠广播协议得到的提议值发送至其它参与方,包括:
多次使用可靠广播和异步二元共识协议,在保证异步公共子集协议的各个性质的基础上,在过程中对输出的结果进行验证。
进一步地,在本发明的一个实施例中,所述将各个参与方运行可靠广播协议得到的提议值发送至其它参与方,进一步包括:
运行可靠广播协议,以将所述提议值发送给其它参与方;
对其它参与方的提议值进行验证,并且对每个提议值运行异步二元共识协议,其中,如果所述提议值验证通过,则参与方将对相应的异步二元共识协议输入1,否则输入0。
进一步地,在本发明的一个实施例中,所述对所述提议值运行信号驱动的异步公共子集协议,包括:
多次使用所述可靠广播和异步二元共识协议,通过外部信号对可验证的异步公共子集协议和异步公共子集协议进行切换,其中,如果没有接收到所述外部信号,基于协议的行为等同于可验证的异步公共子集协议,且如果接收到所述外部信号,基于协议的行为等同于可验证的异步公共子集协议。
进一步地,在本发明的一个实施例中,所述对所述提议值运行信号驱动的异步公共子集协议,进一步包括:
广播所述各个参与方的提议值;
对所述其它参与方的提议值进行验证,并且对每个提议值运行异步二元共识协议,其中,如果所述提议值验证通过,则参与方将对相应的异步二元共识协议输入1,如果所述提议值验证不通过,则在收到所述外部信号后,参与方也将对相应的异步二元共识协议输入1。
为达到上述目的,本发明另一方面实施例提出了一种抗拜占庭排序的异步共识装置,包括:
发送模块,用于将各个参与方运行可靠广播协议得到的提议值发送至其它参与方;
接收模块,用于接收所述其它参与方发送的提议值,并为所述提议值提供本地时间戳;以及
处理模块,用于对所述提议值运行信号驱动的异步公共子集协议,并将所述本地时间戳作为输入,使得在协议运行完成所有的异步公共子集协议后,每个参与方取各个异步公共子集协议输出的时间戳集合的中位数作为对应提议值的时间戳。
本发明实施例的抗拜占庭排序的异步共识装置,解决了现有的异步共识系统不能抵抗针对排序攻击的拜占庭敌手的问题,可以在异步网络中抵抗排序攻击,具有更高的安全性;通过预先为交易添加时间戳,降低了交易确认延迟,能提高共识协议的性能;并且可以为区块链系统提供底层数据一致性保证,增强区块链的安全性。
另外,根据本发明上述实施例的抗拜占庭排序的异步共识装置还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述发送模块,包括:
第一验证单元,用于多次使用可靠广播和异步二元共识协议,在保证异步公共子集协议的各个性质的基础上,在过程中对输出的结果进行验证。
进一步地,在本发明的一个实施例中,所述发送模块,进一步包括:
发送单元,用于运行可靠广播协议,以将所述提议值发送给其它参与方;
第二验证单元,用于对其它参与方的提议值进行验证,并且对每个提议值运行异步二元共识协议,其中,如果所述提议值验证通过,则参与方将对相应的异步二元共识协议输入1,否则输入0。
进一步地,在本发明的一个实施例中,所述处理模块,包括:
切换单元,用于多次使用所述可靠广播和异步二元共识协议,通过外部信号对可验证的异步公共子集协议和异步公共子集协议进行切换,其中,如果没有接收到所述外部信号,基于协议的行为等同于可验证的异步公共子集协议,且如果接收到所述外部信号,基于协议的行为等同于可验证的异步公共子集协议。
进一步地,在本发明的一个实施例中,所述处理模块,进一步包括:
广播单元,用于广播所述各个参与方的提议值;
第三验证单元,用于对所述其它参与方的提议值进行验证,并且对每个提议值运行异步二元共识协议,其中,如果所述提议值验证通过,则参与方将对相应的异步二元共识协议输入1,如果所述提议值验证不通过,则在收到所述外部信号后,参与方也将对相应的异步二元共识协议输入1。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的抗拜占庭排序的异步共识方法的流程图;
图2为根据本发明一个实施例的可验证的异步公共子集协议示意图;
图3为根据本发明一个实施例的信号驱动的异步公共子集协议示意图;
图4为根据本发明一个实施例的抗拜占庭排序的异步共识系统示意图;
图5为根据本发明实施例的抗拜占庭排序的异步共识装置的方框示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述根据本发明实施例提出的抗拜占庭排序的异步共识方法及装置,首先将参照附图描述根据本发明实施例提出的抗拜占庭排序的异步共识方法。
图1是本发明一个实施例的抗拜占庭排序的异步共识方法的流程图。
该实施例中,存在两种异步共识协议和一种异步共识系统:(1)可验证的异步公共子集协议:该协议在普通的异步公共子集协议基础上,可以在运行过程中对输出结果进行验证,使得协议的输出结果可以公开验证。(2)信号驱动的异步公共子集协议:该协议依赖于外部信号,如果没有接收到外部信号,该协议的行为等同于可验证的异步公共子集协议,如果接收到外部信号,该协议的行为等同于普通的异步公共子集协议。(3)抗拜占庭排序的异步共识系统:该系统不仅能抵抗传统的敌手攻击,而且能抵抗新的排序攻击,进而提高共识系统的安全性。
本发明实施例首先构造了可验证的异步公共子集协议和信号驱动的异步公共子集协议。然后通过组合使用两种协议构造了一个抗拜占庭排序的异步共识系统。在构造相应协议时,本发明实施例使用了两种已存在的共识协议:(1)可靠广播协议(ReliableBroadcast,RBC):可靠广播协议保证了在分布式系统中广播的接收者最终会收到相同的值。即便存在恶意的敌手,可靠广播协议仍能保证诚实接收者接收值的一致性。(2)异步二元共识协议(Asynchronous BinaryAgreement,ABA):异步二元共识协议是指参与的各方分别选择提议0或者提议1,协议执行完毕后,参与各方会达成一致的共识结果,该结果要么是0,要么是1。异步二元共识协议还保证如果所有参与方都提议相同的值,那么共识结果也必然是这个值。即便存在恶意的敌手,异步二元共识协议仍然能保证共识结果一定是某个诚实参与方的提议值。
具体而言,如图1所示,该抗拜占庭排序的异步共识方法包括:
在步骤S101中,将各个参与方运行可靠广播协议得到的提议值发送至其它参与方。
进一步地,在本发明的一个实施例中,将各个参与方运行可靠广播协议得到的提议值发送至其它参与方,包括:多次使用可靠广播和异步二元共识协议,在保证异步公共子集协议的各个性质的基础上,在过程中对输出的结果进行验证。
进一步地,在本发明的一个实施例中,将各个参与方运行可靠广播协议得到的提议值发送至其它参与方,进一步包括:运行可靠广播协议,以将提议值发送给其它参与方;对其它参与方的提议值进行验证,并且对每个提议值运行异步二元共识协议,其中,如果提议值验证通过,则参与方将对相应的异步二元共识协议输入1,否则输入0。
具体而言,本申请实施例的可验证的异步公共子集协议多次使用可靠广播和异步二元共识协议,在保证了异步公共子集协议的各个性质的基础上,在过程中对输出的结果进行验证,保证了输出结果的正确性。本协议假设各个参与方对提议值合法性的验证标准是相同的。
其中,(1)广播各个参与方的提议值,即各个参与方分别运行可靠广播协议将提议值发送给其它参与方,可靠广播保证了所有参与方收到的其它参与方的提议值都是相同的。
(2)验证各个参与方的提议值,即各个参与方对其它参与方的提议值进行验证,因为各个参与方的验证标准相同,对于同一提议值,各个参与方的验证结果也是相同的。
(3)对提议值的合法性达成共识,即各个参与方分别对每一个提议值运行异步二元共识协议,如果提议值验证通过,参与方将对相应的异步二元共识协议输入1,否则输入0。如果一个提议值是合法的,那么所有参与方都将验证通过,异步二元共识协议保证了该提议对应的共识结果是1。各个参与方等待所有的异步二元共识协议运行结束,输出那些共识结果为1的提议值的集合。
本申请实施例的信号驱动的异步公共子集协议多次使用可靠广播和异步二元共识协议,可以通过外部信号对可验证的异步公共子集协议和异步公共子集协议进行切换。如果没有接收到外部信号,该协议的行为等同于可验证的异步公共子集协议,如果接收到外部信号,该协议的行为等同于可验证的异步公共子集协议。本协议不假设各个参与方对提议值合法性的验证标准是相同的。
其中,(1)广播各个参与方的提议值,即各个参与方分别运行可靠广播协议将提议值发送给其它参与方,可靠广播保证了所有参与方收到的其它参与方的提议值都是相同的。
(2)验证各个参与方的提议值,即各个参与方对其它参与方的提议值进行验证,因为各个参与方的验证标准相同,对于同一提议值,各个参与方的验证结果也是相同的。
(3)对提议值的合法性达成共识,即各个参与方分别对每一个提议值运行异步二元共识协议,如果提议值验证通过,参与方将对相应的异步二元共识协议输入1,如果验证值不通过,不同于可验证的异步公共子集协议中直接输入0,而是等待外部信号,直到收到了外部信号,参与方也将对相应的异步二元共识协议输入1。如果一个提议值是合法的,那么所有参与方都将验证通过,异步二元共识协议保证了该提议对应的共识结果是1。各个参与方等待所有的异步二元共识协议运行结束,输出那些共识结果为1的提议值的集合。
在步骤S102中,接收其它参与方发送的提议值,并为提议值提供本地时间戳。
在步骤S103中,对提议值运行信号驱动的异步公共子集协议,并将本地时间戳作为输入,使得在协议运行完成所有的异步公共子集协议后,每个参与方取各个异步公共子集协议输出的时间戳集合的中位数作为对应提议值的时间戳。
进一步地,在本发明的一个实施例中,对提议值运行信号驱动的异步公共子集协议,包括:多次使用可靠广播和异步二元共识协议,通过外部信号对可验证的异步公共子集协议和异步公共子集协议进行切换,其中,如果没有接收到外部信号,基于协议的行为等同于可验证的异步公共子集协议,且如果接收到外部信号,基于协议的行为等同于可验证的异步公共子集协议。
进一步地,在本发明的一个实施例中,对提议值运行信号驱动的异步公共子集协议,进一步包括:广播各个参与方的提议值;对其它参与方的提议值进行验证,并且对每个提议值运行异步二元共识协议,其中,如果提议值验证通过,则参与方将对相应的异步二元共识协议输入1,如果提议值验证不通过,则在收到外部信号后,参与方也将对相应的异步二元共识协议输入1。
具体而言,本发明实施例多次使用可靠广播和信号驱动的异步公共子集协议,可以为每一个提议值产生一个一致的时间戳,可以抵抗针对排序攻击的敌手。
其中,(1)广播各个参与方的提议值,即各个参与方分别运行可靠广播协议将提议值发送给其它参与方,可靠广播保证了所有参与方收到的其它参与方的提议值都是相同的。
(2)为各个提议值提供时间戳,即各个参与方分别为收到的提议值提供时间戳。该时间戳是本地的时间戳,各个参与方并不相同。
(3)对提议值的时间戳达成共识,即各个参与方分别对各个提议值运行信号驱动的异步公共子集协议,并提供步骤2中的本地时间戳作为输入。在协议运行完成所有的异步公共子集协议后,参与方取各个异步公共子集协议输出的时间戳集合的中位数作为对应提议值的时间戳。
为使得本领域技术人员进一步了解本申请实施例的抗拜占庭排序的异步共识方法,下面结合图2至图4进行详细说明。
具体地,下面详细介绍本申请实施例的抗拜占庭排序的异步共识方法涉及的抗拜占庭排序的异步共识系统,该系统的敌手模型假设为n=3f+1,其中,n为所有节点的数量,f为拜占庭恶意节点的最大数量。本系统的网络模型假设为异步网络,同时存在点对点的认证可靠传输信道。如图2至图4所示所示,图2为该系统构造的可验证的异步公共子集协议,图3为该系统构造的信号驱动的异步公共子集协议,图4为该系统构造的抗拜占庭排序的异步共识系统。
具体而言,对于可验证的异步公共子集协议来说,该协议使用r作为标识符,唯一标识一次可验证的异步公共子集协议的执行。本协议假设所有参与方在参与协议之前有相同的验证谓词Q(·)→0/1。该协议使用RBC[i,r]表示可靠广播协议以节点i为发送者,以r为标识符运行的一次可靠广播实例。本协议使用ABA[i,r]表示异步二元共识协议以节点i为参与方,以r为标识符运行的一次异步二元共识协议的实例。下面将以节点i的视角来描述可验证的异步公共子集协议的算法。
其中,(1)节点i收到本地的提议值vi,运行可靠广播RBC[i,r]并将vi作为可靠广播的输入;
(2)节点i收到可靠广播RBC[j,r]的值后,运行Q(·)和ABA[j,r],并将Q(·)的结果输入到ABA中;
(3)节点i收到n-f个ABA[·,r]实例输出为1时,将给其它还未提供输入的ABA实例输入0;
(4)节点i收到所有ABA实例的输出后,输出那些ABA实例输出1的对应的提议值的集合。
对于信号驱动的异步公共子集协议来说,该协议使用r作为标识符,唯一标识一次信号驱动的异步公共子集协议的执行。本协议假设所有参与方在参与协议之前有验证谓词Qi(·)→0/1。该协议使用RBC[i,r]表示可靠广播协议以节点i为发送者,以r为标识符运行的一次可靠广播实例。本协议使用ABA[i,r]表示异步二元共识协议以节点i为参与方,以r为标识符运行的一次异步二元共识协议的实例。下面将以节点i的视角来描述可验证的异步公共子集协议的算法。
其中,(1)节点i收到本地的提议值vi,运行可靠广播RBC[i,r]并将vi作为可靠广播的输入;
(2)节点i收到可靠广播RBC[j,r]的值后,运行Q(·)和ABA[j,r],如果Q(·)的输出为1,那么给ABA[j,r]输入1。如果Q(·)的输出为1,那么等待外部的信号,然后给ABA[j,r]输入1;
(3)节点i收到n-f个ABA[·,r]实例输出为1时,将给其它还未提供输入的ABA实例输入0;
(4)节点i收到所有ABA实例的输出后,输出那些ABA实例输出1的对应的提议值的集合。
对于抗拜占庭排序的异步共识系统来说,该系统为多轮共识系统,每一轮的轮数递增1,轮数表示为r=0,1,...。B表示本系统每轮生成的区块所能包含的最大交易数量。本系统使用RBC[i,r]表示可靠广播协议以节点i为发送者,在第r轮运行的一次可靠广播实例。本系统使用SACS[i,r]表示信号驱动的异步公共子集协议以节点i为参与方,在第r轮运行的一次信号驱动的异步公共子集协议。下面将以节点i的视角来描述抗拜占庭排序的异步共识系统的算法,该算法将随轮数不断循环。
其中,(1)在第r轮中,节点i收到交易tx,存储到本地等待共识集合q中;
(2)节点i在本地集合q中元素的个数大于等于B/n时,运行RBC[i,r],打包并输入q中的所有元素vi;
(3)节点i在从RBC[j,r]收到交易集合vj后,构造谓词Qj(v)为“如果v与vj相等,那么返回1,否则返回0”。使用谓词Qj(·)运行SACS[j,r],并输入其中是节点i第一次收到txj时的时间戳;
(4)节点i在从SACS[·,r]收到至少n-f个输出后,向其它未输出的SACS实例发送外部信号,并向其它为输入的SACS实例输入空白交易<vj,″$″>,其中“$”表示特殊的时间戳符号;
(5)节点i等待所有SACS实例输出,选择合法的SACS集合的输出,取每个SACS的输出中的时间戳集合的中位数时间戳作为对应交易的排序时间戳;
(6)轮数r增加1,再次执行(1)。
根据本发明实施例提出的抗拜占庭排序的异步共识方法,解决了现有的异步共识系统不能抵抗针对排序攻击的拜占庭敌手的问题,可以在异步网络中抵抗排序攻击,具有更高的安全性;通过预先为交易添加时间戳,降低了交易确认延迟,能提高共识协议的性能;并且可以为区块链系统提供底层数据一致性保证,增强区块链的安全性。
其次参照附图描述根据本发明实施例提出的抗拜占庭排序的异步共识装置。
图5是本发明一个实施例的抗拜占庭排序的异步共识装置的方框示意图。
如图5所示,该抗拜占庭排序的异步共识装置,包括:发送模块100、接收模块200和处理模块300。
其中,发送模块100用于将各个参与方运行可靠广播协议得到的提议值发送至其它参与方;
接收模块200用于接收其它参与方发送的提议值,并为提议值提供本地时间戳;以及
处理模块300用于对提议值运行信号驱动的异步公共子集协议,并将本地时间戳作为输入,使得在协议运行完成所有的异步公共子集协议后,每个参与方取各个异步公共子集协议输出的时间戳集合的中位数作为对应提议值的时间戳。
进一步地,在本发明的一个实施例中,发送模块100包括:
第一验证单元,用于多次使用可靠广播和异步二元共识协议,在保证异步公共子集协议的各个性质的基础上,在过程中对输出的结果进行验证。
进一步地,在本发明的一个实施例中,发送模块100进一步包括:
发送单元,用于运行可靠广播协议,以将提议值发送给其它参与方;
第二验证单元,用于对其它参与方的提议值进行验证,并且对每个提议值运行异步二元共识协议,其中,如果提议值验证通过,则参与方将对相应的异步二元共识协议输入1,否则输入0。
进一步地,在本发明的一个实施例中,处理模块300包括:
切换单元,用于多次使用可靠广播和异步二元共识协议,通过外部信号对可验证的异步公共子集协议和异步公共子集协议进行切换,其中,如果没有接收到外部信号,基于协议的行为等同于可验证的异步公共子集协议,且如果接收到外部信号,基于协议的行为等同于可验证的异步公共子集协议。
进一步地,在本发明的一个实施例中,处理模块300进一步包括:
广播单元,用于广播各个参与方的提议值;
第三验证单元,用于对其它参与方的提议值进行验证,并且对每个提议值运行异步二元共识协议,其中,如果提议值验证通过,则参与方将对相应的异步二元共识协议输入1,如果提议值验证不通过,则在收到外部信号后,参与方也将对相应的异步二元共识协议输入1。
需要说明的是,前述对抗拜占庭排序的异步共识方法实施例的解释说明也适用于该实施例的抗拜占庭排序的异步共识装置,此处不再赘述。
根据本发明实施例提出的抗拜占庭排序的异步共识装置,解决了现有的异步共识系统不能抵抗针对排序攻击的拜占庭敌手的问题,可以在异步网络中抵抗排序攻击,具有更高的安全性;通过预先为交易添加时间戳,降低了交易确认延迟,能提高共识协议的性能;并且可以为区块链系统提供底层数据一致性保证,增强区块链的安全性。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不是必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种抗拜占庭排序的异步共识方法,其特征在于,包括以下步骤:
将各个参与方运行可靠广播协议得到的提议值发送至其它参与方;
接收所述其它参与方发送的提议值,并为所述提议值提供本地时间戳;以及
对所述提议值运行信号驱动的异步公共子集协议,并将所述本地时间戳作为输入,使得在协议运行完成所有的异步公共子集协议后,每个参与方取各个异步公共子集协议输出的时间戳集合的中位数作为对应提议值的时间戳;
其中,以节点i的视角描述可验证的异步公共子集协议的算法的步骤如下:
(1)所述节点i收到本地的提议值vi,运行第一可靠广播RBC[i,r],并将所述提议值vi作为所述第一可靠广播的输入;
(2)所述节点i收到第二可靠广播RBC[j,r]的值后,运行Q(·)和ABA[j,r],并将Q(·)的结果输入到所述ABA[j,r]中;
(3)所述节点i收到n-f个ABA[·,r]实例输出为1时,将给其它还未提供输入的ABA[·,r]实例输入0;
(4)所述节点i收到所有ABA[·,r]实例的输出后,输出ABA[·,r]实例输出1的对应的提议值的集合;
以所述节点i的视角来描述抗拜占庭排序的异步共识系统的算法的步骤如下,该算法将随轮数不断循环:
①在第r轮中,所述节点i收到交易tx,存储到本地等待共识集合q中;
②所述节点i在所述本地等待共识集合q中元素的个数大于等于B/n时,运行RBC[i,r],打包并输入所述本地等待共识集合q中的所有元素vi;
③所述节点i在从RBC[j,r]收到交易集合vj后,构造谓词Qj(v)为:如果v与vj相等,那么返回1,否则返回0;使用谓词Qj(·)运行SACS[j,r],并输入其中,是节点i第一次收到txj时的时间戳;
④所述节点i在从SACS[·,r]收到至少n-f个输出后,向其它未输出的SACS[·,r]实例发送外部信号,并向其它为输入的SACS实例输入空白交易<vj,″$″>,其中,“$”表示特殊的时间戳符号;
⑤所述节点i等待所有SACS实例输出,选择合法的SACS集合的输出,取每个SACS的输出中的时间戳集合的中位数时间戳作为对应交易的排序时间戳;
⑥轮数r增加1,再次执行①。
2.根据权利要求1所述的方法,其特征在于,所述将各个参与方运行可靠广播协议得到的提议值发送至其它参与方,包括:
多次使用可靠广播和异步二元共识协议,在保证异步公共子集协议的各个性质的基础上,在过程中对输出的结果进行验证。
3.根据权利要求2所述的方法,其特征在于,所述将各个参与方运行可靠广播协议得到的提议值发送至其它参与方,进一步包括:
运行可靠广播协议,以将所述提议值发送给其它参与方;
对其它参与方的提议值进行验证,并且对每个提议值运行异步二元共识协议,其中,如果所述提议值验证通过,则参与方将对相应的异步二元共识协议输入1,否则输入0。
4.根据权利要求2或3所述的方法,其特征在于,所述对所述提议值运行信号驱动的异步公共子集协议,包括:
多次使用所述可靠广播和异步二元共识协议,通过外部信号对可验证的异步公共子集协议和异步公共子集协议进行切换,其中,如果没有接收到所述外部信号,基于协议的行为等同于可验证的异步公共子集协议,且如果接收到所述外部信号,基于协议的行为等同于可验证的异步公共子集协议。
5.根据权利要求4所述的方法,其特征在于,所述对所述提议值运行信号驱动的异步公共子集协议,进一步包括:
广播所述各个参与方的提议值;
对所述其它参与方的提议值进行验证,并且对每个提议值运行异步二元共识协议,其中,如果所述提议值验证通过,则参与方将对相应的异步二元共识协议输入1,如果所述提议值验证不通过,则在收到所述外部信号后,参与方也将对相应的异步二元共识协议输入1。
6.一种抗拜占庭排序的异步共识装置,其特征在于,包括:
发送模块,用于将各个参与方运行可靠广播协议得到的提议值发送至其它参与方;
接收模块,用于接收所述其它参与方发送的提议值,并为所述提议值提供本地时间戳;以及
处理模块,用于对所述提议值运行信号驱动的异步公共子集协议,并将所述本地时间戳作为输入,使得在协议运行完成所有的异步公共子集协议后,每个参与方取各个异步公共子集协议输出的时间戳集合的中位数作为对应提议值的时间戳;
其中,以节点i的视角描述可验证的异步公共子集协议的算法的步骤如下:
(1)所述节点i收到本地的提议值vi,运行第一可靠广播RBC[i,r],并将所述提议值vi作为所述第一可靠广播的输入;
(2)所述节点i收到第二可靠广播RBC[j,r]的值后,运行Q(·)和ABA[j,r],并将Q(·)的结果输入到所述ABA[j,r]中;
(3)所述节点i收到n-f个ABA[·,r]实例输出为1时,将给其它还未提供输入的ABA[·,r]实例输入0;
(4)所述节点i收到所有ABA[·,r]实例的输出后,输出ABA[·,r]实例输出1的对应的提议值的集合;
以所述节点i的视角来描述抗拜占庭排序的异步共识系统的算法的步骤如下,该算法将随轮数不断循环:
①在第r轮中,所述节点i收到交易tx,存储到本地等待共识集合q中;
②所述节点i在所述本地等待共识集合q中元素的个数大于等于B/n时,运行RBC[i,r],打包并输入所述本地等待共识集合q中的所有元素vi;
③所述节点i在从RBC[j,r]收到交易集合vj后,构造谓词Qj(v)为:如果v与vj相等,那么返回1,否则返回0;使用谓词Qj(·)运行SACS[j,r],并输入其中,是节点i第一次收到txj时的时间戳;
④所述节点i在从SACS[·,r]收到至少n-f个输出后,向其它未输出的SACS[·,r]实例发送外部信号,并向其它为输入的SACS实例输入空白交易<vj,″$″>,其中,“$”表示特殊的时间戳符号;
⑤所述节点i等待所有SACS实例输出,选择合法的SACS集合的输出,取每个SACS的输出中的时间戳集合的中位数时间戳作为对应交易的排序时间戳;
⑥轮数r增加1,再次执行①。
7.根据权利要求6所述的装置,其特征在于,所述发送模块,包括:
第一验证单元,用于多次使用可靠广播和异步二元共识协议,在保证异步公共子集协议的各个性质的基础上,在过程中对输出的结果进行验证。
8.根据权利要求7所述的装置,其特征在于,所述发送模块,进一步包括:
发送单元,用于运行可靠广播协议,以将所述提议值发送给其它参与方;
第二验证单元,用于对其它参与方的提议值进行验证,并且对每个提议值运行异步二元共识协议,其中,如果所述提议值验证通过,则参与方将对相应的异步二元共识协议输入1,否则输入0。
9.根据权利要求7或8所述的装置,其特征在于,所述处理模块,包括:
切换单元,用于多次使用所述可靠广播和异步二元共识协议,通过外部信号对可验证的异步公共子集协议和异步公共子集协议进行切换,其中,如果没有接收到所述外部信号,基于协议的行为等同于可验证的异步公共子集协议,且如果接收到所述外部信号,基于协议的行为等同于可验证的异步公共子集协议。
10.根据权利要求9所述的装置,其特征在于,所述处理模块,进一步包括:
广播单元,用于广播所述各个参与方的提议值;
第三验证单元,用于对所述其它参与方的提议值进行验证,并且对每个提议值运行异步二元共识协议,其中,如果所述提议值验证通过,则参与方将对相应的异步二元共识协议输入1,如果所述提议值验证不通过,则在收到所述外部信号后,参与方也将对相应的异步二元共识协议输入1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110948509.9A CN113660272B (zh) | 2021-08-18 | 2021-08-18 | 抗拜占庭排序的异步共识方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110948509.9A CN113660272B (zh) | 2021-08-18 | 2021-08-18 | 抗拜占庭排序的异步共识方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113660272A CN113660272A (zh) | 2021-11-16 |
CN113660272B true CN113660272B (zh) | 2022-06-21 |
Family
ID=78480940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110948509.9A Active CN113660272B (zh) | 2021-08-18 | 2021-08-18 | 抗拜占庭排序的异步共识方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113660272B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114861233B (zh) * | 2022-04-19 | 2023-12-19 | 湖南天河国云科技有限公司 | 一种无需可信第三方的分片异步拜占庭容错共识方法和装置 |
CN115017458B (zh) * | 2022-04-29 | 2023-06-09 | 北京龙腾佳讯科技股份公司 | 安全多方计算数据中位数的方法及系统 |
CN114938310B (zh) * | 2022-06-28 | 2023-02-10 | 湖南大学 | 一种基于隐私保护的药物相似性计算方法 |
CN116170153B (zh) * | 2023-01-19 | 2024-06-21 | 清华大学 | 异步公共子集共识方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111342971A (zh) * | 2020-02-07 | 2020-06-26 | 数据通信科学技术研究所 | 一种拜占庭共识方法和系统 |
CN111614468A (zh) * | 2020-05-24 | 2020-09-01 | 济南欣格信息科技有限公司 | 一种区块链共识方法及系统 |
CN112953955A (zh) * | 2021-03-03 | 2021-06-11 | 南京航空航天大学 | 一种多方量子拜占庭共识优化协议 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019157475A1 (en) * | 2018-02-12 | 2019-08-15 | Ripple Labs Inc. | Byzantine agreement in open networks |
-
2021
- 2021-08-18 CN CN202110948509.9A patent/CN113660272B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111342971A (zh) * | 2020-02-07 | 2020-06-26 | 数据通信科学技术研究所 | 一种拜占庭共识方法和系统 |
CN111614468A (zh) * | 2020-05-24 | 2020-09-01 | 济南欣格信息科技有限公司 | 一种区块链共识方法及系统 |
CN112953955A (zh) * | 2021-03-03 | 2021-06-11 | 南京航空航天大学 | 一种多方量子拜占庭共识优化协议 |
Also Published As
Publication number | Publication date |
---|---|
CN113660272A (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113660272B (zh) | 抗拜占庭排序的异步共识方法及装置 | |
CN109767199B (zh) | 基于信誉的pbft共识系统及方法、区块链数据处理系统 | |
CN109936457B (zh) | 区块链多方见证方法、装置、设备及计算机可读存储介质 | |
Lindell et al. | On the composition of authenticated byzantine agreement | |
CN112541758A (zh) | 基于区块链的多轮投票式容错排序共识机制与方法 | |
Ruffing et al. | ROAST: robust asynchronous schnorr threshold signatures | |
CN111899002B (zh) | 一种区块链中高效进行跨链信息交易交互的方法 | |
CN113612604B (zh) | 面向异步网络的安全分布式随机数生成方法及装置 | |
Georgiou et al. | Asynchronous gossip | |
CN111342971A (zh) | 一种拜占庭共识方法和系统 | |
TW202034666A (zh) | 在使用混合拜占庭協議之分散式系統中為資訊確認之方法 | |
Syta et al. | Security analysis of accountable anonymity in dissent | |
CN110995439A (zh) | 区块链共识方法、电子装置及存储介质 | |
CN115633035B (zh) | 一种基于改进的pbft物联网区块链共识算法 | |
CN111464632A (zh) | 区块链跨链转发方法及区块链节点 | |
CN111064813A (zh) | 在区块链共识处理时进行处理消息同步的方法及装置 | |
CN115174570A (zh) | 一种基于动态委员会的跨链共识方法及系统 | |
CN112907246B (zh) | 基于BFT协议和PoW机制的区块链共识协议实现方法和系统 | |
CN116546499B (zh) | 一种基于轻量级拜占庭容错的移动终端身份认证方法 | |
CN115051808B (zh) | 基于ecdsa签名算法的跨链交易验证系统和方法 | |
CN104038557A (zh) | 一种光纤连接的树形网络结构中设备软件批量升级方法 | |
CN116383894A (zh) | 基于可验证vdch函数的可修改联盟链性能优化方法 | |
CN101632261B (zh) | 网络中的全网状速率事务 | |
CN116260826A (zh) | 一种供应链溯源中拜占庭容错共识方法及系统 | |
CN116055579A (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 |