CN110941859A - 用于区块链形成共识的方法、设备、计算机可读存储介质和计算机程序产品 - Google Patents
用于区块链形成共识的方法、设备、计算机可读存储介质和计算机程序产品 Download PDFInfo
- Publication number
- CN110941859A CN110941859A CN201811110137.7A CN201811110137A CN110941859A CN 110941859 A CN110941859 A CN 110941859A CN 201811110137 A CN201811110137 A CN 201811110137A CN 110941859 A CN110941859 A CN 110941859A
- Authority
- CN
- China
- Prior art keywords
- node
- block
- consensus
- message
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 92
- 230000015572 biosynthetic process Effects 0.000 title claims abstract description 16
- 238000004590 computer program Methods 0.000 title claims abstract description 15
- 230000004044 response Effects 0.000 claims abstract description 32
- 238000012790 confirmation Methods 0.000 claims description 51
- 238000010200 validation analysis Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 14
- 238000004220 aggregation Methods 0.000 claims 1
- 230000002776 aggregation Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 21
- 238000004422 calculation algorithm Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本公开的实施例涉及一种区块链形成共识的方法、用于区块链的节点的设备、计算机可读存储介质和计算机程序产品。该方法包括:包括:在区块链的主节点处,向多个其他节点发送建议区块,建议区块与待处理的交易相关联;响应于确认所接收到的确认消息的个数大于第一预定值,确定与建议区块相关联的主节点签名消息,每一个确认消息是由多个其他节点中的一个节点响应于确认建议区块通过验证而发送的;以及向其他节点广播主节点签名消息,以用于多个其他节点基于主节点签名消息来确认是否已经针对建议区块的前一区块达成共识。
Description
技术领域
本公开的实施例总体上涉及区块链的管理方法,并且具体地,涉及用于区块链中形成共识的方法、设备、计算机存储介质和计算机程序产品。
背景技术
区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、以及利用智能合约来编程和操作数据的一种分布式基础架构技术。鉴于区块链具有去中心化、不可篡改、过程透明可追踪等技术优势,因此在金融、征信、资产管理等众多领域拥有广泛的应用前景。
区块链各节点形成共识的方法是区块链技术的核心之一。传统的区块链形成共识的方法例如是基于拜占庭容错(PBFT)算法、PAXOS 算法或者RAFT算法而构建的。
以传统的基于PBFT算法的共识方法为例,其主要包括三个阶段,分别是预准备(PRE-PREPARE)阶段,准备(PREPARE)阶段和提交(COMMIT)阶段。各节点为达成共识至少需要在PREPARE阶段和COMMIT阶段进行两轮投票,其中,在每一轮投票中,每个节点需要向区块链所有其他节点广播投票的结果,因此会给网络通信资源带来巨大的压力,当网络通信资源有限时,区块链的节点数量也会受限。
有鉴于此,有必要改进传统的区块链形成共识的方案,以便降低用于共识达成的网络通信开销,以及提高共识达成的效率。
发明内容
本公开提供一种区块链形成共识的方法和设备,能够降低用于共识达成的网络通信开销,以及提高共识达成的效率。
根据本公开的第一方面,提供了一种用于区块链形成共识的方法。该方法包括:在区块链的主节点处,向多个其他节点发送建议区块,建议区块与待处理的交易相关联;响应于确认所接收到的确认消息的个数大于第一预定值,确定与建议区块相关联的主节点签名消息,每一个确认消息是由多个其他节点中的一个节点响应于确认建议区块通过验证而发送的;以及向其他节点广播主节点签名消息,以用于多个其他节点基于主节点签名消息来确认是否已经针对建议区块的前一区块达成共识。
根据本发明的第二方面,还提供一种用于区块链形成共识的方法。该方法包括:在区块链的节点处,获取来自区块链的主节点广播的建议区块,建议区块与待处理的交易相关联;响应于确认建议区块通过验证,向主节点发送关于建议区块的确认消息;接收主节点广播的、与建议区块相关联的主节点签名消息,主节点签名消息是主节点响应于确认所接收的确认消息的个数超过第一预定值而发送的;以及基于主节点签名消息,确定是否已经针对建议区块的前一区块达成共识。
根据本发明的第三方面,还提供一种区块链的节点的设备。该设备包括:存储器,被配置为存储一个或多个程序;处理单元,耦合至该存储器并且被配置为执行该一个或多个程序使该认证设备执行本公开的第一方面的方法。
根据本发明的第四方面,还提供一种区块链的节点的设备。该设备包括:存储器,被配置为存储一个或多个程序;处理单元,耦合至该存储器并且被配置为执行该一个或多个程序使该认证设备执行本公开的第二方面的方法。
根据本公开的第五方面,提供了一种非瞬态计算机可读存储介质。该非瞬态计算机可读存储介质上存储有机器可执行指令,该机器可执行指令在被执行时使机器执行本公开的第一和二中任一方面的方法。
根据本公开的第六方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行本公开的第一和二中任一方面的方法。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
图1示出了去中心化的区块链网络100的结构示意图;
图2示出了基于传统的PBFT算法的共识方法200的示意图;
图3示出了根据本公开的实施例的区块链形成共识的方法300的流程图;
图4示出了根据本公开的实施例的区块链形成共识的方法400的流程图;
图5示出了根据本公开的实施例的区块链形成共识的方法500的数据交互示意图;
图6示意性示出了适于用来实现本公开实施例的电子设备600的框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
图1示出了一种去中心化的网络100的结构示意图。如图1所示,网络100包括N个网络节点110-1、110-2、110-3至110-N,网络节点中的每一个节点与其他节点通过网络120相连。其中,为了保证共识的安全性,节点数N>=3f+1(N和f为自然数),f为可以容忍发生拜占庭错误的节点数。例如,当网络中的节点110-1基于网络中的交易产生一个新建议的区块,节点110-1将该新的建议区块广播给网络100中与节点110-1相连的所有其他节点110-2、110-3至110-N。接收到该区块的各其他节点广播关于针对该建议区块表示认同的投票结果。如果投票结果符合区块链的共识机制,则确认针对该建议区块已经达成共识,则该达成共识的建议区块被附加在原有区块链的末端,相应的,区块链的区块高度值例如由原有的H增加到H+1,其中 H为自然数。
如上文所描述的,传统的区块链共识方法例如是基于PBFT算法而构建的。基于PBFT算法的共识机制一般需要经历三个阶段协议、两轮投票环节,才能确认针对主节点广播的请求达成共识。图2示出了基于传统的PBFT算法的共识方法200的示意图。如图2所示,在 220,用户202发送用户请求给主节点210-1。主节点210-1接收到来自客户端220的用户请求之后,在222,向其他节点,例如节点210-2、 210-3、210-N广播PRE-PREPARE消息,这是PRE-PREPARE阶段。节点210-2、210-3、210-N在收到该PRE-PREPARE消息之后,在224,验证该PRE-PREPARE消息,例如节点210-2、210-3在确认接受该 PRE-PREPARE后,向所有其他节点广播PREPARE消息,这是PREPARE阶段。在一定时间范围内,在226,节点210-1、210-2、210-3如果收到超过阈值个数(例如超过节点总数的2/3)的来自不同节点的PREPARE消息,则向其它节点广播COMMIT消息;在228,节点 210-1、210-2、210-3如果收到COMMIT消息个数例如超过节点总数的2/3,则向用户202发送消息。这是COMMIT阶段,则表明已经针对当前用户请求达成共识,节点210-1、210-2、210-3会执行该用户请求,写入数据。
可见,在传统的基于PBFT算法的共识方法中,各节点为达成共识至少需要经历两轮投票。假设网络有N个节点,N为自然数。在 PREPARE阶段,每个节点如果确认接受PRE-PREPARE消息,则需要向N-1个节点广播PAREPARE消息,所需的相应通信次数约在 N2-N量级。在COMMIT阶段,每个节点确认收到超过节点总数的2/3 的PREPARE消息后,还需要向N-1个节点广播COMMIT消息,所需的相应通信次数约在N2-N量级。因此,传统的基于PBFT算法的针对用户消息的每轮共识所需的通信次数至少达到N2数量级。这意味着,N个网络节点为了达成共识至少需要N2数量级的网络通信开销,这显然给网络通信资源带来巨大的压力,同时,随着网络节点的增加,网络通信开销不是线性增长,而是以平方的方式增长。在网络通信资源有限的情况下,有可能因为来不及接受大量的通信交互消息,而导致长时间无法达成共识,这将制约在共识协议中参与的节点数目。例如,对于经典的基于PBFT算法的共识方案,当节点数量超过16个时,将不容易达成共识。
经研究发现,传统的PBFT算法中,其所针对的用户请求是相互独立的,即共识所针对的不同用户请求之间是没有关联的。换言之,传统基于PBFT算法的区块链共识方法没有考虑区块链的链式结构特点。
区块链的区块之间是链式结构。具体而言,每个区块都有一个块头和块主体。当前区块的块头包含前一个区块的哈希值。鉴于区块链的不同区块之间存在上述关联,因此,针对每一个区块的确认投票,实质上相当于针对以该区块为结尾的整个链的确认投票。换言之,各节点针对当前区块的投票结果的效力不仅仅针对当前区块有效,而且可以被复用为针对前一区块的有效投票结果。
基于上述构思,为了至少部分地解决前文所提及的问题以及其他潜在问题中的一个或者多个,本公开的示例实施例提出了提供了一种用于区块链形成共识的方法。该方法包括:在区块链的主节点处,向多个其他节点发送建议区块,建议区块与待处理的交易相关联;响应于确认所接收到的确认消息的个数大于第一预定值,确定与建议区块相关联的主节点签名消息,每一个确认消息是由多个其他节点中的一个节点响应于确认建议区块通过验证而发送的;以及向其他节点广播主节点签名消息,以用于多个其他节点基于主节点签名消息来确认是否已经针对建议区块的前一区块达成共识。
在上述方案中,通过基于确认当前建议区块通过验证的节点个数大于第一预定值的投票结果而确认针对当前建议区块的前一区块达成共识,使得在每轮共识达成的过程中,各节点只需针对当前区块进行一轮投票,当该投票结果指示确认票超过设定阈值时,便可以达成针对前一区块的共识。通过上述方案,使得针对每个区块仅需经历一轮投票,就能确认是否针对前一区块达成共识。由于少了一轮投票,相对于传统需经历两轮投票的共识方法而言,压缩了近半数的通信开销。另外,通过各节点将确认当前建议区块通过验证的确认消息发送给主节点,而非各节点向所有其他节点广播所述确认消息,以及通过主节点再将基于所接收的确认消息而生成的主节点签名消息发给各节点,而非各节点向其他节点广播prepare消息,使得网络通信次数由传统共识方法所需的N2量级至少压缩到N的量级(N为网络节点数)。因此,通过采用本公开的示例实施例的方案,能够降低用于共识达成的网络通信开销,以及提高共识达成的效率。
以下将结合图3至图6描述根据本公开的实施例的区块链形成共识的方案。如图3所示,图3示出了根据本公开的实施例的区块链形成共识的方法300的流程图。应当理解,方法300例如可以在图6所描述的电子设备600处执行。为了方便讨论,不失一般性地,以如图1所示的去中心化的网络100的节点为例来描述方法300。应当理解,方法300还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在302,在区块链的主节点处,向多个其他节点发送建议区块,建议区块与待处理的交易相关联。在一些实施例中,主节点110-1将所收集到一个或多个交易打包为一个新的建议区块,然后向网络的各节点广播该建议区块,以便针对该建议区块达成共识。当前建议区块的区块头例如至少包括该建议区块所在的高度值H、前一个区块的哈希值。该建议区块的区块主体例如包括多个交易列表。
在304,响应于确认所接收到的确认消息的个数大于第一预定值,确定与建议区块相关联的主节点签名消息,每一个确认消息是由多个其他节点中的一个节点响应于确认建议区块通过验证而发送的。在一些实施例中,第一预定值为节点数N的2/3,节点数N>3f+1,f为可以容忍发生拜占庭错误的节点数。例如,主节点110-1确认指示建议区块通过验证的确认消息的个数超过节点总数的2/3,即投票认同该建议区块的节点个数超过节点总数的2/3,则生成主节点签名消息。有时网络100中会出现拜占庭问题节点,例如,有的节点故意投错误票、给不同节点发送不同的消息(例如发送不同的区块或投票消息)。通过采用上述手段,可以避免因拜占庭错误而导致的无法针对当前建议区块达成共识;进一步保证共识的安全性。
关于建议区块的确认消息,在一些实施例中,各节点,例如节点 110-2、110-3、110-N在接收到建议区块或者建议区块的区块头后,确认该建议区块是否通过验证,当确认该建议区块通过验证,则向主节点110-1发送确认信息,该确认信息中包括经由该节点的私钥签名的确认节点签名信息。
关于主节点签名消息,其可以经由多种方式确定。在一些实施例中,主节点110-1可以首先获取每一个确认消息中所包括的确认节点签名信息,其中该确认节点签名信息是经由发送确认消息的节点私钥签名的;然后基于所接收到的每一个确认节点签名信息,生成聚合签名和位图,其中该位图例如是二进制字符串,通过字符串每一位的二进制“0”或“1”来指示哪些节点向主节点发送了指示建议区块通过验证的确认节点签名信息。在一些实施例中,该聚合签名例如可以通过将所获取的每一个确认节点私钥签名相乘而生成。其他节点在接收到该聚合签名后,可利用各节点的公钥和所接收的位图来验证具体哪些节点已经确认验证通过该建议区块,以及获知确认节点的数量。例如,通过将基于位图所对应的确认节点的公钥,聚合生成聚合公钥,再利用聚合公钥验证聚合签名。在一些实施例中,主节点110-1也可以在所生成的主节点签名消息中包括每一个确认消息中所包括的确认节点签名信息,其中所述确认节点签名信息是经由发送所述确认消息的节点私钥签名的。在上述方案中,通过在确认消息中包括确认节点的私钥签名信息,避免主节点对所收到的确认消息进行篡改。另外,通过主节点基于所接收到的多个确认消息中的多个确认节点的私钥签名而生成一个聚合签名,在保证签名信息的认证性、数据完整性和不可否认性的同时,还减少了签名信息的长度,有利于进一步压缩通信开销。
在306,向其他节点广播主节点签名消息,以用于多个其他节点基于主节点签名消息来确认是否已经针对建议区块的前一区块达成共识。其中,前一区块是指比当前建议区块的高度小1的区块。在一些实施例中,当建议区块的高度值为1时,不存在高度值为零的区块,因此设置一个空区块为前一区块,并基于主节点签名消息来确认是否已经针对空区块达成共识。在上述方案中,通过各节点将带有私钥签名的确认消息发给主节点,再由主节点将主节点签名消息广播给各节点,因此,本公开的共识方法相对于传统的各节点互相发送确认信息的方式,达成共识所需的通信开销至少从N2量级压缩到2N量级。另外,通过将针对当前建议区块的确认投票结果复用为针对前一区块的确认投票结果。使得平均针对每个区块仅需经历一轮投票,就能确认是否针对前一区块达成共识。由于少了一轮投票,相对于传统的两轮投票的共识方法而言,在具有同等确认效力的前提下,压缩了近半数的通信开销。
关于确认前一区块是否达成共识,在一些实施例中,主节点110-1 在生成包括聚合签名和位图的主节点签名消息之后,广播当前建议区块的主节点签名消息。各节点110-2、110-3或110-N在接收到主节点签名消息中的该聚合签名和位图之后,基于公钥和位图,确认该聚合签名是否通过验证,当该聚合签名通过验证,则确认针对前一区块已经达成共识。在一些实施例中,主节点110-1在生成包括每一个确认节点签名信息的主节点签名消息之后,广播当前建议区块的主节点签名消息。各节点110-2、110-3或110-N在接收到主节点签名消息之后,确认所述主节点签名中包括的确认节点签名信息的个数是否大于第一预定值,以及响应于确认所述确认节点签名信息的个数大于第一预定值,确认已经针对前一区块达成共识。其中第一预定值例如大于等于参与此轮共识的节点总数的2/3。例如,当前建议区块的高度为3,当其他节点110-2、110-3至110-N确认主节点签名消息中的聚合签名通过验证,或者确认主节点签名消息中所包括的确认节点签名信息的个数大于节点总数的2/3,则确认针对高度为2的区块达成共识。
在一些实施例中,方法300还包括:基于与所述前一区块相关联的聚合签名和用于指示本轮共识的标识,确定所述主节点。例如,如果不能在预定时间内针对当前建议区块达成共识时,需要及时切换主节点,以便开始新一轮的共识,进而保证区块链的活性。在一些实施例中,可以利用可验证随机函数,随机确定用于下一轮共识的主节点。例如基于与所述前一区块相关联的聚合签名和用于指示本轮共识的标识,随机确定用于下一轮共识的主节点。在上述方案中,通过采取上述随机确定主节点的方式,使得所有节点不仅都可验证该随机数是随机产生的,而且无法提前预知下一轮的主节点是哪一个节点,进而可以避免下一轮共识过程的主节点被恶意攻击。因而,相对于传统的基于轮询方式来确定主节点的方式更为安全。
如图4所示,图4示出了根据本公开的实施例的区块链形成共识的方法400的流程图。应当理解,方法400例如可以在图6所描述的电子设备600处执行。为了方便讨论,不失一般性地,以如图1所示的去中心化的网络100的节点为例,来描述方法400。应当理解,方法300还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在402,在区块链的节点处,获取来自区块链的主节点广播的建议区块,该建议区块与待处理的交易相关联。例如,在节点110-2、 110-3至110-N中的任一节点处,接收主节点110-1所广播的建议区块,以便针对该建议区块进行验证。
在404,响应于确认建议区块通过验证,向主节点发送关于所述建议区块的确认消息。在一些实施例中,例如,每个节点使用BLS 算法生成与本节点相关联的公钥和私钥。节点110-2、110-3或110-N 响应于所接收到的建议区块通过验证,生成经由本节点所关联的私钥签名的确认节点签名信息;然后向主节点110-1发送包括该确认节点签名信息的确认消息。通过对确认消息中所包括的确认节点签名信息的识别与统计,主节点可以确认获知多少数量的节点、以及哪些节点验证通过了建议区块,即,对建议区块进行了认同投票。
在一些实施例中,节点可以基于以下至少一项来确认该建议区块是否通过验证:所述建议区块的高度值、用于指示本轮共识的标识、所述前一区块的哈希值、所述前一区块是否存储在所述节点、所述交易是否通过验证。在一些实施例中,当验证建议区块的高度值为当前高度、共识的标识指示是本轮共识、当前建议区块的前一区块的哈希值正确、前一区块存储在本节点、以及建议区块中的交易通过验证,即,在上述条件同时满足时,才确认建议区块通过验证,向主节点 110-1发送确认消息。
在406,接收主节点110-1广播的、与建议区块相关联的主节点签名消息,该主节点签名消息是主节点响应于确认所接收的确认消息的个数超过第一预定值而发送的。在一些实施例中,第一预定值为节点数N的2/3,节点数N>3f+1,f为可以容忍发生拜占庭错误的节点数。例如,主节点110-1确认所收到的确认消息的个数超过节点总数的 2/3,即投票认同该建议区块的节点个数超过节点总数的2/3,则生成与当前建议区块关联的主节点签名消息,主节点110-1然后向其他节点110-2、110-3至110-N广播该主节点签名消息,各节点接收主节点 110-1广播的主节点签名消息。
在408,基于所收到的主节点签名消息,确定是否已经针对建议区块的前一区块达成共识。可以基于多种方式确认是否已经针对前一区块达成共识。在一些实施例中,节点110-2、110-3或110-N收到的主节点签名消息中包括聚合签名和用于指示所述确认消息的发送节点的位图。各节点首先获取上述聚合签名和位图;然后基于公钥和位图,确认聚合签名是否通过验证;以及响应于确认该聚合签名通过验证,确定已经针对前一区块达成共识。在一些实施例中,各节点首先确认所述主节点签名中包括的经对应节点私钥签名的确认节点签名信息的个数是否大于第一预定值,例如大于节点总数的2/3,其中所述确认节点签名信息是经由发送所述确认消息的节点私钥签名的;响应于确认节点签名信息的个数大于第一预定值,确认已经针对前一区块达成共识。
在一些实施例中,方法400还包括:确认是否在预订时间内接收到与建议区块相关联的主节点签名消息,该预定时间与建议区块的本轮共识相关联。例如,节点110-2、110-3或110-N在针对当前建议区块的本轮投票开始时,启动预先设定时间的计时器,然后检测在预定时间内是否收到主节点110-1所广播的主节点签名消息。如果确认在预定时间内没有收到主节点110-1所广播的主节点签名消息,则认为针对建议区块本轮没有达成共识,需要切换主节点。通过采用上述手段,使得当长时间不能针对当前建议区块达成共识时,及时切换主节点,以便开始新一轮的共识过程,进而保证区块链的活性。
在一些实施例中,节点110-2、110-3或110-N可利用可验证随机函数来确定用于下一轮共识的主节点。例如节点110-2、110-3或110-N 基于与前一区块相关联的聚合签名和用于指示本轮共识的标识,随机确定用于下一轮共识的主节点。例如,通过基于前一区块相关联的聚合签名和用于指示本轮共识的标识进行哈希计算,然后将该哈希值取模,并进行索引,来确定下一轮共识的主节点具体是哪一个节点。在一些实施例中,如当前建议区块的高度值为1,鉴于不存在高度值为 0的区块,因此基于空块生成随机数,以便确定主节点。在上述方案中,由于基于前一区块相关联的聚合签名是各节点在前一区块共识过程的最后阶段才由当时的主节点广播而获取的,不可提前获知,因此,通过采取上述随机确定主节点的方式,使得所有节点不仅都可验证该随机数是随机产生的,而且无法提前预知下一轮的主节点是哪一个节点,进而可以避免下一轮共识过程的主节点被恶意攻击。因而,相对于传统的基于轮询方式来确定主节点的方式更为安全。
以下结合图5来说明公开的实施例的区块链形成共识的方法 500。图5示出了根据本公开的实施例的区块链形成共识的方法500 的数据交互示意图。应当理解,方法500例如可以在图6所描述的电子设备600处执行。应当理解,方法500还可以包括未示出的附加动作和/或可以省略所示出的动作,本公开的范围在此方面不受限制。
在上述方案中,在520,主节点510-1向各节点510-1、510-2至510-N广播当前区块M。区块M即前文提及的本轮共识过程中的当前建议区块,M为大于都等于1的自然数。在522,各节点510-1、510-2 至510-N响应于确认区块M通过验证,向主节点510-1发送包括有经由私钥签名的确认节点签名信息的确认消息。在524,主节点510-1 确认所接收到的确认消息的个数是否大于第一预定值,并响应于所接收到的确认消息的个数大于第一预定值,基于每一个确认消息中的确认节点签名信息生成主节点签名消息(例如,其中包括聚合签名和位图)。在526,主节点510-1向各节点510-1、510-2至510-N广播与区块M相关联的主节点签名消息。在528,各节点510-1、510-2至 510-N响应于确认与建议区块M关联的主节点签名消息通过验证(例如聚合签名通过验证),确认针对前一区块M-1达成共识。然后各相关节点处理前一区块M-1中的相关交易。
例如,在530,主节点510-1基于新的交易打包形成一新的建议区块M+1,向各节点510-1、510-2至510-N广播该建议区块M+1。在532,各节点510-1、510-2至510-N响应于确认建议区块M+1通过验证,向主节点510-1发送包括经由私钥签名的确认节点签名信息的确认消息。在534,主节点510-1确认所接收到的确认消息的个数是否大于第一预定值(例如节点总数的2/3),并响应于所接收到的确认消息的个数大于第一预定值,基于每一个确认消息中的确认节点签名信息生成与建议区块M+1相关联的主节点签名消息(例如,其中包括聚合签名和位图)。在536,主节点510-1向各节点510-1、510-2 至510-N广播该主节点签名消息。在538,各节点510-1、510-2至510-N 响应于确认与建议区块M+1关联的主节点签名消息通过验证(例如聚合签名通过验证),确认针对区块M达成共识。然后各相关节点处理区块M中的相关交易。在上述方案中,如果各节点510-1、510-2 至510-N基于主节点签名消息确认超过总数2/3的不同节点针对当前区块M进行了确认投票,鉴于当前区块M中包括前一区块M-1的哈希值,上述针对当前区块M的确认投票结果的效力也被复用为针对区块M的前一区块M-1的再次确认投票,即确认超过总数2/3的不同节点也同时针对当前区块M的前一区块M-1进行了确认。由于之前相关节点已经通过接收例如与前一区块M-1关联的聚合签名的方式确认收到了针对前一区块M-1的超过节点总数的2/3的确认投票 (类似于针对前一区块“PREPARE阶段”的确认投票结果),又通过与当前区块M关联的聚合签名方式确认了针对前一区块M-1的超过节点总数的2/3再次确认投票(类似于针对前一区块“COMMIT阶段”的确认投票结果),因此,在效力上相当于针对前一区块M-1 经历两轮超过节点总数的2/3表示认同的确认投票。因此确认针对前一区块M-1达到共识。通过上述方案,使得平均针对每个区块M、 M-1或M+1仅实际经历一轮投票过程,就能确认是否针对相应区块达成共识。由于少了一轮投票过程,相对于传统需历经两轮投票的共识方法而言,在确保经充分确认投票效力的情况下,压缩了近半数的通信开销,形成共识的过程也更加高效。
图6示意性示出了适于用来实现本公开实施例的电子设备600的框图。设备600可以用于实现执行图3至5所示的用于区块链的共识方法300、400和500的***。如图6所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM) 603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603 中,还可存储设备600操作所需的各种程序和数据。CPU601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605 也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元601执行上文所描述的各个方法和处理,例如执行用于重复数据确定方法200。例如,在一些实施例中,方法100可被实现为计算机软件程序,其被存储于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/ 或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由CPU 601执行时,可以执行上文描述的方法100的一个或多个操作。备选地,在其他实施例中,CPU 601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法300、400 和500的一个或多个动作。
需要进一步说明的是,本公开可以是方法、装置、***和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM 或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,该编程语言包括面向对象的编程语言—诸如Smalltalk、 C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列 (FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,该模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
以上该仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。
Claims (16)
1.一种区块链形成共识的方法,包括:
在区块链的主节点处,向多个其他节点发送建议区块,所述建议区块与待处理的交易相关联;
响应于确认所接收到的确认消息的个数大于第一预定值,确定与所述建议区块相关联的主节点签名消息,每一个所述确认消息是由所述多个其他节点中的一个节点响应于确认所述建议区块通过验证而发送的;以及
向所述其他节点广播所述主节点签名消息,以用于所述多个其他节点基于所述主节点签名消息来确认是否已经针对所述建议区块的前一区块达成共识。
2.根据权利要求1所述的方法,其中确认是否针对所述前一区块达成共识包括:
响应于确认所述建议区块的高度值为1,基于所述主节点签名消息,确认是否已经针对空区块达成共识。
3.根据权利要求1所述的方法,其中确定所述主节点签名消息包括:
获取每一个所述确认消息中包括的确认节点签名信息,其中所述确认节点签名信息是经由发送所述确认消息的节点私钥签名的;
基于所述确认节点签名信息,生成与所述建议区块相关联的聚合签名和用于指示所述确认消息的发送节点的位图,其中所述主节点签名消息包括所述聚合签名和所述位图。
4.根据权利要求3所述的方法,其中确定所述聚合签名包括:
基于所述确认节点签名信息的乘积的哈希值,确定所述聚合签名。
5.根据权利要求3所述的方法,其中确认是否已经针对与所述建议区块的前一区块达成共识包括:
响应于确认与所述建议区块相关联的所述聚合签名通过验证,确认已经针所述前一区块达成共识。
6.根据权利要求1所述的方法,其中所述主节点签名消息包括每一个所述确认消息中所包括的确认节点签名信息,其中所述确认节点签名信息是经由发送所述确认消息的节点私钥签名的。
7.根据权利要求4所述的方法,还包括:
基于与所述前一区块相关联的聚合签名和用于指示本轮共识的标识,确定所述主节点。
8.一种用于区块链形成共识的方法,包括:
在区块链的节点处,获取来自区块链的主节点广播的建议区块,所述建议区块与待处理的交易相关联;
响应于确认所述建议区块通过验证,向所述主节点发送关于所述建议区块的确认消息;
接收主节点广播的、与所述建议区块相关联的主节点签名消息,所述主节点签名消息是所述主节点响应于确认所接收的所述确认消息的个数超过第一预定值而发送的;以及
基于所述主节点签名消息,确定是否已经针对所述建议区块的前一区块达成共识。
9.根据权利要求8所述的方法,其中确认所述建议区块通过验证包括:
基于以下至少一项来确认所述建议区块是否通过验证:所述建议区块的高度值、用于指示本轮共识的标识、所述前一区块的哈希值、所述前一区块是否存储在所述节点、所述交易是否通过验证。
10.根据权利要求8所述的方法,其中向所述主节点发送所述确认消息包括:
响应于确认所述建议区块通过验证,生成经由所述节点的私钥签名的确认节点签名信息;以及
向所述主节点发送包括所述确认节点签名信息的所述确认消息。
11.根据权利要求8所述的方法,其中确认是否已经针对所述前一区块达成共识包括:
获取所述主节点签名消息中的聚合签名和用于指示所述确认消息的所述发送节点的位图;
基于公钥和所述位图,验证所述聚合签名;
响应于确认所述聚合签名通过验证,确定已经针对所述前一区块达成共识。
12.根据权利要求8所述的方法,其中确认是否已经针对前一区块达成共识包括:
确认所述主节点签名消息中所包括的确认节点签名信息的个数是否大于所述第一预定值,其中所述确认节点签名信息是经由发送所述确认消息的节点私钥签名的;
响应于确认所述确认节点签名信息的个数大于所述第一预定值,确认已经针对前一区块达成共识。
13.根据权利要求8所述的方法,还包括:
确认是否在预订时间内接收到与所述建议区块相关联的所述主节点签名消息,所述预定时间与所述建议区块的本轮共识相关联;
响应于确认在所述预订时间内未接收到所述主节点签名消息,基于与所述前一区块相关联的主节点签名消息和用于指示本轮共识的标识,随机确定用于下一轮共识的主节点。
14.一种用于区块链的节点的设备,所述设备包括:
存储器,被配置为存储一个或多个程序;
处理单元,耦合至所述存储器并且被配置为执行所述一个或多个程序使所述管理设备执行权利要求1-13中任一项所述的方法。
15.一种非瞬态计算机可读存储介质,其上存储有机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1-13中任一项所述的方法的步骤。
16.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读存储介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1-13中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811110137.7A CN110941859A (zh) | 2018-09-21 | 2018-09-21 | 用于区块链形成共识的方法、设备、计算机可读存储介质和计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811110137.7A CN110941859A (zh) | 2018-09-21 | 2018-09-21 | 用于区块链形成共识的方法、设备、计算机可读存储介质和计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110941859A true CN110941859A (zh) | 2020-03-31 |
Family
ID=69904609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811110137.7A Pending CN110941859A (zh) | 2018-09-21 | 2018-09-21 | 用于区块链形成共识的方法、设备、计算机可读存储介质和计算机程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110941859A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111401903A (zh) * | 2020-06-03 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 区块链消息处理方法、装置、计算机以及可读存储介质 |
CN111582843A (zh) * | 2020-04-07 | 2020-08-25 | 浙商银行股份有限公司 | 一种基于聚合签名的区块链隐私交易方法 |
CN111711526A (zh) * | 2020-06-16 | 2020-09-25 | 深圳前海微众银行股份有限公司 | 一种区块链节点的共识方法及*** |
CN111865918A (zh) * | 2020-06-16 | 2020-10-30 | 广东工业大学 | 一种优化改进的区块链pbft共识方法 |
CN112118239A (zh) * | 2020-09-03 | 2020-12-22 | 腾讯科技(深圳)有限公司 | 区块链共识方法及装置、电子设备、存储介质 |
CN112487102A (zh) * | 2020-12-15 | 2021-03-12 | 深圳前海微众银行股份有限公司 | 区块链数据处理方法、装置及电子设备 |
CN112532396A (zh) * | 2020-12-04 | 2021-03-19 | 广东工业大学 | 一种基于聚合签名的优化拜占庭容错方法及存储介质 |
CN113127569A (zh) * | 2021-05-11 | 2021-07-16 | 中国工商银行股份有限公司 | 用于区块链***的共识方法、装置、电子设备及存储介质 |
CN113596115A (zh) * | 2021-07-12 | 2021-11-02 | 中债金科信息技术有限公司 | 一种应用基于pbft优化实现多节点高性能协议的网络 |
CN114050968A (zh) * | 2021-09-27 | 2022-02-15 | 南京邮电大学 | 一种物联网区块链pbft共识架构的构建方法 |
CN114049123A (zh) * | 2022-01-12 | 2022-02-15 | 杭州趣链科技有限公司 | 区块链的共识方法、装置、计算机设备和存储介质 |
CN114553903A (zh) * | 2020-11-24 | 2022-05-27 | 中移物联网有限公司 | 一种物联网消息信息传输方法、装置及服务器 |
CN114782047A (zh) * | 2021-12-29 | 2022-07-22 | 张海滨 | 数据共识方法及分布式*** |
US20230081416A1 (en) * | 2021-09-10 | 2023-03-16 | International Business Machines Corporation | Anonymous private shared partitions in blockchain networks |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105719185A (zh) * | 2016-01-22 | 2016-06-29 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN106384236A (zh) * | 2016-08-31 | 2017-02-08 | 江苏通付盾科技有限公司 | 基于区块链的ca认证管理方法、装置及*** |
CN107078910A (zh) * | 2016-12-23 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 生成区块链区块的方法、装置、节点、签名设备及*** |
CN107623686A (zh) * | 2017-09-12 | 2018-01-23 | 深圳先进技术研究院 | 区块链共识达成方法、装置、设备及存储介质 |
CN107679863A (zh) * | 2017-09-19 | 2018-02-09 | 中国银行股份有限公司 | 一种区块链***及快速验证区块的方法 |
US20180123882A1 (en) * | 2016-10-28 | 2018-05-03 | International Business Machines Corporation | Changing an existing blockchain trust configuration |
CN108182635A (zh) * | 2017-12-18 | 2018-06-19 | 深圳前海微众银行股份有限公司 | 区块链共识方法、***和计算机可读存储介质 |
-
2018
- 2018-09-21 CN CN201811110137.7A patent/CN110941859A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105719185A (zh) * | 2016-01-22 | 2016-06-29 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN106384236A (zh) * | 2016-08-31 | 2017-02-08 | 江苏通付盾科技有限公司 | 基于区块链的ca认证管理方法、装置及*** |
US20180123882A1 (en) * | 2016-10-28 | 2018-05-03 | International Business Machines Corporation | Changing an existing blockchain trust configuration |
CN107078910A (zh) * | 2016-12-23 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 生成区块链区块的方法、装置、节点、签名设备及*** |
CN107623686A (zh) * | 2017-09-12 | 2018-01-23 | 深圳先进技术研究院 | 区块链共识达成方法、装置、设备及存储介质 |
CN107679863A (zh) * | 2017-09-19 | 2018-02-09 | 中国银行股份有限公司 | 一种区块链***及快速验证区块的方法 |
CN108182635A (zh) * | 2017-12-18 | 2018-06-19 | 深圳前海微众银行股份有限公司 | 区块链共识方法、***和计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
夏沅;: "区块链智能合约技术应用", 中国金融, no. 06, 16 March 2018 (2018-03-16) * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111582843A (zh) * | 2020-04-07 | 2020-08-25 | 浙商银行股份有限公司 | 一种基于聚合签名的区块链隐私交易方法 |
CN111401903A (zh) * | 2020-06-03 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 区块链消息处理方法、装置、计算机以及可读存储介质 |
CN111865918B (zh) * | 2020-06-16 | 2022-09-27 | 广东工业大学 | 一种优化改进的区块链pbft共识方法 |
CN111711526A (zh) * | 2020-06-16 | 2020-09-25 | 深圳前海微众银行股份有限公司 | 一种区块链节点的共识方法及*** |
CN111865918A (zh) * | 2020-06-16 | 2020-10-30 | 广东工业大学 | 一种优化改进的区块链pbft共识方法 |
CN111711526B (zh) * | 2020-06-16 | 2024-03-26 | 深圳前海微众银行股份有限公司 | 一种区块链节点的共识方法及*** |
CN112118239A (zh) * | 2020-09-03 | 2020-12-22 | 腾讯科技(深圳)有限公司 | 区块链共识方法及装置、电子设备、存储介质 |
CN114553903A (zh) * | 2020-11-24 | 2022-05-27 | 中移物联网有限公司 | 一种物联网消息信息传输方法、装置及服务器 |
CN112532396A (zh) * | 2020-12-04 | 2021-03-19 | 广东工业大学 | 一种基于聚合签名的优化拜占庭容错方法及存储介质 |
CN112487102A (zh) * | 2020-12-15 | 2021-03-12 | 深圳前海微众银行股份有限公司 | 区块链数据处理方法、装置及电子设备 |
CN112487102B (zh) * | 2020-12-15 | 2024-03-19 | 深圳前海微众银行股份有限公司 | 区块链数据处理方法、装置及电子设备 |
CN113127569A (zh) * | 2021-05-11 | 2021-07-16 | 中国工商银行股份有限公司 | 用于区块链***的共识方法、装置、电子设备及存储介质 |
CN113596115B (zh) * | 2021-07-12 | 2023-05-26 | 中债金科信息技术有限公司 | 一种应用基于pbft优化实现多节点高性能协议的网络*** |
CN113596115A (zh) * | 2021-07-12 | 2021-11-02 | 中债金科信息技术有限公司 | 一种应用基于pbft优化实现多节点高性能协议的网络 |
US20230081416A1 (en) * | 2021-09-10 | 2023-03-16 | International Business Machines Corporation | Anonymous private shared partitions in blockchain networks |
CN114050968B (zh) * | 2021-09-27 | 2023-08-15 | 南京邮电大学 | 一种物联网区块链pbft共识架构的构建方法 |
CN114050968A (zh) * | 2021-09-27 | 2022-02-15 | 南京邮电大学 | 一种物联网区块链pbft共识架构的构建方法 |
CN114782047A (zh) * | 2021-12-29 | 2022-07-22 | 张海滨 | 数据共识方法及分布式*** |
CN114782047B (zh) * | 2021-12-29 | 2023-06-30 | 张海滨 | 数据共识方法及分布式*** |
CN114049123A (zh) * | 2022-01-12 | 2022-02-15 | 杭州趣链科技有限公司 | 区块链的共识方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110941859A (zh) | 用于区块链形成共识的方法、设备、计算机可读存储介质和计算机程序产品 | |
CN108200210B (zh) | 基于区块链的链管理的方法、装置及计算机可读介质 | |
CN112837160B (zh) | 基于区块链的跨链交易方法、装置和计算机可读存储介质 | |
CN109242685B (zh) | 基于区块链的共识和验证方法及装置 | |
CN110245956B (zh) | 一种基于异步多链的区块链交易确认方法及*** | |
US11451406B2 (en) | Cross-chain messaging and message validation | |
CN112600678B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN108900364B (zh) | 区块链网络的管理方法、装置、介质及电子设备 | |
CN109194465B (zh) | 用于管理密钥的方法、用户设备、管理设备、存储介质 | |
CN111543026A (zh) | 分布式网络中进行主节点变更的*** | |
CN110943838A (zh) | 区块链网络中确定区块的共识的方法、设备和存储介质 | |
CN108769010B (zh) | 节点受邀注册的方法和装置 | |
Ahmed et al. | A blockchain-based emergency message transmission protocol for cooperative VANET | |
CN108737105B (zh) | 私钥的找回方法、装置、私钥设备和介质 | |
CN112219371A (zh) | 双向区块链 | |
CN113114472A (zh) | 一种基于报文哈希链的认证方法及*** | |
CN111199398A (zh) | 用于跨区块链资产管理的方法、设备、计算机可读存储介质和计算机程序产品 | |
WO2018179293A1 (ja) | 検証情報付与装置、検証装置、情報管理システム、方法およびプログラム | |
CN113206746B (zh) | 一种数字证书管理方法和装置 | |
CN111385096A (zh) | 一种区块链网络、签名处理方法、终端及存储介质 | |
WO2023231558A1 (zh) | 区块链共识方法、装置、介质、电子设备和程序产品 | |
CN116389504A (zh) | 基于区块链的身份认证快速共识方法、***、设备及介质 | |
CN113206738B (zh) | 一种数字证书管理方法和装置 | |
CN113242132B (zh) | 一种数字证书管理方法和装置 | |
CN114037449A (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 |