CN113837758A - 一种区块链系统的共识方法及装置 - Google Patents

一种区块链系统的共识方法及装置 Download PDF

Info

Publication number
CN113837758A
CN113837758A CN202111138341.1A CN202111138341A CN113837758A CN 113837758 A CN113837758 A CN 113837758A CN 202111138341 A CN202111138341 A CN 202111138341A CN 113837758 A CN113837758 A CN 113837758A
Authority
CN
China
Prior art keywords
node
election
proof
consensus
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
Application number
CN202111138341.1A
Other languages
English (en)
Inventor
陈宇杰
李辉忠
张开翔
范瑞彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202111138341.1A priority Critical patent/CN113837758A/zh
Publication of CN113837758A publication Critical patent/CN113837758A/zh
Priority to PCT/CN2022/120220 priority patent/WO2023045972A1/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种区块链系统的共识方法及装置,区块链系统中包括多个节点机构,每个节点机构具有多个节点;方法包括:针对至少一个节点机构,节点机构中的第一主节点生成选举证明并发送给节点机构中的第一选举节点;第一主节点是节点机构中的各节点基于Raft共识算法确定的;基于接收的多个选举证明签名和选举证明,生成选举证明交易;选举证明签名是第一选举节点确定选举证明满足第一验证要求后对选举证明进行签名得到的;第一主节点在区块链系统基于PBFT共识算法确定选举证明交易共识成功后,作为区块链系统的PBFT共识节点。降低区块链系统中共识过程的计算量,降低PBFT共识算法网络的复杂度,提高区块链系统的可扩展性。

Description

