CN114710374B - 一种数据广播与共识解耦的异步区块链共识方法和系统 - Google Patents
一种数据广播与共识解耦的异步区块链共识方法和系统 Download PDFInfo
- Publication number
- CN114710374B CN114710374B CN202210247787.6A CN202210247787A CN114710374B CN 114710374 B CN114710374 B CN 114710374B CN 202210247787 A CN202210247787 A CN 202210247787A CN 114710374 B CN114710374 B CN 114710374B
- Authority
- CN
- China
- Prior art keywords
- consensus
- protocol
- data
- nodes
- result
- 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
Images
Classifications
-
- 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/1854—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
-
- 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/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 Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种数据广播与共识解耦的异步区块链共识方法和系统。所述系统包括:多个节点;所述节点可由多台互相信任的物理或虚拟设备共同担任;所述方法包括:数据广播与数据顺序共识解耦,所述节点共同维护多个广播协议实例和一个拜占庭共识协议;所述广播协议负责将某个节点数据传输给其他节点,所述拜占庭共识协议负责对所述多个广播协议实例的结果进行共识;在所述节点内部,可将多个广播协议实例一一对应的交给多台设备负责维护,并将所述广播协议的执行结果传输给节点内部负责执行所述拜占庭共识协议的设备。实施本发明,可以提高区块链系统的效率,同时可以更方便的通过增加物理资源来提高系统效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据广播与共识解耦的异步区块链共识方法和系统。
背景技术
区块链技术是指通过共识机制保证所有参与者共同维护一个分布式账本的技术方案。根据不同的网络模型假设,又可以细分为同步、半同步和异步三种,其中异步是最弱的假设。在异步网络模型假设中,参与方和设计者均无法获得网络延迟的上界,导致异步区块链共识在设计上更加复杂。在现有的设计中,大多采用直接对数据进行共识,或者先分发数据,然后对数据的发送方的身份进行共识的思想。这些设计效率普遍不理想,前者因为其在数据吞吐量和延迟方面的表示很差而不具有实用性,后者虽然相比前者有一定的提高,但是仍然具有较大的确认延迟和较小的交易吞吐量。因此,需要一种新的异步区块链共识机制来打破这种设计思想,以提高异步共识机制的效率。
发明内容
鉴于现有技术中存在的技术问题,本发明的目的在于提供一种数据广播与共识解耦的异步区块链共识机制。
具体的说,本发明包括以下两个重要的方面:
一、一种数据广播与共识解耦的异步区块链共识方法
本发明为两类并行进行的子协议:数据广播协议和数据顺序共识协议。
在数据广播协议中,假定共识机制参与方有n个,则所有节点会共同维护kn个顺序执行的数据广播协议实例(k为大于0的常数,比如为1),并且每个节点在k条链中担任领导者的角色,负责将用户或节点数据形成顺序输出的数据区块。在每个数据广播协议实例中,执行独立的可靠广播协议,协议的输入为数据区块以及对应的标识,需要注意的是,本发明广播协议的具体实现是模块化的,根据不同的需求,可以使用不同的广播协议。但这些广播协议需要满足以下条件:1)协议顺序输出数据区块;2)输出中附带广播协议完成的证据,该证据可以但不限于使用门限签名(threshold-signature)来构造,该证据证明大多数的参与者收到了相同的内容;3)输出来自于广播协议的输入;4)敌手无法伪造2)中所述证据。在理想情况下(网络稳定、节点不发生故障、无敌手等情况下),kn个数据广播协议实例的输出将顺序地稳定增长,即使在拜占庭敌手或异步网络的攻击下,也能保证至少kn-kt个实例的输出稳定顺序增长(t为拜占庭敌手个数)。
在数据顺序共识协议中,所有参与节点共同顺序执行异步多值拜占庭共识协议(MVBA)。这里需要强调的是,本发明MVBA的具体实现是模块化的,根据不同的需求,可以使用不同的MVBA协议。但这些MVBA协议都需要满足以下条件:1)一致性(Agreement):任意两个诚实节点的输出相同;2)外部有效性(External-Validity):存在一个全局已知的断言式Q,使得对所有诚实节点的输出V,都有Q(V)=true;3)终止性(Termination):如果任何一个诚实节点的输入是有效的,那么最终所有诚实节点都会输出一个值;4)质量有效性(quality):协议的输出有至少超过一半的概率来自诚实节点。MVBA协议的输入为每个节点在自己视角下共同维护的kn条链的长度、在对应的数据可靠广播协议中完成广播的证据以及唯一标识。这里对输入还有一个要求:只有当输入的kn条链的高度中,存在至少z个高度大于上次MVBA协议输出(n-2t≤z≤n-t),且这z条链的领导者各不相同,并且其他高度至少不小于上次共识结果时,MVBA才认为这是一个合法的输入。注:本说明书中提到的高度是指数据广播协议顺序输出的个数。MVBA协议的输出则为该协议的多个有效输入中的某一个。在MVBA协议输出后,节点会将最近的两次输出比较,将最新一次输出相较上一次多出的数据区块按照某种全局已知的确定性算法打包成一个确认区块,并将确认区块放入本地维护的确认区块链上。
在执行整个协议时,会执行kn个并行的数据广播协议,同时还将顺序地执行MVBA协议。通过这种方法,把数据传输与数据顺序共识解耦,分别由并行的可靠广播协议和MVBA协议来完成。这样,廉价高效的数据广播过程不会被低效的共识过程阻塞,同时也可以通过调整共识过程有效输入的判定条件来进一步减少共识的次数,不过需要注意的是,上述提到的输入有效性判断是保证协议安全执行的最低要求,实际调整中有效条件不能低于上述提到的条件。
二、一种数据广播与共识解耦的异步区块链共识系统
为了提高协议整体的效率,除了改进协议外,还可以通过增加物理资源的方法。增加物理资源的方法有两种,一是对单台物理设备进行资源扩充,如增加内存等,二是增加新的物理设备协作完成。本发明的共识方法可以很方便的使用第二种方法来提高协议整体的效率。传统来讲,使用第二种方法的一个主要问题是任务如何分工以及各个子设备之间如何沟通,这些问题在我们的架构中并不存在。如所述共识方法,系统中广播协议的kn个实例之间是相互独立的,参与者可以简单的将kn个实例上的工作划分给kn个子设备,每个子设备维护一个广播实例,当然,也可以一台子设备维护多条链。由于链之间完全不需要通信,也不会出现上述的问题。如果系统所有的参与者均拥有多台设备,那么也可以通过增加k值来使得系统的执行可以更方便的划分给这些子设备。通过这种方法,物理资源的增加可以提高系统执行效率。这使得控制多台物理设备组成的集群的大型节点可以更方便的提高协议整体的效率。
在所述系统中,单个节点可以将协议的执行交由多个设备共同完成。具体来讲,可以分为三种设备:tx_pool设备、broadcaster设备和order设备。其中,tx_pool设备负责接收和分发从客户端或者其他节点获得的交易或数据;broadcatser设备负责执行数据广播协议并执行与该协议的输入输出相关的处理工作;order设备负责执行数据顺序共识协议并执行与该协议的输入输出相关的处理工作。每种设备均可包含若干台设备来协作完成功能。
注:本说明书中提到的设备如无特别强调,不一定必须与物理上独立的设备实体相对应。即,可以采用软件形式来实现这些设备,或在一个或多个硬件模块或集成电路中实现这些设备,或在不同网络和/或处理器装置和/或微控制器装置中实现这些设备。
具体地,本发明采用的技术方案如下:
一种数据广播与共识解耦的异步区块链共识方法,所述方法应用于区块链系统,所述区块链系统含有共识节点集合,所述方法由所述共识节点集合中的共识节点执行,所述方法包括以下步骤:
所述节点间运行多个并行的数据广播协议;
所述节点间根据所述数据广播协议的结果,以数据区块链的高度作为输入执行数据顺序共识协议;
所述节点间根据所述数据顺序共识协议的结果维护一条确认区块链,所述确认区块链上的内容为最终共识结果。
进一步地,所述数据顺序共识协议包含顺序执行异步多值拜占庭共识协议,即MVBA协议。
进一步地,所述MVBA协议为异步共识协议,在同步和半同步网络假设下,所述MVBA协议依然能够正常运行,且所述MVBA协议的性质均能保障。
进一步地,所述节点在执行所述MVBA协议之前,使用自定义的方法判断是否有数据广播协议输出了新的数据块且满足自定义的有效条件。
进一步地,所述自定义的有效条件保证系统安全的最小界:至少z个由不同节点担任领导者角色的数据区块链的高度相较上次共识结果有所增加,且所有数据区块链的高度不小于上次共识结果,其中n-2t≤z≤n-t,n为共识参与者总数,t为系统容忍的敌手数量最大值。
进一步地,将所述MVBA协议的共识结果转化为所述确认区块链上的区块的方法是:所述节点获得所述MVBA协议的共识结果时,将其与上一次的共识结果进行比较,将相较上一次共识结果多出的数据区块按照确定性算法打包成一个确认区块,并将确认区块放入确认区块链中。
进一步地,每个所述节点包含若干个order设备、kn个broadcaster设备和若干个tx_pool设备,tx_pool设备负责接收和分发从客户端或者其他节点获得的交易或数据,broadcatser设备负责执行数据广播协议并执行与该协议的输入输出相关的处理工作,order设备负责执行数据顺序共识协议并执行与该协议的输入输出相关的处理工作;kn个broadcaster设备与kn个数据广播实例一一对应,每个节点有k个broadcaster设备在其参与的数据广播协议实例中担任领导者角色;所述tx_pool设备分发交易或数据给k个领导者broadcaster;每台所述broadcaster设备负责维护一个所述数据广播协议实例;所述order设备收集集群内所述broadcaster设备执行所述数据广播协议实例的结果,并将所述结果转化为所述确认区块链上的区块。
进一步地,在不同的网络模型假设下或是更复杂的在不同网络模型间切换的假设下,所述数据广播协议和数据顺序共识协议由对应网络模型假设下的具体协议实现。
一种采用上述方法的数据广播与共识解耦的异步区块链共识系统,其包括区块链系统,所述区块链系统含有共识节点集合,所述共识节点集合中的节点间运行多个并行的数据广播协议;所述节点间根据所述数据广播协议的结果,以数据区块链的高度作为输入执行数据顺序共识协议;所述节点间根据所述数据顺序共识协议的结果维护一条确认区块链,所述确认区块链上的内容为最终共识结果。
与现有的技术相比,本发明的有益效果是:在不牺牲安全的前提下,本发明通过将区块链协议中数据广播与数据顺序共识解耦的方法,提高了系统整体的效率。同时,本发明提出了一种基于集群架构的适配方法,使得本发明的效率可以随着物理资源的增加而增长。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。在附图中:
图1是实施例中当n=4时的数据广播与共识解耦的异步区块链共识流程图;
图2是实施例中tx_pool设备结构示意图;
图3是实施例中order设备结构示意图。
具体实施方式
下面通过具体实施例和附图,对本发明做进一步详细说明。
本发明的技术方案是这样实现的:
1.本方案的参与者为n个维护区块链账本的节点Pi(0≤i<n),以及若干个提出原始交易或者数据的客户端(节点也可以扮演客户端的角色)。在每个节点的集群中,包含三种设备,第一种称为order设备(数据顺序共识协议执行设备),第二种称为broadcaster设备(数据广播协议执行设备),第三种称为tx_pool设备(数据接收和分发设备)。每个节点包含若干个order设备、kn个broadcaster设备和若干个tx_pool设备。kn个broadcaster设备与kn个数据广播实例一一对应,而且每个节点有k个broadcaster设备在其参与的数据广播协议实例中担任领导者角色。
2.执行流程:
1)客户端将原始交易或者数据发送给某个或者某些节点的tx_pool设备。
2)tx_pool设备在收到交易或数据后,会随机选择一个自己集群中在其维护的数据广播协议实例中担任领导者角色的broadcaster设备,将交易或数据转发给该设备。
3)所有担任领导者角色的broadcaster设备在收集到足够的交易或数据后会将其打包成数据块,并作为数据广播协议的输入,触发执行广播协议。其他节点对应的非领导者broadcaster设备协助领导者broadcaster设备共同维护一条数据链。协议执行中,所有参与者的broadcaster设备都会顺序地输出一系列数据区块以及对应的证据,该证据证明大部分诚实参与者在某个数据广播协议的实例的某一个高度收到相同的数据。
4)所有broadcaster设备在获得带有有效证据的数据块后,会将其转发给本集群中的order设备。
5)order设备拿到4)中数据后,更新本地记录的该broadcaster设备所在数据广播协议实例的状态,并检测当前全局状态是否满足生成MVBA有效输入的条件。若满足,将其作为输入,执行MVBA;否则继续等待。
6)MVBA成功执行后,所有order设备会获得包含某个orders设备输入以及共识完成证据的输出。
7)所有order设备在拿到MVBA输出后,会将该输出与上一次MVBA输出比较,根据比较结果将4)中得到的相应的广播数据块通过某种公共的确定性算法打包为确认数据块,并将该确认数据块放入本地维护的确认区块链中。
需要强调的是,broadcaster在完成一次广播时,只要获得来自客户端的足够的交易或数据,可以马上开始下一次数据广播,而不用等待MVBA的完成。
实施例:
本实施例的参与者为:
n个维护区块链账本的节点Pi(0≤i<n),以及若干个提出原始交易或者数据的客户端(节点也可以扮演客户端的角色)。在每个节点Pi的集群中,包含三种设备,分别为tx_pool设备、broadcaster设备以及order设备。
本实施例中可以调整的参数如下:
(1)协议的参与人数n;
(2)全局维护的数据广播链个数kn中的k;
(3)MVBA输入外部有效性的判定条件。
本实施例的具体实施方式如下:
1.初始化过程:
(1)所有节点使用上述可调参数的相同配置。
(2)所有节点使用PKI建立起两两之间的安全信道。
(3)节点内部集群的初始化,将总计kn条数据广播协议实例一一对应地分给kn个broadcaster设备,每台设备负责其中的一个实例。
(4)节点间交换集群配置表,之后每个broadcaster设备根据配置表与其维护的广播数据链上的其他节点的设备建立两两间的安全信道。
2.tx_pool设备在本实施例中的工作:
tx_pool设备地正常运行不受其他两种设备的影响,若存在多台tx_pool设备,则tx_pool设备之间可能存在一些交互来协调输出。tx_pool设备内部主要包含2个并行执行的模块:
(1)交易和数据收集模块
该模块负责接受客户端发来的交易或数据,并可以初步验证这些交易或数据的有效性。当交易或数据达到一定数量时,将其打包成数据块交予数据块分发模块。
(2)数据块分发模块
该模块主要负责将数据块分发给本集群中担任领导者的broadcaster设备。本实例中分发策略采用轮询的方式,实际中分发策略可以根据具体应用环境做相应的修改,例如对于注重效率的环境可以优先分发给链增长快的broadcaster设备。
2.order设备在本实施例中的工作:
order设备内协议的触发依赖于broadcaster设备的输出,但其执行过程与broadcaster设备并行。设备内部主要包含3个并行执行的模块:
(1)共识输入生成模块
该模块主要负责处理broadcaster设备传来的数据区块,并由此生成共识模块的输入。每当接收到broadcaster传来的数据区块时,该模块会更新本地维护的全局状态。并在每次MVBA完成时触发输入生成函数,若此时的全局状态满足预设的输入有效性条件,则将此时各条数据链的高度及其证明连同唯一标识生成下一次MVBA的输入。并将输入传递给共识模块。
(2)共识模块
共识模块负责执行MVBA协议。该模块接收到共识输入模块的输入消息时,将其作为MVBA协议的输入调用MVBA。并将输出传递给切块模块。本实例并未给出具体使用的MVBA协议及其构造,在实际使用中,可以根据具体应用场景选择合适的MVBA协议。注:协议的输出为某个输入值及其共识成功的证据。
(3)切块模块
该模块主要负责根据共识的结果更新确认区块链的状态。在收到共识结果后,模块比对最近两次共识结果的差值,并将差值部分的数据区块按照轮询的顺序(例,第一次共识从第一个broadcaster的数据区块开始,第二次从第二个broadcaster开始)确定性的打包成一个确定区块。之后将该区块添加到本地维护的确认区块链的头部。
3.领导者broadcaster设备在本实施例中的工作:
领导者broadcaster设备内协议的触发依赖于tx_pool设备的输出,但其执行过程与broadcaster设备并行,且和集群内其他broadcaster设备相互独立运行。在其维护的数据广播协议实例中担任领导者的角色。负责接收所在集群中tx_pool设备分发的数据块,并为其添加唯一标识。之后以其为输入调用可靠广播协议,最终获得对应的广播完成的证据。然后将证据添加进数据块,最后一并传输给集群中的order设备。
4.非领导者broadcaster设备在本实施例中的工作:
非领导者broadcaster设备内协议的触发依赖于领导者broadcaster设备的输出,且和集群内其他broadcaster设备相互独立运行,在其维护的数据广播协议实例中担任协作者的角色。非领导者broadcaster设备会不断监听所在数据广播协议实例中领导者broadcaster设备的信息,并依照运行的广播协议做出回应。在广播成功完成后,非领导者broadcaster设备会最终拿到一个数据块和对应的广播完成的证据。之后非领导者broadcaster设备将其一并传输给集群中的order设备。
本发明的另一实施例提供一种采用本发明方法的数据广播与共识解耦的异步区块链共识系统,其包括区块链系统,所述区块链系统含有共识节点集合,所述共识节点集合中的节点间运行多个并行的数据广播协议;所述节点间根据所述数据广播协议的结果,以数据区块链的高度作为输入执行数据顺序共识协议;所述节点间根据所述数据顺序共识协议的结果维护一条确认区块链,所述确认区块链上的内容为最终共识结果。
应当理解,本说明书中所使用的“系统”、“设备”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python、RUST等,常规程序化编程语言如C语言、Visual Basic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
Claims (7)
1.一种数据广播与共识解耦的异步区块链共识方法,其特征在于,所述方法应用于区块链系统,所述区块链系统含有共识节点集合,所述方法由所述共识节点集合中的共识节点执行,所述方法包括以下步骤:
所述节点间运行多个并行的数据广播协议;
所述节点间根据所述数据广播协议的结果,以数据区块链的高度作为输入执行数据顺序共识协议;这些数据广播协议需要满足以下条件:1)协议顺序输出数据区块;2)输出中附带广播协议完成的证据,该证据使用门限签名来构造,该证据证明大多数的参与者收到了相同的内容;3)输出来自于广播协议的输入;4)敌手无法伪造2)中所述证据;在数据顺序共识协议中,所有参与节点共同顺序执行异步多值拜占庭共识协议即MVBA协议,MVBA协议的具体实现是模块化的,根据不同的需求,使用不同的MVBA协议,但这些MVBA协议都需要满足以下条件:1)一致性;2)外部有效性;3)终止性;4)质量有效性;
所述节点间根据所述数据顺序共识协议的结果维护一条确认区块链,所述确认区块链上的内容为最终共识结果。
2.如权利要求1所述的方法,其特征在于,所述节点在执行所述MVBA协议之前,使用自定义的方法判断是否有数据广播协议输出了新的数据块且满足自定义的有效条件。
3.如权利要求2所述的方法,其特征在于,所述自定义的有效条件保证系统安全的最小界:至少z个由不同节点担任领导者角色的数据区块链的高度相较上次共识结果有所增加,且所有数据区块链的高度不小于上次共识结果,其中n-2t≤z≤n-t,n为共识参与者总数,t为系统容忍的敌手数量最大值。
4.如权利要求1所述的方法,其特征在于,将所述MVBA协议的共识结果转化为所述确认区块链上的区块的方法是:所述节点获得所述MVBA协议的共识结果时,将其与上一次的共识结果进行比较,将相较上一次共识结果多出的数据区块按照确定性算法打包成一个确认区块,并将确认区块放入确认区块链中。
5.如权利要求1所述的方法,其特征在于,每个所述节点包含若干个order设备、kn个broadcaster设备和若干个tx_pool设备,tx_pool设备负责接收和分发从客户端或者其他节点获得的交易或数据,broadcatser设备负责执行数据广播协议并执行与该协议的输入输出相关的处理工作,order设备负责执行数据顺序共识协议并执行与该协议的输入输出相关的处理工作;kn个broadcaster设备与kn个数据广播实例一一对应,每个节点有k个broadcaster设备在其参与的数据广播协议实例中担任领导者角色;所述tx_pool设备分发交易或数据给k个领导者broadcaster;每台所述broadcaster设备负责维护一个所述数据广播协议实例;所述order设备收集集群内所述broadcaster设备执行所述数据广播协议实例的结果,并将所述结果转化为所述确认区块链上的区块。
6.如权利要求1所述的方法,其特征在于,在不同的网络模型假设下或是更复杂的在不同网络模型间切换的假设下,所述数据广播协议和数据顺序共识协议由对应网络模型假设下的具体协议实现。
7.一种采用权利要求1~6中任一权利要求所述方法的数据广播与共识解耦的异步区块链共识系统,其特征在于,包括区块链系统,所述区块链系统含有共识节点集合,所述共识节点集合中的节点间运行多个并行的数据广播协议;所述节点间根据所述数据广播协议的结果,以数据区块链的高度作为输入执行数据顺序共识协议;所述节点间根据所述数据顺序共识协议的结果维护一条确认区块链,所述确认区块链上的内容为最终共识结果。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210247787.6A CN114710374B (zh) | 2022-03-14 | 2022-03-14 | 一种数据广播与共识解耦的异步区块链共识方法和系统 |
PCT/CN2023/080405 WO2023174142A1 (zh) | 2022-03-14 | 2023-03-09 | 一种数据广播与共识解耦的异步区块链共识方法、系统、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210247787.6A CN114710374B (zh) | 2022-03-14 | 2022-03-14 | 一种数据广播与共识解耦的异步区块链共识方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114710374A CN114710374A (zh) | 2022-07-05 |
CN114710374B true CN114710374B (zh) | 2023-04-18 |
Family
ID=82169404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210247787.6A Active CN114710374B (zh) | 2022-03-14 | 2022-03-14 | 一种数据广播与共识解耦的异步区块链共识方法和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114710374B (zh) |
WO (1) | WO2023174142A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019217669A1 (en) * | 2018-05-10 | 2019-11-14 | Cornell University | Metastable byzantine agreement |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110022216A (zh) * | 2019-02-18 | 2019-07-16 | 西安西电链融科技有限公司 | 低通信复杂度的高效异步拜占庭共识方法、网络通信平台 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10984134B2 (en) * | 2017-07-14 | 2021-04-20 | Microsoft Technology Licensing, Llc | Blockchain system for leveraging member nodes to achieve consensus |
CN108667811A (zh) * | 2018-04-18 | 2018-10-16 | 成都零光量子科技有限公司 | 一种自主构建电子证据的方法和监控设备 |
CN108648078B (zh) * | 2018-05-02 | 2021-03-23 | 杭州溪塔科技有限公司 | 一种交易预处理方法、装置及电子设备 |
CN108985740B (zh) * | 2018-07-07 | 2021-08-06 | 夸克链科技(深圳)有限公司 | 高性能共识算法的实现方法 |
WO2020033048A1 (en) * | 2018-08-09 | 2020-02-13 | Hrl Laboratories, Llc | System and method for consensus ordering of broadcast messages |
US11520904B2 (en) * | 2019-08-27 | 2022-12-06 | Accenture Global Solutions Limited | AI-based blockchain hybrid consensus |
WO2021189219A1 (en) * | 2020-03-23 | 2021-09-30 | Dora Network Limited | Blockchain consensus method and system, and computer-readable storage medium |
CN112463761B (zh) * | 2020-11-05 | 2024-07-09 | 杭州云象网络技术有限公司 | 用于动态非平衡应用环境的跨链协同平台构建方法及系统 |
CN112862490B (zh) * | 2021-04-26 | 2022-05-24 | 北京连琪科技有限公司 | 一种异步网络下的输出共识方法 |
CN113347007B (zh) * | 2021-08-03 | 2021-11-26 | 南京金宁汇科技有限公司 | 一种可以对多个提案进行共识的共识方法 |
-
2022
- 2022-03-14 CN CN202210247787.6A patent/CN114710374B/zh active Active
-
2023
- 2023-03-09 WO PCT/CN2023/080405 patent/WO2023174142A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110022216A (zh) * | 2019-02-18 | 2019-07-16 | 西安西电链融科技有限公司 | 低通信复杂度的高效异步拜占庭共识方法、网络通信平台 |
Also Published As
Publication number | Publication date |
---|---|
WO2023174142A1 (zh) | 2023-09-21 |
CN114710374A (zh) | 2022-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108847925B (zh) | 一种基于树状结构的分片区块链生成方法 | |
US12093247B2 (en) | Blockchain system and method | |
US11271717B2 (en) | Blockchain consensus methods and systems | |
CN111131209B (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
CN107909369A (zh) | 基于跨链交易的共识方法、装置和存储介质 | |
CN110474863B (zh) | 微服务安全认证方法及装置 | |
CN111371905B (zh) | 一种基于云计算的区块链分层共识证明系统与方法 | |
CN113067707B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN114710374B (zh) | 一种数据广播与共识解耦的异步区块链共识方法和系统 | |
CN111800274B (zh) | 一种基于区块链的可验证计算能耗优化方法 | |
CN108696364B (zh) | 请求消息处理方法、聊天室消息服务器及聊天室系统 | |
CN112152778A (zh) | 一种节点管理方法、装置、及电子设备 | |
CN107835145B (zh) | 一种防重放攻击的方法及分布式系统 | |
CN112507019A (zh) | 一种基于智能合约的pbft共识系统及方法 | |
CN109697217B (zh) | 一种区块链事务处理方法 | |
CN114844902A (zh) | 一种基于区块链技术的sdn控制器与设备交互方法 | |
CN113179166B (zh) | 基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法 | |
CN112801791A (zh) | 一种基于授权的区块链共识方法及系统 | |
Hackfeld | A lightweight BFT consensus protocol for blockchains | |
CN114666411B (zh) | 请求处理方法、装置、服务器、存储介质及产品 | |
CN111770101B (zh) | 接入区块链网络的系统及方法 | |
WO2017143733A1 (zh) | 路由器及其系统、数据库的同步方法及其装置 | |
CN115604765A (zh) | 计算卸载优化方法和装置、电子设备和存储介质 | |
CN114070594B (zh) | 一种基于日志摘要的云端防攻击系统及方法 | |
CN113079170B (zh) | 一种基于多级交互验证机制的sdn动态目标防御方法 |
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 |