CN110460536B - 用于区块链的数据处理方法和装置、介质和电子设备 - Google Patents
用于区块链的数据处理方法和装置、介质和电子设备 Download PDFInfo
- Publication number
- CN110460536B CN110460536B CN201910789386.1A CN201910789386A CN110460536B CN 110460536 B CN110460536 B CN 110460536B CN 201910789386 A CN201910789386 A CN 201910789386A CN 110460536 B CN110460536 B CN 110460536B
- Authority
- CN
- China
- Prior art keywords
- preparation
- message
- node
- verification information
- return
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本说明书提供用于区块链的数据处理方法和装置、介质和电子设备,数据处理方法包括:根据准备消息生成预准备验证信息;在判定预准备验证信息的数量为2f+a,且与自身存储的预准备校验信息相同的预准备验证信息的数量大于f的情况下,生成第二返回消息,以使主节点生成共识消息;根据共识消息生成准备验证信息,并在判定准备验证信息的数量为2f+b,且与自身存储的准备校验信息相同的准备验证信息的数量大于f的情况下,执行从客户端获取的业务请求。前述从节点使得分布式网络的通信复杂度保持在O(n)数量级;在分布式网络节点数量大量增加时,通信复杂度仅线性增长。
Description
技术领域
本说明书涉及分布式***数据传输处理技术领域,具体设计一种用于区块链的数据处理方法和装置,以及存储前述方法的介质和实现前述方法的电子设备。
背景技术
在具有拜占庭问题的分布式***中,需要通过共识机制使得各个节点对网络状态达成一致,继而对客户端发起的业务请求进行处理。目前,实用拜占庭容错算法(PracticalByzantine Fault Tolerance,PBFT)已经在一些网络节点数量的联盟链中得到应用。
因为PBFT算法中的每个节点在接收到其他N-1个节点广播的消息后,还需要向其他N-1个节点广播消息,因此通信复杂度为O(n2)(其中,n=N-1)。可以想到,如果采用PBFT算法实现节点达成共识,随着节点的数量增加,整个分布式网络的通信复杂度会急剧上升;为了满足可用性需求,需要严格限制分布式网络中节点的数量,无法满足实际应用中对分布式网络扩容增加节点数量的需求。
发明内容
本说明书提供以下的数据处理方法和装置,介质和执行数据处理方法的电子设备。
第一方面,本说明书提供一种数据处理方法,应用于分布式网络中的从节点,所述方法包括:
根据准备消息获取预准备验证信息;其中,所述准备消息由主节点根据2f+a个不同从节点发送的第一返回消息生成;所述第一返回消息包括对应的从节点根据预准备消息生成的预准备校验信息,以及第一签名;N为所述分布式网络的节点数量,1≤a≤f;
判断预准备验证信息的数量是否为2f+a,且与自身存储的预准备校验信息相同的预准备验证信息的数量是否大于f;若是,生成第二返回消息,并向主节点发送第二返回消息;其中,第二返回消息包括根据所述准备消息生成的准备校验信息,以及第二签名;1≤b≤f;
根据共识消息生成准备验证信息;其中,所述共识消息由主节点根据2f+b个第二返回消息生成;
判断准备验证信息的数量是否为2f+b,且与自身存储的准备校验信息相同的准备验证信息的数量是否大于f;若是,执行从客户端获取的业务请求。
可选的,所述准备消息包括第一多重签名和第一编号集;所述第一多重签名由主节点根据2f+a个不同从节点发送的第一返回消息生成;所述第一编号集由主节点根据2f+a个发送第一返回消息的从节点的编号生成;
所述根据准备消息获取预准备验证信息,包括:
根据所述第一编号集中的节点编号,选择对应节点编号的公钥解密所述第一多重签名,生成预准备验证信息。
可选的,所述共识消息包括第二多重签名和第二编号集;所述第二多重签名由主节点根据2f+b个不同从节点发送的第二返回消息生成;所述第二编号集由主节点根据2f+b个发送第二返回消息的从节点的编号生成;
所述根据准备消息获得准备验证信息,包括:
根据所述第二编号集中的节点编号,选择对应节点编号的公钥解密所述第二多重签名,生成预准备验证信息。
可选的,前述方法还包括:
若判断准备验证信息的数量小于2f+b,发起主节点切换。
可选的,前述方法还包括:
若判断预准备验证信息的数量小于2f+a,发起主节点切换。
另一方面,本说明书提供另外一种数据处理方法,应用于分布式网络的主节点,所述方法包括:
根据接收到的2f+a个第一返回消息生成准备消息,并向从节点广播所述准备消息,以使从节点生成第二返回消息;其中,所述第一返回消息包括对应从节点根据预准备消息生成的预准备校验信息,以及第一签名;N为所述分布式网络的节点数量,1≤a≤f;
根据接收到的2f+b个第二返回消息生成共识消息,并向从节点广播所述共识消息,以使从节点生成准备验证信息;其中,1≤b≤f,所述第二返回消息包括对应从节点根据准备消息生成的准备校验信息,以及第二签名。
可选的,所述根据接收到的2f+a个第一返回消息生成准备消息,包括:
采用多重签名算法,根据接收到的2f+a个所述第一返回消息生成第一多重签名,以及,根据2f+a个发送所述第一返回消息的从节点的编号生成第一编号集;所述准备消息包括所述第一多重签名和所述第一编号集。
可选的,所述根据接收到的2f+b个第二返回消息生成共识消息,包括:
采用多重签名算法,根据接收到的2f+b个所述第二返回消息生成第二多重签名,以及,根据2f+b个发送所述第二返回消息的从节点的编号生成第二编号集;所述共识消息包括所述第二多重签名和所述第二编号集。
可选的,所述多重签名算法为EC-Schnorr算法;和/或,
所述第一编号集和/或所述第二编号集为Bitmap数据集。
再一方面,本说明书提供另外一种数据处理方法,应用于分布式网络,所述分布式网路包括主节点和从节点;所述方法包括:
主节点根据接收到的2f+a个第一返回消息生成准备消息,并向从节点广播所述准备消息;其中,所述第一返回消息包括对应从节点根据预准备消息生成的预准备校验信息,以及第一签名;N为所述分布式网络的节点数量,1≤a≤f;
从节点根据准备消息获取预准备验证信息;
从节点判断预准备验证信息的数量是否为2f+a,且与自身存储的预准备校验信息相同的预准备验证信息的数量是否大于f;若是,生成第二返回消息,并向主节点发送第二返回消息;其中,第二返回消息包括根据所述准备消息生成的准备校验信息,以及第二签名;
主节点根据接收到的2f+b个第二返回消息生成共识消息,并向从节点广播所述共识消息;其中,1≤b≤f;
从节点根据共识消息生成准备验证信息;
从节点判断准备验证信息的数量是否为2f+b,且与自身存储的准备校验信息相同的准备验证信息的数量是否大于f;若是,执行从客户端获取的业务请求。
可选的,所述主节点根据接收到的2f+a个第一返回消息生成准备消息,包括:采用多重签名算法,根据接收到的2f+a个所述第一返回消息生成第一多重签名,以及,根据2f+a个发送所述第一返回消息的从节点的编号生成第一编号集;所述准备消息包括所述第一多重签名和所述第一编号集;
所述从节点根据准备消息获取预准备验证信息,包括:根据所述第一编号集中的节点编号,选择对应节点编号的公钥解密所述第一多重签名,生成预准备验证信息;和/或,
所述主节点根据接收到的2f+b个第二返回消息生成共识消息,包括:采用多重签名算法,根据接收到的2f+b个所述第二返回消息生成第二多重签名,以及,根据2f+b个发送所述第二返回消息的从节点的编号生成第二编号集;所述共识消息包括所述第二多重签名和所述第二编号集;
所述从节点根据共识消息生成准备验证信息,包括:根据所述第二编号集中的节点编号,选择对应节点编号的公钥解密所述第二多重签名,生成准备验证信息。
可选的,所述多重签名算法为EC-Schnorr算法;和/或,
所述第一编号集和/或所述第二编号集为Bitmap数据集。
可选的,前述方法还包括:
若从节点判断准备验证信息的数量小于2f+b,发起主节点切换。
可选的,前述方法还包括:
若判断预准备验证信息的数量小于2f+a,发起主节点切换。
本说明书提供一数据处理装置,所述装置包括:
预准备验证信息生成单元,用于根据准备消息获取预准备验证信息;其中,所述准备消息由主节点根据2f+a个不同从节点发送的第一返回消息生成;所述第一返回消息包括对应的从节点根据预准备消息生成的预准备校验信息,以及第一签名;N为所述分布式网络的节点数量,1≤a≤f;
第一判断单元,用于判断预准备验证信息的数量是否为2f+a,且与自身存储的预准备校验信息相同的预准备验证信息的数量是否大于f;
第一执行单元,用于在预准备验证信息的数量为2f+a,且与从节点自身存储的预准备校验信息相同的预准备验证信息的数量大于f的情况下,生成第二返回消息,并向主节点发送第二返回消息;其中,第二返回消息包括根据所述准备消息生成的准备校验信息,以及第二签名;1≤b≤f;
准备验证信息生成单元,用于根据共识消息生成准备验证信息;其中,所述共识消息由主节点根据2f+b个第二返回消息生成;
第二判断单元,用于判断准备验证信息的数量是否为2f+b,且与自身存储的准备校验信息相同的准备验证信息的数量是否大于f;
第二执行单元,用于在准备验证信息的数量为2f+b,且与自身存储的准备校验信息相同的准备验证信息的数量大于f的情况下,执行从客户端获取的业务请求。
可选的,所述准备消息包括第一多重签名和第一编号集;所述第一多重签名由主节点根据2f+a个不同从节点发送的第一返回消息生成;所述第一编号集由主节点根据2f+a个发送第一返回消息的从节点的编号生成;
所述根据准备消息获取预准备验证信息,包括:
根据所述第一编号集中的节点编号,选择对应节点编号的公钥解密所述第一多重签名,生成预准备验证信息。
可选的,所述共识消息包括第二多重签名和第二编号集;所述第二多重签名由主节点根据2f+b个不同从节点发送的第二返回消息生成;所述第二编号集由主节点根据2f+b个发送第二返回消息的从节点的编号生成;
所述根据准备消息获得准备验证信息,包括:
根据所述第二编号集中的节点编号,选择对应节点编号的公钥解密所述第二多重签名,生成预准备验证信息。
可选的,所述第一执行单元用于在预准备验证信息的数量小于2f+a的情况下,发起主节点切换。
可选的,所述第二执行单元用于在准备验证信息的数量小于2f+b的情况下,发起主节点切换。
本说明书提供一种数据处理装置,所述装置包括:
第一生成单元,用于根据接收到的2f+a个第一返回消息生成准备消息,并向从节点广播所述准备消息,以使从节点生成第二返回消息;其中,所述第一返回消息包括对应从节点根据预准备消息生成的预准备校验信息,以及第一签名;N为所述分布式网络的节点数量,1≤a≤f;
第二生成单元,用于根据接收到的2f+b个第二返回消息生成共识消息,并向从节点广播所述共识消息,以使从节点生成准备验证信息;其中,1≤b≤f,所述第二返回消息包括对应从节点根据准备消息生成的准备校验信息,以及第二签名。
可选的,所述根据接收到的2f+a个第一返回消息生成准备消息,包括:
采用多重签名算法,根据接收到的2f+a个所述第一返回消息生成第一多重签名,以及,根据2f+a个发送所述第一返回消息的从节点的编号生成第一编号集;所述准备消息包括所述第一多重签名和所述第一编号集。
可选的,所述根据接收到的2f+b个第二返回消息生成共识消息,包括:
采用多重签名算法,根据接收到的2f+b个所述第二返回消息生成第二多重签名,以及,根据2f+b个发送所述第二返回消息的从节点的编号生成第二编号集;所述共识消息包括所述第二多重签名和所述第二编号集。
可选的,所述多重签名算法为EC-Schnorr算法;和/或,
所述第一编号集和/或所述第二编号集为Bitmap数据集。
本说明书提供一种数据处理装置,所述数据处理装置包括主节点和从节点,
主节点根据接收到的2f+a个第一返回消息生成准备消息,并向从节点广播所述准备消息;其中,所述第一返回消息包括对应从节点根据预准备消息生成的预准备校验信息,以及第一签名;N为所述分布式网络的节点数量,1≤a≤f;
从节点根据准备消息获取预准备验证信息;
从节点在判断预准备验证信息的数量为2f+a,且与自身存储的预准备校验信息相同的预准备验证信息的数量大于f的情况下,生成第二返回消息,并向主节点发送第二返回消息;其中,第二返回消息包括根据所述准备消息生成的准备校验信息,以及第二签名;
主节点根据接收到的2f+b个第二返回消息生成共识消息,并向从节点广播所述共识消息;其中,1≤b≤f;
从节点根据共识消息生成准备验证信息;
从节点在判断准备验证信息的数量为2f+b,且与自身存储的准备校验信息相同的准备验证信息的数量大于f的情况下,执行从客户端获取的业务请求。
可选的,所述主节点根据接收到的2f+a个第一返回消息生成准备消息,包括:采用多重签名算法,根据接收到的2f+a个所述第一返回消息生成第一多重签名,以及,根据2f+a个发送所述第一返回消息的从节点的编号生成第一编号集;所述准备消息包括所述第一多重签名和所述第一编号集;
所述从节点根据准备消息获取预准备验证信息,包括:根据所述第一编号集中的节点编号,选择对应节点编号的公钥解密所述第一多重签名,生成预准备验证信息;和/或,
所述主节点根据接收到的2f+b个第二返回消息生成共识消息,包括:采用多重签名算法,根据接收到的2f+b个所述第二返回消息生成第二多重签名,以及,根据2f+b个发送所述第二返回消息的从节点的编号生成第二编号集;所述共识消息包括所述第二多重签名和所述第二编号集;
所述从节点根据共识消息生成准备验证信息,包括:根据所述第二编号集中的节点编号,选择对应节点编号的公钥解密所述第二多重签名,生成准备验证信息。
可选的,所述多重签名算法为EC-Schnorr算法;和/或,
所述第一编号集和/或所述第二编号集为Bitmap数据集。
可选的,所述***还包括:从节点在判定准备验证信息的数量小于2f+b的情况下,发起主节点切换。
可选的,所述***还包括:从节点在判定预准备验证信息的数量小于2f+a的情况下,发起主节点切换。
本说明书提供一种介质,所述存储介质存储有多条指令,所述指令适用于由处理器加载并执行如前所述的数据处理方法。
本说明书提供一种电子设备,包括存储器和处理器;所述存储器存储有多条指令;所述指令适用于由所述处理器加载并执行如前所述的数据处理方法。
本申说明书提供的前述数据处理方法、从节点、主节点和数据处理***在运行时,主节点向从节点发送预准备消息或者准备消息后,从节点仅生成对应的第一返回消息或者第二返回消息,并将第一返回消息或第二返回消息返回给主节点;因此,整个网络的通信复杂度保持在O(n)数量级;在分布式网络节点数量大量增加时,通信复杂度仅线性增长。
附图说明
图1是分布式网络的结构示意图;
图2是实施例一提供的数据处理方法整体示意图;
图3是实施例一提供的数据处理方法的交互流程图;
图4是实施例二提供的数据处理方法流程图;
图5是实施例三提供的数据处理方法流程图;
图6是实施例四提供的数据处理装置的结构示意图;
图7是实施例五提供的数据处理装置的结构示意图;
图8是实施例七提供的电子设备的结构示意图;
其中:11-预准备验证信息生成单元,12-第一判断单元,13-第一执行单元,14-准备验证信息生成单元,15-第二判断单元,16-第二执行单元;21-第一生成单元,22-第二生成单元;31-中央处理器,32-存储器,33-通信模块,34-电源,35-输出部件,36-输入部件。
具体实施方式
下面结合附图和实施例对本说明书作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
在描述本说明书提供的具体实施例前,首先对分布式网络的结构做一个简单的介绍。图1是分布式网络的结构示意图。如图1所示,分布式网络包括多个节点和客户端;为了实现多个网络节点能够形成共识,各个网络节点通过一定的竞争机制成为网络中的主节点;随后,通过主节点和从节点之间、或者从节点与从节点之间的发送各种验证消息而实现整个网络达成共识。
根据拜占庭问题的数学证明可知,在一个节点总数为N的分布式网络中,只有保证N≥3f+1的情况下(f为作恶节点的数量),整个网络才可能通过拜占庭容错算法才可能达到共识;因此,以下实施例能够实现的前提是:确定整个网络中的最多作恶节点的数量
另外,分布式网络中各个节点能够达成共识的另外一个前提是:节点采用了非对称加密算法。即发起消息的节点采用私钥对发起的消息签名,接收消息的节点可以采用对应的公钥对签名进行认证,验证消息是否为被篡改。
实施例一
图2是实施例一提供的分布式网络中数据处理流程的整体示意图;图3是实施例一提供的分布式网络中数据处理方法的交互流程图。以下,结合图2和图3对本说明书实施的具体实施过程做分析;本实施例提供的方法包括步骤S101-S111。
S101:客户端生成请求消息并广播请求消息。
步骤S101对应图2中的请求阶段。
客户端发起一个业务请求后,客户端向分布式网络中广播请求消息,使得分布式网络的中的各个可用节点(即网络连接正常的节点)均能接收到请求消息。
实际应用中,分布式网络中可能存在多个客户端,各个客户端均可能发生业务请求,并且各个客户端均可能在一个较短的时间内发起多笔业务请求,为区分不同客户端不用时刻发出的请求消息,请求消息中的内容包括:业务请求,时间戳,客户端ID,签名。
S102:主节点根据请求消息生成预准备消息,并广播预准备消息。
步骤S102对应图2中“预准备阶段”的左半部分。
此处,主节点是分布式网络中根据竞争规则选定的、在一个时间段内能够行使数据中转、特定数据聚合生成功能的节点。
在一个实施例中,可以采用计算公式p=v mod|N|确定分布式网络中的哪个节点作为主节点;其中:v为视图编号,p为获得的形成主节点的编号,N为分布式网络中所有节点的个数。在其他实施例中,也可以采用本领域已知的其他竞争规则选择主节点。应当注意,在没有经过从节点验证的情况下,并不能确认主节点是否为非作恶节点。
此处,为了实现对本实施例方案的说明,假定主节点为一个非作恶节点,对本方案的全流程做一介绍;另外,在某些步骤中和随后讨论中,再考虑主节点为作恶节点的处理流程。
主节点接收到客户端发送的请求消息,并验证请求消息的签名后,根据请求消息中的业务请求生成预准备消息。
在一个可能的实施例中,例如在前述采用视图编号确定主节点的实施例中,预准备消息的内容包括:视图编号、当前请求编号、请求消息摘要和签名。
其中,当前请求编号为主节点为当前请求分配的一个能够和视图编号配合、实现预准备消息在分布式网络中唯一性识别的编号。
请求消息摘要为主节点根据请求消息中的业务请求生成的校验信息,以使从节点能够对主节点发起的预准备消息是否对应正确的请求消息进行校验,继而验证主节点是否为作恶主节点。
一些实际应用中,请求摘要可以采用哈希算法对请求消息中的请求内容进行转换,生成一哈希值为作为请求摘要。在一些应用中,如果请求消息的字段较小,也可以将前述的请求消息作为请求摘要。当然,在其他一些实施例中,也可以利用其他验证方法生成请求消息摘要。
预准备消息中的签名用于验证预准备消息是否被除主节点的其他节点篡改,或者是否是其他节点伪造的预准备消息。
S103:从节点根据接收到的请求消息和预准备消息生成第一返回消息,并向主节点发送第一返回消息。
步骤S103对应图2中“预准备阶段”的右半部分。本说明书实施例中,从节点可能为非作恶从节点,也可能是作恶从节点。
非作恶从节点接收到预准备消息后,通过签名验证预准备消息和主节点对应的公钥验证预准备消息是否被篡改;在验证预准备消息没有被篡改后,非作恶从节点根据已经接收到的请求消息对预准备消息中的请求消息摘要进行验证,确定预准备消息中的请求消息摘要是否根据请求消息生成;在确定请求消息摘要是根据请求消息生成的情况下,非作恶从节点根据预准备消息生成预准备校验信息,并生成签名,将预准备校验信息和签名形成第一返回消息。也就是第一返回消息包括预准备校验信息及签名,前述的签名用于验证第一返回消息是否被篡改。
应当注意,所有非作恶从节点生成的第一返回消息中的预准备校验信息均相同。
作恶从节点的操作包括以下几种可能:(1)作恶从节点在接收到预准备消息后,并不对预准备消息进行处理,也不生成预准备校验信息;(2)作恶从节点在验证预准备消息后,并不根据预准备消息生成预准备校验信息,而是生成一个错误的预准备校验信息;随后,作恶从节点也生成签名,并形成第一返回消息;(3)在一些情况下,作恶从节点并没有在此步骤作恶,而是生成如非作恶从节点生成的第一返回消息。
当然,实际应用中,在没有大量对大量第一返回消息进行比对的情况下,并无法确定那个第一返回消息是由作恶从节点生成的。
S104:主节点在接收到2f+1个第一返回消息后,根据2f+1个第一返回消息生成准备消息,并向从节点广播准备消息。
主节点在接收到2f+1个由不同从节点发送的第一返回消息后,即可以将各个第一返回消息进行整合,生成准备消息。
在主节点为非作恶节点的情况下,主节点不会在生成准备消息的过程对根据第一返回消息生成的准备消息进行篡改。
在主节点为作恶节点的情况下,主节点可能对根据第一返回消息生成的准备消息进行篡改。
实际应用中,主节点根据第一返回消息生成准备消息的方法至少包括以下两种。
a.主节点直接将2f+1个第一返回消息整合在一个数据表中,生成准备消息;此时,如果主节点篡改准备消息,即是对存储在准备消息中、原本与第一返回消息相同的内容进行篡改。
b.主节点根据2f+1个第一返回消息中的签名生成第一多重签名,将生成第一多重签名的第一返回消息对应的节点编号写入第一编号集,并将多重签名和第一编号集写入到准备消息中。其中,第一编号集用于在随后的步骤中告知从节点采用哪些从节点对应的公钥对多重签名进行解密。
如果主节点是作恶节点,其篡改准备消息的方式有:对多重签名内容进行篡改,也可能是对第一编号集中的编号进行篡改。
具体实施例中,主节点可以采用EC-Schnorr算法形成多第一多重签名,也可以采用本领域已知的其他算法形成第一多重签名。另外,为了简化第一编号集的数据量,第一编号集可以为Bitmap形式的数据集。
S105:从节点根据准备消息生成预准备验证信息。
步骤S105对应图2中“准备阶段”的右半部分。
根据前述步骤S104中主节点形成准备消息的方法,非作恶从节点根据准备消息而获得预准备验证信息的方法有两种。
c.针对S104中的a方法,从节点直接采用形成第一返回消息的各个从节点的公钥,验证准备消息中的各个第一返回消息是否被篡改;在第一返回消息没有被篡改的情况下,将对应的第一返回消息中的预准备校验信息作为预准备验证信息。
d.针对S104中的b方法,从节点根据第一编号集中的从节点编号,选择各个从节点对应的公钥验证多重签名。在验证多重签名通过的情况下,获得2f+1个预准备校验信息作为预准备验证信息;而在无法验证通过的情况下,即无法获得预准备验证信息。
而作恶从节点在获得准备消息后,可能的操作有:(1)按照前述非作恶从节点的方式进行操作;(2)不对准备消息进行处理。
应当注意,实际应用中,为了保证从节点接收到的准备消息时由主节点发送:S104主节点在生成准备消息后,会对准备消息进行签名,从节点通过签名验证准备消息由主节点发送并且没有被篡改后才执行S105。
S106:从节点判断是否生成2f+1个预准备验证信息,且与自身存储的预准备校验信息相同的预准备验证信息的数量是否大于f;若是,执行步骤S107。
步骤S106对应图2中“准备阶段”的右半部分。
其中,判断是否获得2f+1个预准备验证信息,用于判定主节点是否在生成准备消息进行篡改;如果获得2f+1个预准备验证信息,则确定主节点没有对准备消息进行篡改,在此步骤能够信任主节点;如果获得少于2f+1个预准备验证信息,则确定主节点对准备消息进行篡改,主节点为作恶节点。
判断与自身存储的预准备校验信息相同的预准备验证信息的数量是否大于f,是用于判断大部分从节点是否遵从了少数服从多数的原则,确定是否有大多数从节点认同了主节点发出的预准备消息。如果与自身存储的预准备校验信息相同的预准备验证信息的数量大于f,则确定大多数从节点认同了主节点发出的预准备消息;如果相反,则可能验证出分布式网络的节点的作恶节点可能过多,无法达成共识。
应当注意,非作恶从节点一定执行步骤S106;而作恶从节点的行为并不可预期,其可能在执行步骤S105的基础上执行S106,也可能并不执行S106。
S107:从节点根据准备消息生成第二返回消息,并向主节点发送第一返回消息。
步骤S107对应图2中“准备阶段”的右半部分。
在步骤S107中,非作恶从节点根据准备消息生成准备校验信息,并生成签名,将准备校验信息和签名形成第二返回消息。也就是第二返回消息包括准备校验信息和签名,前述的签名用于验证第二返回消息是否被篡改。
应当注意,所有非作恶从节点生成的第二返回消息中的准备校验信息均相同。
作恶从节点的操作包括以下几种可能:(1)作恶从节点在接收到准备消息后,并不对准备消息进行处理,也不生成准备校验信息;(2)作恶从节点在验证准备消息后,并不根据准备消息生成准备校验信息,而是生成一个错误的准备校验信息;随后,作恶从节点也生成签名,并形成第二返回消息;(3)在一些情况下,作恶从节点并没有在此步骤作恶,而是生成如非作恶从节点生成的第二返回消息。
当然,实际应用中,在没有大量对大量第二返回消息进行比对的情况下,并无法确定那个第一返回消息是由作恶从节点生成的。
S108:主节点在接收到2f+1个第二返回消息后,生成共识消息,并向从节点广播共识消息。
步骤S108对应图2中的共识阶段。
主节点在接收到2f+1个由不同从节点发送的第二返回消息后,即可以将各个第二返回消息进行整合,生成共识消息。
在主节点为非作恶节点的情况下,主节点不会在生成共识消息的过程对根据第二返回消息生成的准备消息进行篡改。在主节点为作恶节点的情况下,主节点可能对根据第二返回消息生成的共识消息进行篡改。
实际应用中,主节点根据第二返回消息生成共识消息的方法至少包括以下两种。
e.主节点直接将2f+1个第二返回消息整合在一个数据表中,生成共识消息;此时,如果主节点篡改共识消息,即是对存储在共识消息中、原本与第二返回消息相同的内容进行篡改。
f.主节点根据2f+1个第二返回消息中的签名生成第二多重签名,将生成第二多重签名的第二返回消息对应的节点编号写入第二编号集,并将第二多重签名和第二编号集写入到共识消息中。其中,第二编号集用于在随后的步骤中告知从节点采用哪些从节点对应的公钥对第二多重签名进行验证。
如果主节点是作恶节点,其篡改准备消息的方式有:对第二多重签名内容进行篡改,也可能是对第二编号集中的编号进行篡改。
具体实施例中,主节点可以采用EC-Schnorr算法形成多第二多重签名,也可以采用本领域已知的其他算法形成第二多重签名。另外,为了简化第二编号集的数据量,第二编号集可以为Bitmap形式的数据集。
S109:从节点根据共识消息生成准备验证信息。
步骤S109对应图2中“回复阶段”。
根据前述步骤S108中主节点形成共识消息的方法,非作恶从节点根据共识消息而获得准备验证信息的方法有两种。
g.针对S108中的e方法,从节点直接采用形成第二返回消息的各个从节点的公钥,验证共识消息中的各个第二返回消息是否被篡改;在第二返回消息没有被篡改的情况下,将对应的第二返回消息中的准备校验信息作为准备验证信息。
d.针对S108中的f方法,从节点根据第二编号集中的从节点编号,选择各个从节点对应的公钥验证第二多重签名。在验证第二多重签名通过的情况下,获得2f+1个准备校验信息作为准备验证信息;而在无法验证通过的情况下,即无法获得准备验证信息。
而作恶从节点在获得共识消息后,可能的操作有:(1)按照前述非作恶从节点的方式进行操作;(2)不对共识消息进行处理。
应当注意,实际应用中,为了保证从节点接收到的共识消息时由主节点发送:S109主节点在生成共识消息后,会对共识消息进行签名,从节点通过签名验证共识消息由主节点发送并且没有被篡改后才执行S109。
S110:从节点判断是否生成2f+1个准备验证信息,且与自身存储的准备校验信息相同的准备验证信息的数量是否大于f;若是,执行步骤S111。
步骤S110对应图2中“回复阶段”。
其中,判断是否获得2f+1个准备验证信息,用于判定主节点是否在生成共识消息进行篡改;如果获得2f+1个准备验证信息,则确定主节点没有对共识消息进行篡改,在此步骤能够信任主节点;如果获得少于2f+1个准备验证信息,则确定主节点对共识消息进行篡改,主节点为作恶节点。
判断与自身存储的准备校验信息相同的准备验证信息的数量是否大于f,是用于判断是否大多数从节点已知了:大多数从节点认同了主节点发出的预准备消息的消息。如果与自身存储的准备校验信息相同的准备验证信息的数量大于f,则确定大多数从节点已知了:大多数从节点认同了主节点发出的预准备消息的消息;如果相反,则可能验证出分布式网络的节点的作恶节点可能过多,无法达成共识。
应当注意,非作恶从节点一定执行步骤S110;而作恶从节点的行为并不可预期,其可能在执行步骤S109的基础上执行S110,也可能并不执行S110。
S111:从节点执行请求消息中的业务请求。
步骤S111对应图2中“回复阶段”。具体应用中,各个处理业务请求的从节点生成的处理结果发送给对应的客户端。
通过前述的分析可知,在本说明书实施例提供的分布式网络中:
(1)在请求阶段,客户端执行步骤S101的通信复杂度为O(N)。
(2)在预准备阶段,主节点执行步骤S102的通信复杂度为O(N),各个从节点执行步骤S103的通信复杂度为O(1),N-1个从节点执行步骤S103的的通信复杂度为O(N);所以预准备阶段的通信复杂为为O(2N)。
(3)在准备阶段,主节点执行步骤104的通信复杂为O(N),各个从节点执行步骤S107的通信复杂度也为O(1),N-1个从节点执行步骤S107的通信复杂度为O(N);所以准备阶段的通信复杂度为O(2N)。
(4)共识阶段,主节点执行步骤S108的通信复杂度为O(N)。
(5)回复阶段,从节点执行步骤S110最大的通信复杂度为O(N)
结合(1)-(5)可知,在本说明书实施例中,在客户端发起请求消息后,分布式网络中执行一个业务请求的通信复杂度为O(6N)。
在节点数量增加时,整个网络的通信复杂度仅呈现线性增长,而不会如PBFT算法中的通信复杂度达到O(N2)的数量级。即本说明书实施例提供的方法相比于BPFT算法实现了通信复杂度的幂级数降低。在实际应用中,分布式网络即时大量增加节点数量,整个网络的通信复杂度也仅是实现线性增长;因此,在具有大规模节点数量的情况下,分布式网络的通信仍然是可实现的。
在前述步骤S106中,从节点判断是否获得2f+1个预准备验证信息,且与自身存储的预准备校验信息相同的预准备验证信息的数量是否大于f,若是,则执行S107。而若没有获得2f+1个预准备验证信息,则证明主节点在根据第一返回消息生成准备消息的过程中篡改了数据,所以可以验证得到主节点为作恶节点,而不再认定为非作恶节点,因此执行步骤S112。
S112:从节点触发主节点切换。
从节点触发主节点切换,以触发分布式网络重新选择一个主节点。具体应用中,从节点发起主节点切换请求可以是发起视图切换请求,以通过视图切换选定新的主节点。在其他具体应用中,也可以通过发起其他类型的请求实现主节点切换。
应当注意,实际应用中,非作恶从节点一定可以触发主节点切换,而作恶从节点可能并不触发主节点切换。
与前文段类似的,在步骤S110中,从节点判断是否获得2f+1个准备验证信息,且与自身存储的准备校验信息相同的准备验证信息的数量是否大于f,若是,则执行S111;若没有获得2f+1个准备验证信息,则证明主节点在在根据第二返回消息生成准备消息的过程中篡改了数据,所以可以验证得到主节点为作恶节点,而不再认定为非作恶节点,因此执行步骤S112。
在前述步骤S104,主节点在接收到2f+1个第一返回消息后,生成准备消息;在步骤S106从节点必须获得2f+1个预准备验证信息才可能执行S107;在其他实施例中,前述第一返回消息也可以为2f+a个,对应的,步骤S106中验证获得2f+a个预准备验证信息,其中1<a≤f。
类似的,在前述步骤S108和S110中,第二返回消息数量也可以为2f+b个,步骤S110中验证获得2f+b个准备验证信息,其中1<b≤f。
实施例二
实施例二提供的分布式网络中数据处理方法的方法,应用在分布式网络中的从节点中。图4是实施例二提供的分布式网络中数据处理方法流程图;如图4所示,实施例二提供的方法包括步骤S201-S210。
S201:根据接收到的请求消息和预准备消息生成第一返回消息,并向主节点发送第一返回消息。
请求消息是由客户端广播的,其包括业务请求的内容;请求消息用于触发各个节点是否达成执行业务请求的共识,以及随后是否执行业务请求。
预准备消息是由主节点根据请求消息生成,并广播给各个从节点。预准备消息可以包括[视图编号,当前请求编号,请求消息摘要,签名],其中,请求消息摘要用于使得从节点验证主节点发起的预准备消息是否对应正确的请求消息进行校验,继而验证主节点是否为作恶节点;签名用于验证预准备消息是否被除主节点的其他节点篡改,或者是否为其他节点伪造的预准备消息。
执行步骤S201的从节点可能是非恶意从节点,也可能是恶意从节点;对此本实施例并不作特别的限定。
非作恶从节点接收到预准备消息后,通过签名验证预准备消息和主节点对应的公钥验证预准备消息是否被篡改;在验证预准备消息没有被篡改后,非作恶从节点根据已经接收到的请求消息对预准备消息中的请求消息摘要进行验证,确定预准备消息中的请求消息摘要是否根据请求消息生成;在确定请求消息摘要是根据请求消息生成的情况下,非作恶从节点根据预准备消息生成预准备校验信息,并生成签名,将预准备校验信息和签名形成第一返回消息。也就是第一返回消息包括预准备校验信息和签名,前述的签名用于验证第一返回消息是否被篡改。
如果是作恶的从节点执行步骤S201,作恶从节点在验证预准备消息后,并不根据预准备消息生成预准备校验信息,而是生成一个篡改的预准备校验信息;随后,作恶从节点也生成签名,并形成第一返回消息。
应当注意,所有非作恶从节点生成的第一返回消息中的预准备校验信息均相同。实际应用中,在没有大量对大量第一返回消息进行比对的情况下,并无法确定那个第一返回消息是由作恶从节点生成的。
S202:从节点根据准备消息生成预准备验证信息。
具体实施中,主节点根据第一返回消息生成准备消息的方法包括两种。
a.主节点直接将2f+1个第一返回消息整合在一个数据表中,生成准备消息;此时,如果主节点篡改准备消息,即是对存储在准备消息中、原本与第一返回消息相同的内容进行篡改。
b.主节点根据2f+1个第一返回消息中的签名生成第一多重签名,将生成第一多重签名的第一返回消息对应的节点编号写入第一编号集,并将多重签名和第一编号集写入到准备消息中。其中,第一编号集用于在随后的步骤中告知从节点采用哪些从节点对应的公钥对多重签名进行解密。
具体实施例中,主节点可以采用EC-Schnorr算法形成多第一多重签名,也可以采用本领域已知的其他算法形成第一多重签名。另外,为了简化第一编号集的数据量,第一编号集可以为Bitmap形式的数据集。
如果主节点是作恶节点,其篡改准备消息的方式有:对多重签名内容进行篡改,也可能是对第一编号集中的编号进行篡改。
针对前述两种方法,从节点根据准备消息获得预准备验证信息的方法有如下两种。
c.针对的a方法,从节点直接采用形成第一返回消息的各个从节点的公钥,验证准备消息中的各个第一返回消息是否被篡改;在第一返回消息没有被篡改的情况下,将对应的第一返回消息中的预准备校验信息作为预准备验证信息。
d.针对b方法,从节点根据第一编号集中的从节点编号,选择各个从节点对应的公钥验证多重签名。在验证多重签名通过的情况下,获得2f+1个预准备校验信息作为预准备验证信息;而在无法验证通过的情况下,即无法获得预准备验证信息。
S203:判断是否生成2f+a个预准备验证信息;若是,执行S204;若否,执行S210。
判断是否获得2f+a个预准备验证信息,用于判定主节点是否在生成准备消息时篡改数据;如果获得2f+a个预准备验证信息,则确定主节点没有对准备消息进行篡改,在此步骤能够信任主节点;如果获得少于2f+a个预准备验证信息,则确定主节点在生成准备消息时篡改数据,主节点为作恶节点。
S204:判断与自身存储的预准备校验信息相同的预准备验证信息的数量是否超过f;若是,执行S205;若否,结束执行。
从节点判断与自身存储的预准备校验信息相同的预准备验证信息的数量是否大于f,是用于判断大部分从节点是否遵从了少数服从多数的原则,确定是否有大多数从节点认同了主节点发出的预准备消息。如果与自身存储的预准备校验信息相同的预准备验证信息的数量大于f,则确定大多数从节点认同了主节点发出的预准备消息;如果相反,则验证出分布式网络的节点的作恶节点可能过多,无法达成共识。
S205:根据准备消息生成第二返回消息,并向主节点发送第二返回消息。
步骤S205中,从节点根据准备消息生成准备校验信息,并生成签名,将准备校验信息和签名形成第二返回消息。也就是第二返回消息包括准备校验信息和签名,前述的签名用于验证第二返回消息是否被篡改。
S206:从节点根据共识消息生成准备验证信息。
共识消息由主节点根据2f+b不同从节点发送的第二返回消息生成。
具体实施中,主节点根据第二返回消息生成共识消息的方法包括两种。
e.主节点直接将2f+1个第二返回消息整合在一个数据表中,生成共识消息;此时,如果主节点篡改共识消息,即是对存储在共识消息中、原本与第二返回消息相同的内容进行篡改。
f.主节点根据2f+1个第二返回消息中的签名生成第二多重签名,将生成第二多重签名的第二返回消息对应的节点编号写入第二编号集,并将第二多重签名和第二编号集写入到共识消息中。其中,第二编号集用于在随后的步骤中告知从节点采用哪些从节点对应的公钥对第二多重签名进行验证。
具体实施例中,主节点可以采用EC-Schnorr算法形成多第二多重签名,也可以采用本领域已知的其他算法形成第二多重签名。另外,为了简化第二编号集的数据量,第二编号集可以为Bitmap形式的数据集。
如果主节点是作恶节点,其篡改准备消息的方式有:对第二多重签名内容进行篡改,也可能是对第二编号集中的编号进行篡改。
对应的,从节点根据共识消息生成准备验证信息的方法包括以下两种:
针对e方法,从节点直接采用形成第二返回消息的各个从节点的公钥,验证共识消息中的各个第二返回消息是否被篡改;在第二返回消息没有被篡改的情况下,将对应的第二返回消息中的准备校验信息作为准备验证信息。
针对f方法,从节点根据第二编号集中的从节点编号,选择各个从节点对应的公钥验证第二多重签名。在验证第二多重签名通过的情况下,获得2f+1个准备校验信息作为准备验证信息;而在无法验证通过的情况下,即无法获得准备验证信息。
S207:判断是否生成2f+b个准备验证信息;若是,执行S208;若否,执行S210。
判断是否获得2f+b个准备验证信息,用于判定主节点是否在生成共识消息时篡改数据;如果获得2f+b个准备验证信息,则确定主节点没有在生成共识消息时篡改数据,在此步骤能够信任主节点;如果获得少于2f+b个预准备验证信息,则确定主节点在生成准备消息时篡改数据,主节点为作恶节点,因此执行步骤S210。请注意,1≤b≤f。
S208:判断与自身存储的准备校验信息相同的准备验证信息的数量是否超过f;若是,执行S209;若否,结束执行。
从节点判断与自身存储的准备校验信息相同的准备验证信息的数量是否大于f,是用于判断是否大多数从节点已知了:大多数从节点认同了主节点发出的预准备消息的消息。如果与自身存储的准备校验信息相同的准备验证信息的数量大于f,则确定大多数从节点已知了:大多数从节点认同了主节点发出的预准备消息的消息;如果相反,则可能验证出分布式网络的节点的作恶节点可能过多,无法达成共识。
S209:执行请求消息中的业务请求。
具体应用中,各个处理业务请求的从节点生成的处理结果发送给对应的客户端。
S210:触发主节点切换。
从节点触发主节点切换,以触发分布式网络重新选择一个主节点。具体应用中,从节点发起主节点切换请求可以是发起视图切换请求,以通过视图切换选定新的主节点。在其他具体应用中,也可以通过发起其他类型的请求实现主节点切换。
通过前述分析可知,本说明书实施例提供的分布式网络中,各个从节点执行步骤S202-S208过程即为确定网络节点达成共识的过程;在步骤S202-S208中,各个从节点在接收到主节点广播的相应的消息(预准备消息、准备消息)时,均只向主节点返回对应的响应消息(第一返回消息、第二返回消息),而不是如PBFT算法中各个从节点均广播自己生成的消息,所以可以确定前述方法的通信复杂度为O(N)数量级。
在实际应用中,分布式网络即时大量增加节点数量,整个网络的通信复杂度也仅是实现线性增长;因此,在具有大规模节点数量的情况下,分布式网络的通信仍然是可实现的。
在本实施例步骤S201可以包括S2011-S2012。
S2011:从节点根据接收到的请求消息时发起计时。
S2012:判断计时时间是否大于预设时间,若是,执行S210;若否,急需等待。
应当可以知道,从节点根据预准备消息生成第一返回消息的前提是能够接收到预准备消息。前述的预设时间可以是为根据经验审定的、分布式网络的最大网络延时。而操作前述网络延时,如果从节点还没有接收到预准备消息,则判定主节点并没有发送预准备消息,此时主节点被判定为作恶节点,因此从节点可以直接发起主节点切换。
实施例三
实施例三提供的分布式网络节点达成共识的方法,应用在分布式网络的主节点。图5是实施例三提供的数据处理方法流程图。如图3所示,实施例三提供的方法包括步骤S301-S303。
S301:根据接收到的请求消息生成预准备消息,并广播预准备消息。
请求消息是由客户端广播的,其包括业务请求的内容;请求消息用于触发各个节点是否达成执行业务请求的共识,以及随后是否执行业务请求。在一个具体应用中,请求消息的内容可以包括业务请求、时间戳、客户端ID和签名。其中时间戳和客户端ID用于唯一地识别请求消息,签名用于验证请求消息内容是否被篡改,或者请求消息是伪造的请求消息。
在接收到请求消息,并通过签名验证请求消息没有没传告后,主节点根据业务请求生成请求消息摘要,并将请求消息摘要添加至预准备消息中。在一个实际应用中,预准备消息的内容包括视图编号、当前请求编号、请求消息摘要和签名,其中视图编号和当前请求编号用于唯一地表示预准备消息,签名用于验证预准备消息是否被篡改。
S302:根据接收到的2f+a个第一返回消息,生成准备消息,并向从节点广播准备消息。
具体的,从节点在接收到预准备消息,并验证预准备消息由主节点发送后,提取预准备消息中的请求消息摘要,并将请求消息摘要与自身根据业务请求生成的消息摘要进行比对,确定二者是否相同;如果二者相同,则确定主节点为非作恶节点,可以根据预准备消息生成预准备校验信息。
在生成预准备校验信息后,从节点生成对应的签名而形成完整的第一返回消息并发送给主节点。
主节点根据2f+a个第一返回消息生成准备消息的方法包括两种。
a.主节点直接将2f+1个第一返回消息整合在一个数据表中,生成准备消息;此时,如果主节点篡改准备消息,即是对存储在准备消息中、原本与第一返回消息相同的内容进行篡改。
b.主节点根据2f+1个第一返回消息中的签名生成第一多重签名,将生成第一多重签名的第一返回消息对应的节点编号写入第一编号集,并将多重签名和第一编号集写入到准备消息中。其中,第一编号集用于在随后的步骤中告知从节点采用哪些从节点对应的公钥对多重签名进行解密。
具体实施例中,主节点可以采用EC-Schnorr算法形成多第一多重签名,也可以采用本领域已知的其他算法形成第一多重签名。另外,为了简化第一编号集的数据量,第一编号集可以为Bitmap形式的数据集。
在生成准备消息后,主节点将准备消息广播给网络中的从节点,以使得从节点能够知悉大多数从节点认同了主节点发出的预准备消息,继而生成第二返回消息。
S303:根据接收到的2f+b个第二返回消息生成共识消息,并广播共识消息。
第二返回消息由从节点在完成以下两个判定的情况下执行:(1)判定主节点是不是作恶节点(即判定主节点没有对准备消息数据进行篡改);(2)判定大多数从节点认同了主节点发送的预准备消息的情况下生成。
从节点判断主节点是否为作恶节点,是通过判定根据准备消息获得的预准备验证信息的数量是否为2f+a实现;如果预准备验证信息的数量为2f+a,则确定主节点为非作恶节点;如果预准备验证信息的数量小于2f+a,则确定主节点为作恶节点,从节点即可以触发主节点切换。
具体应用中,针对S302中主节点生成准备消息的方法,从节点根据准备消息生成预准备验证信息的方法有如下两种。
c.针对前述a方法,从节点直接采用形成第一返回消息的各个从节点的公钥,验证准备消息中的各个第一返回消息是否被篡改;在第一返回消息没有被篡改的情况下,将对应的第一返回消息中的预准备校验信息作为预准备验证信息。
d.针对b方法,从节点根据第一编号集中的从节点编号,选择各个从节点对应的公钥验证多重签名。在验证第二多重签名通过的情况下,获得2f+1个预准备校验信息作为预准备验证信息;而在验证第二多从签名无法通过的情况下,即无法获得预准备验证信息。
从节点判断大多数从节点是否认同主节点发送的预准备消息是在完成主节点不是作恶节点的情况下进行。此时,从节点判断与自身存储的预准备校验信息相同的预准备验证信息的数量是否超过f。如果是,则可以生成第二返回消息;如果否,则确定网络中的作恶节点数量超过f,网络无法达成共识。
从节点生成第二返回消息包括[准备校验信息,签名]。其中准备校验信息根据准备消息生成;并且,非作恶从节点生成的准备校验信息相同。
主节点在接收到2f+b个不同从节点发送的第二返回消息后,根据2f+b个第二返回消息生成共识消息;其中,1≤b≤f。
具体实施中,主节点根据第二返回消息生成共识消息的方法包括两种。
e.主节点直接将2f+1个第二返回消息整合在一个数据表中,生成共识消息;此时,如果主节点篡改共识消息,即是对存储在共识消息中、原本与第二返回消息相同的内容进行篡改。
f.主节点根据2f+1个第二返回消息中的签名生成第二多重签名,将生成第二多重签名的第二返回消息对应的节点编号写入第二编号集,并将第二多重签名和第二编号集写入到共识消息中。其中,第二编号集用于在随后的步骤中告知从节点采用哪些从节点对应的公钥对第二多重签名进行验证。
具体实施例中,主节点可以采用EC-Schnorr算法形成多第二多重签名,也可以采用本领域已知的其他算法形成第二多重签名。另外,为了简化第二编号集的数据量,第二编号集可以为Bitmap形式的数据集。
应当注意,主节点在生成共识消息后,对共识消息添加签名后在广播给从节点。
从节点在接收到共识消息后,根据共识消息生成准备验证信息,并通过准备验证信息的数量和内容判断是否执行请求消息中的业务请求。
从节点执行业务请求在完成以下两个判定的情况下执行:(1)再次判定主节点不是作恶节点(即判定主节点没有对准备消息数据进行篡改);(2)获知大多数从节点已知:大多数从节点认同主节点发出的预准备消息。
从节点再次判定主节点是否是作恶节点,是通过判定根据共识消息获得的准备验证信息的数量是否为2f+b实现;如果准备验证信息的数量为2f+b,则确定主节点为非作恶节点;如果准备验证信息的数量小于2f+b,则确定主节点为作恶节点。
针对主节点生成共识消息的两种方法,从节点根据公式消息生成准备验证信息的方法有如下两种。
g.针对前述e方法,从节点直接采用形成第二返回消息的各个从节点的公钥,验证准备消息中的各个第二返回消息是否被篡改;在第二返回消息没有被篡改的情况下,将对应的第二返回消息中的准备校验信息作为预准备验证信息。
h.针对b方法,从节点根据第二编号集中的从节点编号,选择各个从节点对应的公钥验证第二多重签名。在验证第二多重签名通过的情况下,获得2f+1个准备校验信息作为准备验证信息;而在验证第二多从签名无法通过的情况下,即无法获得准备验证信息。
从节点判定大多数从节点已知大多数从节点认同主节点发出的预准备消息的方法,是确定与自身存储的准备校验信息相同的准备验证信息的数量是否超过f。
通过前述分析可知,本说明书实施例中,步骤S301-S303是主节点为配合从节点确定网络节点达成共识,可以执行请求消息中业务请求的过程。在前述步骤主节点实现和从节点交互过程中,各个从节点在接收到主节点广播的相应的消息(预准备消息、准备消息)时,均只向主节点返回对应的响应消息(第一返回消息、第二返回消息),而不是如PBFT算法中各个从节点均广播自己生成的消息,所以可以确定前述方法的通信复杂度为O(N)数量级。
即本说明书实施例提供的方法相比于BPFT算法实现了通信复杂度的幂级数降低。在实际应用中,分布式网络即时大量增加节点数量,整个网络的通信复杂度也仅是实现线性增长;因此,在具有大规模节点数量的情况下,分布式网络的通信仍然是可实现的。
除了提供前述的数据处理方法外,本说明书还分别提供了用于执行实施例一中方法的数据处理***、用于执行实施例二中方法的从节点和用于执行实施例三中方法的主节点。
实施例四
图6是实施例四提供的数据处理装置的结构示意图。如图6所示,实施例四中的数据处理装置包括预准备验证信息生成单元11、第一判断单元12、第一执行单元13,准备验证信息生成单元14、第二判断单元15和第二执行单元16。本实施例中的数据处理装置应用在从节点。
预准备验证信息生成单元11用于根据准备消息获取预准备验证信息;其中,准备消息由主节点根据2f+a个不同从节点发送的第一返回消息生成;第一返回消息包括对应的从节点根据预准备消息生成的预准备校验信息,以及第一签名;N为分布式网络的节点数量,1≤a≤f;
第一判断单元12用于判断预准备验证信息的数量是否为2f+a,且与自身存储的预准备校验信息相同的预准备验证信息的数量是否大于f;
第一执行单元13用于在预准备验证信息的数量为2f+a,且与从节点自身存储的预准备校验信息相同的预准备验证信息的数量大于f的情况下,生成第二返回消息,并向主节点发送第二返回消息;其中,第二返回消息包括根据准备消息生成的准备校验信息,以及第二签名;1≤b≤f;
准备验证信息生成单元14用于根据共识消息生成准备验证信息;其中,共识消息由主节点根据2f+b个第二返回消息生成;
第二判断单元15用于判断准备验证信息的数量是否为2f+b,且与自身存储的准备校验信息相同的准备验证信息的数量是否大于f;
第二执行单元16用于在准备验证信息的数量为2f+b,且与自身存储的准备校验信息相同的准备验证信息的数量大于f的情况下,执行从客户端获取的业务请求。
本说明书实施例提供的从节点:在接收到主节点发送的预准备消息后,并不广播根据预准备消息生成的第一返回消息;在接收到主节点发送的准备消息后,并不广播根据准备消息生成的第二返回消息,而是将第一返回消息和第二返回消息仅返回给主节点。所以,整个网络的通信复杂度为O(N)数量级。
在实际应用中,分布式网络即时大量增加节点数量,整个网络的通信复杂度也仅是实现线性增长;因此,在具有大规模节点数量的情况下,分布式网络的通信仍然是可实现的。
在前述从节点中,根据准备消息获取预准备验证信息,包括:根据第一编号集中的节点编号,选择对应节点编号的公钥解密第一多重签名,生成预准备验证信息。准备消息包括第一多重签名和第一编号集;第一多重签名由主节点根据2f+a个不同从节点发送的第一返回消息生成;第一编号集由主节点根据2f+a个发送第一返回消息的从节点的编号生成;
在前述从节点中,根据准备消息获得准备验证信息,包括:根据第二编号集中的节点编号,选择对应节点编号的公钥解密第二多重签名,生成预准备验证信息。共识消息包括第二多重签名和第二编号集;第二多重签名由主节点根据2f+b个不同从节点发送的第二返回消息生成;第二编号集由主节点根据2f+b个发送第二返回消息的从节点的编号生成。
在前述从节点中,第一执行单元13用于在预准备验证信息的数量小于2f+a的情况下,发起主节点切换;第二执行单元16用于在准备验证信息的数量小于2f+b的情况下,发起主节点切换。
实施例五
图7是实施例五提供的数据处理装置的结构示意图。如图7所示,实施例五中的主节点包括第一生成单元21和第二生成单元22。本实施例提供的数据处理装置应用于分布式***的主节点。
第一生成单元21用于根据接收到的2f+a个第一返回消息生成准备消息,并向从节点广播准备消息,以使从节点生成第二返回消息;其中,第一返回消息包括对应从节点根据预准备消息生成的预准备校验信息,以及第一签名;N为分布式网络的节点数量,1≤a≤f;
第二生成单元22用于根据接收到的2f+b个第二返回消息生成共识消息,并向从节点广播共识消息,以使从节点生成准备验证信息;其中,1≤b≤f,第二返回消息包括对应从节点根据准备消息生成的准备校验信息,以及第二签名。
在前述主节点中,根据接收到的2f+a个第一返回消息生成准备消息,包括:采用多重签名算法,根据接收到的2f+a个第一返回消息生成第一多重签名,以及,根据2f+a个发送第一返回消息的从节点的编号生成第一编号集;准备消息包括第一多重签名和第一编号集。
在前述主节点中,根据接收到的2f+b个第二返回消息生成共识消息,包括:采用多重签名算法,根据接收到的2f+b个第二返回消息生成第二多重签名,以及,根据2f+b个发送第二返回消息的从节点的编号生成第二编号集;共识消息包括第二多重签名和第二编号集。
前述的多重签名算法为EC-SchNorr算法;第一编号集和/或第二编号集可以是Bitmap数据集。
采用实施例提供的主节点,可以根据2f+a个从节点生成的第一返回消息生成准备消息,并将准备消息再广播给从节点,因此使得从节点无需广播第一返回消息;类似的,主节点可以根据2f+b个从节点生成的第二返回消息生成共识消息,并将共识消息广播给从节点,使得从节点无需广播第二返回消息,因此整个网络的通信复杂度为O(N)数量级。
除了提供前述的数据处理方法外,本说明书还分别提供了用于执行实施例一中方法的数据处理***、用于执行实施例二中方法的从节点和用于执行实施例三中方法的主节点。
实施例六
实施例六提供一种数据处理装置,其包括主节点和从节点。其中:
从节点根据准备消息获取预准备验证信息;
从节点在判断预准备验证信息的数量为2f+a,且与自身存储的预准备校验信息相同的预准备验证信息的数量大于f的情况下,生成第二返回消息,并向主节点发送第二返回消息;其中,第二返回消息包括根据准备消息生成的准备校验信息,以及第二签名;
主节点根据接收到的2f+b个第二返回消息生成共识消息,并向从节点广播共识消息;其中,1≤b≤f;
从节点根据共识消息生成准备验证信息;
从节点在判断准备验证信息的数量为2f+b,且与自身存储的准备校验信息相同的准备验证信息的数量大于f的情况下,执行从客户端获取的业务请求。
前述数据处理***工作时,主节点将预准备消息广播给从节点后,从节点将根据预准备消息生成的第一返回消息返回主节点;类似的,主节点将准备消息广播给从节点后,从节点将根据准备消息生成的第二返回消息返回给主节点。结合其他部分数据仅是单向传输或者广播,因此整个***的网络通信复杂度为O(N)数量级。
在前述***中,主节点根据接收到的2f+a个第一返回消息生成准备消息,可以包括:采用多重签名算法,根据接收到的2f+a个第一返回消息生成第一多重签名,以及,根据2f+a个发送第一返回消息的从节点的编号生成第一编号集;准备消息包括第一多重签名和第一编号集。
对应的,从节点根据准备消息获取预准备验证信息,包括:根据第一编号集中的节点编号,选择对应节点编号的公钥解密第一多重签名,生成预准备验证信息。
类似的,主节点根据接收到的2f+b个第二返回消息生成共识消息,包括:采用多重签名算法,根据接收到的2f+b个第二返回消息生成第二多重签名,以及,根据2f+b个发送第二返回消息的从节点的编号生成第二编号集;共识消息包括第二多重签名和第二编号集;
对应的,从节点根据共识消息生成准备验证信息,包括:根据第二编号集中的节点编号,选择对应节点编号的公钥解密第二多重签名,生成准备验证信息。
前述方法中,多重签名算法为EC-Schnorr算法;和第一编号集和第二编号集为Bitmap数据集。
前述***中,从节点在判定准备验证信息的数量小于2f+b的情况下以及,在判定预准备信息的数量小于2f+a的情况下,发起主节点切换。
实施例七
图8是实施例七提供的电子设备的结构示意图。如图8所示,电子设备可以包括中央处理器31和存储器32;中央处理器31与存储器32耦合。
实际应用中,存储器32可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器还可以是计算机设备领域已知的其他存储器。
在一写应用中,中央处理器可以加载存储在存储器或者其他与电子设备连接的设备存储的程序,实现从节点的功能,执行下述数据处理方法。
S401:根据准备消息获取预准备验证信息。
S402:判断预准备验证信息的数量是否为2f+a,且与自身存储的预准备校验信息相同的预准备验证信息的数量是否大于f;若是,执行S403。
S403:生成第二返回消息,并向主节点发送第二返回消息;其中,第二返回消息包括根据所述准备消息生成的准备校验信息,以及第二签名;1≤b≤f。
S404:根据共识消息生成准备验证信息。
所述共识消息由主节点根据2f+b个第二返回消息生成;
S405:判断准备验证信息的数量是否为2f+b,且与自身存储的准备校验信息相同的准备验证信息的数量是否大于f;若是,执行S406。
S406:执行从客户端获取的业务请求。
结合步骤S401-S406可知,采用本申请实施例提供的电子设备作为从节点,其在在接收到主节点广播的相应的消息(预准备消息、准备消息)时,均只向主节点返回对应的响应消息(第一返回消息、第二返回消息),所以使得整个网络的通信复杂度为O(N)数量级。
在其他一些应用中,电子设备中的中央存储器还可以加载程序,实现主节点的功能,执行下述数据处理方法。
S501:根据接收到的2f+a个第一返回消息生成准备消息,并向从节点广播所述准备消息,以使从节点生成第二返回消息。
S502:根据接收到的2f+b个第二返回消息生成共识消息,并向从节点广播所述共识消息,以使从节点生成准备验证信息。
其中,1≤b≤f,所述第二返回消息包括对应从节点根据准备消息生成的准备校验信息,以及第二签名。
结合步骤S501和S502可知,电子设备作为主节点执行前述方法,可以将整合各个从节点生成的第一返回消息或者第二返回消息,并生成对应的准备消息和共识消息再广播给从节点,可以避免从节点在接收到主节点发送的消息后将自身生成的第一返回消息和第二返回消息广播给其他从节点,继而使得整个网络的通信复杂度为O(N)数量级。
请参照图8,本实施例提供的电子设备中,除了前述的中央处理器31和存储器32外,还包括用于实现和其他电子设备联系的通信模块33,以及用于供电的电源模块34;此外,电子设备还可以包括输出部件35、输入部件36。
应当注意,在其他实施例中电子设备也可以设置独立于中央处理器的专用处理芯片,以用于在加载对应的程序时执行步骤S401-S408描述的方法或者步骤S501-S502描述的方法。
此外,本说明书还提供提供一种存储介质,存储介质中存储的程序代码被电子设备加载后,可以使得电子设备执行前述步骤S401-S406的方法或者前述步骤S501-S502的方法。与前文叙述类似,采用本说明书提供的存储介质,可以使得整个网络的通信复杂度为O(N)数量级。
以上描述仅为本说明书的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本说明书中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本说明书中公开的但不限于具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (20)
1.一种数据处理方法,应用于分布式网络中的从节点,其特征在于,所述方法包括:
根据准备消息获取预准备验证信息;其中,所述准备消息由主节点根据2f+a个不同从节点发送的第一返回消息生成;所述第一返回消息包括对应的从节点根据预准备消息生成的预准备校验信息,以及第一签名;N为所述分布式网络的节点数量,1≤a≤f;
判断预准备验证信息的数量是否为2f+a,且与自身存储的预准备校验信息相同的预准备验证信息的数量是否大于f;若是,生成第二返回消息,并向主节点发送第二返回消息;其中,第二返回消息包括根据所述准备消息生成的准备校验信息,以及第二签名;1≤b≤f;
根据共识消息生成准备验证信息;其中,所述共识消息由主节点根据2f+b个第二返回消息生成;
判断准备验证信息的数量是否为2f+b,且与自身存储的准备校验信息相同的准备验证信息的数量是否大于f;若是,执行从客户端获取的业务请求;
所述准备消息包括第一多重签名和第一编号集;所述第一多重签名由主节点根据2f+a个不同从节点发送的第一返回消息生成;所述第一编号集由主节点根据2f+a个发送第一返回消息的从节点的编号生成;
所述根据准备消息获取预准备验证信息,包括:
根据所述第一编号集中的节点编号,选择对应节点编号的公钥解密所述第一多重签名,生成预准备验证信息;
所述共识消息包括第二多重签名和第二编号集;所述第二多重签名由主节点根据2f+b个不同从节点发送的第二返回消息生成;所述第二编号集由主节点根据2f+b个发送第二返回消息的从节点的编号生成;
所述根据准备消息获得准备验证信息,包括:
根据所述第二编号集中的节点编号,选择对应节点编号的公钥解密所述第二多重签名,生成预准备验证信息。
2.根据权利要求1所述的方法,其特征在于,还包括:
若判断准备验证信息的数量小于2f+b,发起主节点切换。
3.根据权利要求2所述的方法,其特征在于,还包括:
若判断预准备验证信息的数量小于2f+a,发起主节点切换。
4.一种数据处理方法,应用于分布式网络的主节点,其特征在于,所述方法包括:
根据接收到的2f+a个第一返回消息生成准备消息,并向从节点广播所述准备消息,以使从节点生成第二返回消息;其中,所述第一返回消息包括对应从节点根据预准备消息生成的预准备校验信息,以及第一签名;N为所述分布式网络的节点数量,1≤a≤f;
根据接收到的2f+b个第二返回消息生成共识消息,并向从节点广播所述共识消息,以使从节点生成准备验证信息;其中,1≤b≤f,所述第二返回消息包括对应从节点根据准备消息生成的准备校验信息,以及第二签名;
所述根据接收到的2f+a个第一返回消息生成准备消息,包括:
采用多重签名算法,根据接收到的2f+a个所述第一返回消息生成第一多重签名,以及,根据2f+a个发送所述第一返回消息的从节点的编号生成第一编号集;所述准备消息包括所述第一多重签名和所述第一编号集;
所述根据接收到的2f+b个第二返回消息生成共识消息,包括:
采用多重签名算法,根据接收到的2f+b个所述第二返回消息生成第二多重签名,以及,根据2f+b个发送所述第二返回消息的从节点的编号生成第二编号集;所述共识消息包括所述第二多重签名和所述第二编号集。
5.根据权利要求4所述的方法,其特征在于,
所述多重签名算法为EC-Schnorr算法;和/或,
所述第一编号集和/或所述第二编号集为Bitmap数据集。
6.一种数据处理方法,应用于分布式网络,所述分布式网络包括主节点和从节点;其特征在于,所述方法包括:
主节点根据接收到的2f+a个第一返回消息生成准备消息,并向从节点广播所述准备消息;其中,所述第一返回消息包括对应从节点根据预准备消息生成的预准备校验信息,以及第一签名;N为所述分布式网络的节点数量,1≤a≤f;
从节点根据准备消息获取预准备验证信息;
从节点判断预准备验证信息的数量是否为2f+a,且与自身存储的预准备校验信息相同的预准备验证信息的数量是否大于f;若是,生成第二返回消息,并向主节点发送第二返回消息;其中,第二返回消息包括根据所述准备消息生成的准备校验信息,以及第二签名;
主节点根据接收到的2f+b个第二返回消息生成共识消息,并向从节点广播所述共识消息;其中,1≤b≤f;
从节点根据共识消息生成准备验证信息;
从节点判断准备验证信息的数量是否为2f+b,且与自身存储的准备校验信息相同的准备验证信息的数量是否大于f;若是,执行从客户端获取的业务请求;
所述主节点根据接收到的2f+a个第一返回消息生成准备消息,包括:采用多重签名算法,根据接收到的2f+a个所述第一返回消息生成第一多重签名,以及,根据2f+a个发送所述第一返回消息的从节点的编号生成第一编号集;所述准备消息包括所述第一多重签名和所述第一编号集;
所述从节点根据准备消息获取预准备验证信息,包括:根据所述第一编号集中的节点编号,选择对应节点编号的公钥解密所述第一多重签名,生成预准备验证信息;和/或,
所述主节点根据接收到的2f+b个第二返回消息生成共识消息,包括:采用多重签名算法,根据接收到的2f+b个所述第二返回消息生成第二多重签名,以及,根据2f+b个发送所述第二返回消息的从节点的编号生成第二编号集;所述共识消息包括所述第二多重签名和所述第二编号集;
所述从节点根据共识消息生成准备验证信息,包括:根据所述第二编号集中的节点编号,选择对应节点编号的公钥解密所述第二多重签名,生成准备验证信息。
7.根据权利要求6所述的方法,其特征在于:
所述多重签名算法为EC-Schnorr算法;和/或,
所述第一编号集和/或所述第二编号集为Bitmap数据集。
8.根据权利要求6或7任一项所述的方法,其特征在于,还包括:
若从节点判断准备验证信息的数量小于2f+b,发起主节点切换。
9.根据权利要求8所述的方法,其特征在于,还包括:
若判断预准备验证信息的数量小于2f+a,发起主节点切换。
10.一种数据处理装置,应用于分布式网络中,其特征在于,所述装置包括:
预准备验证信息生成单元,用于根据准备消息获取预准备验证信息;其中,所述准备消息由主节点根据2f+a个不同从节点发送的第一返回消息生成;所述第一返回消息包括对应的从节点根据预准备消息生成的预准备校验信息,以及第一签名;N为分布式网络的节点数量,1≤a≤f;
第一判断单元,用于判断预准备验证信息的数量是否为2f+a,且与自身存储的预准备校验信息相同的预准备验证信息的数量是否大于f;
第一执行单元,用于在预准备验证信息的数量为2f+a,且与从节点自身存储的预准备校验信息相同的预准备验证信息的数量大于f的情况下,生成第二返回消息,并向主节点发送第二返回消息;其中,第二返回消息包括根据所述准备消息生成的准备校验信息,以及第二签名;1≤b≤f;
准备验证信息生成单元,用于根据共识消息生成准备验证信息;其中,所述共识消息由主节点根据2f+b个第二返回消息生成;
第二判断单元,用于判断准备验证信息的数量是否为2f+b,且与自身存储的准备校验信息相同的准备验证信息的数量是否大于f;
第二执行单元,用于在准备验证信息的数量为2f+b,且与自身存储的准备校验信息相同的准备验证信息的数量大于f的情况下,执行从客户端获取的业务请求;
所述准备消息包括第一多重签名和第一编号集;所述第一多重签名由主节点根据2f+a个不同从节点发送的第一返回消息生成;所述第一编号集由主节点根据2f+a个发送第一返回消息的从节点的编号生成;
所述根据准备消息获取预准备验证信息,包括:
根据所述第一编号集中的节点编号,选择对应节点编号的公钥解密所述第一多重签名,生成预准备验证信息;
所述共识消息包括第二多重签名和第二编号集;所述第二多重签名由主节点根据2f+b个不同从节点发送的第二返回消息生成;所述第二编号集由主节点根据2f+b个发送第二返回消息的从节点的编号生成;
所述根据准备消息获得准备验证信息,包括:
根据所述第二编号集中的节点编号,选择对应节点编号的公钥解密所述第二多重签名,生成预准备验证信息。
11.根据权利要求10所述的装置,其特征在于:
所述第一执行单元用于在预准备验证信息的数量小于2f+a的情况下,发起主节点切换。
12.根据权利要求11所述的装置,其特征在于:
所述第二执行单元用于在准备验证信息的数量小于2f+b的情况下,发起主节点切换。
13.一种数据处理装置,应用于分布式网络中,其特征在于,所述装置包括:
第一生成单元,用于根据接收到的2f+a个第一返回消息生成准备消息,并向从节点广播所述准备消息,以使从节点生成第二返回消息;其中,所述第一返回消息包括对应从节点根据预准备消息生成的预准备校验信息,以及第一签名;N为所述分布式网络的节点数量,1≤a≤f;
第二生成单元,用于根据接收到的2f+b个第二返回消息生成共识消息,并向从节点广播所述共识消息,以使从节点生成准备验证信息;其中,1≤b≤f,所述第二返回消息包括对应从节点根据准备消息生成的准备校验信息,以及第二签名;
所述根据接收到的2f+a个第一返回消息生成准备消息,包括:
采用多重签名算法,根据接收到的2f+a个所述第一返回消息生成第一多重签名,以及,根据2f+a个发送所述第一返回消息的从节点的编号生成第一编号集;所述准备消息包括所述第一多重签名和所述第一编号集;
所述根据接收到的2f+b个第二返回消息生成共识消息,包括:
采用多重签名算法,根据接收到的2f+b个所述第二返回消息生成第二多重签名,以及,根据2f+b个发送所述第二返回消息的从节点的编号生成第二编号集;所述共识消息包括所述第二多重签名和所述第二编号集。
14.根据权利要求13所述的装置,其特征在于,
所述多重签名算法为EC-Schnorr算法;和/或,
所述第一编号集和/或所述第二编号集为Bitmap数据集。
15.一种数据处理装置,应用于分布式网络中,所述数据处理装置包括主节点和从节点,其特征在于:
主节点根据接收到的2f+a个第一返回消息生成准备消息,并向从节点广播所述准备消息;其中,所述第一返回消息包括对应从节点根据预准备消息生成的预准备校验信息,以及第一签名;N为所述分布式网络的节点数量,1≤a≤f;
从节点根据准备消息获取预准备验证信息;
从节点在判断预准备验证信息的数量为2f+a,且与自身存储的预准备校验信息相同的预准备验证信息的数量大于f的情况下,生成第二返回消息,并向主节点发送第二返回消息;其中,第二返回消息包括根据所述准备消息生成的准备校验信息,以及第二签名;
主节点根据接收到的2f+b个第二返回消息生成共识消息,并向从节点广播所述共识消息;其中,1≤b≤f;
从节点根据共识消息生成准备验证信息;
从节点在判断准备验证信息的数量为2f+b,且与自身存储的准备校验信息相同的准备验证信息的数量大于f的情况下,执行从客户端获取的业务请求;
所述主节点根据接收到的2f+a个第一返回消息生成准备消息,包括:采用多重签名算法,根据接收到的2f+a个所述第一返回消息生成第一多重签名,以及,根据2f+a个发送所述第一返回消息的从节点的编号生成第一编号集;所述准备消息包括所述第一多重签名和所述第一编号集;
所述从节点根据准备消息获取预准备验证信息,包括:根据所述第一编号集中的节点编号,选择对应节点编号的公钥解密所述第一多重签名,生成预准备验证信息;和/或,
所述主节点根据接收到的2f+b个第二返回消息生成共识消息,包括:采用多重签名算法,根据接收到的2f+b个所述第二返回消息生成第二多重签名,以及,根据2f+b个发送所述第二返回消息的从节点的编号生成第二编号集;所述共识消息包括所述第二多重签名和所述第二编号集;
所述从节点根据共识消息生成准备验证信息,包括:根据所述第二编号集中的节点编号,选择对应节点编号的公钥解密所述第二多重签名,生成准备验证信息。
16.根据权利要求15所述的装置,其特征在于,
所述多重签名算法为EC-Schnorr算法;和/或,
所述第一编号集和/或所述第二编号集为Bitmap数据集。
17.根据权利要求15或16任一项所述的装置,其特征在于,包括:
从节点在判定准备验证信息的数量小于2f+b的情况下,发起主节点切换。
18.根据权利要求17所述的装置,其特征在于,包括:
从节点在判定预准备验证信息的数量小于2f+a的情况下,发起主节点切换。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适用于由处理器加载并执行如权利要求1-5任一项所述的数据处理方法。
20.一种电子设备,其特征在于:包括存储器和处理器;
所述存储器存储有多条指令;所述指令适用于由所述处理器加载并执行如权利要求1-5任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910789386.1A CN110460536B (zh) | 2019-08-26 | 2019-08-26 | 用于区块链的数据处理方法和装置、介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910789386.1A CN110460536B (zh) | 2019-08-26 | 2019-08-26 | 用于区块链的数据处理方法和装置、介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110460536A CN110460536A (zh) | 2019-11-15 |
CN110460536B true CN110460536B (zh) | 2022-11-29 |
Family
ID=68489032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910789386.1A Active CN110460536B (zh) | 2019-08-26 | 2019-08-26 | 用于区块链的数据处理方法和装置、介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110460536B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111404928B (zh) * | 2020-03-13 | 2021-07-06 | 电子科技大学 | 一种适用于实时交易场景的区块链节点共识方法 |
CN113301002B (zh) * | 2020-04-24 | 2023-05-09 | 阿里巴巴集团控股有限公司 | 一种信息处理方法、装置、电子设备以及存储介质 |
CN111901293B (zh) * | 2020-06-08 | 2021-08-27 | 北京邮电大学 | 面向联盟链的资源恶意竞争避免方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789095A (zh) * | 2017-03-30 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 分布式***及消息处理方法 |
CN107038578A (zh) * | 2017-04-19 | 2017-08-11 | 浙江数秦科技有限公司 | 基于区块链的数据交易平台中多重签名交易信息处理方法 |
CN107819749A (zh) * | 2017-10-26 | 2018-03-20 | 平安科技(深圳)有限公司 | 基于以太坊的区块链***和交易数据处理方法 |
CN108848056A (zh) * | 2018-05-03 | 2018-11-20 | 南京理工大学 | 基于验证的区块链共识方法 |
CN110012100A (zh) * | 2019-04-09 | 2019-07-12 | 杭州秘猿科技有限公司 | 一种带宽优化的区块链共识方法、装置及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10503614B2 (en) * | 2017-04-21 | 2019-12-10 | Vmware, Inc. | Byzantine agreement using communications having linear complexity |
-
2019
- 2019-08-26 CN CN201910789386.1A patent/CN110460536B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789095A (zh) * | 2017-03-30 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 分布式***及消息处理方法 |
CN107038578A (zh) * | 2017-04-19 | 2017-08-11 | 浙江数秦科技有限公司 | 基于区块链的数据交易平台中多重签名交易信息处理方法 |
CN107819749A (zh) * | 2017-10-26 | 2018-03-20 | 平安科技(深圳)有限公司 | 基于以太坊的区块链***和交易数据处理方法 |
CN108848056A (zh) * | 2018-05-03 | 2018-11-20 | 南京理工大学 | 基于验证的区块链共识方法 |
CN110012100A (zh) * | 2019-04-09 | 2019-07-12 | 杭州秘猿科技有限公司 | 一种带宽优化的区块链共识方法、装置及电子设备 |
Non-Patent Citations (1)
Title |
---|
"基于聚合签名的共识算法优化方案";苑超 等;《计算机科学》;20180228;第45卷(第2期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110460536A (zh) | 2019-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109936457B (zh) | 区块链多方见证方法、装置、设备及计算机可读存储介质 | |
CN111949953B (zh) | 基于区块链的身份认证方法、***、装置和计算机设备 | |
CN110460536B (zh) | 用于区块链的数据处理方法和装置、介质和电子设备 | |
CN110958118B (zh) | 证书认证管理方法、装置、设备及计算机可读存储介质 | |
CN111625593B (zh) | 基于区块链的数据处理方法、装置、计算机设备 | |
CN112600678B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN109688186B (zh) | 数据交互方法、装置、设备及可读存储介质 | |
CN108769230B (zh) | 交易数据存储方法、装置、服务器及存储介质 | |
CN110177124B (zh) | 基于区块链的身份认证方法及相关设备 | |
CN113301114B (zh) | 区块链共识节点选择方法、装置、计算机设备和存储介质 | |
CN110602455B (zh) | 视频存储***、视频处理方法、装置、设备及存储介质 | |
CN109660545B (zh) | 一种联盟链共识方法及计算机存储介质 | |
CN112632573B (zh) | 智能合约执行方法、装置、***、存储介质及电子设备 | |
CN111614548A (zh) | 消息推送方法、装置、计算机设备和存储介质 | |
US20200169416A1 (en) | Consensus protocol for permissioned ledgers | |
CN110928880A (zh) | 基于区块链的数据处理方法、装置、终端及介质 | |
CN111211911A (zh) | 一种协同签名方法、装置、设备及*** | |
CN114390068A (zh) | 区块链共识方法及计算机可读存储介质 | |
CN111401904A (zh) | 联盟链中的共识方法和*** | |
CN110191467A (zh) | 一种物联网设备的鉴权方法、设备、装置及存储介质 | |
CN110213230B (zh) | 一种用于分布式通信的网络安全验证方法及装置 | |
CN113259326B (zh) | 基于联盟链网络的共识优化方法、装置和计算机设备 | |
CN112398949A (zh) | 交易确认方法、***、装置和计算机设备 | |
CN109274674B (zh) | 一种具有高安全性的区块链异构共识方法及终端 | |
CN112465516B (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 |