一种区块链系统的共识方法及装置
技术领域
本发明涉及金融科技(Fintech)领域,尤其涉及一种区块链系统的共识方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术(例如:区块链、云计算或大数据)应用在金融领域,传统金融业正在逐步向金融科技转变,大数据技术也不例外,但由于金融、支付行业的安全性、实时性要求,也对大数据技术中区块链系统的共识提出了更高的要求。
现有技术中,区块链系统是一个无中心的开放式的分布式系统,它可以用于登记和发行数字化资产、产权凭证、积分等,并以点对点的方式进行转账、支付和交易。区块链系统与传统的中心化账本系统相比,具有完全公开、不可篡改、防止多重支付等优点,并且不依赖于任何的可信第三方。
由于点对点网络下存在较高的网络延迟,各个节点所观察到的事务先后顺序大多不完全一致。因此区块链系统需要设计一种机制对在差不多时间内发生的事务的先后顺序进行共识。这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为“共识机制”。
目前,因为PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错算法)共识算法安全性高、可解决拜占庭问题,具有吞吐量高、交易确认时延低达秒级、有最终一致性保证等特点,适用于区块链系统安全可靠的共识算法,因而被各区块链系统所采用。
但是,PBFT共识算法网络复杂度与节点规模的平方成正比(如网络复杂度为节点数量的平方)、可支撑的区块链网络规模有限、共识过程中计算量大、限制了区块链系统的可扩展性。
发明内容
本发明实施例提供一种区块链系统的共识方法及装置,用于降低区块链系统中共识过程的计算量,降低PBFT共识算法网络的复杂度,提升可支撑的区块链网络规模,提高区块链系统的可扩展性。
第一方面,本发明实施例提供一种区块链系统的共识方法,所述区块链系统中包括多个节点机构,每个节点机构具有多个节点;所述方法包括:
针对至少一个节点机构,所述节点机构中的第一主节点生成选举证明并发送给所述节点机构中的第一选举节点;所述第一主节点是所述节点机构中的各节点基于Raft共识算法确定的;
所述第一主节点基于接收的多个选举证明签名和所述选举证明,生成选举证明交易;所述选举证明签名是第一选举节点确定所述选举证明满足第一验证要求后对所述选举证明进行签名得到的;
所述第一主节点在所述区块链系统基于PBFT共识算法确定所述选举证明交易共识成功后,作为所述区块链系统的PBFT共识节点。
上述技术方案中,第一主节点相当于区块链系统初始化时,节点机构中各选举节点投票选出来的主节点Leader;通过将参与PBFT共识算法的共识节点在区块链系统的节点机构中选择,未将区块链系统中所有节点作为参与PBFT共识算法的共识节点,以此减少了参与PBFT共识算法的共识节点数量,从而降低了区块链系统中共识过程的计算量,降低了PBFT共识算法网络的复杂度,提升了可支撑的区块链网络规模,提高了区块链系统的可扩展性;且通过参与PBFT共识算法的节点保证了区块链系统中数据一致性,因为参与PBFT共识算法的共识节点是节点机构中根据Raft共识算法选择的主节点,主节点用于向节点机构中的选举节点发送区块共识结果,因此保证了节点机构中各节点的数据一致性。
可选的,作为所述区块链系统的PBFT共识节点之后,还包括:
将所述第一主节点的标识写入系统共识节点记录中;
所述第一主节点接收第一待共识信息包;
所述第一主节点确定所述第一待共识信息包的发送者为所述系统共识节点记录中的共识节点后,基于PBFT共识算法对所述第一待共识信息包进行共识。
上述技术方案中,在第一主节点作为所述区块链系统的PBFT共识节点之后,相当于第一主节点已经由区块链系统的各节点验证通过,保证了第一主节点的安全性,各节点将第一主节点写入至各节点本地的系统共识节点记录中,以使在第一主节点未切换的情况下,只需要确定第一主节点为系统共识节点记录中的共识节点,则将第一主节点作为所述区块链系统的PBFT共识节点,避免每次共识待共识区块时,第一主节点重复生成选举证明等操作,减少计算开销。
可选的,所述节点机构中的第一主节点生成选举证明,包括:
所述节点机构中的第一主节点确定所述区块链系统中区块高度最大的区块的序列号;
所述第一主节点基于所述区块高度最大的区块的序列号生成第一验证序列号;
所述第一主节点对所述第一验证序列号和所述第一主节点的标识进行签名,得到第一选举签名;
所述第一主节点根据所述第一验证序列号、所述第一主节点的标识和所述第一选举签名生成所述选举证明;
所述第一验证要求包括:
选举证明中节点的标识与节点机构中的主节点的标识一致;
所述选举证明中的验证序列号与所述区块高度最大的区块的序列号满足预设条件;
所述选举证明中的选举签名有效。
上述技术发案中,通过第一验证序列号保证每个选举证明都是唯一的,防止恶意的节点重放选举证明。
可选的,所述第一主节点基于接收的多个选举证明签名和所述选举证明,生成选举证明交易,包括:
所述第一主节点在确定接收的选举证明签名的数量不少于所述节点机构中节点数量的一半时,将接收的选举证明签名合成签名列表;
所述第一主节点基于所述签名列表和所述选举证明,生成选举证明交易。
上述技术方案中,签名列表是在第一主节点在确定接收的选举证明签名的数量不少于节点机构中节点数量的一半时生成的,基于Raft共识算法少数服从多数的特点,保证了第一主节点在节点机构中的安全性、准确性。
可选的,基于PBFT共识算法确定所述选举证明交易共识成功,包括:
确定所述选举证明交易中选举证明的验证序列号与区块高度最大的区块的序列号满足预设条件;
确定所述选举证明交易中签名列表的选举证明签名数量不少于所述节点机构中节点数量的一半;
确定所述选举证明交易中签名列表的各选举证明签名有效。
可选的,所述方法还包括:
在所述节点机构的第一主节点轮换为第二主节点后,所述第二主节点生成切换证明并发送给所述节点机构中的第二选举节点;所述第二主节点是所述节点机构中的各节点基于Raft共识算法确定的;所述第二选举节点为所述节点机构中除所述第二主节点之外的各节点;
所述第二主节点基于接收的多个切换证明签名和所述切换证明,生成切换证明信息;所述切换证明签名是第二选举节点确定所述切换证明满足第一验证要求后对所述切换证明进行签名得到的;
若所述切换证明信息满足第二验证要求,则所述第二主节点在所述区块链系统中基于PBFT共识算法对所述第二待共识消息包进行共识。
上述技术方案中,第二主节点相当于在第一主节点发生异常后轮换的新主节点Leader;在节点机构中的主节点切换后,通过生成切换证明信息,并将所述切换证明信息发送至区块系统中各共识节点,以使区块链系统中各节点确定切换后的第二主节点可以作为使用PBFT共识算法对所述第二待共识消息包进行共识的共识节点,提升本发明技术方案的灵活性。
可选的,所述方法还包括:
所述节点机构的第一主节点轮换为第二主节点后,所述第二主节点生成切换证明并发送给所述节点机构中的第二选举节点;所述第二主节点是所述节点机构中的各节点基于Raft共识算法确定的;所述第二选举节点为所述节点机构中除所述第二主节点之外的各节点;
所述第二主节点基于接收的多个切换证明签名和所述切换证明,生成切换证明交易;所述切换证明签名是第二选举节点确定所述切换证明满足第一验证要求后对所述切换证明进行签名得到的;
所述第二主节点在所述区块链系统基于PBFT共识算法确定所述切换证明交易共识成功后,作为所述区块链系统的PBFT共识节点。
上述技术方案中,对于切换后的第二主节点,基于接收的多个切换证明签名和所述切换证明,生成切换证明交易,相当于将切换证明信息作为一笔交易,由区块链系统中各节点进行共识,若共识成功,则将第二主节点写入至各节点本地的系统共识节点记录中,以此避免每次参与PBFT共识均发送切换证明信息,防止对于切换后的第二主节点的重复共识,减少了计算资源和共识校验的复杂度,提升了共识效率。
可选的,所述第二主节点生成切换证明,包括:
所述第二主节点确定所述区块链系统中区块高度最大的区块的序列号,基于所述区块高度最大的区块的序列号生成第二验证序列号;
所述第二主节点对所述第二验证序列号和所述第二主节点的标识进行签名,得到第二选举签名;
所述第二主节点根据所述第二验证序列号、所述第一主节点的标识、所述第二主节点的标识和所述第二选举签名生成切换证明;
所述第二验证要求包括:
切换证明信息中第一主节点的标识记录在系统共识节点记录中;
所述切换证明信息中的第二验证序列号与所述区块高度最大的区块的序列号满足预设条件;
所述切换证明信息中切换证明的第二选举签名有效;
所述切换证明信息中签名列表的切换证明签名数量不少于节点机构中节点数量的一半;
所述切换证明信息中签名列表的各切换证明签名有效。
第二方面,本发明实施例提供一种区块链系统的共识装置,所述区块链系统中包括多个节点机构,每个节点机构具有多个节点;所述装置包括:
生成模块,用于针对至少一个节点机构,在所述节点机构中生成第一主节点的选举证明并发送给所述节点机构中的第一选举节点;所述第一主节点是所述节点机构中的各节点基于Raft共识算法确定的;
接收模块,用于接收的多个选举证明签名和所述选举证明;
处理模块,用于基于接收的多个选举证明签名和所述选举证明,生成选举证明交易;所述选举证明签名是第一选举节点确定所述选举证明满足第一验证要求后对所述选举证明进行签名得到的;
在所述区块链系统基于PBFT共识算法确定所述选举证明交易共识成功后,作为所述区块链系统的PBFT共识节点。
可选的,所述处理模块还用于:
作为所述区块链系统的PBFT共识节点之后,将所述第一主节点的标识写入系统共识节点记录中;
控制接收模块接收第一待共识信息包;
确定所述第一待共识信息包的发送者为所述系统共识节点记录中的共识节点后,基于PBFT共识算法对所述第一待共识信息包进行共识。
可选的,所述生成模块具体用于:
确定所述区块链系统中区块高度最大的区块的序列号;
基于所述区块高度最大的区块的序列号生成第一验证序列号;
对所述第一验证序列号和所述第一主节点的标识进行签名,得到第一选举签名;
根据所述第一验证序列号、所述第一主节点的标识和所述第一选举签名生成所述选举证明;
所述第一验证要求包括:
选举证明中节点的标识与节点机构中的主节点的标识一致;
所述选举证明中的验证序列号与所述区块高度最大的区块的序列号满足预设条件;
所述选举证明中的选举签名有效。
可选的,所述处理模块具体用于:
在确定接收的选举证明签名的数量不少于所述节点机构中节点数量的一半时,将接收的选举证明签名合成签名列表;
基于所述签名列表和所述选举证明,生成选举证明交易。
可选的,基于PBFT共识算法确定所述选举证明交易共识成功,包括:
确定所述选举证明交易中选举证明的验证序列号与区块高度最大的区块的序列号满足预设条件;
确定所述选举证明交易中签名列表的选举证明签名数量不少于所述节点机构中节点数量的一半;
确定所述选举证明交易中签名列表的各选举证明签名有效。
可选的,还包括:
在所述节点机构的第一主节点轮换为第二主节点后,所述生成模块还用于:
生成切换证明并发送给所述节点机构中的第二选举节点;所述第二主节点是所述节点机构中的各节点基于Raft共识算法确定的;所述第二选举节点为所述节点机构中除所述第二主节点之外的各节点;
所述处理模块还用于:
基于接收的多个切换证明签名和所述切换证明,生成切换证明信息;所述切换证明签名是第二选举节点确定所述切换证明满足第一验证要求后对所述切换证明进行签名得到的;
若所述切换证明信息满足第二验证要求,则所述第二主节点在所述区块链系统中基于PBFT共识算法对所述第二待共识消息包进行共识。
可选的,还包括:
所述节点机构的第一主节点轮换为第二主节点后,所述生成模块用于:
生成切换证明并发送给所述节点机构中的第二选举节点;所述第二主节点是所述节点机构中的各节点基于Raft共识算法确定的;所述第二选举节点为所述节点机构中除所述第二主节点之外的各节点;
所述处理模块用于:
基于接收的多个切换证明签名和所述切换证明,生成切换证明交易;所述切换证明签名是第二选举节点确定所述切换证明满足第一验证要求后对所述切换证明进行签名得到的;
在所述区块链系统基于PBFT共识算法确定所述切换证明交易共识成功后,作为所述区块链系统的PBFT共识节点。
所述生成模块具体用于:
确定所述区块链系统中区块高度最大的区块的序列号,基于所述区块高度最大的区块的序列号生成第二验证序列号;
对所述第二验证序列号和所述第二主节点的标识进行签名,得到第二选举签名;
根据所述第二验证序列号、所述第一主节点的标识、所述第二主节点的标识和所述第二选举签名生成切换证明;
所述第二验证要求包括:
切换证明信息中第一主节点的标识记录在系统共识节点记录中;
所述切换证明信息中的第二验证序列号与所述区块高度最大的区块的序列号满足预设条件;
所述切换证明信息中切换证明的第二选举签名有效;
所述切换证明信息中签名列表的切换证明签名数量不少于节点机构中节点数量的一半;
所述切换证明信息中签名列表的各切换证明签名有效。
第三方面,本发明实施例还提供一种计算机设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述区块链系统的共识方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述区块链系统的共识方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种系统架构示意图;
图2为本发明实施例提供的一种区块链系统的共识方法的流程示意图;
图3为本发明实施例提供的一种区块链系统的共识装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
现有技术中,对于区块链的共识算法包括Raft、PBFT、POW(Proof of Work,工作量证明)、POS(Proof of Stake,权益证明)、DPOS(Delegated Proof of Stake,授权的权益证明)等。
其中,PBFT共识算法可以在少数节点作恶(如伪造消息)场景中达成共识,PBFT采用签名、签名验证、哈希等密码学算法确保消息传递过程中的防篡改性、防伪造性、不可抵赖性,将拜占庭容错算法复杂度从指数级降低到多项式级别,在一个由(3*f+1)个节点构成的系统中,只要有不少于(2*f+1)个非恶意节点正常工作,该系统就能达成一致性,如:7个节点的区块链系统中允许2个节点出现拜占庭错误。
但是,PBFT共识算法网络复杂度与节点规模的平方成正比(如网络复杂度为节点数量的平方)、可支撑的区块链网络规模有限、共识过程中计算量大、限制了区块链系统的可扩展性。
Raft共识算法是一个管理副本日志的共识算法。例如Leader(领导者)选举,日志副本,安全,和状态机。Raft同时提供了一种新的机制来改变集群成员,以此来保证安全性,Raft共识算法可容忍不超过一半的非拜占庭错误。
但是,Raft共识算法无法防止拜占庭问题。
因此,为了降低区块链系统中共识过程的计算量,降低PBFT共识算法网络的复杂度,提升可支撑的区块链网络规模,提高区块链系统的可扩展性,本发明实施例提供了一种将Raft共识算法和PBFT共识算法相结合的区块链系统的共识方法。
图1示例性的示出了本发明实施例所适用的一种系统架构,该系统架构包括多个节点机构,每个节点机构具有多个节点。
本发明实施例中,图1仅示例性的示出了3个节点机构,分别为节点机构1、节点机构2和节点机构3,每个节点机构包括3个节点,其中,包括1个主节点和2个选举节点;节点机构中根据Raft共识算法确定主节点,各节点机构的主节点之间,使用PBFT共识算法对待共识区块进行共识。
需要说明的是,上述图1所示的结构仅是一种示例,本发明实施例对此不做限定。
基于上述描述,图2示例性的示出了本发明实施例提供的一种区块链系统的共识方法的流程示意图,该流程可由区块链系统的共识装置执行。
如图2所示,该流程具体包括:
步骤210,针对至少一个节点机构,所述节点机构中的第一主节点生成选举证明并发送给所述节点机构中的第一选举节点。
本发明实施例中,第一主节点是所述节点机构中的各节点基于Raft共识算法确定的。
步骤220,所述第一主节点基于接收的多个选举证明签名和所述选举证明,生成选举证明交易。
本发明实施例中,所述选举证明签名是第一选举节点确定所述选举证明满足第一验证要求后对所述选举证明进行签名得到的。
步骤230,所述第一主节点在所述区块链系统基于PBFT共识算法确定所述选举证明交易共识成功后,作为所述区块链系统的PBFT共识节点。
本发明实施例中,选举证明交易共识的条件包括:选举证明交易中选举证明的验证序列号、选举证明交易中签名列表的选举证明签名数量和选举证明交易中签名列表的各选举证明签名的有效性的共识。
为了更好的阐述本发明的技术方案,下面对一些出现的名词进行解释:
本发明实施例中,区块链系统初始化时,针对区块链系统中任一节点机构,节点机构中包括多个选举节点,选举节点相当于Raft共识算法中的Follower(群众)状态,然后经过投票选举,选出唯一的第一主节点,第一主节点相当于Raft共识算法中的Leader(领导)状态,第一选举节点相当于在第一主节点所属节点机构中的其他节点,第一选举节点参与了选举第一主节点。
在Raft共识算法中,若选举机制满足预设选举条件(如超过选举定时器的时间以后一直没有收到Leader发送的心跳请求等),需要重新选举出一个新的主节点,相当于本发明实施例所述的第二主节点,第二选举节点相当于在第二主节点所属节点机构中的其他节点,第二选举节点参与了选举第二主节点。
在步骤210中,第一主节点生成选举证明并发送给所述节点机构中的第一选举节点之前,每个节点机构独立运行Raft共识算法,选举出第一主节点Leader。
举例来说,针对任一节点机构中的任一节点,向节点机构中的其他节点发送投票请求,在某一节点得到节点机构中一半节点数量的投票时,则确定该节点为主节点Leader。
在确定出第一主节点之后,第一主节点生成选举证明,其中,选举证明是根据区块的序列号和第一主节点的标识生成的;通过区块链中递增的序列号防止恶意的节点重放选举证明。
具体的,节点机构中的第一主节点确定所述区块链系统中区块高度最大的区块的序列号;所述第一主节点基于所述区块高度最大的区块的序列号生成第一验证序列号;所述第一主节点对所述第一验证序列号和所述第一主节点的标识进行签名,得到第一选举签名;所述第一主节点根据所述第一验证序列号、所述第一主节点的标识和所述第一选举签名生成所述选举证明。
举例来说,第一主节点从区块链系统中确定区块高度最大的区块,也就是最新的区块,基于该区块的nonce值(序列号),增加预设值(如1、2等)确定第一验证序列号,如第一验证序列号=nonce1+1;在一种可实施的方式中,也可以将nonce值乘以预设值确定第一验证序列号,在此不做具体限定。
然后第一主节点使用自身的私钥对第一主节点的标识(如Leader Node ID1)和第一验证序列号(nonce1+1)进行签名,得到第一选举签名;如第一选举签名为sig(LeaderNode ID1,nonce1+1)。
再结合第一验证序列号、第一主节点的标识和第一选举签名生成选举证明;如选举证明为Vote Proof{Leader Node ID1,nonce1+1,sig(Leader Node ID1,nonce1+1)}。
第一主节点在确定出选举证明之后,将选举证明发送至第一主节点所属节点机构的其他选举节点,也就是节点机构中的各第一选举节点。
在步骤220中,第一主节点基于接收的多个选举证明签名之前,由各第一选举节点对第一主节点的选举证明进行验证,任一第一选举节点在确定第一主节点的选举证明满足第一验证条件时,使用自身的私钥对选举证明进行签名,得到选举证明签名,并返回至第一主节点。
其中,第一验证要求包括三个条件,具体为:
选举证明中节点的标识与节点机构中的主节点的标识一致;所述选举证明中的验证序列号与所述区块高度最大的区块的序列号满足预设条件;所述选举证明中的选举签名有效。
举例来说,针对任一第一选举节点,在得到选举证明之后,分别对选举证明中的第一验证序列号、第一主节点的标识和第一选举签名进行验证。
具体的,第一选举节点从区块链系统中获取区块高度最大的区块的序列号nonce`,若确定第一验证序列号(nonce1+1)大于序列号nonce`,则确定第一验证序列号验证通过;在一种可实施的方式中,也可以根据nonce`和(nonce1+1)确定出差值,若差值等于预设值(如1),则确定第一验证序列号验证通过。
第一选举节点确定第一主节点的标识(Leader Node ID1)是否为所属节点机构根据Raft共识算法选举出的主节点Node ID,若是,则第一主节点的标识验证通过。
第一选举节点使用第一主节点的公钥对第一选举签名sig(Leader Node ID1,nonce1+1)进行解密,若解密成功,则确定第一选举签名验证通过。
本发明实施例中,若上述任一验证条件验证为通过,则节点机构切换主节点;若第一选举节点对选举证明验证通过,则第一选举节点使用自身的私钥对选举证明Vote Proof{Leader Node ID1,nonce1+1,sig(Leader Node ID1,nonce1+1)}进行签名,得到选举证明签名,并发送至第一主节点。
第一主节点基于Raft共识算法特点,需要在接收的选举证明签名的数量不少于所述节点机构中节点数量的一半时,将接收的选举证明签名合成签名列表;用以表征第一主节点为节点机构根据Raft共识算法确定的主节点,以保证主节点选举的安全性,然后根据签名列表生成选举证明交易。
具体的,第一主节点在确定接收的选举证明签名的数量不少于所述节点机构中节点数量的一半时,将接收的选举证明签名合成签名列表;基于签名列表和选举证明,生成选举证明交易。
举例来说,第一主节点将多个选举证明签名聚合在一起,生成签名列表(VoteProof SigList),然后将签名列表(Vote Proof SigList)和选举证明(Vote Proof)聚合在一起,生成选举证明交易(Trigger Leader Vote)。
在步骤230中,对于选举证明交易的共识,是由区块链系统中各节点进行共识的,也就是说,第一主节点在生成选举证明交易之后,需要将选举证明交易广播至区块链系统中,如将选举证明交易打包进待共识区块的第一待共识信息包中,然后将第一待共识信息包广播至区块链系统;区块链系统中的节点在得到第一待共识信息包中的选举证明交易之后,对选举证明交易进行共识。
其中,节点若确定选举证明交易满足如下条件,则确定选举证明交易共识成功。
条件1、确定所述选举证明交易中选举证明的验证序列号与区块高度最大的区块的序列号满足预设条件;
条件2、确定所述选举证明交易中签名列表的选举证明签名数量不少于所述节点机构中节点数量的一半;
条件3、确定所述选举证明交易中签名列表的各选举证明签名有效。
对于条件1,如上述对第一验证要求的陈述,在此不做赘述。
对于条件2,在确定选举证明交易中签名列表的选举证明签名数量不少于第一主节点所属节点机构中节点数量的一半时,确定第一主节点为节点机构根据Raft共识算法选举出的主节点,因此验证通过。
对于条件3,针对签名列表中任一选举证明签名,节点使用选举证明签名对应的第一选举节点的公钥对选举证明签名进行解密,若解密成功,则确定选举证明签名验证通过。
针对区块链中任一节点,在确定选举证明交易共识成功后,将第一主节点的标识写入本地的系统共识节点记录中;以表征确定第一主节点为基于PBFT共识算法对所述第一待共识信息包进行共识的共识节点。
其中,系统共识节点记录还用于对参数PBFT共识的节点进行验证,具体的,所述第一主节点接收第一待共识信息包;确定所述第一待共识信息包的发送者为所述系统共识节点记录中的共识节点后,基于PBFT共识算法对所述第一待共识信息包进行共识。
也就是说,第一主节点若确定第一待共识信息包的发送者不是系统共识节点记录中的共识节点,则拒绝该第一待共识信息包。
示例性的,第一主节点接收第一待共识信息包之后,除了验证第一待共识信息包的发送者是否为系统共识节点记录中的共识节点之外,还会根据第一待共识信息包的发送者的公钥验证第一待共识信息包中的信息包签名,若验证未通过,则拒绝该第一待共识信息包。其中,信息包签名是发送者使用自身私钥对第一待共识信息包的哈希值签名后得到的。
本发明实施例中,针对已经记录在系统共识节点记录中的第一主节点,在后续的PBFT共识之前,只需要通过确定系统共识节点记录中记录有该节点的标识,就可以将该节点作为所述区块链系统的PBFT共识节点,避免第一主节点重复生成选举证明、选举证明交易等操作,提升了区块链系统的共识效率。
在一种应用场景中,节点机构中的第一主节点可能会因为网络断连、机器宕机、被恶意攻击者攻破等原因而处于异常状态,为保障区块链系统的一致性和可靠性,使得区块链系统在第一主节点异常的情况下仍可正常共识,本发明提出了主节点轮换机制,也就是说,当某节点机构的第一主节点异常时,可重新选取新的主节点(第二主节点)作为共识节点继续参与PBFT共识。
具体的,在所述节点机构的第一主节点轮换为第二主节点后,所述第二主节点生成切换证明并发送给所述节点机构中的第二选举节点;所述第二主节点是所述节点机构中的各节点基于Raft共识算法确定的;所述第二选举节点为所述节点机构中除所述第二主节点之外的各节点。
第二主节点基于接收的多个切换证明签名和所述切换证明,生成切换证明信息;所述切换证明签名是第二选举节点确定所述切换证明满足第一验证要求后对所述切换证明进行签名得到的;
若所述切换证明信息满足第二验证要求,则所述第二主节点在所述区块链系统中基于PBFT共识算法对所述第二待共识消息包进行共识。
本发明实施例中,第二主节点与第一主节点不同的是,第二主节点生成的切换证明包括第一主节点的标识。
进一步地,第二主节点确定所述区块链系统中区块高度最大的区块的序列号,基于所述区块高度最大的区块的序列号生成第二验证序列号;第二主节点对所述第二验证序列号和所述第二主节点的标识进行签名,得到第二选举签名;第二主节点根据第二验证序列号、第一主节点的标识、第二主节点的标识和所述第二选举签名生成切换证明;
举例来说,第二主节点从区块链系统中确定区块高度最大的区块,也就是最新的区块,基于该区块的nonce值(序列号),增加预设值(如1、2等)确定第一验证序列号,如第一验证序列号=nonce2+1。
第二主节点使用自身的私钥对第二主节点的标识(如New Leader ID)和第一验证序列号(nonce2+1)进行签名,得到第二选举签名;如第二选举签名为sig(New Leader ID,nonce2+1)。
再结合第而验证序列号、第一主节点的标识、第二主节点的标识和第一选举签名生成切换证明;如切换证明为Hand Over Proof{Last Leader ID(Leader Node ID1),NewLeader ID,nonce2+1,sig(New Leader ID,nonce2+1)}。
第二主节点在确定出切换证明之后,将切换证明发送至第二主节点所属节点机构的其他选举节点,也就是节点机构中的各第二选举节点。
针对任一第二选举节点,第二选举节点对第二主节点的切换证明进行验证,在确定第二主节点的切换证明满足第一验证条件时,使用自身的私钥对切换证明进行签名,得到切换证明签名,并返回至第二主节点。其中,第一验证条件如上所述,在此不做赘述,也就是说,切换证明类似于选举证明,即对切换证明中的第二验证序列号、第二主节点的标识和第二选举签名进行验证。
第二选举节点对切换证明验证通过,则第二选举节点使用自身的私钥对切换证明Hand Over Proof进行签名,得到切换证明签名,并发送至第二主节点。
第二主节点基于Raft共识算法特点,在接收的切换证明签名的数量不少于第二主节点所属节点机构中节点数量的一半时,将接收的切换证明签名合成签名列表(Hand OverProof SignList);用以表征第二主节点为节点机构根据Raft共识算法确定的新主节点。
第二主节点再将签名列表Hand Over Proof SignList和切换证明Hand OverProof聚合在一起,生成切换证明信息Hand Over Info;也就是说,Hand Over Info={HandOver Proof SignList,Hand Over Proof}。
在进行PBFT共识之前,需要参与PBFT共识的各共识节点需要对第二主节点的切换证明信息进行验证,在确定切换证明信息满足第二验证条件时,确定切换证明信息验证通过;在验证通过后,允许第二主节点参与PBFT共识。
其中,第二验证要求包括如下条件:
条件1、切换证明信息中第一主节点的标识记录在系统共识节点记录中。
条件2、所述切换证明信息中的第二验证序列号与区块高度最大的区块的序列号满足预设条件。
条件3、所述切换证明信息中切换证明的选举签名有效。
条件4、所述切换证明信息中签名列表的切换证明签名数量不少于节点机构中节点数量的一半;
条件5、所述切换证明信息中签名列表的各切换证明签名有效。
具体验证方法与上述验证方法雷同,在此不做详细赘述。本发明实施例中,第二主节点在参与PBFT共识,且新区块共识成功后,各节点对新区块上链时,将切换证明信息HandOver Info添加到新区块中,以校验第二共识节点的合法性。
上述方法的特点在于,第二主节点在每次参与PBFT共识时,需要发送切换证明信息,保证第二主节点的安全性和正确性。
在一种可实施的方式中,第二主节点在确定出切换证明后,生成切换证明交易,将切换证明交易广播至区块链系统中;区块链系统种的节点在确定切换证明交易共识成功后,将第二主节点写入系统共识节点记录中,相当于将第一主节点替换为第二主节点,以此实现在后续参与PBFT共识时,不需要发送切换证明信息,降低共识校验的复杂度、提升区块链系统的共识效率。
具体的,所述节点机构的第一主节点轮换为第二主节点后,所述第二主节点生成切换证明并发送给所述节点机构中的第二选举节点;所述第二主节点是所述节点机构中的各节点基于Raft共识算法确定的;所述第二选举节点为所述节点机构中除所述第二主节点之外的各节点;
所述第二主节点基于接收的多个切换证明签名和所述切换证明,生成切换证明交易;所述切换证明签名是第二选举节点确定所述切换证明满足第一验证要求后对所述切换证明进行签名得到的;
所述第二主节点在所述区块链系统基于PBFT共识算法确定所述切换证明交易共识成功后,作为所述区块链系统的PBFT共识节点。
基于相同的技术构思,图3示例性的示出了本发明实施例提供的一种区块链系统的共识装置的结构示意图,该装置可以执行区块链系统的共识方法的流程。
所述区块链系统中包括多个节点机构,每个节点机构具有多个节点;如图3所示,该装置具体包括:
生成模块310,用于针对至少一个节点机构,在所述节点机构中生成第一主节点的选举证明并发送给所述节点机构中的第一选举节点;所述第一主节点是所述节点机构中的各节点基于Raft共识算法确定的;
接收模块320,用于接收的多个选举证明签名和所述选举证明;
处理模块330,用于基于接收的多个选举证明签名和所述选举证明,生成选举证明交易;所述选举证明签名是第一选举节点确定所述选举证明满足第一验证要求后对所述选举证明进行签名得到的;
在所述区块链系统基于PBFT共识算法确定所述选举证明交易共识成功后,作为所述区块链系统的PBFT共识节点。
可选的,所述处理模块330还用于:
作为所述区块链系统的PBFT共识节点之后,将所述第一主节点的标识写入系统共识节点记录中;
控制接收模块320接收第一待共识信息包;
确定所述第一待共识信息包的发送者为所述系统共识节点记录中的共识节点后,基于PBFT共识算法对所述第一待共识信息包进行共识。
可选的,所述生成模块310具体用于:
确定所述区块链系统中区块高度最大的区块的序列号;
基于所述区块高度最大的区块的序列号生成第一验证序列号;
对所述第一验证序列号和所述第一主节点的标识进行签名,得到第一选举签名;
根据所述第一验证序列号、所述第一主节点的标识和所述第一选举签名生成所述选举证明;
所述第一验证要求包括:
选举证明中节点的标识与节点机构中的主节点的标识一致;
所述选举证明中的验证序列号与所述区块高度最大的区块的序列号满足预设条件;
所述选举证明中的选举签名有效。
可选的,所述处理模块330具体用于:
在确定接收的选举证明签名的数量不少于所述节点机构中节点数量的一半时,将接收的选举证明签名合成签名列表;
基于所述签名列表和所述选举证明,生成选举证明交易。
可选的,基于PBFT共识算法确定所述选举证明交易共识成功,包括:
确定所述选举证明交易中选举证明的验证序列号与区块高度最大的区块的序列号满足预设条件;
确定所述选举证明交易中签名列表的选举证明签名数量不少于所述节点机构中节点数量的一半;
确定所述选举证明交易中签名列表的各选举证明签名有效。
可选的,还包括:
在所述节点机构的第一主节点轮换为第二主节点后,所述生成模块310还用于:
生成切换证明并发送给所述节点机构中的第二选举节点;所述第二主节点是所述节点机构中的各节点基于Raft共识算法确定的;所述第二选举节点为所述节点机构中除所述第二主节点之外的各节点;
所述处理模块330还用于:
基于接收的多个切换证明签名和所述切换证明,生成切换证明信息;所述切换证明签名是第二选举节点确定所述切换证明满足第一验证要求后对所述切换证明进行签名得到的;
若所述切换证明信息满足第二验证要求,则所述第二主节点在所述区块链系统中基于PBFT共识算法对所述第二待共识消息包进行共识。
可选的,还包括:
所述节点机构的第一主节点轮换为第二主节点后,所述生成模块310用于:
生成切换证明并发送给所述节点机构中的第二选举节点;所述第二主节点是所述节点机构中的各节点基于Raft共识算法确定的;所述第二选举节点为所述节点机构中除所述第二主节点之外的各节点;
所述处理模块330用于:
基于接收的多个切换证明签名和所述切换证明,生成切换证明交易;所述切换证明签名是第二选举节点确定所述切换证明满足第一验证要求后对所述切换证明进行签名得到的;
在所述区块链系统基于PBFT共识算法确定所述切换证明交易共识成功后,作为所述区块链系统的PBFT共识节点。
所述生成模块310具体用于:
确定所述区块链系统中区块高度最大的区块的序列号,基于所述区块高度最大的区块的序列号生成第二验证序列号;
对所述第二验证序列号和所述第二主节点的标识进行签名,得到第二选举签名;
根据所述第二验证序列号、所述第一主节点的标识、所述第二主节点的标识和所述第二选举签名生成切换证明;
所述第二验证要求包括:
切换证明信息中第一主节点的标识记录在系统共识节点记录中;
所述切换证明信息中的第二验证序列号与所述区块高度最大的区块的序列号满足预设条件;
所述切换证明信息中切换证明的第二选举签名有效;
所述切换证明信息中签名列表的切换证明签名数量不少于节点机构中节点数量的一半;
所述切换证明信息中签名列表的各切换证明签名有效。
基于相同的技术构思,本发明实施例还提供一种计算机设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述区块链系统的共识方法。
基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述区块链系统的共识方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种区块链系统的共识方法,其特征在于,所述区块链系统中包括多个节点机构,每个节点机构具有多个节点;所述方法包括:
针对至少一个节点机构,所述节点机构中的第一主节点生成选举证明并发送给所述节点机构中的第一选举节点;所述第一主节点是所述节点机构中的各节点基于Raft共识算法确定的;
所述第一主节点基于接收的多个选举证明签名和所述选举证明,生成选举证明交易;所述选举证明签名是第一选举节点确定所述选举证明满足第一验证要求后对所述选举证明进行签名得到的;
所述第一主节点在所述区块链系统基于PBFT共识算法确定所述选举证明交易共识成功后,作为所述区块链系统的PBFT共识节点。
2.如权利要求1所述的方法,其特征在于,作为所述区块链系统的PBFT共识节点之后,还包括:
将所述第一主节点的标识写入系统共识节点记录中;
所述第一主节点接收第一待共识信息包;
所述第一主节点确定所述第一待共识信息包的发送者为所述系统共识节点记录中的共识节点后,基于PBFT共识算法对所述第一待共识信息包进行共识。
3.如权利要求1所述的方法,其特征在于,所述节点机构中的第一主节点生成选举证明,包括:
所述节点机构中的第一主节点确定所述区块链系统中区块高度最大的区块的序列号;
所述第一主节点基于所述区块高度最大的区块的序列号生成第一验证序列号;
所述第一主节点对所述第一验证序列号和所述第一主节点的标识进行签名,得到第一选举签名;
所述第一主节点根据所述第一验证序列号、所述第一主节点的标识和所述第一选举签名生成所述选举证明;
所述第一验证要求包括:
选举证明中节点的标识与节点机构中的主节点的标识一致;
所述选举证明中的验证序列号与所述区块高度最大的区块的序列号满足预设条件;
所述选举证明中的选举签名有效。
4.如权利要求1所述的方法,其特征在于,所述第一主节点基于接收的多个选举证明签名和所述选举证明,生成选举证明交易,包括:
所述第一主节点在确定接收的选举证明签名的数量不少于所述节点机构中节点数量的一半时,将接收的选举证明签名合成签名列表;
所述第一主节点基于所述签名列表和所述选举证明,生成选举证明交易。
5.如权利要求4所述的方法,其特征在于,基于PBFT共识算法确定所述选举证明交易共识成功,包括:
确定所述选举证明交易中选举证明的验证序列号与区块高度最大的区块的序列号满足预设条件;
确定所述选举证明交易中签名列表的选举证明签名数量不少于所述节点机构中节点数量的一半;
确定所述选举证明交易中签名列表的各选举证明签名有效。
6.如权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
在所述节点机构的第一主节点轮换为第二主节点后,所述第二主节点生成切换证明并发送给所述节点机构中的第二选举节点;所述第二主节点是所述节点机构中的各节点基于Raft共识算法确定的;所述第二选举节点为所述节点机构中除所述第二主节点之外的各节点;
所述第二主节点基于接收的多个切换证明签名和所述切换证明,生成切换证明信息;所述切换证明签名是第二选举节点确定所述切换证明满足第一验证要求后对所述切换证明进行签名得到的;
若所述切换证明信息满足第二验证要求,则所述第二主节点在所述区块链系统中基于PBFT共识算法对所述第二待共识消息包进行共识。
7.如权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
所述节点机构的第一主节点轮换为第二主节点后,所述第二主节点生成切换证明并发送给所述节点机构中的第二选举节点;所述第二主节点是所述节点机构中的各节点基于Raft共识算法确定的;所述第二选举节点为所述节点机构中除所述第二主节点之外的各节点;
所述第二主节点基于接收的多个切换证明签名和所述切换证明,生成切换证明交易;所述切换证明签名是第二选举节点确定所述切换证明满足第一验证要求后对所述切换证明进行签名得到的;
所述第二主节点在所述区块链系统基于PBFT共识算法确定所述切换证明交易共识成功后,作为所述区块链系统的PBFT共识节点。
8.如权利要求6所述的方法,其特征在于,所述第二主节点生成切换证明,包括:
所述第二主节点确定所述区块链系统中区块高度最大的区块的序列号,基于所述区块高度最大的区块的序列号生成第二验证序列号;
所述第二主节点对所述第二验证序列号和所述第二主节点的标识进行签名,得到第二选举签名;
所述第二主节点根据所述第二验证序列号、所述第一主节点的标识、所述第二主节点的标识和所述第二选举签名生成切换证明;
所述第二验证要求包括:
切换证明信息中第一主节点的标识记录在系统共识节点记录中;
所述切换证明信息中的第二验证序列号与所述区块高度最大的区块的序列号满足预设条件;
所述切换证明信息中切换证明的第二选举签名有效;
所述切换证明信息中签名列表的切换证明签名数量不少于节点机构中节点数量的一半;
所述切换证明信息中签名列表的各切换证明签名有效。
9.一种区块链系统的共识装置,其特征在于,所述区块链系统中包括多个节点机构,每个节点机构具有多个节点;所述装置包括:
生成模块,用于针对至少一个节点机构,在所述节点机构中生成第一主节点的选举证明并发送给所述节点机构中的第一选举节点;所述第一主节点是所述节点机构中的各节点基于Raft共识算法确定的;
接收模块,用于接收的多个选举证明签名和所述选举证明;
处理模块,用于基于接收的多个选举证明签名和所述选举证明,生成选举证明交易;所述选举证明签名是第一选举节点确定所述选举证明满足第一验证要求后对所述选举证明进行签名得到的;
在所述区块链系统基于PBFT共识算法确定所述选举证明交易共识成功后,作为所述区块链系统的PBFT共识节点。
10.一种计算机设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至8任一项所述的方法。
CN202111138341.1A 2021-09-27 2021-09-27 一种区块链系统的共识方法及装置 Pending CN113837758A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111138341.1A CN113837758A (zh) 2021-09-27 2021-09-27 一种区块链系统的共识方法及装置
PCT/CN2022/120220 WO2023045972A1 (zh) 2021-09-27 2022-09-21 一种区块链系统的共识方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111138341.1A CN113837758A (zh) 2021-09-27 2021-09-27 一种区块链系统的共识方法及装置

Publications (1)

Publication Number Publication Date
CN113837758A true CN113837758A (zh) 2021-12-24

Family

ID=78970667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111138341.1A Pending CN113837758A (zh) 2021-09-27 2021-09-27 一种区块链系统的共识方法及装置

Country Status (2)

Country Link
CN (1) CN113837758A (zh)
WO (1) WO2023045972A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114710504A (zh) * 2022-03-31 2022-07-05 蚂蚁区块链科技(上海)有限公司 区块链系统中共识节点的轮换方法、节点和区块链系统
CN114745135A (zh) * 2022-04-19 2022-07-12 西南石油大学 一种基于V-raft共识算法进行能源交易的区块链系统
CN114745131A (zh) * 2022-04-06 2022-07-12 广东钜联信息科技有限公司 一种区块链的pbft改进共识算法
CN115208578A (zh) * 2022-07-07 2022-10-18 西安电子科技大学 一种基于区块链的无人机集群信息一致性共享方法
WO2023045972A1 (zh) * 2021-09-27 2023-03-30 深圳前海微众银行股份有限公司 一种区块链系统的共识方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789095A (zh) * 2017-03-30 2017-05-31 腾讯科技(深圳)有限公司 分布式系统及消息处理方法
CN106878071A (zh) * 2017-01-25 2017-06-20 上海钜真金融信息服务有限公司 一种基于Raft算法的区块链共识机制
CN109039713A (zh) * 2018-07-16 2018-12-18 夸克链科技(深圳)有限公司 一种区块链共识装置与算法
CN110162511A (zh) * 2018-02-08 2019-08-23 华为技术有限公司 一种日志传输方法及相关设备
CN111464349A (zh) * 2020-03-30 2020-07-28 南京中诚区块链研究院有限公司 区块链Raft+PBFT的混合共识网络算法及系统
CN111539726A (zh) * 2020-04-20 2020-08-14 中国工商银行股份有限公司 区块链共识系统及方法
CN112132579A (zh) * 2020-09-30 2020-12-25 深圳前海微众银行股份有限公司 一种区块链共识节点更新方法及装置
CN112714177A (zh) * 2020-12-24 2021-04-27 天津科技大学 一种具有线性消息复杂度的pbft改进算法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109345386B (zh) * 2018-08-31 2020-04-14 阿里巴巴集团控股有限公司 基于区块链的交易共识处理方法及装置、电子设备
CN110474986B (zh) * 2019-08-20 2022-08-12 深圳前海微众银行股份有限公司 一种基于区块链系统的共识方法、装置及系统
CN111371877B (zh) * 2020-02-28 2022-02-18 桂林电子科技大学 一种异构联盟链的共识方法
CN113837758A (zh) * 2021-09-27 2021-12-24 深圳前海微众银行股份有限公司 一种区块链系统的共识方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106878071A (zh) * 2017-01-25 2017-06-20 上海钜真金融信息服务有限公司 一种基于Raft算法的区块链共识机制
CN106789095A (zh) * 2017-03-30 2017-05-31 腾讯科技(深圳)有限公司 分布式系统及消息处理方法
CN110430064A (zh) * 2017-03-30 2019-11-08 腾讯科技(深圳)有限公司 区块链系统、消息处理方法及存储介质
CN110162511A (zh) * 2018-02-08 2019-08-23 华为技术有限公司 一种日志传输方法及相关设备
CN109039713A (zh) * 2018-07-16 2018-12-18 夸克链科技(深圳)有限公司 一种区块链共识装置与算法
CN111464349A (zh) * 2020-03-30 2020-07-28 南京中诚区块链研究院有限公司 区块链Raft+PBFT的混合共识网络算法及系统
CN111539726A (zh) * 2020-04-20 2020-08-14 中国工商银行股份有限公司 区块链共识系统及方法
CN112132579A (zh) * 2020-09-30 2020-12-25 深圳前海微众银行股份有限公司 一种区块链共识节点更新方法及装置
CN112714177A (zh) * 2020-12-24 2021-04-27 天津科技大学 一种具有线性消息复杂度的pbft改进算法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄冬艳等: "RBFT:基于Raft集群的拜占庭容错共识机制", 《通信学报》, vol. 42, no. 3, pages 209 - 219 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023045972A1 (zh) * 2021-09-27 2023-03-30 深圳前海微众银行股份有限公司 一种区块链系统的共识方法及装置
CN114710504A (zh) * 2022-03-31 2022-07-05 蚂蚁区块链科技(上海)有限公司 区块链系统中共识节点的轮换方法、节点和区块链系统
CN114745131A (zh) * 2022-04-06 2022-07-12 广东钜联信息科技有限公司 一种区块链的pbft改进共识算法
CN114745135A (zh) * 2022-04-19 2022-07-12 西南石油大学 一种基于V-raft共识算法进行能源交易的区块链系统
CN115208578A (zh) * 2022-07-07 2022-10-18 西安电子科技大学 一种基于区块链的无人机集群信息一致性共享方法

Also Published As

Publication number Publication date
WO2023045972A1 (zh) 2023-03-30

Similar Documents

Publication Publication Date Title
CN112311735B (zh) 可信认证方法,网络设备、系统及存储介质
CN113837758A (zh) 一种区块链系统的共识方法及装置
EP3540628B1 (en) Mechanism for efficient validation of finality proof in lightweight distributed ledger clients
WO2020082887A1 (zh) 一种区块链的交易方法和装置
US20210099279A1 (en) Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system
EP3394756B1 (en) Method and system for byzantine fault - tolerance replicating of data
WO2020173497A1 (zh) 一种部署有中心化系统的区块链网络
CN111682942B (zh) 一种应用于许可链的二元加权拜占庭容错共识方法
CN113301114B (zh) 区块链共识节点选择方法、装置、计算机设备和存储介质
CN113723962B (zh) 区块链权限管理方法和区块链系统
CA2995772A1 (en) A method of block building based on byzantine consensus via four rounds of communication
EP3435273A1 (en) Consensus protocol for permissioned ledgers
US20220278854A1 (en) Unity Protocol Consensus
CN110780848B (zh) 基于区块链分布式随机过程的双随机生成方法和监管系统
Lin et al. Blockchain-based complete self-tallying E-voting protocol
CN111865595A (zh) 一种区块链的共识方法及装置
CN116389504A (zh) 基于区块链的身份认证快速共识方法、系统、设备及介质
CN113507528B (zh) 数据处理方法及电子设备
CN115190130A (zh) 基于区块链的数据处理方法、装置、电子设备及存储介质
Wu et al. Blockchain consensus mechanism for distributed energy transactions
Xie et al. A raft algorithm with byzantine fault-tolerant performance
CN117473557B (zh) 一种可信设置方法及装置
CN114531278B (zh) 基于新型自适应分片的区块链监管系统及方法
CN117811779A (zh) 一种外部数据源的数据验证方法及装置
Freitas et al. Deterministic or probabilistic?-A survey on Byzantine fault tolerant state machine replication

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