CN114726881B - 区块处理方法、装置及存储介质 - Google Patents
区块处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114726881B CN114726881B CN202210383220.1A CN202210383220A CN114726881B CN 114726881 B CN114726881 B CN 114726881B CN 202210383220 A CN202210383220 A CN 202210383220A CN 114726881 B CN114726881 B CN 114726881B
- Authority
- CN
- China
- Prior art keywords
- signature
- block
- node
- message
- threshold signature
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 27
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000002360 preparation method Methods 0.000 claims abstract description 230
- 239000012634 fragment Substances 0.000 claims abstract description 210
- 238000000034 method Methods 0.000 claims abstract description 69
- 238000012545 processing Methods 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 10
- 230000004931 aggregating effect Effects 0.000 claims description 6
- 230000002776 aggregation Effects 0.000 claims description 4
- 238000004220 aggregation Methods 0.000 claims description 4
- 239000000758 substrate Substances 0.000 claims 3
- 239000000523 sample Substances 0.000 claims 2
- 238000005516 engineering process Methods 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 9
- 238000012795 verification Methods 0.000 description 7
- 238000005192 partition Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请涉及区块链技术领域,尤其涉及一种区块处理方法、装置及存储介质。该方法用于区块链系统中,区块链系统在常规情况下的协议为两阶段的共识协议,该方法包括:第一节点接收多个节点各自发送的视图切换消息,若多个视图切换消息各自对应的第一签名分片无法聚合成一个门限签名,则第一节点广播预准备消息,对于区块链系统的多个节点中的每个节点,在接收到的预准备消息和节点的本地消息满足第一预设条件的情况下,进行签名并回复消息至第一节点;第一节点对接收到的多个目标签名分片进行聚合得到目标门限签名。本申请实施例提供的区块处理方法在正确节点达成共识由三阶段降为两阶段的情况下,维持了在视图切换协议中O(n)的线性复杂度。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种区块处理方法、装置及存储介质。
背景技术
区块链(英文:blockchain)本质上是一个去中心化的数据库,由多个串联的区块构成。在目前的区块链构建方法中,通过共识的区块按照生成时间顺序连接,构成一条区块链,有新区块生成,且通过共识后可以连接在这条区块链的尾部。
相关技术中,HotStuff协议是一个三阶段投票的拜占庭容错(Byzantine FaultTolerance,BFT)类共识协议,该协议通过在投票过程中引入门限签名实现了O(n)的消息复杂度。HotStuff协议是基于视图(英文:View)的共识协议,一个视图可以处理一个或者多个共识区块交易。视图表示一个共识单元,共识过程是由一个接一个的视图组成。在一个视图中,存在一个确定领导者节点来主导共识协议,对每一个需要共识的区块,需要经过三阶段投票达成共识。视图可以在每一次共识达成后进行切换,切换到下一个视图继续进行共识,或者不进行切换。在视图不固定切换模式下,假如遇到异常状况,某个视图超时未能达成共识,同样切换到下一个视图继续进行共识。
在上述方法中,节点在领导者节点正确的情况下,需要经历三个阶段才能达成共识,效率较低,如何降低三阶段为两阶段是学术界和工业界都急切想达到的结果。并且,在降低三阶段为两阶段的情况下,视图切换过程的消息复杂度会提高(比如为O(n2)的消息复杂度),如何在两阶段的情况下,在视图切换时维持O(n)的线性复杂度,相关技术中尚未提供一种合理且有效的技术方案。
发明内容
有鉴于此,本申请提出了一种区块处理方法、装置及存储介质。所述技术方案包括:
根据本申请的一方面,提供了一种区块处理方法,用于区块链系统中,所述区块链系统在常规情况下的协议为两阶段的共识协议,所述方法包括:
第一节点接收多个节点各自发送的视图切换消息,所述第一节点为所述区块链系统中的领导者节点,所述视图切换消息包括本地区块,所述本地区块为所述节点最新投票的区块,所述本地区块包括第一签名分片,所述第一签名分片为所述节点对所述本地区块的签名分片;
若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名,则所述第一节点广播预准备消息,所述预准备消息包括提出的区块;
对于所述区块链系统的多个节点中的每个节点,在接收到的所述预准备消息和所述节点的本地消息满足第一预设条件的情况下,将所述预准备消息进行签名得到目标签名分片,将携带有所述目标签名分片的消息回复至所述第一节点;
所述第一节点接收到多个携带有所述目标签名分片的消息后,对多个所述目标签名分片进行聚合得到目标门限签名。
在一种可能的实现方式中,所述视图切换消息还包括第一门限签名,所述第一门限签名为所述节点本地存储的高度最大的区块的门限签名;
所述若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名,则所述第一节点广播预准备消息,包括:
若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名,则所述第一节点判断候选门限签名和候选区块是否满足第二预设条件,所述候选门限签名为多个所述视图切换消息各自的所述第一门限签名中所包含高度最大的区块的门限签名,所述候选区块为多个所述视图切换消息各自的所述本地区块中等级最高的区块;
所述第一节点在所述候选门限签名和所述候选区块满足所述第二预设条件的情况下,广播所述预准备消息。
在另一种可能的实现方式中,所述第二预设条件包括:所述候选门限签名为第一预设类型的门限签名,且所述候选门限签名对应的区块的等级小于所述候选区块的等级;
所述预准备消息中提出的区块包括第一影子区块和第二影子区块,所述第一影子区块和所述第二影子区块是具有相同的区块内容的两个区块。
在另一种可能的实现方式中,所述第一影子区块包括第一子区块,所述第一子区块延伸的区块为所述候选门限签名对应的区块,且所述第一子区块的高度是所述候选门限签名对应的区块的高度加一;
所述第二影子区块包括第二子区块,所述第二子区块延伸的区块为空块,且所述第二子区块的高度是所述候选门限签名对应的区块的高度加二。
在另一种可能的实现方式中,所述第二预设条件包括:所述候选门限签名为第一预设类型的门限签名,且所述候选门限签名对应的区块的等级大于或者等于所述候选区块的等级;或者,所述候选门限签名包括一个第二预设类型的门限签名;
所述预准备消息中提出的区块仅包括一个目标区块;
其中,所述第一预设类型的门限签名为准备门限签名,所述第二预设类型的门限签名为预准备门限签名。
在另一种可能的实现方式中,所述目标区块延伸的区块为所述候选门限签名对应的区块,且所述目标区块的高度是所述候选门限签名对应的区块的高度加一。
在另一种可能的实现方式中,所述第二预设条件包括:所述候选门限签名包括第一目标签名和第二目标签名,所述第一目标签名和所述第二目标签名均为第二预设类型的门限签名;
所述预准备消息中提出的区块包括第三影子区块和第四影子区块,所述第三影子区块和所述第四影子区块是具有相同的区块内容的两个区块。
在另一种可能的实现方式中,所述第三影子区块包括第三子区块,所述第三子区块延伸的区块为所述第一目标签名对应的区块;
所述第四影子区块包括第四子区块,所述第四子区块延伸的区块为所述第二目标签名对应的区块;
其中,所述第三子区块和所述第四子区块的高度均是所述候选门限签名对应的区块的高度加一。
在另一种可能的实现方式中,所述第一预设条件包括:
所述预准备消息中的门限签名被验证通过,且所述预准备消息中提出的区块的等级高于所述节点的第二门限签名对应的区块的等级,所述第二门限签名为最新的锁定的门限签名。
在另一种可能的实现方式中,所述第一预设条件包括:
所述预准备消息中的门限签名是第一预设类型的门限签名,且所述预准备消息中的视图编号等于所述节点的第二门限签名对应的视图编号,且所述预准备消息中提出的区块是虚拟区块,所述第二门限签名为最新的锁定的门限签名。
在另一种可能的实现方式中,所述第一预设条件包括:
所述预准备消息中的门限签名是第二预设类型的门限签名,且所述预准备消息中的门限签名对应的区块等于所述节点的第二门限签名对应的区块。
在另一种可能的实现方式中,所述第一节点接收到多个携带有所述目标签名分片的消息后,对多个所述目标签名分片进行聚合得到目标门限签名之后,还包括:
在视图切换后的第一个常规情况下的准备阶段中,所述区块链系统的所述节点收到第一预设类型的门限签名,不更新本地的第二门限签名,所述第二门限签名为最新的锁定的门限签名。
在另一种可能的实现方式中,所述目标门限签名被替换成为聚合签名(英文:aggregate signature)、或者多重签名(英文:multi-sigantures)、或者一组数字签名。
在另一种可能的实现方式中,所述方法还包括:
若多个所述视图切换消息各自对应的所述第一签名分片聚合成一个门限签名,则跳过预准备阶段,并进入常规情况下的准备阶段,完成视图切换。
在另一种可能的实现方式中,所述预准备消息与影子区块无关,所述预准备消息包括空的交易信息;
所述对于所述区块链系统的多个节点中的每个节点,在接收到的所述预准备消息和所述节点的本地消息满足第一预设条件的情况下,将所述预准备消息进行签名得到目标签名分片,包括:
对于所述区块链系统的多个节点中的每个节点,若所述预准备消息中的门限签名被验证通过,且所述预准备消息中所提出的区块的等级高于所述节点的第二门限签名对应的区块的等级,则将所述预准备消息中区块的高度设置为所述门限签名对应的区块的高度加一,将设置完成后的所述预准备消息进行签名得到所述目标签名分片;
若所述预准备消息中的门限签名是第一预设类型的门限签名,且所述预准备消息中的视图编号等于所述节点的第二门限签名对应的视图编号,则将所述预准备消息中区块的高度设置为所述门限签名对应的区块的高度加二,将设置完成后的所述预准备消息进行签名得到所述目标签名分片;
若所述预准备消息中的门限签名是第二预设类型的门限签名,且所述预准备消息中的门限签名对应的区块等于所述节点的第二门限签名对应的区块,则将所述预准备消息中区块的高度设置为所述门限签名对应的区块的高度,将设置完成后的所述预准备消息进行签名得到所述目标签名分片。
根据本申请的另一方面,提供了一种区块处理方法,用于区块链系统的第一节点中,所述区块链系统在常规情况下的协议为两阶段的共识协议,所述第一节点为所述区块链系统中的领导者节点,所述方法包括:
接收多个节点各自发送的视图切换消息,所述视图切换消息包括本地区块,所述本地区块为所述节点最新投票的区块,所述本地区块包括第一签名分片,所述第一签名分片为所述节点对所述本地区块的签名分片;
若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名,则广播预准备消息,所述预准备消息包括提出的区块,所述预准备消息指示所述区块链系统的多个节点中的每个节点,在接收到的所述预准备消息和所述节点的本地消息满足第一预设条件的情况下,将所述预准备消息进行签名得到目标签名分片,将携带有所述目标签名分片的消息回复至所述第一节点;
接收多个携带有所述目标签名分片的消息;
对多个所述目标签名分片进行聚合得到目标门限签名。
根据本申请的另一方面,提供了一种区块处理方法,用于区块链系统的节点中,所述区块链系统在常规情况下的协议为两阶段的共识协议,所述方法包括:
接收第一节点广播的预准备消息,所述第一节点为所述区块链系统中的领导者节点,所述第一节点用于接收多个节点各自发送的视图切换消息,所述视图切换消息包括本地区块,所述本地区块为所述节点最新投票的区块,所述本地区块包括第一签名分片,所述第一签名分片为所述节点对所述本地区块的签名分片;若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名,则广播所述预准备消息,所述预准备消息包括提出的区块;
在接收到的所述预准备消息和所述节点的本地消息满足第一预设条件的情况下,将所述预准备消息进行签名得到目标签名分片;
将携带有所述目标签名分片的消息回复至所述第一节点。
根据本申请的另一方面,提供了一种区块处理装置,用于区块链系统中,所述区块链系统在常规情况下的协议为两阶段的共识协议,所述装置包括:
第一节点,用于接收多个节点各自发送的视图切换消息,所述第一节点为所述区块链系统中的领导者节点,所述视图切换消息包括本地区块,所述本地区块为所述节点最新投票的区块,所述本地区块包括第一签名分片,所述第一签名分片为所述节点对所述本地区块的签名分片;
所述第一节点,还用于若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名,则广播预准备消息,所述预准备消息包括提出的区块;
对于所述区块链系统的多个节点中的每个节点,用于在接收到的所述预准备消息和所述节点的本地消息满足第一预设条件的情况下,将所述预准备消息进行签名得到目标签名分片,将携带有所述目标签名分片的消息回复至所述第一节点;
所述第一节点,还用于接收到多个携带有所述目标签名分片的消息后,对多个所述目标签名分片进行聚合得到目标门限签名。
在一种可能的实现方式中,所述视图切换消息还包括第一门限签名,所述第一门限签名为所述节点本地存储的高度最大的区块的门限签名;
所述第一节点,还用于:
若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名,则判断候选门限签名和候选区块是否满足第二预设条件,所述候选门限签名为多个所述视图切换消息各自的所述第一门限签名中所包含高度最大的区块的门限签名,所述候选区块为多个所述视图切换消息各自的所述本地区块中等级最高的区块;
在所述候选门限签名和所述候选区块满足所述第二预设条件的情况下,广播所述预准备消息。
在另一种可能的实现方式中,
所述第二预设条件包括:所述候选门限签名为第一预设类型的门限签名,且所述候选门限签名对应的区块的等级小于所述候选区块的等级;
所述预准备消息中提出的区块包括第一影子区块和第二影子区块,所述第一影子区块和所述第二影子区块是具有相同的区块内容的两个区块。
在另一种可能的实现方式中,所述第一影子区块包括第一子区块,所述第一子区块延伸的区块为所述候选门限签名对应的区块,且所述第一子区块的高度是所述候选门限签名对应的区块的高度加一;
所述第二影子区块包括第二子区块,所述第二子区块延伸的区块为空块,且所述第二子区块的高度是所述候选门限签名对应的区块的高度加二。
在另一种可能的实现方式中,
所述第二预设条件包括:所述候选门限签名为第一预设类型的门限签名,且所述候选门限签名对应的区块的等级大于或者等于所述候选区块的等级;或者,所述候选门限签名包括一个第二预设类型的门限签名;
所述预准备消息中提出的区块仅包括一个目标区块;
其中,所述第一预设类型的门限签名为准备门限签名,所述第二预设类型的门限签名为预准备门限签名。
在另一种可能的实现方式中,
所述目标区块延伸的区块为所述候选门限签名对应的区块,且所述目标区块的高度是所述候选门限签名对应的区块的高度加一。
在另一种可能的实现方式中,
所述第二预设条件包括:所述候选门限签名包括第一目标签名和第二目标签名,所述第一目标签名和所述第二目标签名均为第二预设类型的门限签名;
所述预准备消息中提出的区块包括第三影子区块和第四影子区块,所述第三影子区块和所述第四影子区块是具有相同的区块内容的两个区块。
在另一种可能的实现方式中,所述第三影子区块包括第三子区块,所述第三子区块延伸的区块为所述第一目标签名对应的区块;
所述第四影子区块包括第四子区块,所述第四子区块延伸的区块为所述第二目标签名对应的区块;
其中,所述第三子区块和所述第四子区块的高度均是所述候选门限签名对应的区块的高度加一。
在另一种可能的实现方式中,所述第一预设条件包括:
所述预准备消息中的门限签名被验证通过,且所述预准备消息中提出的区块的等级高于所述节点的第二门限签名对应的区块的等级,所述第二门限签名为最新的锁定的门限签名。
在另一种可能的实现方式中,所述第一预设条件包括:
所述预准备消息中的门限签名是第一预设类型的门限签名,且所述预准备消息中的视图编号等于所述节点的第二门限签名对应的视图编号,且所述预准备消息中提出的区块是虚拟区块,所述第二门限签名为最新的锁定的门限签名。
在另一种可能的实现方式中,所述第一预设条件包括:
所述预准备消息中的门限签名是第二预设类型的门限签名,且所述预准备消息中的门限签名对应的区块等于所述节点的第二门限签名对应的区块。
在另一种可能的实现方式中,
所述区块链系统的所述节点,还用于在视图切换后的第一个常规情况下的准备阶段中,收到第一预设类型的门限签名,不更新本地的第二门限签名,所述第二门限签名为最新的锁定的门限签名。
在另一种可能的实现方式中,所述目标门限签名被替换成为聚合签名、或者多重签名、或者一组数字签名。
在另一种可能的实现方式中,所述装置还用于:
若多个所述视图切换消息各自对应的所述第一签名分片聚合成一个门限签名,则跳过预准备阶段,并进入常规情况下的准备阶段,完成视图切换。
在另一种可能的实现方式中,所述预准备消息与影子区块无关,所述预准备消息包括空的交易信息;
所述区块链系统的多个节点中的每个节点,还用于:
若所述预准备消息中的门限签名被验证通过,且所述预准备消息中所提出的区块的等级高于所述节点的第二门限签名对应的区块的等级,则将所述预准备消息中区块的高度设置为所述门限签名对应的区块的高度加一,将设置完成后的所述预准备消息进行签名得到所述目标签名分片;
若所述预准备消息中的门限签名是第一预设类型的门限签名,且所述预准备消息中的视图编号等于所述节点的第二门限签名对应的视图编号,则将所述预准备消息中区块的高度设置为所述门限签名对应的区块的高度加二,将设置完成后的所述预准备消息进行签名得到所述目标签名分片;
若所述预准备消息中的门限签名是第二预设类型的门限签名,且所述预准备消息中的门限签名对应的区块等于所述节点的第二门限签名对应的区块,则将所述预准备消息中区块的高度设置为所述门限签名对应的区块的高度,将设置完成后的所述预准备消息进行签名得到所述目标签名分片。
根据本申请的另一方面,提供了一种区块处理装置,用于区块链系统的第一节点中,所述区块链系统在常规情况下的协议为两阶段的共识协议,所述第一节点为所述区块链系统中的领导者节点,所述装置包括:
接收模块,用于接收多个节点各自发送的视图切换消息,所述视图切换消息包括本地区块,所述本地区块为所述节点最新投票的区块,所述本地区块包括第一签名分片,所述第一签名分片为所述节点对所述本地区块的签名分片;
广播模块,用于若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名,则广播预准备消息,所述预准备消息包括提出的区块,所述预准备消息指示所述区块链系统的多个节点中的每个节点,在接收到的所述预准备消息和所述节点的本地消息满足第一预设条件的情况下,将所述预准备消息进行签名得到目标签名分片,将携带有所述目标签名分片的消息回复至所述第一节点;
所述接收模块,还用于接收多个携带有所述目标签名分片的消息;
聚合模块,用于对多个所述目标签名分片进行聚合得到目标门限签名。
根据本申请的另一方面,提供了一种区块处理装置,用于区块链系统的节点中,所述区块链系统在常规情况下的协议为两阶段的共识协议,所述装置包括:
发送模块,用于向第一节点发送视图切换消息,所述第一节点为所述区块链系统中的领导者节点,所述视图切换消息包括本地区块,所述本地区块为所述节点最新投票的区块,所述本地区块包括第一签名分片,所述第一签名分片为所述节点对所述本地区块的签名分片;
接收模块,用于接收所述第一节点广播的预准备消息,所述预准备消息是所述第一节点接收多个节点各自发送的所述视图切换消息,若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名则广播的消息,所述预准备消息包括提出的区块;
签名模块,用于在接收到的所述预准备消息和所述节点的本地消息满足第一预设条件的情况下,将所述预准备消息进行签名得到目标签名分片;
所述发送模块,还用于将携带有所述目标签名分片的消息回复至所述第一节点。
根据本申请的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现上述由区块链系统执行的方法,或者实现上述由区块链系统的第一节点执行的方法,或者实现上述由区块链系统的节点执行的方法。
本申请实施例通过第一节点接收多个节点各自发送的视图切换消息,第一节点为区块链系统中的领导者节点,视图切换消息包括本地区块,本地区块为节点最新投票的区块,本地区块包括第一签名分片,第一签名分片为节点对本地区块的签名分片;若多个视图切换消息各自对应的第一签名分片无法聚合成一个门限签名,则第一节点广播预准备消息,预准备消息包括提出的区块;对于区块链系统的多个节点中的每个节点,在接收到的预准备消息和节点的本地消息满足第一预设条件的情况下,将预准备消息进行签名得到目标签名分片,将携带有目标签名分片的消息回复至第一节点;第一节点接收到多个携带有目标签名分片的消息后,对多个目标签名分片进行聚合得到目标门限签名;使得领导者节点只需要发送一个携带有提出的区块的预准备消息,所在的区块链系统中的各个节点可以将预准备消息与自身的本地消息进行比较,在判断通过后将预准备消息进行签名得到目标签名分片,将携带有目标签名分片的消息回复至第一节点,从而实现在正确节点达成共识由三阶段降为两阶段的情况下,保证达到共识的效率的同时,维持了在视图切换协议中O(n)的线性复杂度,与相关技术所提供的两阶段过程中,视图切换协议中O(n2)的消息复杂度相比,大大降低了消息复杂度。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本申请的示例性实施例、特征和方面,并且用于解释本申请的原理。
图1示出了相关技术中提供的(2,4)门限签名的示意图。
图2其示出了本申请实施例提供的一种区块链系统100的示意图。
图3示出了本申请实施例提供的一种区块链系统的示意图。
图4示出了本申请一个示例性实施例提供的常规情况下的协议的流程图。
图5示出了本申请一个示例性实施例提供的常规情况下的协议的原理示意图。
图6示出了本申请一个示例性实施例提供的视图切换协议的流程图。
图7示出了本申请一个示例性实施例提供的视图切换协议的原理示意图。
图8示出了本申请一个示例性实施例提供的区块处理方法的流程图。
图9示出了本申请一个示例性实施例提供的区块处理装置的结构示意图。
图10示出了本申请另一个示例性实施例提供的区块处理装置的结构示意图。
图11是根据一示例性实施例示出的一种终端设备的框图。
图12是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段未作详细描述,以便于凸显本申请的主旨。
首先,对本申请实施例中涉及的一些术语进行解释。
1、区块链(英文:blockchain):是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私织生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上用来验证业务请求的有效性并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息进行数据一致化处理,并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设各健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
2、共识机制(英文:consensus mechanism):是区块链系统中实现不同节点之间建立信任、实现数据一致性的数学算法。在区块链系统中,通过特殊节点设备的共识机制,可以在很短的时间内完成对交易的验证和确认,且节点的数据实现一致性。
3、公钥(英文:public key)与私钥(英文:private key):是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密数据、验证数字签名等。通过这种其法能够确保得到的密钥对是唯一的,使用这种密钥对的时候,如果在签名系统中,用其中一个密钥(私钥)对一段数据签名,必须用另一个密钥(公钥)验证。
4、门限签名(英文:threshold signature):是普通数字签名的一个重要分支,是门限秘密共享技术和数字签名的一种结合。可选地,(t,n)门限签名方案的算法包括TGen密钥生成算法、SignShare算法、ShareVrf算法、TCom算法和SigVrf算法。
其中,TGen密钥生成算法:生成公钥pk和私钥sk_1、私钥sk_2……私钥sk_n。公钥pk为每个人可见,私钥sk_i被服务器i私有,1≤i≤n。此算法可能是交互的,也可能是一个可信的第三方提供的。SignShare算法:采用私钥sk_i、待签名的信息m、公钥pk,生成一个签名分片σi。ShareVrf算法:验证一个签名分片σi是否正确。TCom算法:将t个部分签名组合成一个门限签名σ。SigVrf算法:验证一个门限签名σ是否正确,SigVrf(pk,m,σ)=1。
在一个示意性的例子中,(2,4)门限签名如图1所示。4个节点有一个共同的公钥pk,每个服务器有一个私钥sk_i,针对每个待签名的信息m,一个节点都能生成一个对应的签名分片σi,任意的两个签名分片σi都能组合成一个代表整个系统的门限签名σ,这个门限签名σ能够用公钥pk和信息m验证。
需要说明的是,本申请实施例涉及的门限签名可以被替换为聚合签名、多重签名、或者一组数字签名。其中,使用聚合签名或者多重签名能够保持线性的消息复杂度。
5、半同步的共识协议(英文:partially synchronous BFT)包含两个子协议:常规情况下的协议(英文:normal-case operation)和视图切换(英文:view change)协议。在共识协议中,有一固定的领导者节点,负责提出新的区块,若当前的领导者节点被怀疑错误(比如长时间未响应等),则通过视图切换协议切换领导者节点。在共识协议中,也可以规定按照一定规律周期性的进行视图切换,这样既能够更合理地使用系统带宽并提高效率,又能够提高系统的鲁棒性。共识协议的视图编号(英文:view number)从1开始,每切换一次领导者节点加一。每个节点用视图编号即可确定当前的领导者节点的身份,在共识协议中所有正确节点会对当前的视图编号达成一致无异议。
假设共识协议中节点的总数量是n,最多允许f个拜占庭错误,n与f的关系为:n≥3f+1。为了方便说明,下面仅以n=3f+1为例进行说明。
本申请实施例涉及线性的共识协议,共识协议的每个阶段共包含两步,即由领导者节点发消息给全部节点,全部节点发送回复消息给领导者节点,如此进行。在每个阶段中,节点利用门限签名降低通讯复杂度。即每个节点对消息签名,形成一个签名分片,领导者节点聚合来自至少2f+1个节点的签名分片,形成门限签名。所有节点皆可验证门限签名。门限签名替换成聚合签名流程一致。一个针对区块聚合起来的门限签名也可以被称作大多数认同(quorum certificate,QC)。
6、区块的等级(英文:rank):可以根据该区块的高度和视图编号来确定。可选地,在第一区块和第二区块满足预设的等级条件时,第一区块的等级大于第二区块;在第一区块和第二区块不满足预设的等级条件时,第一区块的等级小于或者等于第二区块。
其中,预设的等级条件包括:
第一区块的视图编号大于第二区块的视图编号;或者,
第一区块的视图编号等于第二区块的视图编号,且第一区块对应的消息类型为准备消息类型或者提交消息类型,且第二区块对应的消息类型为预准备消息类型;或者,
第一区块的视图编号等于第二区块的视图编号,且第一区块对应的消息类型为准备消息类型或者提交消息类型,且第二区块对应的消息类型为准备消息类型或者提交消息类型,且第一区块的高度大于第二区块的高度。
针对上述技术问题,本申请实施例提供了一种区块处理方法、装置及存储介质,与相关技术中的三阶段相比,提出新的拜占庭共识协议,即该共识协议在常规情况下只需要两阶段且满足O(n)线性复杂度,降低了延迟,提高了区块链系统的吞吐量,提高了区块链系统和高可靠高安全分布式系统的效率;并且,在共识协议的三阶段降为两阶段的情况下,在视图切换协议中维持了O(n)的线性复杂度。并且,在视图切换后,四个阶段至少有两个区块可以被提交。
本申请实施提供的区块处理方法可应用于区块链系统。如图2所示,其示出了本申请实施例提供的一种区块链系统100的示意图。该区块链系统100中可以包括多个节点101(也称为“区块链节点”),每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该区块链系统100内的共享数据。为了保证区块链系统100内的信息互通,区块链系统100中的每个节点101之间可以存在直接或者间接的信息连接,节点101之前可以通过上述信息连接进行信息传输。例如,当区块链系统100中的任意节点接收到输入信息时,区块链系统100中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链系统100中全部节点上存储的数据均一致。
对于区块链系统100中的每个节点101,均具有与其对应的节点标识,且区块链系统100中的每个节点101均可以存储有区块链系统100中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至区块链系统中的其他节点。其中,节点标识可为网络之间互联的协议(Internet Protocol,IP)地址以及其他任一种能够用于标识该节点的信息。
可选地,如图3所示,在该区块链系统300中可以包括:至少两个节点。例如可以包括:第一节点301和第二节点302。其中,第一节点301为领导者(英文:Leader)节点,第二节点302为从属者(英文:backup)节点,第一节点301和第二节点302之间可以进行相互的通信,例如通过无线网络或者有线网络进行通信。在区块链系统300可以通过节点角色选择确定出领导者节点和从属者节点,例如从区块链系统300的全部节点中运行指定算法,确定出Leader节点和Follower节点,其中,在区块链系统300中Leader节点只有一个,而区块链系统300中可以有一个或者多个的Follower节点。正常工作下,节点要么处于Leader角色,要么处于Follower角色,Follower角色追随Leader角色的状态。每个节点存储本地信息,节点的本地消息包括当前已知的最大视图编号(比如View v),最大视图编号用于指示节点所处的区块链系统300中的领导者节点的切换次数,初始设置为1;本地区块,即最新投票的区块(比如Lb);第一门限签名,即最新的收到且验证通过的门限签名(比如highQC);第二门限签名,即最新的锁定的门限签名(比如lockedQC);消息类型,即收到的消息的类型,消息类型包括预准备(英文:pre-prepare)消息类型、准备(英文:prepare)消息类型和提交(英文:commit)消息类型中的一种。本地消息中还可以包括其他参数,本申请实施例对此不加以限定。
下面,采用几个示例性的实施例对本申请提供的区块处理方法进行介绍。
请参见图4,其示出了本申请一个示例性实施例提供的常规情况下的协议的流程图。该协议包括两阶段,对每一个区块达成共识的阶段称为一轮。该协议中可以包括但不限于如下几个步骤:
步骤401,第一节点广播第一消息,第一消息包括备选区块。
可选地,区块链系统中通过节点角色选择可以确定出一个领导者节点和至少一个的从属者节点,以第一节点为领导者节点、第二节点为从属者节点为例,第一节点被选举为领导者节点时,该第一节点可以管理一个交易队列,交易队列用于存储客户端发送的交易信息。其中,交易队到中存储的交易信息可以为一个或者多个,该交易信息也可以称为交易。例如,第一节点生成第一消息,通过区块链将第一消息广播出去。第一节点将第一消息广播时,处于该区块链系统中的所有节点〈包括从属者节点和领导者节点〉都可以接收到该第一消息。
可选地,第一消息包括备选区块,备选区块是准备写到区块链账本的区块。备选区块包括上一区块(即第一节点上一轮提出的区块)的信息,比如上一区块的哈希值、上一区块的视图编号、备选区块的视图编号、备选区块的高度、备选区块的交易信息和第一门限签名,第一节点的第一门限签名为第一节点本地存储的高度最大的区块的门限签名。其中,备选区块的高度为第一门限签名对应的区块的高度加一,或者等于第一门限签名对应的区块的高度。
可选地,第一消息除了包括备选区块,还包括消息类型,第一消息的消息类型为准备消息类型。
比如,第一消息为<prepare,b>消息,b为备选区块。其中,备选区块b=[pl,pview,cview,height,op,highQC],pl是第一节点上一轮提出的区块的信息,pview是上一区块的视图编号,cview是备选区块的视图编号,height是备选区块的高度,op包括备选区块的交易信息,highQC是第一节点本地存储的高度最大的区块的门限签名。需要说明的是,第一节点所提出的
步骤402,第二节点接收到第一消息后,判断第一消息是否满足预设验证条件。
第一节点通过区块链将第一消息广播出去时,区块链系统中的每个节点(包括第一节点和各个从属者节点)可以接收到第一节点通过区块链广播的第一消息,为了方便说明,本申请实施例仅以第二节点接收第一消息,并对第一消息进行处理为例进行介绍,区块链系统中的其它各个节点可以类比参考第二节点的执行流程,此处不做限定。
可选地,第一消息中携带有第一节点的第一门限签名、备选区块的视图编号、备选区块对应的消息类型和备选区块的高度。
可选地,预设验证条件包括:第一节点的第一门限签名被验证通过,备选区块的等级高于第二本地区块(即第二节点存储的本地区块)的等级,且第一节点的第一门限签名与第二节点的第二门限签名不冲突,第二节点的第二门限签名为第二节点存储的锁定的门限签名。
可选地,类比参考上述对区块的等级的相关介绍,第二节点判断备选区块的等级是否高于第二本地区块的等级,包括:判断备选区块与第二本地区块是否满足预设等级条件,若满足则确定备选区块的等级大于第二本地区块;若不满足则确定备选区块的等级小于或者等于第二本地区块。
可选地,预设等级条件包括:
备选区块的视图编号大于第二本地区块的视图编号;或者,
备选区块的视图编号等于第二本地区块的视图编号,且备选区块对应的消息类型为准备消息类型或者提交消息类型,且第二本地区块对应的消息类型为预准备消息类型;或者,
备选区块的视图编号等于第二本地区块的视图编号,且备选区块对应的消息类型为准备消息类型或者提交消息类型,且第二本地区块对应的消息类型为准备消息类型或者提交消息类型,且备选区块的高度大于第二本地区块的高度。
可选地,第二节点判断第一节点的第一门限签名与第二节点的第二门限签名是否不冲突,包括:判断第一节点的第一门限签名与第二节点的第二门限签名是否满足预设冲突条件,若满足则确定第一节点的第一门限签名与第二节点的第二门限签名冲突;若不满足则确定第一节点的第一门限签名与第二节点的第二门限签名不冲突。
可选地,预设冲突条件包括:第一节点的第一门限签名对应的区块的高度与第二节点的第二门限签名对应的区块的高度相同,且第一节点的第一门限签名对应的交易信息与第二节点的第二门限签名对应的交易信息不同;或者,第一节点的第一门限签名对应的摘要与第二节点的第二门限签名对应的摘要不同。
需要说明的是,本申请实施例对预设的各种判断条件(比如预设验证条件、预设等级条件、预设冲突条件)的设置方式不加以限定。
步骤403,若第一消息满足预设验证条件,则第二节点生成第一消息对应的第二签名分片,将第二签名分片发送至第一节点。
若第一消息满足预设验证条件,则第二节点将本地区块设置为备选区块,将第二节点的第一门限签名设置为备选区块中的第一门限签名,若这两个第一门限签名为一个第一消息所形成的门限签名,则将第二节点的第二门限签名设置为备选区块中的第一门限签名。
若第一消息满足预设验证条件,则第二节点在设置上述内容的同时或者之前或者之后,第二节点生成第一消息对应的第二签名分片,将携带有第二签名分片的消息发送至第一节点。
步骤404,第一节点将接收到的多个第二签名分片进行聚合得到第三门限签名,广播第二消息,第二消息包括备选区块和第三门限签名。
第一节点接收多个携带有第二签名分片的消息,多个携带有第二签名分片的消息包括至少n-f个消息;第一节点将其中的多个第二签名分片进行聚合,得到第三门限签名;第一节点生成第二消息,第二消息包括备选区块和第三门限签名;第一节点将第二消息广播出去。
步骤405,第二节点在第三门限签名被验证通过后,对第二消息进行门限签名得到第三签名分片,将第三签名分片发送至第一节点。
第二节点接收第一节点广播的第二消息,验证第二消息中的第三门限签名。在第三门限签名被验证通过后,第二节点对第二消息进行门限签名得到第三签名分片,将携带有第三签名分片的消息发送至第一节点。
步骤406,第一节点将接收到的多个第三签名分片进行聚合得到第四门限签名,广播第三消息,第三消息包括第四门限签名。
第一节点接收多个携带有第三签名分片的消息,多个携带有第三签名分片的消息包括至少n-f个消息;第一节点将其中的多个第三签名分片进行聚合,得到第四门限签名;第一节点生成第三消息,第三消息包括第四门限签名;第一节点通过区块链将第三消息广播出去。区块链系统中的每个节点(包括第一节点和各个从属者节点)可以接收第一节点通过区块链广播的第三消息。
在一个示意性的例子中,如图5所示,区块链系统包括节点1、节点2、节点3和节点4,此时节点1为领导者节点,其他三个节点均为从属者节点。常规情况下的协议包括两阶段:阶段1和阶段2,阶段1也称为准备阶段,阶段2也称为确认阶段。
在阶段1中,节点1提出一个区块b,并广播<prepare,b>消息至该区块链系统中的各个节点,其中备选区块b=[pl,pview,cview,height,op,highQC]。对于区块链系统中的每个节点(节点1、节点2、节点3或节点4),节点收到<prepare,b>消息后,判断<prepare,b>消息中所携带的highQC是否能被验证通过,且所提的区块b的等于是否高于本地区块Lb的等级,且所携带的highQC是否与本地的lockedQC不冲突。若判断通过,则该节点将本地区块Lb设置为区块b,将本地的highQC设置为b中的highQC,若这两个highQC是一个<prepare,b>消息所形成的门限签名,则将本地的lockedQC设置成highQC。并且,该节点生成对<prepare,b>消息的第二签名分片,发送至节点1。
在阶段2中,节点1收集n-f个消息,将n-f个消息中的第二签名分片进行集合,形成第三门限签名即prepareQC,然后广播一个commit消息至区块链系统中的全部节点,commit消息中包括区块b和prepareQC。对于区块链系统中的每个节点,该节点判断收到的prepareQC是否能被验证通过,若如果prepareQC被验证通过,对commit消息进行门限签名得到第三签名分片,将携带有第三签名分片的消息发送至节点1。节点1聚合n-f个消息各自对应的第三签名分片,形成第四门限签名即commitQC。共识阶段完成。
对于区块链系统中的每个节点,该节点本地判断是否有未完成的本地交易,并且设置计时器,若计时器超时,该节点仍然没有完成共识,则开始进行视图切换流程,此时的领导者节点即第一节点广播预准备消息,在接收到预准备消息对应的反馈消息后,领导切换成功。视图切换流程需要由至少n-f个节点触发。请参考图6,其示出了本申请一个示例性实施例提供的视图切换协议的流程图。该协议可以包括但不限于如下几个步骤:
步骤601,第二节点将视图切换消息发送至第一节点,视图切换消息包括第二节点的本地区块和第二节点的第一门限签名。
其中,第二节点的本地区块包括第一签名分片,第一签名分片为第二节点对本地区块的签名分片。视图切换消息也称为视图切换消息。
区块链系统的多个节点中的每个节点(包括第一节点和各个从属者节点)可以将视图切换消息发送至第一节点,为了方便说明,本申请实施例仅以第二节点将视图切换消息发送至第一节点为例进行介绍,区块链系统中的其它各个节点可以类比参考第二节点的执行流程,此处不做限定。
可选地,视图切换消息包括第二节点的备选区块的视图编号、第二节点的本地区块和第二节点的第一门限签名。
比如,对于区块链系统中的每个节点,节点将view-change消息发送至第一节点,view-change消息包括该节点的cview、Lb和highQC,cview是备选区块的视图编号,Lb为该节点的本地区块,highQC是该节点本地存储的高度最大的区块的门限签名。
步骤602,第一节点接收到多个视图切换消息后,在多个视图切换消息中确定候选门限签名和候选区块。
第一节点接收多个视图切换消息,多个视图切换消息的数量包括至少n-f个。第一节点在多个视图切换消息中确定候选门限签名和候选区块,候选门限签名为多个视图切换消息各自的第一门限签名中所包含高度最大的区块的门限签名,候选区块为多个视图切换消息各自对应的本地区块中等级最高的区块。需要说明的是,区块的等级的比较方式可参考上述实施例中的相关细节,在此不在赘述。
比如,节点1接收至少n-f个view change消息,消息集合表示为M_v。在M_v中,节点1确定其中最大的QC,标记为highQC_v,同时确定其中等级最高的区块,标记为b_v。然后节点1开启新的一个视图。
步骤603,第一节点广播预准备消息,预准备消息包括提出的区块。
第一节点判断多个视图切换消息各自对应的第一签名分片是否可以聚合成一个门限签名,若多个视图切换消息各自对应的第一签名分片聚合成一个门限签名,则进入快速通道(英文:fast path),即可以跳过预准备阶段,直接进入正常情况的准备阶段,完成视图切换。若多个视图切换消息各自对应的第一签名分片无法聚合成一个门限签名,则进入慢通道(英文:slow path),协议需要进行一个来回的交互来完成视图切换,即第一节点判断候选门限签名和候选区块是否满足第二预设条件,在候选门限签名和候选区块满足第二预设条件的情况下,第一节点广播一个预准备消息至区块链系统中的各个节点,预准备消息的消息类型为预准备消息类型,预准备消息包括提出的区块。
可选地,预准备消息中提出的区块包括第一影子区块和第二影子区块,第一影子区块和第二影子区块是具有相同的区块内容的两个区块。第一影子区块和第二影子区块是具有相同的区块内容但包括不同的附加消息的两个区块。示意性的,第一影子区块包括第一子区块,第一子区块延伸的区块为候选门限签名对应的区块,且第一子区块的高度是候选门限签名对应的区块的高度加一;第二影子区块包括第二子区块,第二子区块延伸的区块为空块,且第二子区块的高度是候选门限签名对应的区块的高度加二。
可选地,预准备消息中提出的区块仅包括一个目标区块。示意性的,目标区块延伸的区块为候选门限签名对应的区块,且目标区块的高度是候选门限签名对应的区块的高度加一。
可选地,预准备消息中提出的区块包括第三影子区块和第四影子区块,第三影子区块和第四影子区块是具有相同的区块内容的两个区块。第三影子区块和第四影子区块是具有相同的区块内容但包括不同的附加消息的两个区块。示意性的,第三影子区块包括第三子区块,第三子区块延伸的区块为第一目标签名对应的区块;
第四影子区块包括第四子区块,第四子区块延伸的区块为第二目标签名对应的区块;
其中,第三子区块和第四子区块的高度均是候选门限签名对应的区块的高度加一。
这里的慢通道包括但不限于如下三种可能的实现方式:
在一种可能的实现方式中,候选门限签名为第一预设类型的门限签名,且候选门限签名对应的区块的等级小于候选区块的等级。在这种情况下,广播一个预准备消息至区块链系统中的各个节点,预准备消息的消息类型为预准备消息类型,预准备消息中提出的区块包括第一影子区块和第二影子区块。第一影子区块和第二影子区块是具有相同的区块内容的两个区块,即第一影子区块和第二影子区块是具有相同的区块内容但包括不同的附加消息的两个区块。
可选的,门限签名的类型包括第一预设类型和第二预设类型中的一种,第一预设类型的门限签名也称为准备门限签名(英文:prepareQC),第二预设类型的门限签名也称为预准备门限签名(英文:pre-prepareQC)。
第一影子区块包括第一子区块,第一子区块延伸的区块为候选门限签名对应的区块,且第一子区块的高度是候选门限签名对应的区块的高度加一;第二影子区块包括第二子区块,第二子区块延伸的区块为空块,且第二子区块的高度是候选门限签名对应的区块的高度加二。由于第一影子区块和第二影子区块包括相同的交易信息,仅仅是其它信息不同,所以均被称作影子区块。
比如,候选门限签名highQC_v是一个prepareQC且highQC_v对应的区块的等级小于b_v的等级。在这种情况下,第一节点广播一个pre-prepare消息至区块链系统中的全部节点,pre-prepare消息包括新的区块m=m_1||m_2。其中,影子区块m_1和影子区块m_2包括同一个区块内容但包括了不同的附加信息。影子区块m_1包括区块b_1,其延伸了highQC_v中携带的区块,且高度是highQC_v的高度加1。影子区块m_2包括区块b_2,其延伸了一个特殊的空块\bot,且高度是highQC_v的高度加2。
在另一种可能的实现方式中,候选门限签名为第一预设类型的门限签名,且候选门限签名对应的区块的等级大于或者等于候选区块的等级;或者,候选门限签名包括一个第二预设类型的门限签名。在这种情况下,广播一个预准备消息至区块链系统中的各个节点,预准备消息的消息类型为预准备消息类型,预准备消息中提出的区块仅包括一个目标区块,目标区块延伸的区块为候选门限签名对应的区块,且目标区块的高度是候选门限签名对应的区块的高度加一。
比如,候选门限签名highQC_v是一个prepareQC且highQC_v对应的区块的等级大于或者等于b_v的等级,或者highQC_v包括一个pre-prepareQC。在这种情况下,第一节点广播一个pre-prepare消息至区块链系统中的全部节点,pre-prepare消息只包含一个目标区块b,目标区块b延伸的区块是highQC_v中携带的区块,高度是highQC_v的区块高度加1。
在另一种可能的实现方式中,候选门限签名包括两个第二预设类型的门限签名,也就是说,候选门限签名包括第一目标签名和第二目标签名,第一目标签名和第二目标签名均为第二预设类型的门限签名。
其中第一目标签名对应的区块为正常区块,即父区块不为空;第二目标签名对应的区块为虚拟区块,即父区块为空。第一节点提出两个影子区块即第三影子区块和第四影子区块。第三影子区块和第四影子区块是具有相同的区块内容但包括不同的附加消息的两个区块。
第三影子区块包括第三子区块,第三子区块延伸的区块为第一目标签名对应的区块;第四影子区块包括第四子区块,第四子区块延伸的区块为第二目标签名对应的区块,第三子区块和第四子区块的高度均是候选门限签名对应的区块的高度加一,区块内容是相同的。
比如,highQC_v包括两个pre-prepareQC,即qc_1和qc_2,qc_1对应的区块是一个正常区块,qc_2对应的区块是一个虚拟区块。在这种情况下,第一节点广播一个pre-prepare消息至区块链系统中的全部节点,pre-prepare消息包括提出的两个影子区块m=m_1||m_2,影子区块m_1包括区块b_1,延伸了qc_1中的区块;影子区块m_2包括区块b_2,延伸了qc_2中的区块。这两个影子区块的高度均是highQC_v的高度加1,区块内容一致。
步骤604,第二节点收到预准备消息后,判断预准备消息是否满足第一预设条件,若预准备消息满足第一预设条件,则将预准备消息进行签名得到目标签名分片,将携带有该目标签名分片的消息回复至第一节点。
基于上述的慢通道所包括的三种可能的实现方式,第二节点收到预准备消息后,对应的包括三种处理方式,此处收到的预准备消息可以包括一个新的提出的目标区块或者两个影子区块,第二节点对每一个提出的区块进行独立判断,可能对一个区块投票,或对两个区块进行投票。若对两个区块进行投票,则投票可以包括在一个消息里一起发送至第一节点。
在一种可能的实现方式中,预准备消息包括门限签名和提出的区块,若预准备消息中的门限签名被验证通过,且预准备消息中提出的区块的等级高于第二节点的第二门限签名对应的区块的等级,则对预准备消息进行签名得到目标签名分片,并将携带有该目标签名分片的消息回复至第一节点。
在另一种可能的实现方式中,若预准备消息中的门限签名是第一预设类型的门限签名,且预准备消息中的视图编号等于第二门限签名对应的视图编号,且预准备消息中提出的区块是虚拟区块,则将携带有第二节点的第二门限签名的消息回复至第一节点。
在另一种可能的实现方式中,若预准备消息中的门限签名是第二预设类型的门限签名,且门限签名对应的区块等于第二节点的第二门限签名对应的区块,则对预准备消息进行签名得到目标签名分片,并将携带有该目标签名分片的消息回复至第一节点。
需要说明的是,协议中的预准备阶段可以简化,第一节点也可以不提出新的影子区块,而仅仅需要发出携带空交易信息的消息,由第二节点进行判断,是否需要将自己的第二门限签名发出,或是仅仅对该消息进行签名。此处可以将视图切换过程中的三个情况,简化成两个情况。缺点是视图切换之后四个阶段只能够确认一个区块而非两个。简化的预准备阶段包括但不限于如下三种可能的实现方式。
在一种可能的实现方式中,若预准备消息中的门限签名被验证通过,且预准备消息中所提出的区块的等级高于第二节点的第二门限签名对应的区块的等级,则将预准备消息中区块的高度设置为门限签名对应的区块的高度加一,将设置完成后的预准备消息进行签名得到目标签名分片,将携带有该目标签名分片的消息回复至第一节点。
在另一种可能的实现方式中,若预准备消息中的门限签名是第一预设类型的门限签名,且预准备消息中的视图编号等于第二节点的第二门限签名对应的视图编号,则将预准备消息中区块的高度设置为门限签名对应的区块的高度加二,将设置完成后的预准备消息进行签名得到目标签名分片,将携带有该目标签名分片和第二节点的第二门限签名的消息回复至第一节点。
在另一种可能的实现方式中,若预准备消息中的门限签名是第二预设类型的门限签名,且预准备消息中的门限签名对应的区块等于第二节点的第二门限签名对应的区块,则预准备消息中区块的高度设置为门限签名对应的区块的高度,将设置完成后的预准备消息进行签名得到目标签名分片,将携带有该目标签名分片的消息回复至第一节点。
步骤605,第一节点接收到多个携带有目标签名分片的消息后,对多个目标签名分片进行聚合得到目标门限签名,广播目标消息,目标消息包括目标门限签名。
可选地,第一节点接收到多个携带有目标签名分片的消息后,对多个目标签名分片进行聚合得到目标门限签名;第一节点生成目标消息,目标消息包括目标门限签名;第一节点通过区块链将目标消息广播出去。区块链系统中的每个节点(包括第一节点和各个从属者节点)可以接收第一节点通过区块链广播的目标消息。
第一节点对多个目标签名分片进行聚合得到目标门限签名后,恢复上述的常规情况下的协议,进入准备阶段。可选地,在视图切换后的第一个常规情况中,对于一个第二预设类型的门限签名中的区块,在准备阶段,第二节点若收到第一预设类型的门限签名,不更新本地的第二门限签名,而仅仅需要存储该第一预设类型的门限签名对应的区块。直到下一个门限签名形成后,才更新本地的第二门限签名。
在一个示意性的例子中,如图7所示,区块链系统包括节点1、节点2、节点3和节点4,视图切换协议包括但不限于如下几个步骤:对于区块链系统中的每个节点(节点1、节点2、节点3或节点4),该节点本地判断是否有未完成的本地交易,并且设置计时器,若计时器超时,该节点仍然没有完成共识,则开始进行视图切换流程。对于区块链系统中的每个节点,该节点将view-change消息发送至节点1,view-change消息包括该节点的cview、Lb和highQC。节点1接收多个view change消息,消息集合表示为M_v。在M_v中,节点1确定其中最大的QC,标记为highQC_v,同时确定其中等级最高的区块,标记为b_v。然后节点1开启新的一个视图。若多个视图切换消息各自对应的第一签名分片无法聚合成一个门限签名,则进入慢通道(英文:slow path),比如highQC_v是一个prepareQC且highQC_v对应的区块的等级小于b_v的等级。在这种情况下,节点1广播一个pre-prepare消息至区块链系统中的全部节点,pre-prepare消息包括新的区块m=m_1||m_2,其中影子区块m_1和影子区块m_2包括同一个区块内容但包括了不同的附加信息,影子区块m_1包括区块b2,其延伸了highQC_v中携带的区块,且高度是highQC_v的高度加1。影子区块m_2包括区块b2 ’,其延伸了一个特殊的空块\bot,且高度是highQC_v的高度加2。对于区块链系统中的每个节点,节点收到pre-prepare消息后,若pre-prepare消息满足第一预设条件,则将预准备消息进行签名得到目标签名分片,将携带有该目标签名分片的消息回复至节点1。节点1接收到多个携带有目标签名分片的消息后,对多个目标签名分片进行聚合得到目标门限签名,广播目标消息,目标消息包括目标门限签名。在视图切换后的第一个常规情况下,在准备阶段,若区块链系统中的节点收到的携带有区块b2的消息,不更新本地的lockedQC,存储但不锁定区块b2。在接收到携带有区块b3的消息后,更新本地的lockedQC,锁定区块b2。在确认阶段,在接收到携带有区块b4的消息后,锁定区块b3且确认区块b2。
请参考图8,其示出了本申请一个示例性实施例提供的区块处理方法的流程图,该方法用于区块链系统中,区块链系统在常规情况下的协议为两阶段的共识协议,该方法可以包括但不限于如下几个步骤:
步骤801,第一节点接收多个节点各自发送的视图切换消息,第一节点为区块链系统中的领导者节点,视图切换消息包括本地区块,本地区块为节点最新投票的区块,本地区块包括第一签名分片,第一签名分片为节点对本地区块的签名分片。
步骤802,若多个视图切换消息各自对应的第一签名分片无法聚合成一个门限签名,则第一节点广播预准备消息,预准备消息包括提出的区块。
步骤803,对于区块链系统的多个节点中的每个节点,在接收到的预准备消息和节点的本地消息满足第一预设条件的情况下,将预准备消息进行签名得到目标签名分片,将携带有目标签名分片的消息回复至第一节点。
需要说明的是,对于区块链系统的多个节点中的每个节点的处理流程可类比参考上述实施例中的第二节点的执行流程,在此不再赘述。
步骤804,第一节点接收到多个携带有目标签名分片的消息后,对多个目标签名分片进行聚合得到目标门限签名。
在一种可能的实现方式中,视图切换消息还包括第一门限签名,第一门限签名为节点本地存储的高度最大的区块的门限签名;
若多个视图切换消息各自对应的第一签名分片无法聚合成一个门限签名,则第一节点广播预准备消息,包括:
若多个视图切换消息各自对应的第一签名分片无法聚合成一个门限签名,则第一节点判断候选门限签名和候选区块是否满足第二预设条件,候选门限签名为多个视图切换消息各自的第一门限签名中所包含高度最大的区块的门限签名,候选区块为多个视图切换消息各自的本地区块中等级最高的区块;
第一节点在候选门限签名和候选区块满足第二预设条件的情况下,广播预准备消息。
在另一种可能的实现方式中,第二预设条件包括:候选门限签名为第一预设类型的门限签名,且候选门限签名对应的区块的等级小于候选区块的等级;
预准备消息中提出的区块包括第一影子区块和第二影子区块,第一影子区块和第二影子区块是具有相同的区块内容的两个区块。
在另一种可能的实现方式中,第一影子区块包括第一子区块,第一子区块延伸的区块为候选门限签名对应的区块,且第一子区块的高度是候选门限签名对应的区块的高度加一;
第二影子区块包括第二子区块,第二子区块延伸的区块为空块,且第二子区块的高度是候选门限签名对应的区块的高度加二。
在另一种可能的实现方式中,第二预设条件包括:候选门限签名为第一预设类型的门限签名,且候选门限签名对应的区块的等级大于或者等于候选区块的等级;或者,候选门限签名包括一个第二预设类型的门限签名;
预准备消息中提出的区块仅包括一个目标区块;
其中,第一预设类型的门限签名为准备门限签名,第二预设类型的门限签名为预准备门限签名。
在另一种可能的实现方式中,目标区块延伸的区块为候选门限签名对应的区块,且目标区块的高度是候选门限签名对应的区块的高度加一。
在另一种可能的实现方式中,第二预设条件包括:候选门限签名包括第一目标签名和第二目标签名,第一目标签名和第二目标签名均为第二预设类型的门限签名;
预准备消息中提出的区块包括第三影子区块和第四影子区块,第三影子区块和第四影子区块是具有相同的区块内容的两个区块。
在另一种可能的实现方式中,第三影子区块包括第三子区块,第三子区块延伸的区块为第一目标签名对应的区块;
第四影子区块包括第四子区块,第四子区块延伸的区块为第二目标签名对应的区块;
其中,第三子区块和第四子区块的高度均是候选门限签名对应的区块的高度加一。
在另一种可能的实现方式中,第一预设条件包括:
预准备消息中的门限签名被验证通过,且预准备消息中提出的区块的等级高于节点的第二门限签名对应的区块的等级,第二门限签名为最新的锁定的门限签名。
在另一种可能的实现方式中,第一预设条件包括:
预准备消息中的门限签名是第一预设类型的门限签名,且预准备消息中的视图编号等于节点的第二门限签名对应的视图编号,且预准备消息中提出的区块是虚拟区块,第二门限签名为最新的锁定的门限签名。
在另一种可能的实现方式中,第一预设条件包括:
预准备消息中的门限签名是第二预设类型的门限签名,且预准备消息中的门限签名对应的区块等于节点的第二门限签名对应的区块。
在另一种可能的实现方式中,第一节点接收到多个携带有目标签名分片的消息后,对多个目标签名分片进行聚合得到目标门限签名之后,还包括:
在视图切换后的第一个常规情况下的准备阶段中,区块链系统的节点收到第一预设类型的门限签名,不更新本地的第二门限签名,第二门限签名为最新的锁定的门限签名。
在另一种可能的实现方式中,目标门限签名被替换成为聚合签名、或者多重签名、或者一组数字签名。
在另一种可能的实现方式中,该方法还包括:
若多个视图切换消息各自对应的第一签名分片聚合成一个门限签名,则跳过预准备阶段,并进入常规情况下的准备阶段,完成视图切换。
在另一种可能的实现方式中,预准备消息与影子区块无关,预准备消息包括空的交易信息;
对于区块链系统的多个节点中的每个节点,在接收到的预准备消息和节点的本地消息满足第一预设条件的情况下,将预准备消息进行签名得到目标签名分片,包括:
对于区块链系统的多个节点中的每个节点,若预准备消息中的门限签名被验证通过,且预准备消息中所提出的区块的等级高于节点的第二门限签名对应的区块的等级,则将预准备消息中区块的高度设置为门限签名对应的区块的高度加一,将设置完成后的预准备消息进行签名得到目标签名分片;
若预准备消息中的门限签名是第一预设类型的门限签名,且预准备消息中的视图编号等于节点的第二门限签名对应的视图编号,则将预准备消息中区块的高度设置为门限签名对应的区块的高度加二,将设置完成后的预准备消息进行签名得到目标签名分片;
若预准备消息中的门限签名是第二预设类型的门限签名,且预准备消息中的门限签名对应的区块等于节点的第二门限签名对应的区块,则将预准备消息中区块的高度设置为门限签名对应的区块的高度,将设置完成后的预准备消息进行签名得到目标签名分片。
需要说明的是,本实施例中各个步骤的描述可类比参考上述实施例中的相关细节,在此不再赘述。
综上所述,本申请实施例提供的区块处理方法中,领导者节点即第一节点只需要发送一个携带有提出的区块的预准备消息,所在的区块链系统中的各个节点可以将预准备消息与自身的本地消息进行比较,在判断通过后将预准备消息进行签名得到目标签名分片,将携带有目标签名分片的消息回复至第一节点,从而实现在正确节点达成共识由三阶段降为两阶段的情况下,保证达到共识的效率的同时,维持了在视图切换协议中O(n)的线性复杂度,与相关技术所提供的两阶段过程中,视图切换协议中O(n2)的消息复杂度相比,大大降低了消息复杂度。并且,在视图切换后,四个阶段至少有两个区块可以被提交。
以下为本申请实施例的装置实施例,对于装置实施例中未详细阐述的部分,可以参考上述方法实施例中公开的技术细节。
请参考图9,其示出了本申请一个示例性实施例提供的区块处理装置的结构示意图。该区块处理装置可以通过软件、硬件以及两者的组合实现成为区块链系统的第一节点的全部或一部分,区块链系统在常规情况下的协议为两阶段的共识协议,第一节点为区块链系统中的领导者节点。该装置包括:接收模块910、广播模块920和聚合模块930。
接收模块910,用于接收多个节点各自发送的视图切换消息,所述视图切换消息包括本地区块,所述本地区块为所述节点最新投票的区块,所述本地区块包括第一签名分片,所述第一签名分片为所述节点对所述本地区块的签名分片;
广播模块920,用于若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名,则广播预准备消息,所述预准备消息包括提出的区块,所述预准备消息指示所述区块链系统的多个节点中的每个节点,在接收到的所述预准备消息和所述节点的本地消息满足第一预设条件的情况下,将所述预准备消息进行签名得到目标签名分片,将携带有所述目标签名分片的消息回复至所述第一节点;
接收模块910,还用于接收多个携带有所述目标签名分片的消息;
聚合模块930,用于对多个所述目标签名分片进行聚合得到目标门限签名。
在一种可能的实现方式中,视图切换消息还包括第一门限签名,第一门限签名为节点本地存储的高度最大的区块的门限签名;
广播模块920,还用于:
若多个视图切换消息各自对应的第一签名分片无法聚合成一个门限签名,则第一节点判断候选门限签名和候选区块是否满足第二预设条件,候选门限签名为多个视图切换消息各自的第一门限签名中所包含高度最大的区块的门限签名,候选区块为多个视图切换消息各自的本地区块中等级最高的区块;
第一节点在候选门限签名和候选区块满足第二预设条件的情况下,广播预准备消息。
在另一种可能的实现方式中,第二预设条件包括:候选门限签名为第一预设类型的门限签名,且候选门限签名对应的区块的等级小于候选区块的等级;
预准备消息中提出的区块包括第一影子区块和第二影子区块,第一影子区块和第二影子区块是具有相同的区块内容的两个区块。
在另一种可能的实现方式中,第一影子区块包括第一子区块,第一子区块延伸的区块为候选门限签名对应的区块,且第一子区块的高度是候选门限签名对应的区块的高度加一;
第二影子区块包括第二子区块,第二子区块延伸的区块为空块,且第二子区块的高度是候选门限签名对应的区块的高度加二。
在另一种可能的实现方式中,第二预设条件包括:候选门限签名为第一预设类型的门限签名,且候选门限签名对应的区块的等级大于或者等于候选区块的等级;或者,候选门限签名包括一个第二预设类型的门限签名;
预准备消息中提出的区块仅包括一个目标区块;
其中,第一预设类型的门限签名为准备门限签名,第二预设类型的门限签名为预准备门限签名。
在另一种可能的实现方式中,目标区块延伸的区块为候选门限签名对应的区块,且目标区块的高度是候选门限签名对应的区块的高度加一。
在另一种可能的实现方式中,第二预设条件包括:候选门限签名包括第一目标签名和第二目标签名,第一目标签名和第二目标签名均为第二预设类型的门限签名;
预准备消息中提出的区块包括第三影子区块和第四影子区块,第三影子区块和第四影子区块是具有相同的区块内容的两个区块。
在另一种可能的实现方式中,第三影子区块包括第三子区块,第三子区块延伸的区块为第一目标签名对应的区块;
第四影子区块包括第四子区块,第四子区块延伸的区块为第二目标签名对应的区块;
其中,第三子区块和第四子区块的高度均是候选门限签名对应的区块的高度加一。
在另一种可能的实现方式中,第一预设条件包括:
预准备消息中的门限签名被验证通过,且预准备消息中提出的区块的等级高于节点的第二门限签名对应的区块的等级,第二门限签名为最新的锁定的门限签名。
在另一种可能的实现方式中,第一预设条件包括:
预准备消息中的门限签名是第一预设类型的门限签名,且预准备消息中的视图编号等于节点的第二门限签名对应的视图编号,且预准备消息中提出的区块是虚拟区块,第二门限签名为最新的锁定的门限签名。
在另一种可能的实现方式中,第一预设条件包括:
预准备消息中的门限签名是第二预设类型的门限签名,且预准备消息中的门限签名对应的区块等于节点的第二门限签名对应的区块。
在另一种可能的实现方式中,目标门限签名被替换成为聚合签名、或者多重签名、或者一组数字签名。
在另一种可能的实现方式中,
若多个视图切换消息各自对应的第一签名分片聚合成一个门限签名,则跳过预准备阶段,并进入常规情况下的准备阶段,完成视图切换。
在另一种可能的实现方式中,预准备消息与影子区块无关,预准备消息包括空的交易信息;所述区块链系统的多个节点中的每个节点,用于:
若预准备消息中的门限签名被验证通过,且预准备消息中所提出的区块的等级高于节点的第二门限签名对应的区块的等级,则将预准备消息中区块的高度设置为门限签名对应的区块的高度加一,将设置完成后的预准备消息进行签名得到目标签名分片;
若预准备消息中的门限签名是第一预设类型的门限签名,且预准备消息中的视图编号等于节点的第二门限签名对应的视图编号,则将预准备消息中区块的高度设置为门限签名对应的区块的高度加二,将设置完成后的预准备消息进行签名得到目标签名分片;
若预准备消息中的门限签名是第二预设类型的门限签名,且预准备消息中的门限签名对应的区块等于节点的第二门限签名对应的区块,则将预准备消息中区块的高度设置为门限签名对应的区块的高度,将设置完成后的预准备消息进行签名得到目标签名分片。
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各个功能模块的划分进行举例说明,实际应用中,可以根据实际需要而将上述功能分配由不同的功能模块完成,即将设备的内容结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
请参考图10,其示出了本申请另一个示例性实施例提供的区块处理装置的结构示意图。该区块处理装置可以通过软件、硬件以及两者的组合实现成为区块链系统的节点的全部或一部分,区块链系统在常规情况下的协议为两阶段的共识协议。该装置包括:发送模块1010、接收模块1020和签名模块1030。
发送模块1010,用于向第一节点发送视图切换消息,第一节点为区块链系统中的领导者节点,视图切换消息包括本地区块,本地区块为节点最新投票的区块,本地区块包括第一签名分片,第一签名分片为节点对本地区块的签名分片;
接收模块1020,用于接收第一节点广播的预准备消息,预准备消息是第一节点接收多个节点各自发送的视图切换消息,若多个视图切换消息各自对应的第一签名分片无法聚合成一个门限签名则广播的消息,预准备消息包括提出的区块;
签名模块1030,用于在接收到的预准备消息和节点的本地消息满足第一预设条件的情况下,将预准备消息进行签名得到目标签名分片;
发送模块1010,还用于将携带有目标签名分片的消息回复至第一节点。
在另一种可能的实现方式中,预准备消息中提出的区块包括第一影子区块和第二影子区块,第一影子区块和第二影子区块是具有相同的区块内容的两个区块。
在另一种可能的实现方式中,预准备消息中提出的区块仅包括一个目标区块。
在另一种可能的实现方式中,预准备消息中提出的区块包括第三影子区块和第四影子区块,第三影子区块和第四影子区块是具有相同的区块内容的两个区块。
在另一种可能的实现方式中,第一预设条件包括:
预准备消息中的门限签名被验证通过,且预准备消息中提出的区块的等级高于节点的第二门限签名对应的区块的等级,第二门限签名为最新的锁定的门限签名。
在另一种可能的实现方式中,第一预设条件包括:
预准备消息中的门限签名是第一预设类型的门限签名,且预准备消息中的视图编号等于节点的第二门限签名对应的视图编号,且预准备消息中提出的区块是虚拟区块,第二门限签名为最新的锁定的门限签名。
在另一种可能的实现方式中,第一预设条件包括:
预准备消息中的门限签名是第二预设类型的门限签名,且预准备消息中的门限签名对应的区块等于节点的第二门限签名对应的区块。
在另一种可能的实现方式中,接收模块1020,还用于:
在视图切换后的第一个常规情况下的准备阶段中,收到第一预设类型的门限签名,不更新本地的第二门限签名,第二门限签名为最新的锁定的门限签名。
在另一种可能的实现方式中,目标门限签名被替换成为聚合签名、或者多重签名、或者一组数字签名。
在另一种可能的实现方式中,所述第一节点还用于若多个视图切换消息各自对应的第一签名分片聚合成一个门限签名,则跳过预准备阶段,并进入常规情况下的准备阶段,完成视图切换。
在另一种可能的实现方式中,预准备消息与影子区块无关,预准备消息包括空的交易信息;
所述签名模块1030,还用于:
若预准备消息中的门限签名被验证通过,且预准备消息中所提出的区块的等级高于节点的第二门限签名对应的区块的等级,则将预准备消息中区块的高度设置为门限签名对应的区块的高度加一,将设置完成后的预准备消息进行签名得到目标签名分片;
若预准备消息中的门限签名是第一预设类型的门限签名,且预准备消息中的视图编号等于节点的第二门限签名对应的视图编号,则将预准备消息中区块的高度设置为门限签名对应的区块的高度加二,将设置完成后的预准备消息进行签名得到目标签名分片;
若预准备消息中的门限签名是第二预设类型的门限签名,且预准备消息中的门限签名对应的区块等于节点的第二门限签名对应的区块,则将预准备消息中区块的高度设置为门限签名对应的区块的高度,将设置完成后的预准备消息进行签名得到目标签名分片。
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各个功能模块的划分进行举例说明,实际应用中,可以根据实际需要而将上述功能分配由不同的功能模块完成,即将设备的内容结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例还提供了一种计算机设备,计算机设备包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为:实现上述各个方法实施例中由节点(比如第一节点或除第一节点以外的任意一个节点)执行的步骤。
本申请实施例还提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述各个方法实施例中由区块链系统执行的方法,或者实现上述各个方法实施例中由区块链系统的第一节点执行的方法,或者实现上述各个方法实施例中由区块链系统的任意一个节点执行的方法。
需要说明的是,本申请实施例涉及的节点是计算机设备,计算机设备可以是终端设备或者服务器或者其他的电子设备,本申请实施例对此不加以限定。图11是根据一示例性实施例示出的一种终端设备1100的框图。例如,终端设备1100可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图11,终端设备1100可以包括以下一个或多个组件:处理组件1102,存储器1104,电源组件1106,多媒体组件1108,音频组件1110,输入/输出(I/O)的接口1112,传感器组件1114,以及通信组件1116。
处理组件1102通常控制终端设备1100的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1102可以包括一个或多个处理器1120来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1102可以包括一个或多个模块,便于处理组件1102和其他组件之间的交互。例如,处理组件1102可以包括多媒体模块,以方便多媒体组件1108和处理组件1102之间的交互。
存储器1104被配置为存储各种类型的数据以支持在终端设备1100的操作。这些数据的示例包括用于在终端设备1100上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1104可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1106为终端设备1100的各种组件提供电力。电源组件1106可以包括电源管理系统,一个或多个电源,及其他与为终端设备1100生成、管理和分配电力相关联的组件。
多媒体组件1108包括在所述终端设备1100和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1108包括一个前置摄像头和/或后置摄像头。当终端设备1100处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1110被配置为输出和/或输入音频信号。例如,音频组件1110包括一个麦克风(MIC),当终端设备1100处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1104或经由通信组件1116发送。在一些实施例中,音频组件1110还包括一个扬声器,用于输出音频信号。
I/O接口1112为处理组件1102和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1114包括一个或多个传感器,用于为终端设备1100提供各个方面的状态评估。例如,传感器组件1114可以检测到终端设备1100的打开/关闭状态,组件的相对定位,例如所述组件为终端设备1100的显示器和小键盘,传感器组件1114还可以检测终端设备1100或终端设备1100一个组件的位置改变,用户与终端设备1100接触的存在或不存在,终端设备1100方位或加速/减速和终端设备1100的温度变化。传感器组件1114可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1114还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1114还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件1116被配置为便于终端设备1100和其他设备之间有线或无线方式的通信。终端设备1100可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1116经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1116还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,终端设备1100可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1104,上述计算机程序指令可由终端设备1100的处理器1120执行以完成上述方法。
图12是根据一示例性实施例示出的一种服务器1200的框图。例如,服务器1200可以被提供为一服务器。参照图12,服务器1200包括处理组件1222,其进一步包括一个或多个处理器,以及由存储器1232所代表的存储器资源,用于存储可由处理组件1222的执行的指令,例如应用程序。存储器1232中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1222被配置为执行指令,以执行上述方法。
服务器1200还可以包括一个电源组件1226被配置为执行服务器1200的电源管理,一个有线或无线网络接口1250被配置为将服务器1200连接到网络,和一个输入输出(I/O)接口12512。服务器1200可以操作基于存储在存储器1232的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1232,上述计算机程序指令可由服务器1200的处理组件1222执行以完成上述方法。
本申请可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本申请的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。
这里参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (20)
1.一种区块处理方法,其特征在于,用于区块链系统中,所述区块链系统在常规情况下的协议为两阶段的共识协议,所述方法包括:
第一节点接收多个节点各自发送的视图切换消息,所述第一节点为所述区块链系统中的领导者节点,所述视图切换消息包括本地区块,所述本地区块为所述节点最新投票的区块,所述本地区块包括第一签名分片,所述第一签名分片为所述节点对所述本地区块的签名分片;
若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名,则所述第一节点广播预准备消息,所述预准备消息包括提出的区块;
对于所述区块链系统的多个节点中的每个节点,在接收到的所述预准备消息和所述节点的本地消息满足第一预设条件的情况下,将所述预准备消息进行签名得到目标签名分片,将携带有所述目标签名分片的消息回复至所述第一节点;
所述第一节点接收到多个携带有所述目标签名分片的消息后,对多个所述目标签名分片进行聚合得到目标门限签名;
所述方法还包括:
若多个所述视图切换消息各自对应的所述第一签名分片聚合成一个门限签名,则跳过预准备阶段,并进入常规情况下的准备阶段,完成视图切换。
2.根据权利要求1所述的方法,其特征在于,所述视图切换消息还包括第一门限签名,所述第一门限签名为所述节点本地存储的高度最大的区块的门限签名;
所述若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名,则所述第一节点广播预准备消息,包括:
若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名,则所述第一节点判断候选门限签名和候选区块是否满足第二预设条件,所述候选门限签名为多个所述视图切换消息各自的所述第一门限签名中所包含高度最大的区块的门限签名,所述候选区块为多个所述视图切换消息各自的所述本地区块中等级最高的区块;
所述第一节点在所述候选门限签名和所述候选区块满足所述第二预设条件的情况下,广播所述预准备消息。
3.根据权利要求2所述的方法,其特征在于,
所述第二预设条件包括:所述候选门限签名为第一预设类型的门限签名,且所述候选门限签名对应的区块的等级小于所述候选区块的等级;
所述预准备消息中提出的区块包括第一影子区块和第二影子区块,所述第一影子区块和所述第二影子区块是具有相同的区块内容的两个区块。
4.根据权利要求3所述的方法,其特征在于,
所述第一影子区块包括第一子区块,所述第一子区块延伸的区块为所述候选门限签名对应的区块,且所述第一子区块的高度是所述候选门限签名对应的区块的高度加一;
所述第二影子区块包括第二子区块,所述第二子区块延伸的区块为空块,且所述第二子区块的高度是所述候选门限签名对应的区块的高度加二。
5.根据权利要求2所述的方法,其特征在于,
所述第二预设条件包括:所述候选门限签名为第一预设类型的门限签名,且所述候选门限签名对应的区块的等级大于或者等于所述候选区块的等级;或者,所述候选门限签名包括一个第二预设类型的门限签名;
所述预准备消息中提出的区块仅包括一个目标区块;
其中,所述第一预设类型的门限签名为准备门限签名,所述第二预设类型的门限签名为预准备门限签名。
6.根据权利要求5所述的方法,其特征在于,
所述目标区块延伸的区块为所述候选门限签名对应的区块,且所述目标区块的高度是所述候选门限签名对应的区块的高度加一。
7.根据权利要求2所述的方法,其特征在于,
所述第二预设条件包括:所述候选门限签名包括第一目标签名和第二目标签名,所述第一目标签名和所述第二目标签名均为第二预设类型的门限签名;
所述预准备消息中提出的区块包括第三影子区块和第四影子区块,所述第三影子区块和所述第四影子区块是具有相同的区块内容的两个区块。
8.根据权利要求7所述的方法,其特征在于,
所述第三影子区块包括第三子区块,所述第三子区块延伸的区块为所述第一目标签名对应的区块;
所述第四影子区块包括第四子区块,所述第四子区块延伸的区块为所述第二目标签名对应的区块;
其中,所述第三子区块和所述第四子区块的高度均是所述候选门限签名对应的区块的高度加一。
9.根据权利要求1至8任一所述的方法,其特征在于,所述第一预设条件包括:
所述预准备消息中的门限签名被验证通过,且所述预准备消息中提出的区块的等级高于所述节点的第二门限签名对应的区块的等级,所述第二门限签名为最新的锁定的门限签名。
10.根据权利要求1至8任一所述的方法,其特征在于,所述第一预设条件包括:
所述预准备消息中的门限签名是第一预设类型的门限签名,且所述预准备消息中的视图编号等于所述节点的第二门限签名对应的视图编号,且所述预准备消息中提出的区块是虚拟区块,所述第二门限签名为最新的锁定的门限签名。
11.根据权利要求1至8任一所述的方法,其特征在于,所述第一预设条件包括:
所述预准备消息中的门限签名是第二预设类型的门限签名,且所述预准备消息中的门限签名对应的区块等于所述节点的第二门限签名对应的区块。
12.根据权利要求1至8任一所述的方法,其特征在于,所述第一节点接收到多个携带有所述目标签名分片的消息后,对多个所述目标签名分片进行聚合得到目标门限签名之后,还包括:
在视图切换后的第一个常规情况下的准备阶段中,所述区块链系统的所述节点收到第一预设类型的门限签名,不更新本地的第二门限签名,所述第二门限签名为最新的锁定的门限签名。
13.根据权利要求1至8任一所述的方法,其特征在于,所述目标门限签名被替换成为聚合签名、或者多重签名、或者一组数字签名。
14.根据权利要求1至8任一所述的方法,其特征在于,所述预准备消息与影子区块无关,所述预准备消息包括空的交易信息;
所述对于所述区块链系统的多个节点中的每个节点,在接收到的所述预准备消息和所述节点的本地消息满足第一预设条件的情况下,将所述预准备消息进行签名得到目标签名分片,包括:
对于所述区块链系统的多个节点中的每个节点,若所述预准备消息中的门限签名被验证通过,且所述预准备消息中所提出的区块的等级高于所述节点的第二门限签名对应的区块的等级,则将所述预准备消息中区块的高度设置为所述门限签名对应的区块的高度加一,将设置完成后的所述预准备消息进行签名得到所述目标签名分片;
若所述预准备消息中的门限签名是第一预设类型的门限签名,且所述预准备消息中的视图编号等于所述节点的第二门限签名对应的视图编号,则将所述预准备消息中区块的高度设置为所述门限签名对应的区块的高度加二,将设置完成后的所述预准备消息进行签名得到所述目标签名分片;
若所述预准备消息中的门限签名是第二预设类型的门限签名,且所述预准备消息中的门限签名对应的区块等于所述节点的第二门限签名对应的区块,则将所述预准备消息中区块的高度设置为所述门限签名对应的区块的高度,将设置完成后的所述预准备消息进行签名得到所述目标签名分片。
15.一种区块处理方法,其特征在于,用于区块链系统的第一节点中,所述区块链系统在常规情况下的协议为两阶段的共识协议,所述第一节点为所述区块链系统中的领导者节点,所述方法包括:
接收多个节点各自发送的视图切换消息,所述视图切换消息包括本地区块,所述本地区块为所述节点最新投票的区块,所述本地区块包括第一签名分片,所述第一签名分片为所述节点对所述本地区块的签名分片;
若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名,则广播预准备消息,所述预准备消息包括提出的区块,所述预准备消息指示所述区块链系统的多个节点中的每个节点,在接收到的所述预准备消息和所述节点的本地消息满足第一预设条件的情况下,将所述预准备消息进行签名得到目标签名分片,将携带有所述目标签名分片的消息回复至所述第一节点;
接收多个携带有所述目标签名分片的消息;
对多个所述目标签名分片进行聚合得到目标门限签名;
所述方法还包括:
若多个所述视图切换消息各自对应的所述第一签名分片聚合成一个门限签名,则跳过预准备阶段,并进入常规情况下的准备阶段,完成视图切换。
16.一种区块处理方法,其特征在于,用于区块链系统的节点中,所述区块链系统在常规情况下的协议为两阶段的共识协议,所述方法包括:
向第一节点发送视图切换消息,所述第一节点为所述区块链系统中的领导者节点,所述视图切换消息包括本地区块,所述本地区块为所述节点最新投票的区块,所述本地区块包括第一签名分片,所述第一签名分片为所述节点对所述本地区块的签名分片;
接收所述第一节点广播的预准备消息,所述预准备消息是所述第一节点接收多个节点各自发送的所述视图切换消息,若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名则广播的消息,所述预准备消息包括提出的区块;
在接收到的所述预准备消息和所述节点的本地消息满足第一预设条件的情况下,将所述预准备消息进行签名得到目标签名分片;
将携带有所述目标签名分片的消息回复至所述第一节点,所述第一节点还用于若多个所述视图切换消息各自对应的所述第一签名分片聚合成一个门限签名,则跳过预准备阶段,并进入常规情况下的准备阶段,完成视图切换。
17.一种区块处理装置,其特征在于,用于区块链系统中,所述区块链系统在常规情况下的协议为两阶段的共识协议,所述装置包括:
第一节点,用于接收多个节点各自发送的视图切换消息,所述第一节点为所述区块链系统中的领导者节点,所述视图切换消息包括本地区块,所述本地区块为所述节点最新投票的区块,所述本地区块包括第一签名分片,所述第一签名分片为所述节点对所述本地区块的签名分片;
所述第一节点,还用于若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名,则广播预准备消息,所述预准备消息包括提出的区块;
对于所述区块链系统的多个节点中的每个节点,用于在接收到的所述预准备消息和所述节点的本地消息满足第一预设条件的情况下,将所述预准备消息进行签名得到目标签名分片,将携带有所述目标签名分片的消息回复至所述第一节点;
所述第一节点,还用于接收到多个携带有所述目标签名分片的消息后,对多个所述目标签名分片进行聚合得到目标门限签名;
所述第一节点,还用于若多个所述视图切换消息各自对应的所述第一签名分片聚合成一个门限签名,则跳过预准备阶段,并进入常规情况下的准备阶段,完成视图切换。
18.一种区块处理装置,其特征在于,用于区块链系统的第一节点中,所述区块链系统在常规情况下的协议为两阶段的共识协议,所述第一节点为所述区块链系统中的领导者节点,所述装置包括:
接收模块,用于接收多个节点各自发送的视图切换消息,所述视图切换消息包括本地区块,所述本地区块为所述节点最新投票的区块,所述本地区块包括第一签名分片,所述第一签名分片为所述节点对所述本地区块的签名分片;
广播模块,用于若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名,则广播预准备消息,所述预准备消息包括提出的区块,所述预准备消息指示所述区块链系统的多个节点中的每个节点,在接收到的所述预准备消息和所述节点的本地消息满足第一预设条件的情况下,将所述预准备消息进行签名得到目标签名分片,将携带有所述目标签名分片的消息回复至所述第一节点;
所述接收模块,还用于接收多个携带有所述目标签名分片的消息;
聚合模块,用于对多个所述目标签名分片进行聚合得到目标门限签名;
所述装置还用于若多个所述视图切换消息各自对应的所述第一签名分片聚合成一个门限签名,则跳过预准备阶段,并进入常规情况下的准备阶段,完成视图切换。
19.一种区块处理装置,其特征在于,用于区块链系统的节点中,所述区块链系统在常规情况下的协议为两阶段的共识协议,所述装置包括:
发送模块,用于向第一节点发送视图切换消息,所述第一节点为所述区块链系统中的领导者节点,所述视图切换消息包括本地区块,所述本地区块为所述节点最新投票的区块,所述本地区块包括第一签名分片,所述第一签名分片为所述节点对所述本地区块的签名分片;
接收模块,用于接收所述第一节点广播的预准备消息,所述预准备消息是所述第一节点接收多个节点各自发送的所述视图切换消息,若多个所述视图切换消息各自对应的所述第一签名分片无法聚合成一个门限签名则广播的消息,所述预准备消息包括提出的区块;
签名模块,用于在接收到的所述预准备消息和所述节点的本地消息满足第一预设条件的情况下,将所述预准备消息进行签名得到目标签名分片;
所述发送模块,还用于将携带有所述目标签名分片的消息回复至所述第一节点,所述第一节点还用于若多个所述视图切换消息各自对应的所述第一签名分片聚合成一个门限签名,则跳过预准备阶段,并进入常规情况下的准备阶段,完成视图切换。
20.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至14中任意一项所述的方法,或者实现权利要求15所述的方法,或者实现权利要求16所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210383220.1A CN114726881B (zh) | 2022-04-12 | 2022-04-12 | 区块处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210383220.1A CN114726881B (zh) | 2022-04-12 | 2022-04-12 | 区块处理方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114726881A CN114726881A (zh) | 2022-07-08 |
CN114726881B true CN114726881B (zh) | 2023-05-16 |
Family
ID=82244459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210383220.1A Active CN114726881B (zh) | 2022-04-12 | 2022-04-12 | 区块处理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114726881B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114050904A (zh) * | 2022-01-11 | 2022-02-15 | 天津眧合数字科技有限公司 | 一种基于两层级领导节点分片结构的共识系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112329051B (zh) * | 2020-10-23 | 2023-09-19 | 中国科学院数据与通信保护研究教育中心 | 一种安全高效的共识机制实现方法及系统 |
CN112532396A (zh) * | 2020-12-04 | 2021-03-19 | 广东工业大学 | 一种基于聚合签名的优化拜占庭容错方法及存储介质 |
-
2022
- 2022-04-12 CN CN202210383220.1A patent/CN114726881B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114050904A (zh) * | 2022-01-11 | 2022-02-15 | 天津眧合数字科技有限公司 | 一种基于两层级领导节点分片结构的共识系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114726881A (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107579848B (zh) | 实用拜占庭容错共识机制中动态更改共识节点的方法 | |
JP6874224B2 (ja) | クロスブロックチェーン認証方法および装置 | |
KR102221328B1 (ko) | 교차 블록체인 인증 방법, 장치, 및 전자 디바이스 | |
EP3726804B1 (en) | Device authentication method, service access control method, device, and non-transitory computer-readable recording medium | |
EP4216077A1 (en) | Blockchain network-based method and apparatus for data processing, and computer device | |
CN110958118A (zh) | 证书认证管理方法、装置、设备及计算机可读存储介质 | |
CN111277647B (zh) | 区块链网络成员管理方法、装置、设备和介质 | |
CN111133733A (zh) | 用于基于云平台的自动区块链部署的方法和系统 | |
CN112714158A (zh) | 事务处理方法、中继网络、跨链网关、系统、介质和设备 | |
EP3598333B1 (en) | Electronic device update management | |
CN111737365B (zh) | 存证处理方法、装置、设备和存储介质 | |
CN110647583B (zh) | 一种区块链构建方法、装置、终端及介质 | |
CN113055188A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN102917012A (zh) | 存储与通信去重复 | |
CN116112506A (zh) | 基于联盟链系统的交易信息处理方法、装置、介质及设备 | |
CN111937013B (zh) | 电子设备管理 | |
CN114726881B (zh) | 区块处理方法、装置及存储介质 | |
CN114584326A (zh) | 区块链数据处理方法、装置、电子设备及存储介质 | |
CN116095081A (zh) | 基于区块链系统的事件处理方法及装置、设备、介质 | |
JP2009122898A (ja) | コミュニティ通信ネットワーク、通信制御方法、ユーザ端末、端末制御方法、およびプログラム | |
CN115956235A (zh) | 在分布式网络环境中经由共识验证事务的通信系统和方法 | |
CN111553990A (zh) | 存储验票记录的方法、验票终端及系统 | |
KR102626868B1 (ko) | 키 격리 기반의 서명 방법 및 시스템 | |
CN113271229B (zh) | 设备控制方法及装置、存储设备、安全设备、交换机、路由器及服务器 | |
CN116827958A (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 |