CN112883114A - 应用于区块链的交易处理方法和装置 - Google Patents
应用于区块链的交易处理方法和装置 Download PDFInfo
- Publication number
- CN112883114A CN112883114A CN202110207436.8A CN202110207436A CN112883114A CN 112883114 A CN112883114 A CN 112883114A CN 202110207436 A CN202110207436 A CN 202110207436A CN 112883114 A CN112883114 A CN 112883114A
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- consensus
- transaction
- replica
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/602—Providing cryptographic facilities or services
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Accounting & Taxation (AREA)
- Data Mining & Analysis (AREA)
- Finance (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Marketing (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本公开提供一种应用于包括N个节点的区块链的交易处理方法,包括:响应于客户端发起的交易请求,确定N个节点中与每个节点对应的节点信用等级,基于与每个节点对应的节点信用等级和预设选举策略,从N个节点中选出主节点和M‑1个副本节点,响应于主节点接收到交易请求,向客户端发送包括主节点的自证消息响应信息,以获得主节点的验证结果,自证消息用于验证主节点是否为恶意节点,以及在主节点的自证消息通过验证的情况下,确定主节点和M‑1个副本节点对交易请求的共识验证结果,以向客户端反馈交易请求的处理结果。本公开还提供了一种交易处理装置、设备、介质和程序产品。本公开提供的方法和装置例如可以应用于金融领域或其他领域。
Description
技术领域
本公开涉及区块链技术领域,特别是涉及一种应用于区块链的交易处理方法、装置、设备、介质和程序产品。
背景技术
对交易请求进行共识验证,以实现记账合法性的共识问题一直是分布式领域的重要研究课题,共识机制是区块链是核心技术之一,根据选取区块记账权节点方式的不同,大致可以将共识算法分为以下四类:证明类共识算法如工作量证明(Proof of Work,PoW)算法、股权证明(Proof of Stake,PoS)算法、广播选举类共识算法如Raft算法、轮流类共识算法如实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法、混合类共识算法如PoS+PBFT。其中比特币采用PoW算法,以太币采用PoS算法,存在拜占庭问题时采用PBFT算法。
但是,利用PBFT算法进行共识验证时,包含多个交易的区块请求都需要经过区块链网络中所有成员节点的共识,每一次PBFT三段式共识过程都需要多次交互,通信次数多,时间复杂度高,共识效率严重下降,且区块链网络中成员节点的数量越多,耗时也更久。且PBFT算法通过随机选择器从所有成员节点中选出主节点,这种方式使得拜占庭节点(即作恶节点)也有担任主节点的可能性,一旦作恶节点担任主节点,将引起视图更换从而导致系统性能大大降低,且影响共识结果,并给整个区块链的交易安全带来极大的安全隐患。
发明内容
有鉴于此,为了至少部分地克服相关PBFT算法中存在的上述效率低、安全性差的技术问题,本公开提供了一种对相关PBFT算法进行优化,以应用于区块链的交易处理方法、装置、设备、介质和程序产品。
为了实现上述目标,本公开的一个方面提供了一种应用于区块链的交易处理方法,其中,上述区块链包括N个节点,N为正整数,上述方法可以包括:响应于客户端发起的交易请求,确定上述N个节点中与每个节点对应的节点信用等级。基于上述与每个节点对应的节点信用等级和预设选举策略,从上述N个节点中选出主节点和M-1个副本节点,M<N。响应于上述主节点接收到上述交易请求,向上述客户端发送上述交易请求的响应信息,以获得上述主节点的验证结果,其中,上述响应信息至少包括上述主节点的自证消息,上述自证消息用于验证上述主节点是否为恶意节点。以及在上述主节点的自证消息通过验证的情况下,确定上述主节点和上述M-1个副本节点对上述交易请求的共识验证结果,以向上述客户端反馈上述交易请求的处理结果。
根据本公开的实施例,上述基于上述与每个节点对应的节点信用等级和预设选举策略,从上述N个节点中选出主节点和M-1个副本节点可以包括:基于上述与每个节点对应的节点信用等级,从上述N个节点中过滤掉节点信用等级为最低等级的节点,以筛选出共识节点候选集,其中,上述共识节点候选集包括M个节点,上述M个节点参与上述交易请求的共识验证。基于上述预设选举策略,从上述共识节点候选集中选出主节点。以及将上述共识节点候选集中除上述主节点之外的M-1个节点确定为上述M-1个副本节点。
根据本公开的实施例,上述确定上述N个节点中与每个节点对应的节点信用等级可以包括:通过加密抽签的方式确定与上述每个节点对应的信用值。获取节点信用等级划分规则,其中,上述节点信用等级划分规则包括信用等级从高到低的P个节点信用等级以及与每个节点信用等级对应的预设信用阈值区间。以及基于上述与上述每个节点对应的信用值和上述节点信用等级划分规则,确定与上述每个节点对应的节点信用等级。
根据本公开的实施例,上述预设选举策略包括优先级选举策略和主节点选举策略,上述基于上述预设选举策略,从上述共识节点候选集中选出主节点可以包括:基于上述优先级选举策略,检测在节点信用等级为最高等级的节点中是否存在节点。若存在,则基于上述主节点选举策略,检测从上述节点信用等级为最高等级的节点中是否选出主节点。若选不出,则基于上述优先级选举策略,检测在节点信用等级为次一等级的节点中是否存在节点。以及若存在,则基于上述主节点选举策略,检测从上述节点信用等级为次一等级的节点中是否选出主节点,直到选出上述主节点。
根据本公开的实施例,上述主节点选举策略可以包括:心跳检测成功策略、拥有最大视图号策略以及拥有最大编号策略。
根据本公开的实施例,上述方法还可以包括:响应于检测到新节点加入上述区块链,为上述新节点设置初始信用值,其中,上述初始信用值对应的节点信用等级为最高等级和最低等级之间的中间等级。以及根据上述新节点参与共识验证的共识验证结果,对上述初始信用值进行调整,以确定与上述新节点对应的信用值。
根据本公开的实施例,上述方法还可以包括:在上述主节点的自证消息未通过验证的情况下,重新从上述N个节点中选出主节点和M-1个副本节点。
根据本公开的实施例,上述确定上述主节点和上述M-1个副本节点对上述交易请求的共识验证结果可以包括:上述主节点基于上述交易请求,生成第一交易共识消息,并将上述第一交易共识消息广播给上述M-1个副本节点。上述M-1个副本节点中的每个副本节点为上述第一交易共识消息添加自证信息,以生成第二交易共识消息,并将上述第二交易共识消息广播给除自己以外的其他节点。确定上述主节点和上述每个副本节点接收到的验证通过的上述第二交易共识消息的数量是否超过第一预设阈值。在超过上述第一预设阈值的情况下,上述主节点和上述每个副本节点将上述第二交易共识消息的确认消息广播给除自己以外的其他节点。以及根据上述主节点和上述每个副本节点接收到的验证通过的确认消息的数量,确定上述主节点和上述M-1个副本节点对上述交易请求的共识验证结果。
根据本公开的实施例,上述根据上述主节点和上述每个副本节点接收到的验证通过的确认消息的数量,确定上述主节点和上述M-1个副本节点对上述交易请求的共识验证结果可以包括:确定上述主节点和上述每个副本节点接收到的验证通过的确认消息的数量是否超过上述第一预设阈值。在超过上述第一预设阈值的情况下,上述主节点和上述每个副本节点向上述客户端返回上述交易请求的响应消息。以及在上述客户端接收到的上述交易请求的响应信息的数量超过第二预设阈值的情况下,确认上述交易请求的共识验证结果为共识验证通过,其中,上述第二预设阈值小于上述第一预设阈值。
根据本公开的实施例,上述方法还可以包括:在上述客户端接收到的上述交易请求的响应信息的数量未超过上述第二预设阈值的情况下,确认上述交易请求的共识验证结果为共识验证未通过。
为了实现上述目标,本公开的另一个方面提供了一种应用于区块链的交易处理装置,其中,上述区块链包括N个节点,N为正整数,上述装置可以包括:第一确定模块,用于响应于客户端发起的交易请求,确定上述N个节点中与每个节点对应的节点信用等级。第一选择模块,用于基于上述与每个节点对应的节点信用等级和预设选举策略,从上述N个节点中选出主节点和M-1个副本节点,M<N。验证模块,用于响应于上述主节点接收到上述交易请求,向上述客户端发送上述交易请求的响应信息,以获得上述主节点的验证结果,其中,上述响应信息至少包括上述主节点的自证消息,上述自证消息用于验证上述主节点是否为恶意节点。以及第二确定模块,用于在上述主节点的自证消息通过验证的情况下,确定上述主节点和上述M-1个副本节点对上述交易请求的共识验证结果,以向上述客户端反馈上述交易请求的处理结果。
根据本公开的实施例,上述第一选择模块可以包括:筛选子模块,用于基于上述与每个节点对应的节点信用等级,从上述N个节点中过滤掉节点信用等级为最低等级的节点,以筛选出共识节点候选集,其中,上述共识节点候选集包括M个节点,上述M个节点参与上述交易请求的共识验证。第一选择子模块,用于基于上述预设选举策略,从上述共识节点候选集中选出主节点。以及第一确定子模块,用于将上述共识节点候选集中除上述主节点之外的M-1个节点确定为上述M-1个副本节点。
根据本公开的实施例,上述第一确定模块可以包括:第二确定子模块,用于通过加密抽签的方式确定与上述每个节点对应的信用值。第一获取子模块,用于获取节点信用等级划分规则,其中,上述节点信用等级划分规则包括信用等级从高到低的P个节点信用等级以及与每个节点信用等级对应的预设信用阈值区间。以及第三确定子模块,用于基于上述与上述每个节点对应的信用值和上述节点信用等级划分规则,确定与上述每个节点对应的节点信用等级。
根据本公开的实施例,上述预设选举策略包括优先级选举策略和主节点选举策略,上述第一选择子模块可以包括:第一检测单元,用于基于上述优先级选举策略,检测在节点信用等级为最高等级的节点中是否存在节点。第二检测单元,用于若存在,则基于上述主节点选举策略,检测从上述节点信用等级为最高等级的节点中是否选出主节点。第三检测单元,用于若选不出,则基于上述优先级选举策略,检测在节点信用等级为次一等级的节点中是否存在节点。以及第四检测单元,用于若存在,则基于上述主节点选举策略,检测从上述节点信用等级为次一等级的节点中是否选出主节点,直到选出上述主节点。
根据本公开的实施例,上述主节点选举策略可以包括:心跳检测成功策略、拥有最大视图号策略以及拥有最大编号策略。
根据本公开的实施例,上述第一确定模块还可以包括:设置子模块,用于响应于检测到新节点加入上述区块链,为上述新节点设置初始信用值,其中,上述初始信用值对应的节点信用等级为最高等级和最低等级之间的中间等级。以及第四确定子模块,用于根据上述新节点参与共识验证的共识验证结果,对上述初始信用值进行调整,以确定与上述新节点对应的信用值。
根据本公开的实施例,上述装置还可以包括:第二选择模块,用于在上述主节点的自证消息未通过验证的情况下,重新从上述N个节点中选出主节点和M-1个副本节点。
根据本公开的实施例,上述第二确定模块可以包括:第一广播子模块,用于上述主节点基于上述交易请求,生成第一交易共识消息,并将上述第一交易共识消息广播给上述M-1个副本节点。第二广播子模块,用于上述M-1个副本节点中的每个副本节点为上述第一交易共识消息添加自证信息,以生成第二交易共识消息,并将上述第二交易共识消息广播给除自己以外的其他节点。第五确定子模块,用于确定上述主节点和上述每个副本节点接收到的验证通过的上述第二交易共识消息的数量是否超过第一预设阈值。第三广播子模块,用于在超过上述第一预设阈值的情况下,上述主节点和上述每个副本节点将上述第二交易共识消息的确认消息广播给除自己以外的其他节点。以及第六确定子模块,用于根据上述主节点和上述每个副本节点接收到的验证通过的确认消息的数量,确定上述主节点和上述M-1个副本节点对上述交易请求的共识验证结果。
根据本公开的实施例,上述第六确定子模块可以包括:第一确定单元,用于确定上述主节点和上述每个副本节点接收到的验证通过的确认消息的数量是否超过上述第一预设阈值。返回单元,用于在超过上述第一预设阈值的情况下,上述主节点和上述每个副本节点向上述客户端返回上述交易请求的响应消息。以及第二确定单元,用于在上述客户端接收到的上述交易请求的响应信息的数量超过第二预设阈值的情况下,确认上述交易请求的共识验证结果为共识验证通过,其中,上述第二预设阈值小于上述第一预设阈值。
根据本公开的实施例,上述第六确定子模块还可以包括:第三确定单元,用于在上述客户端接收到的上述交易请求的响应信息的数量未超过上述第二预设阈值的情况下,确认上述交易请求的共识验证结果为共识验证未通过。
为了实现上述目标,本公开的另一方面提供了一种电子设备,包括:一个或多个处理器,存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的应用于区块链的交易处理方法。
为了实现上述目标,本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上所述的应用于区块链的交易处理方法。
为了实现上述目标,本公开的另一方面提供了一种计算机程序,上述计算机程序包括计算机可执行指令,上述指令在被执行时用于实现如上所述的应用于区块链的交易处理方法。
与相关技术相比,根据本公开提供的交易处理方法,基于与每个节点对应的节点信用等级和预设选举策略,从区块链包括的所有节点中筛选出部分而不是全部节点参与到共识过程,可以至少部分地减少恶意节点成为主节点的概率,并减少共识节点的数量,提高共识过程的效率,通过对主节点增加自证信息,与客户端进行交互验证,在主节点自证信息验证通过的情况下,由共识节点对交易请求进行共识验证,可以至少部分地提高主节点的安全性,进而提高区块链系统的安全性。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了适用于本公开实施例的应用于区块链的交易处理方法、装置、设备、介质和程序产品的系统架构;
图2示意性示出了根据本公开实施例的应用于区块链的交易处理方法的流程图;
图3示意性示出了根据本公开实施例的共识节点的筛选过程;
图4示意性示出了相关技术拜占庭容错三段式的共识过程;
图5示意性示出了本公开实施例的拜占庭容错三段式的共识过程;
图6示意性示出了根据本公开另一实施例的应用于区块链的交易处理方法的流程图;
图7示意性示出了根据本公开实施例的应用于区块链的交易处理装置的框图;
图8示意性示出了根据本公开实施例的适于实现上文描述的交易处理方法的计算机可读存储介质产品的示意图;以及
图9示意性示出了根据本公开实施例的适于实现上文描述的交易处理方法的电子设备的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
应该注意的是,附图并未按比例绘制,并且出于说明目的,在整个附图中类似结构或功能的元素通常用类似的附图标记来表示。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了上述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程交易处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
作为一种去中心化、点对点的交易系统,比特币以其独特概念在短短几年的时间内就迅速成功地吸引币圈人群的普遍关注。研究人员通过分析、概况以及抽象比特币的底层技术,从虚拟数字货币中独立出来,总结出区块链技术,从此开创了一个全新的技术领域。区块链是一种通过点对点的通讯技术实现区块链的网络节点之间的对等通信、利用共识机制实现记账合法性、利用链式结构存储数据的共同记账的解决方案。从本质上看,区块链是一种去中心化、分布式数据存储、点对点传输、共识机制、加密算法等技术的新型应用模式,被认为是人类社会颠覆性变革的新兴技术之一,其应用范围十分广泛,主要应用领域涉及数字资产、数字货币、智能合约、身份验证、电子商务。
本公开提供了一种应用于包括N(N为正整数)个节点的区块链的交易处理方法,包括共识节点筛选阶段和共识验证阶段。在共识节点筛选阶段,首先响应于客户端发起的交易请求,确定N个节点中与每个节点对应的节点信用等级,然后基于与每个节点对应的节点信用等级和预设选举策略,从N个节点中选出主节点和M-1个副本节点,M<N。在共识验证阶段,首先响应于主节点接收到交易请求,向客户端发送交易请求的响应信息,以获得主节点的验证结果,该响应信息至少包括主节点的自证消息,自证消息用于验证主节点是否为恶意节点,然后在主节点的自证消息通过验证的情况下,确定主节点和M-1个副本节点对交易请求的共识验证结果,最后根据共识验证结果向客户端反馈交易请求的处理结果。
根据本公开提供的交易处理方法,基于与每个节点对应的节点信用等级和预设选举策略,筛选部分节点参与到交易请求的共识验证过程中,可以至少部分地减少节点数量,减少节点间通信次数,简化时间复杂度,通过对主节点增加自证信息,使得主节点与客户端之间进行交互验证,可以对主节点进行验证,提高主节点的安全性,进而提高共识过程的效率和区块链网络系统的安全性。
需要说明的是,本公开提供的交易处理方法和装置可用于金融领域中,也可用于除金融领域之外的任意领域中。因此,对本公开所提供的交易处理方法和装置的应用领域不做限定。
区块链作为一项新兴技术,是由分布式系统、共识算法、密码学、点对点网络等多种技术深度融合实现的去中心化的分布式账本技术,提供了一种在去信任化的环境中进行信息和价值传递的可信通道。
就应用范围而言,区块链主要包括三种形式,分别是公有区块链、联盟区块链以及私有区块链。其中公有区块链是一种完全去中心化的交易系统,无官方管理机构和中心服务器,节点按照系统规则自由接入网络并基于共识机制开展工作,由于其本身没有管理机制和监督机制,任何人都可以参与公有区块链,并且访问链式结构的存储数据,因此存在区块链网络被攻击的风险,隐私性和安全性难以得到保障。联盟区块链有若干机构联合发起,新节点通过联盟的认可才能加入,主要应用于企业组织内部,由于只有特定允许的成员节点访问区块链网络,交易数据得以保护,安全性较强,因此可以很好的支持企业级应用程序。私有区块链是面向企业内部,节点数据有限且按照企业要求的系统规则运作,由于其仅允许一个公司或者个人拥有对区块链执行记账或数据更新的写入权限,因此其本质与分布式存储的无大差别。
联盟区块链(简称联盟链),面向特定群体,只有经过授权的节点才可以加入特定的区块链网络。联盟链中节点需要实现认证注册,共识过程中通常不涉及加密,成员节点之间有共同的目标,但在维护校验数据等方面并不完全信任彼此。相对于公有链,联盟链节点之间通常有着良好的连接、较高的验证和确认速度、更快的出块时间、较低成本的系统维护费用。结合区块链的最新技术发展,联盟链可实现内部成员共同负责账本维护,同时注册机制可限制参与节点的行为,灵活权限处理,在一定程度上构建出了一个去中心、分布式的体系,摆脱了由唯一中心机构带来的单点故障等安全隐患,解决信任问题,可适用于金融、供应链、公益等应用场景。而共识算法作为联盟链中的关键技术,直接影响着联盟链的交易处理能力、可扩展性和安全性。
图1示意性示出了适用于本公开实施例的应用于区块链的交易处理方法、装置、设备、介质和程序产品的系统架构100。需要注意的是,图1所示仅为可应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备111~114构成的区块链系统110、电子设备120、130、140、150。
根据本公开的实施例,终端设备111~114彼此之间可以通过网络通信。网络例如可以为有线、无线通信链路或者光纤电缆等等。
对交易请求进行共识验证,以实现记账合法性的共识问题一直都是区块链的核心技术之一,对于一笔交易来说,若利益不相干的若干个共识节点能够达成共识,则认为区块链系统110中的所有共识节点对此均可以达成共识,即全网共识。根据本公开的实施例,区块链系统110例如可以是联盟链,针对的共识算法为联盟链采用的PBFT算法,该算法前提是采用密码学算法保证节点之间的消息传递是不可篡改的,容忍无效或者恶意节点数为f,同时正常节点数为2f+1,系统总节点数为3f+1,也就是说,PBFT算法可以在保证活性和安全性的前提下容忍小于1/3个无效或者恶意节点。例如图1中区块链系统110总节点数为4,容忍无效或恶意节点数为1,正常节点数为3。终端设备111~114中每个终端设备都可以作为区块链系统110中的一个节点。
根据本公开的实施例,用户可以使用电子设备120、130、140、150通过网络与区块链系统110中的节点通信连接,以接收或发送消息等。电子设备120、130、140、150上可以安装有各种客户端(或称为用户端),例如网上交易类应用、购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。电子设备120、130、140和150可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
根据本公开的实施例,在用户使用电子设备120、130、140、150中的任一电子设备发起交易请求时,从区块链系统110的所有节点中筛选出部分节点作为共识节点参该交易请求的共识验证,从共识节点中选举出主节点,其余共识节点自动成为副本节点,由主节点根据交易请求可以生成交易共识消息,并广播给所有副本节点,在副本节点接收到该交易共识消息之后,对其进行验证,经过验证的副本节点向其他副本节点广播发送交易共识消息,同时接收其他节点发来的确认消息,当此节点接收到设定数量的一致确认消息后,该节点进入确认阶段,执行此区块交易,并回复消息给客户端,客户端的上级节点根据客户端收到的节点回复消息情况,达成共识,各节点执行区块上链,完成一次记账或数据更新。
需要说明的是,本公开实施例所提供的应用于区块链的交易处理方法一般可以由区块链系统中所有节点筛选出来的部分节点来执行。相应地,本公开实施例所提供的应用于区块链的交易处理装置一般可以设置在区块链系统中所有节点筛选出来的部分节点中。
应该理解,图1中的终端设备、电子设备的数目和类型仅仅是示意性的。根据实现需要,可以具有任意数目和类型的终端设备、电子设备。
针对PBFT算法存在的共识效率低且系统安全性不高的技术问题,相关技术也提供了一些解决方案,例如对PBFT三段式共识过程中的每一个共识阶段都进行验证,在本次共识阶段验证通过的情况下,才会进入下一个共识阶段,虽然可以提高安全性,但是延时较长,无法提高共识高效性;又例如,基于环签名的方法对成员节点的可靠性进行验证,但是环签名算法的实现过程比较复杂,导致延时较长,同样无法兼顾PBFT算法的共识高效性和系统安全性。有鉴于此,本公开提供了一种针对PBFT算法的优化方法,优化的PBFT算法既能提高共识的效率,又能提高系统安全性。
以下将基于图1所描述的系统架构100,通过图2~图6对本公开实施例的应用于区块链的交易处理方法进行详细阐述。
图2示意性示出了根据本公开实施例的应用于区块链的交易处理方法的流程图。如图2所示,该实施例的交易处理方法200可以包括操作S210~操作S240。
在操作S210,响应于客户端发起的交易请求,确定N个节点中与每个节点对应的节点信用等级。
根据本公开的实施例,客户端或称为用户端,是指与服务器相对应,为用户提供本地服务的应用程序,可以安装在如图1所示的任一电子设备中。作为交易发起者向全网广播交易,并附上发送者的签名,所有节点均独立监听全网的交易数据,验证交易的合法性。在本公开中,客户端发起的交易请求可以包括消息内容、消息摘要、交易请求的具体操作、发生交易请求时客户端追加的时间戳以及客户端标识。
在相关技术中,每一笔交易都需要经过区块链网络中所有成员节点的共识,每一次PBFT三段式共识过程都需要多次交互,通信次数多,时间复杂度高,共识效率严重下降,且区块链网络中成员节点的数量越多,耗时也更久。且PBFT算法通过随机选择器从所有成员节点中选出主节点,这种方式使得拜占庭节点(即作恶节点)也有担任主节点的可能性,一旦作恶节点担任主节点,将引起视图更换从而导致系统性能大大降低,且影响共识结果,并给整个区块链的交易安全带来极大的安全隐患,因此PBFT算法无法兼顾共识的高效性和系统的安全性。为此,本公开避免通过随机选择器选出主节点的解决方式,提供了一种根据各节点的信用等级选举主节点的方法,首先需要确定每个节点对应的信用等级,不同的节点信用等级对应不同的节点角色,节点角色用于表示该节点是否可以参加共识过程,如果可以参加共识过程,该节点在共识过程中担任的角色是主节点的角色,还是副本节点的角色,需要说明的是,信用等级的数量可以根据实际情况预先设定,本公开对此不做限定。
在操作S220,基于与每个节点对应的节点信用等级和预设选举策略,从N个节点中选出主节点和M-1个副本节点,M<N。
根据本公开的实施例,根据每个节点对应的节点信用等级,可以从区块链系统包括的全部N个节点中筛选出部分M个节点,作为共识节点参与后续的交易请求的共识验证过程,而根据预设选举策略,可以从筛选出的M个共识节点中选举出主节点,此时M个共识节点中除主节点之外的其他M-1个节点自动成为副本节点(也称为从节点)。
在操作S230,响应于主节点接收到交易请求,向客户端发送交易请求的响应信息,以获得主节点的验证结果。
根据本公开的实施例,主节点在接收到经客户端签名的交易请求之后,需要对客户端请求消息签名是否正确进行校验。如果校验结果表征客户端请求消息签名不正确,表明客户端的交易请求为非法请求,则可以直接将其丢弃。如果校验结果表征客户端请求消息签名正确,则向客户端发送交易请求的响应信息,以获得主节点的验证结果。响应信息至少包括主节点的自证消息,自证消息用于验证主节点是否为恶意节点,例如可以包括但不限于主节点执行结果。如果在一定时间内,客户端未收到主节点返回的自证消息,则认为该主节点为恶意节点,可以再次发起交易请求,以重新选举主节点。
在操作S240,在主节点的自证消息通过验证的情况下,确定主节点和M-1个副本节点对交易请求的共识验证结果,以向客户端反馈交易请求的处理结果。
根据本公开的实施例,主节点的自证消息验证通过,表明该主节点为正常节点,非恶意节点,则主节点和副本节点进入共识验证过程,对来自客户端的交易请求进行验证,在验证结果表明验证通过的情况下,将验证通过的消息写入当前区块的账本并向客户端回复交易请求处理结果。在验证结果表明验证未通过的情况下,将验证未通过的消息向客户端回复,以使得客户端确定是否需要重新发起交易请求。
通过本公开的实施例,基于与每个节点对应的节点信用等级和预设选举策略,从区块链包括的所有节点中筛选出部分而不是全部节点参与到共识过程,可以至少部分地减少恶意节点成为主节点的概率,并减少共识节点的数量,提高共识过程的效率,通过对主节点增加自证信息,与客户端进行交互验证,在主节点自证信息验证通过的情况下,由共识节点对交易请求进行共识验证,可以至少部分地提高主节点的安全性,进而提高区块链系统的安全性。
作为一种可选的实施例,基于与每个节点对应的节点信用等级和预设选举策略,从N个节点中选出主节点和M-1个副本节点可以包括:基于与每个节点对应的节点信用等级,从N个节点中过滤掉节点信用等级为最低等级的节点,以筛选出共识节点候选集,其中,共识节点候选集包括M个节点,M个节点参与交易请求的共识验证;基于预设选举策略,从共识节点候选集中选出主节点;以及将共识节点候选集中除主节点之外的M-1个节点确定为M-1个副本节点。
根据本公开的实施例,由于各个节点等级是按照节点信用值进行划分,因此各个节点等级具有不同的权限。节点信用等级为最低等级的节点,其本身为恶意节点的概率最高,不适合参与共识过程,节点信用等级为最高等级的节点,其本身为恶意节点的概率最低,最适合选举主节点。因此,本公开中在筛选共识节点的过程中,将节点信用等级为最低等级的节点过滤掉。具体地,以节点信用等级从高到低依次为A、B、C、D为例,其中A类节点信用优,级别最高,优先担任主节点;B类节点信用良好,当A类节点被选择完毕或不存在A类节点,可以从B类节点中选择主节点,C类节点信用中等,级别偏低不适合担任主节点,但仍然可以作为从节点参与区块共识,D类节点信用差,不能参与共识。进一步地,由于D节点不参与共识过程,因此可以过滤掉D类节点,剩余M∈N个节点,减少(N-M)/N×100%比例的节点,减少后续进入三段式共识的节点数量。例如,过滤前区块链网络包括的节点数量N=4,节点信用等级为最低等级的节点有1个,则过滤后共识节点候选集包括的共识节点数量M=3,则可以减少25%的节点进入共识过程。
通过本公开的实施例,考虑到信用等级最低的节点成为恶意节点的概率最高,为了保证共识节点中不掺杂恶意节点,所以将其过滤掉,降低通信损失和减少视图切换变更的次数,从而大大提高系统效率。
作为一种可选的实施例,确定N个节点中与每个节点对应的节点信用等级可以包括:通过加密抽签的方式确定与每个节点对应的信用值;获取节点信用等级划分规则,其中,节点信用等级划分规则包括信用等级从高到低的P个节点信用等级以及与每个节点信用等级对应的预设信用阈值区间;以及基于与每个节点对应的信用值和节点信用等级划分规则,确定与每个节点对应的节点信用等级。
根据本公开的实施例,通过加密抽签的方式确定与每个节点对应的信用值的过程描述如下:
其中,通过可验证随机函数VRF(·)获得<hash,pi>,hash和pi分别为将抽签参数进行VRF(Verifiable Random Function)运算后得到的哈希值及证明,sk为用户私钥,seed为本轮随机种子,role、round分别用于区分共识过程中节点的角色和节点参与的共识轮次,w为参与者信用值,∑w为参与者总信用值,j为抽签结果,j=0表示没抽中,j>0表示抽中,且获得j份信用值。初始化过程中,设定各个节点的权重相等,即w0=w1=…wm,以此体现参与抽签的公平性。等权随机验证抽签算法具有如下特征:所有参与节点独立进行抽签,抽签过程中不与其它参与节点交互,所有参与节点可通过其它参与节点的公钥验证抽签结果的正确性,以及所有参与节点以同等抽签概率进行抽签,抽签过程公平公正。
根据本公开的实施例,可以对通过加密抽签的方式确定的与每个节点对应的信用值Ci进行归一化处理,并合理地设置四个阈值区间,每个阈值区间对应一个节点信用等级,然后根据与每个节点对应的信用值以及阈值区间,进行节点等级划分,确定与每个节点对应的节点信用等级,节点信用等级从高到低可以划分为4个级别,节点信用等级从最到低分别是A、B、C、D,即节点应用等级为A的节点信用值最高,节点应用等级为D的节点信用值最低,节点信用等级与节点角色的对应关系如表1所示。
表1
信用等级 | 优先担任主节点 | 可担任主节点 | 从节点 |
A级 | √ | √ | √ |
B级 | × | √ | √ |
C级 | × | × | √ |
D级 | × | × | × |
通过本公开的实施例,根据加密抽签的方式,确定节点的信用值,并根据预设的节点信用等级,确定每个节点对应的节点信用等级,不仅可以大大提高节点的积极性,而且可以有效地预防恶意节点成为主节点,可以有效地减少恶意节点参与共识。
图3示意性示出了根据本公开实施例的共识节点的筛选过程。
如图3所示,本公开提供的共识节点的筛选过程300可以描述为:在联盟区块链系统310包括成员节点311~318的情况下,确定每个成员节点信用值的抽签结果,过滤掉节点信用等级最低的成员节点后,得到包括共识节点311、312、315、316的候选节点集320,根据共识节点311、312、315、316的信用值,可以选举出主节点为共识节点311,共识节点312、315、316为副本节点。
作为一种可选的实施例,预设选举策略包括优先级选举策略和主节点选举策略,基于预设选举策略,从共识节点候选集中选出主节点可以包括:基于优先级选举策略,检测在节点信用等级为最高等级的节点中是否存在节点;若存在,则基于主节点选举策略,检测从节点信用等级为最高等级的节点中是否选出主节点;若选不出,则基于优先级选举策略,检测在节点信用等级为次一等级的节点中是否存在节点;以及若存在,则基于主节点选举策略,检测从节点信用等级为次一等级的节点中是否选出主节点,直到选出主节点。
根据本公开的实施例,以节点信用等级从高到低依次为A、B、C、D为例,其中A类节点信用优,级别最高,优先担任主节点;B类节点信用良好,当A类节点被选择完毕或不存在A类节点,可以从B类节点中选择主节点,C类节点信用中等,级别偏低不适合担任主节点,但仍然可以作为从节点参与区块共识。
根据本公开的实施例,基于优先级选举策略,主节点优先在A类节点范围内进行选择,其次是B类,以此类推。
PBFT算法是一种基于状态机复制(State Machine Replication,SMR)原理的共识算法,主要由一致性协议、视图切换协议和检查点协议组成,在正常情况下系统运行在一致性协议和检查点协议下,所有的副本在一个视图(View)轮换的过程中操作,主节点依据视图编号以及节点数集合来确定,当主节点出错时,视图切换协议才会启动,以保证系统有序执行客户端请求。PBFT算法通过遍历联盟区块链中的所有成员节点,以在各成员节点之间进行点对点的通信来获得共识结果,整个共识验证过程分为三个阶段,分别为PRE-PREPARE阶段,PREPARE阶段以及COMMIT阶段。
作为一种可选的实施例,作为一种可选的实施例,主节点选举策略可以包括:心跳检测成功策略、拥有最大视图号策略以及拥有最大编号策略。
根据本公开的实施例,基于主节点选举策略,主节点选举依据心跳检测机制和最长链原则。首先对候选的节点范围进行心跳检测,若心跳检测结果成功,则再依据最长链原则进行筛选,最终获得主节点。假设选举到一个主节点Primary(i),则副本节点每隔一定时间就给主节点发送一次Ping命令,做一次心跳检测,规定在T时间内Ping成功,且拥有最大的视图号同时编号最大的节点作为主节点,反之,如果副本节点向主节点Primary(i)发送Ping命令,在预定时间内得不到回应或者得到错误回应,则认为此主节点不可用,重新寻找主节点。
通过本公开的实施例,基于心跳检测机制和最长链原则,按照节点信用等级从高到低的顺序,依次选举主节点,可以避免恶意节点成为主节点的概率,减少恶意节点的影响,提高系统安全性。
作为一种可选的实施例,方法还可以包括:响应于检测到新节点加入区块链,为新节点设置初始信用值,其中,初始信用值对应的节点信用等级为最高等级和最低等级之间的中间等级;以及根据新节点参与共识验证的共识验证结果,对初始信用值进行调整,以确定与新节点对应的信用值。
根据本公开的实施例,可以为节点制定节点信用奖励和惩罚的规则。可选地,根据节点在系统中的行为进行奖励或惩罚,新加入的节点设置信用值为Cnomal,使之位于B或C等级,当节点在系统中参与一次有效区块的生成则进行奖励,节点信用积分增加Xadd;当节点在系统中未生成有效区块则进行惩罚,信用积分减少Xsub。
通过本公开的实施例,对新加入联盟链的节点,将其设置在节点信用等级处于中间等级的信用值,并根据其参与共识的行为进行奖励和惩罚,可以动态地、客观地对新加入节点进行信用值的管理。
作为一种可选的实施例,方法还可以包括:在主节点的自证消息未通过验证的情况下,重新从N个节点中选出主节点和M-1个副本节点。根据本公开的实施例,在主节点向M-1个副本节点广播交易共识请求之前,在主节点自证消息验证未通过的情况下,及时终止交易共识消息的广播,重新选举主节点,可以提高系统安全性。
作为一种可选的实施例,确定主节点和M-1个副本节点对交易请求的共识验证结果可以包括:主节点基于交易请求,生成第一交易共识消息,并将第一交易共识消息广播给M-1个副本节点;M-1个副本节点中的每个副本节点为第一交易共识消息添加自证信息,以生成第二交易共识消息,并将第二交易共识消息广播给除自己以外的其他节点;确定主节点和每个副本节点接收到的验证通过的第二交易共识消息的数量是否超过第一预设阈值;在超过第一预设阈值的情况下,主节点和每个副本节点将第二交易共识消息的确认消息广播给除自己以外的其他节点;以及根据主节点和每个副本节点接收到的验证通过的确认消息的数量,确定主节点和M-1个副本节点对交易请求的共识验证结果。
根据本公开的实施例,主节点收到请求之后向客户端发送自证消息,证明主节点本身不是拜占庭节点。验证内容包括:验证消息签名、时间戳以及主节点执行结果与消息是否一致,若验证通过,则进入pre-prepare阶段,主节点向其他副本节点广播消息,否则重新选取主节点。如果在一定时间τ内,客户端还没有接收到主节点返回的自证消息,则与认为主节点为拜占庭节点,应重新选举主节点。当主节点异常时,就终止向副本节点广播消息。副本节点接收到主节点广播的消息,此时副本节点还需在消息r上增加自证信息v,得到prepare消息<r,v>,副本节点将prepare消息<r,v>广播到除本身以外的节点,此过程称为prepare阶段。需要说明的是,在主节点出现异常的情况下,则终止向副本节点广播消息。第一预设阈值可以是2f+1,f表示区块链网络中可以支持的容错成员节点的个数。
通过本公开的实施例,在交易共识消息的准备阶段,由副本节点在广播给其他节点的消息中添加自证消息,增加副本节点的自证环节,在自证通过的情况下,才继续后续的共识阶段,可以提高系统安全性。
作为一种可选的实施例,根据主节点和每个副本节点接收到的验证通过的确认消息的数量,确定主节点和M-1个副本节点对交易请求的共识验证结果可以包括:确定主节点和每个副本节点接收到的验证通过的确认消息的数量是否超过第一预设阈值;在超过第一预设阈值的情况下,主节点和每个副本节点向客户端返回交易请求的响应消息;以及在客户端接收到的交易请求的响应信息的数量超过第二预设阈值的情况下,确认交易请求的共识验证结果为共识验证通过,其中,第二预设阈值小于第一预设阈值。
根据本公开的实施例,验证副本节点commit消息中自证信息与其行为是否一致,若验证通过则进入reply阶段,将验证通过的消息写入当前区块的帐本并向客户端回复。第二预设阈值可以是f+1,f表示区块链网络中可以支持的容错成员节点的个数。
通过本公开的实施例,在交易共识消息的确认阶段,增加副本节点的自证环节,在自证通过的情况下,才继续后续的共识阶段,可以提高系统安全性。
作为一种可选的实施例,方法还可以包括:在客户端接收到的交易请求的响应信息的数量未超过第二预设阈值的情况下,确认交易请求的共识验证结果为共识验证未通过。
通过本公开的实施例,根据客户端接收的交易请求响应信息的数量,可以确定其发起的交易请求是否打成全网共识,在打成全网共识的情况下,实现区块上链,进一步提高交易系统的安全性。
根据本公开的实施例,共识过程包括交易请求发送阶段(REQUEST)、第一段共识过程(PRE-PREPARE,预准备阶段)、第二段共识过程(PREPARE,准备阶段)、第三段共识过程(COMMIT,提交阶段)以及交易请求反馈阶段(REPLY)。其中PRE-PREPARE、PREPARE以及COMMIT构成拜占庭容错三段式的共识过程。针对拜占庭容错三段式的共识过程,本公开对相关技术进行了优化改进,下文将通过图4和图5进行详细说明。
图4示意性示出了相关技术中拜占庭容错三段式的共识过程。如图4所示,在相关技术中,参见共识流程的节点包括主节点、副本节点1、副本节点2及副本节点3,每个共识流程所包括的内容描述如下。
在交易请求发送阶段(REQUEST):交易发起者向全网广播交易,并附上发送者的签名,所有共识节点均独立监听全网的交易数据,验证交易的合法性。具体地,客户端Client向主节点Primary发送<REQUEST,o,t,c>交易请求,其中REQUEST表示包含消息内容m,以及消息摘要d(m),o表示交易请求的具体操作,t表示发生交易请求时客户端追加的时间戳,c表示客户端标识。客户端对交易请求签名。允许所有节点通过随机选择器担任主节点。
在第一段共识过程(PRE-PREPARE):主节点在接收到经客户端签名的交易请求之后,需要对客户端请求消息签名是否正确进行校验。如果校验结果表征客户端请求消息签名不正确,表明客户端的交易请求为非法请求,则可以直接将其丢弃。如果校验结果表征客户端请求消息签名正确,则首先分配一个编号n,该编号n主要用于对客户端的交易请求进行排序,n为在某一个范围区间内的[h,H]。然后广播一条<<PRE-PREPARE,v,n,d>,m>消息给其他所有副本节点,其中v表示视图编号,d表示客户端消息摘要,m表示消息内容。主节点对<PRE-PREPARE,v,n,d>消息签名。
在第二段共识过程(PREPARE):副本节点Replica i(1<i≤M)在接收到经主节点签名的PRE-PREPARE消息后,需要对其进行以下校验:(1)主节点PRE-PREPARE消息签名是否正确。(2)当前副本节点是否已经接收到了一条在同一视图编号v下并且编号也是n,但是签名不同的PRE-PREPARE消息。(3)客户端消息摘要d与消息内容m的摘要是否一致。(4)编号n是否在区间[h,H]内。如果校验结果表征是非法交易请求,则可以直接将其丢弃。如果校验结果表征是正确交易请求,则副本节点Replica i向其他节点(包括其他副本节点和主节点)发送一条<PREPARE,v,n,d,i>消息,v,n,d与上述PRE-PREPARE消息中的内容相同,i表示当前副本节点编号,副本节点i对<PREPARE,v,n,d,i>消息签名。记录PRE-PREPARE和PREPARE消息到日志(log)中,用于在View Change过程中恢复未完成的请求操作。
在第三段共识过程(COMMIT):副本节点向其他副本节点广播发送消息,同时接收其他节点发来的确认消息,检查消息签名、摘要、视图编号是否正确等,如果验证都通过,则缓存下来,当副本节点接收到超过来自2f+1个不同节点的一致信息后,该节点进入确认阶段,执行此区块交易,并回复消息给客户端。具体地,主节点和副本节点在接收到签名的PREPARE消息后,需要对其进行以下校验:(1)副本节点PREPARE消息签名是否正确。(2)当前副本节点是否已经接收到了同一视图v下的编号n。(3)客户端消息摘要d与当前已收到PRE-PREPARE中的摘要是否一致。(4)编号n是否在区间[h,H]内。如果校验结果表征是非法交易请求,则可以直接将其丢弃。如果副本节点i接收到2f+1个验证通过的PREPARE消息,则向其他节点(包括其他副本节点和主节点)发送一条<COMMIT,v,n,d,i>消息,v,n,d,i与上述PREPARE消息中的内容相同,副本节点i对<COMMIT,v,n,d,i>消息签名。记录COMMIT消息到日志(log)中,用于在View Change过程中恢复未完成的请求操作,记录其他副本节点发送的PREPARE消息到日志(log)中。
在交易请求反馈阶段(REPLY):主节点和副本节点在接收到签名的COMMIT消息后,需要对其进行以下校验:(1)副本节点COMMIT消息签名是否正确。(2)当前副本节点是否已经收到了同一视图v下的编号n。(3)客户端消息摘要d与当前已收到PRE-PREPARE中的摘要是否一致。(4)编号n是否在区间[h,H]内。如果校验结果表征是非法交易请求,则可以直接将其丢弃。如果主节点和副本节点i接收到2f+1个验证通过的COMMIT消息,则表明当前联盟区块链网络中的大部分节点已经达成共识,此时运行客户端的请求操作o,并返回<REPLY,v,t,c,i,r>消息给客户端,r表示交易请求的操作结果。如果客户端接收到f+1个相同的REPLY消息,即REPLY消息拥有相同的时间戳和回复消息,则表明由该客户端发起的交易请求已经达成全网共识,各节点执行区块上链。如果客户端未接收到f+1个相同的REPLY消息,则客户端需要判断是否重新发送交易请求给主节点,记录其他副本节点发送的COMMIT消息到日志(log)中。
图5示意性示出了本公开实施例的拜占庭容错三段式的共识过程。
如图5所示,本公开实施例对PBFT算法进行了改进优化,具体体现在两个方面。第一个方面是减少参与拜占庭容错三段式的共识过程的节点数量。第二个方面是增加节点自证信息。具体地,如图5所示,在本公开中,参见共识流程的节点包括主节点、副本节点1及副本节点2,将节点信用等级最低的副本节点3过滤掉,每个共识流程增加的验证内容描述如下:在交易请求发送阶段(REQUEST):主节点增加自证信息,以和客户端实现交互认证。在第一段共识过程(PRE-PREPARE):副本节点接收到主节点广播的消息,即<<PRE-PREPARE,v,n,d>,m>消息,此时副本节点还需在<<PRE-PREPARE,v,n,d>,m>消息上增加自证信息v,得到prepare消息。在第三段共识过程(COMMIT):验证副本节点commit消息中自证信息与其行为是否一致,若验证通过则进入REPLY阶段,将验证通过的消息写入当前区块的帐本并向客户端回复。
通过本公开提供的交易处理方法,基于节点信用分级的实用拜占庭容错优化方法,根据节点信用等级和预设选举策略,选举主节点和副本节点,主节点增加自证信息与客户端进行交互验证,进一步验证主节点,在共识过程主节点、副本节点广播包括消息本身和节点自证信息的消息,增加验证步骤,在一定程度上可以减少作恶节点的影响,减少点对点通信数量,提高联盟链共识过程的效率和系统的安全性。
图6示意性示出了根据本公开另一实施例的应用于区块链的交易处理方法的流程图。如图6所示,该实施例的交易处理方法600可以包括操作S610~操作S680。
首先加密抽签,获得节点信用值(操作S610),接着评估节点信息,划分节点级别(操作S620),再接着选择候选主节点(操作S630),然后验证候选主节点(操作S640),若验证通过,则执行一致性协议(操作S650),若验证未通过,则重新选择候选主节点(操作S630),再然后检测是否触发超时条件(操作S660),若是,则执行检查点协议(操作S670),若否,则生成新区块(操作S680)。
本公开实施例提供交易处理方法,主要考虑联盟区块链节点的可信度以及适用范围,首先,通过对节点进行加密抽签,筛选部分而不是全部节点参与到共识过程,减少节点数量;其次,对节点信用进行划分以及制定奖励惩罚制度达到节点分级的目的;接着,对主节点增加自证信息,并与客户端进行交互验证,提高主节点的安全性;最后,在共识过程增加自证信息和验证过程,增加共识过程的安全性。本发明在一定程度上,可以减少作恶节点的影响,减少点对点通信数量,提高联盟链共识过程的效率和系统的安全性。
图7示意性示出了根据本公开实施例的应用于区块链的交易处理装置的框图。如图7所示,该实施例的交易处理装置700可以包括第一确定模块710、第一选择模块720、验证模块730以及第二确定模块740。
第一确定模块710,用于响应于客户端发起的交易请求,确定N个节点中与每个节点对应的节点信用等级。可选地,第一确定模块710例如可以用于执行图2描述的操作S210,在此不再赘述。
第一选择模块720,用于基于与每个节点对应的节点信用等级和预设选举策略,从N个节点中选出主节点和M-1个副本节点,M<N。可选地,第一选择模块720例如可以用于执行图2描述的操作S220,在此不再赘述。
验证模块730,用于响应于主节点接收到交易请求,向客户端发送交易请求的响应信息,以获得主节点的验证结果,其中,响应信息至少包括主节点的自证消息,自证消息用于验证主节点是否为恶意节点。可选地,验证模块730例如可以用于执行图2描述的操作S230,在此不再赘述。
第二确定模块740,用于在主节点的自证消息通过验证的情况下,确定主节点和M-1个副本节点对交易请求的共识验证结果,以向客户端反馈交易请求的处理结果。可选地,第二确定模块740例如可以用于执行图2描述的操作S240,在此不再赘述。
作为一种可选的实施例,前述第一选择模块可以包括:筛选子模块,用于基于与每个节点对应的节点信用等级,从N个节点中过滤掉节点信用等级为最低等级的节点,以筛选出共识节点候选集,其中,共识节点候选集包括M个节点,M个节点参与交易请求的共识验证;第一选择子模块,用于基于预设选举策略,从共识节点候选集中选出主节点;以及第一确定子模块,用于将共识节点候选集中除主节点之外的M-1个节点确定为M-1个副本节点。
作为一种可选的实施例,前述第一确定模块可以包括:第二确定子模块,用于通过加密抽签的方式确定与每个节点对应的信用值;第一获取子模块,用于获取节点信用等级划分规则,其中,节点信用等级划分规则包括信用等级从高到低的P个节点信用等级以及与每个节点信用等级对应的预设信用阈值区间;以及第三确定子模块,用于基于与每个节点对应的信用值和节点信用等级划分规则,确定与每个节点对应的节点信用等级。
作为一种可选的实施例,预设选举策略包括优先级选举策略和主节点选举策略,前述第一选择子模块可以包括:第一检测单元,用于基于优先级选举策略,检测在节点信用等级为最高等级的节点中是否存在节点;第二检测单元,用于若存在,则基于主节点选举策略,检测从节点信用等级为最高等级的节点中是否选出主节点;第三检测单元,用于若选不出,则基于优先级选举策略,检测在节点信用等级为次一等级的节点中是否存在节点;以及第四检测单元,用于若存在,则基于主节点选举策略,检测从节点信用等级为次一等级的节点中是否选出主节点,直到选出主节点。
作为一种可选的实施例,前述主节点选举策略可以包括:心跳检测成功策略、拥有最大视图号策略以及拥有最大编号策略。
作为一种可选的实施例,前述第一确定模块还可以包括:设置子模块,用于响应于检测到新节点加入区块链,为新节点设置初始信用值,该初始信用值对应的节点信用等级为最高等级和最低等级之间的中间等级;以及第四确定子模块,用于根据新节点参与共识验证的共识验证结果,对初始信用值进行调整,以确定与新节点对应的信用值。
作为一种可选的实施例,装置还可以包括:第二选择模块,用于在主节点的自证消息未通过验证的情况下,重新从N个节点中选出主节点和M-1个副本节点。
作为一种可选的实施例,前述第二确定模块可以包括:第一广播子模块,用于主节点基于交易请求,生成第一交易共识消息,并将第一交易共识消息广播给M-1个副本节点;第二广播子模块,用于M-1个副本节点中的每个副本节点为第一交易共识消息添加自证信息,以生成第二交易共识消息,并将第二交易共识消息广播给除自己以外的其他节点;第五确定子模块,用于确定主节点和每个副本节点接收到的验证通过的第二交易共识消息的数量是否超过第一预设阈值;第三广播子模块,用于在超过第一预设阈值的情况下,主节点和每个副本节点将第二交易共识消息的确认消息广播给除自己以外的其他节点;以及第六确定子模块,用于根据主节点和每个副本节点接收到的验证通过的确认消息的数量,确定主节点和M-1个副本节点对交易请求的共识验证结果。
作为一种可选的实施例,前述第六确定子模块可以包括:第一确定单元,用于确定主节点和每个副本节点接收到的验证通过的确认消息的数量是否超过第一预设阈值;返回单元,用于在超过第一预设阈值的情况下,主节点和每个副本节点向客户端返回交易请求的响应消息;以及第二确定单元,用于在客户端接收到的交易请求的响应信息的数量超过第二预设阈值的情况下,确认交易请求的共识验证结果为共识验证通过,其中,第二预设阈值小于第一预设阈值。
作为一种可选的实施例,前述第六确定子模块还可以包括:第三确定单元,用于在客户端接收到的交易请求的响应信息的数量未超过第二预设阈值的情况下,确认交易请求的共识验证结果为共识验证未通过。
需要说明的是,交易处理装置部分实施例中各模块的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与交易处理方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
根据本公开的实施例的模块、子模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FNGA)、可编程逻辑阵列(NLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一确定模块、选择模块、验证模块、第二确定模块、筛选子模块、第一选择子模块、第一确定子模块、第二确定子模块、第一获取子模块、第三确定子模块、设置子模块、第四确定子模块、第二选择子模块、第一广播子模块、第二广播子模块、第五确定子模块、第三广播子模块、第六确定子模块、第一检测单元、第二检测单元、第三检测单元、第四检测单元、第一确定单元、返回单元、第二确定单元以及第三确定单元可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一确定模块、选择模块、验证模块、第二确定模块、筛选子模块、第一选择子模块、第一确定子模块、第二确定子模块、第一获取子模块、第三确定子模块、设置子模块、第四确定子模块、第二选择子模块、第一广播子模块、第二广播子模块、第五确定子模块、第三广播子模块、第六确定子模块、第一检测单元、第二检测单元、第三检测单元、第四检测单元、第一确定单元、返回单元、第二确定单元以及第三确定单元中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FNGA)、可编程逻辑阵列(NLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一确定模块、选择模块、验证模块、第二确定模块、筛选子模块、第一选择子模块、第一确定子模块、第二确定子模块、第一获取子模块、第三确定子模块、设置子模块、第四确定子模块、第二选择子模块、第一广播子模块、第二广播子模块、第五确定子模块、第三广播子模块、第六确定子模块、第一检测单元、第二检测单元、第三检测单元、第四检测单元、第一确定单元、返回单元、第二确定单元以及第三确定单元中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的适于实现上文描述的交易处理方法的计算机可读存储介质产品的示意图。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在设备上运行时,程序代码用于使设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的交易处理方法中的前述各项操作(或步骤),例如,电子设备可以执行如图2中所示的操作S210~操作S240、如图6中所示的操作S610~操作S680。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ENROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图8所示,描述了根据本发明的实施方式的交易处理的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、系统或者器件使用或者与其结合使用的程序。可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言-诸如Java,C++等,还包括常规的过程式程序设计语言-诸如“C”,语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAA)或广域网(WAA)一连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
图9示意性示出了根据本公开实施例的适于实现上文描述的交易处理方法的电子设备的框图。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CNU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 903中,存储有电子设备900操作所需的各种程序和数据。处理器901、ROM902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例如图2中所示的操作S210~操作S240、如图6中所示的操作S610~操作S680。
根据本公开的实施例,电子设备900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。系统900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAA卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的交易处理方法,包括如图2中所示的操作S210~操作S240、如图6中所示的操作S610~操作S680。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ENROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目标,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (14)
1.一种应用于区块链的交易处理方法,其中,所述区块链包括N个节点,N为正整数,所述方法包括:
响应于客户端发起的交易请求,确定所述N个节点中与每个节点对应的节点信用等级;
基于所述与每个节点对应的节点信用等级和预设选举策略,从所述N个节点中选出主节点和M-1个副本节点,M<N;
响应于所述主节点接收到所述交易请求,向所述客户端发送所述交易请求的响应信息,以获得所述主节点的验证结果,其中,所述响应信息至少包括所述主节点的自证消息,所述自证消息用于验证所述主节点是否为恶意节点;
在所述主节点的自证消息通过验证的情况下,确定所述主节点和所述M-1个副本节点对所述交易请求的共识验证结果,以向所述客户端反馈所述交易请求的处理结果。
2.根据权利要求1所述的方法,其中,所述基于所述与每个节点对应的节点信用等级和预设选举策略,从所述N个节点中选出主节点和M-1个副本节点包括:
基于所述与每个节点对应的节点信用等级,从所述N个节点中过滤掉节点信用等级为最低等级的节点,以筛选出共识节点候选集,其中,所述共识节点候选集包括M个节点,所述M个节点参与所述交易请求的共识验证;
基于所述预设选举策略,从所述共识节点候选集中选出主节点;
将所述共识节点候选集中除所述主节点之外的M-1个节点确定为所述M-1个副本节点。
3.根据权利要求1所述的方法,其中,所述确定所述N个节点中与每个节点对应的节点信用等级包括:
通过加密抽签的方式确定与所述每个节点对应的信用值;
获取节点信用等级划分规则,其中,所述节点信用等级划分规则包括信用等级从高到低的P个节点信用等级以及与每个节点信用等级对应的预设信用阈值区间;
基于所述与所述每个节点对应的信用值和所述节点信用等级划分规则,确定与所述每个节点对应的节点信用等级。
4.根据权利要求3所述的方法,其中,所述预设选举策略包括优先级选举策略和主节点选举策略,所述基于所述预设选举策略,从所述共识节点候选集中选出主节点包括:
基于所述优先级选举策略,检测在节点信用等级为最高等级的节点中是否存在节点;
若存在,则基于所述主节点选举策略,检测从所述节点信用等级为最高等级的节点中是否选出主节点;
若选不出,则基于所述优先级选举策略,检测在节点信用等级为次一等级的节点中是否存在节点;
若存在,则基于所述主节点选举策略,检测从所述节点信用等级为次一等级的节点中是否选出主节点,直到选出所述主节点。
5.根据权利要求4所述的方法,其中,所述主节点选举策略包括:心跳检测成功策略、拥有最大视图号策略以及拥有最大编号策略。
6.根据权利要求3所述的方法,其中,所述方法还包括:
响应于检测到新节点加入所述区块链,为所述新节点设置初始信用值,其中,所述初始信用值对应的节点信用等级为最高等级和最低等级之间的中间等级;
根据所述新节点参与共识验证的共识验证结果,对所述初始信用值进行调整,以确定与所述新节点对应的信用值。
7.根据权利要求1所述的方法,其中,所述方法还包括:
在所述主节点的自证消息未通过验证的情况下,重新从所述N个节点中选出主节点和M-1个副本节点。
8.根据权利要求1所述的方法,其中,所述确定所述主节点和所述M-1个副本节点对所述交易请求的共识验证结果包括:
所述主节点基于所述交易请求,生成第一交易共识消息,并将所述第一交易共识消息广播给所述M-1个副本节点;
所述M-1个副本节点中的每个副本节点为所述第一交易共识消息添加自证信息,以生成第二交易共识消息,并将所述第二交易共识消息广播给除自己以外的其他节点;
确定所述主节点和所述每个副本节点接收到的验证通过的所述第二交易共识消息的数量是否超过第一预设阈值;
在超过所述第一预设阈值的情况下,所述主节点和所述每个副本节点将所述第二交易共识消息的确认消息广播给除自己以外的其他节点;
根据所述主节点和所述每个副本节点接收到的验证通过的确认消息的数量,确定所述主节点和所述M-1个副本节点对所述交易请求的共识验证结果。
9.根据权利要求8所述的方法,其中,所述根据所述主节点和所述每个副本节点接收到的验证通过的确认消息的数量,确定所述主节点和所述M-1个副本节点对所述交易请求的共识验证结果包括:
确定所述主节点和所述每个副本节点接收到的验证通过的确认消息的数量是否超过所述第一预设阈值;
在超过所述第一预设阈值的情况下,所述主节点和所述每个副本节点向所述客户端返回所述交易请求的响应消息;
在所述客户端接收到的所述交易请求的响应信息的数量超过第二预设阈值的情况下,确认所述交易请求的共识验证结果为共识验证通过,其中,所述第二预设阈值小于所述第一预设阈值。
10.根据权利要求9所述的方法,其中,所述方法还包括:
在所述客户端接收到的所述交易请求的响应信息的数量未超过所述第二预设阈值的情况下,确认所述交易请求的共识验证结果为共识验证未通过。
11.一种应用于区块链的交易处理装置,其中,所述区块链包括N个节点,N为正整数,所述装置包括:
第一确定模块,用于响应于客户端发起的交易请求,确定所述N个节点中与每个节点对应的节点信用等级;
第一选择模块,用于基于所述与每个节点对应的节点信用等级和预设选举策略,从所述N个节点中选出主节点和M-1个副本节点,M<N;
验证模块,用于响应于所述主节点接收到所述交易请求,向所述客户端发送所述交易请求的响应信息,以获得所述主节点的验证结果,其中,所述响应信息至少包括所述主节点的自证消息,所述自证消息用于验证所述主节点是否为恶意节点;
第二确定模块,用于在所述主节点的自证消息通过验证的情况下,确定所述主节点和所述M-1个副本节点对所述交易请求的共识验证结果,以向所述客户端反馈所述交易请求的处理结果。
12.一种电子设备,包括:
一个或多个处理器;以及
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1至10中任一项所述的方法。
13.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时使处理器执行根据权利要求1至10中任一项所述的方法。
14.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时执行根据权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110207436.8A CN112883114A (zh) | 2021-02-24 | 2021-02-24 | 应用于区块链的交易处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110207436.8A CN112883114A (zh) | 2021-02-24 | 2021-02-24 | 应用于区块链的交易处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112883114A true CN112883114A (zh) | 2021-06-01 |
Family
ID=76054339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110207436.8A Pending CN112883114A (zh) | 2021-02-24 | 2021-02-24 | 应用于区块链的交易处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112883114A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111740878A (zh) * | 2020-06-08 | 2020-10-02 | 中国工商银行股份有限公司 | 网络通路检测方法及节点 |
CN113282418A (zh) * | 2021-06-03 | 2021-08-20 | 光大科技有限公司 | 一种模型聚合处理方法及装置 |
CN113382073A (zh) * | 2021-06-08 | 2021-09-10 | 重庆邮电大学 | 一种在云边端工业控制系统中边缘节点的监督系统及方法 |
CN113422709A (zh) * | 2021-06-18 | 2021-09-21 | 西安石油大学 | 一种适合区块链交易验证的数据传输方法 |
CN113435907A (zh) * | 2021-06-18 | 2021-09-24 | 山东省计算中心(国家超级计算济南中心) | 一种轴承保持架供应链追溯方法及系统 |
CN113691632A (zh) * | 2021-08-27 | 2021-11-23 | 广东卓启云链科技有限公司 | 一种区块链计算资源的动态调度方法及系统 |
CN113704813A (zh) * | 2021-07-20 | 2021-11-26 | 武汉理工大学 | 海工装备二级标识数据存储方法及系统、验证方法及系统 |
CN113807850A (zh) * | 2021-09-30 | 2021-12-17 | 北京优品三悦科技发展有限公司 | 一种共识节点的状况评估方法、装置及电子设备 |
CN114095209A (zh) * | 2021-10-27 | 2022-02-25 | 中通服中睿科技有限公司 | 一种基于权重激励主节点选举的联盟链共识方法及系统 |
CN114185997A (zh) * | 2022-02-17 | 2022-03-15 | 天津眧合数字科技有限公司 | 一种基于区块链的宠物信息可信存储系统 |
CN114448980A (zh) * | 2022-01-06 | 2022-05-06 | 上海应用技术大学 | 面向物联网的pbft算法的改进方法 |
CN115760388A (zh) * | 2022-11-07 | 2023-03-07 | 深圳市腾盟技术有限公司 | 基于区块链的共识方法、装置、设备及存储介质 |
WO2023231558A1 (zh) * | 2022-06-02 | 2023-12-07 | 腾讯科技(深圳)有限公司 | 区块链共识方法、装置、介质、电子设备和程序产品 |
CN117240862A (zh) * | 2023-11-15 | 2023-12-15 | 国网数字科技控股有限公司 | 适用于分布式电力交易的区块链共识方法及装置 |
CN117278326A (zh) * | 2023-11-21 | 2023-12-22 | 四川易利数字城市科技有限公司 | 一种基于信用分层的区块链数据安全性提升方法 |
-
2021
- 2021-02-24 CN CN202110207436.8A patent/CN112883114A/zh active Pending
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111740878A (zh) * | 2020-06-08 | 2020-10-02 | 中国工商银行股份有限公司 | 网络通路检测方法及节点 |
CN113282418A (zh) * | 2021-06-03 | 2021-08-20 | 光大科技有限公司 | 一种模型聚合处理方法及装置 |
CN113382073A (zh) * | 2021-06-08 | 2021-09-10 | 重庆邮电大学 | 一种在云边端工业控制系统中边缘节点的监督系统及方法 |
CN113422709A (zh) * | 2021-06-18 | 2021-09-21 | 西安石油大学 | 一种适合区块链交易验证的数据传输方法 |
CN113435907A (zh) * | 2021-06-18 | 2021-09-24 | 山东省计算中心(国家超级计算济南中心) | 一种轴承保持架供应链追溯方法及系统 |
CN113704813A (zh) * | 2021-07-20 | 2021-11-26 | 武汉理工大学 | 海工装备二级标识数据存储方法及系统、验证方法及系统 |
CN113691632A (zh) * | 2021-08-27 | 2021-11-23 | 广东卓启云链科技有限公司 | 一种区块链计算资源的动态调度方法及系统 |
CN113691632B (zh) * | 2021-08-27 | 2023-06-13 | 广东卓启云链科技有限公司 | 一种区块链计算资源的动态调度方法及系统 |
CN113807850B (zh) * | 2021-09-30 | 2023-03-31 | 北京优品三悦科技发展有限公司 | 一种共识节点的状况评估方法、装置及电子设备 |
CN113807850A (zh) * | 2021-09-30 | 2021-12-17 | 北京优品三悦科技发展有限公司 | 一种共识节点的状况评估方法、装置及电子设备 |
CN114095209A (zh) * | 2021-10-27 | 2022-02-25 | 中通服中睿科技有限公司 | 一种基于权重激励主节点选举的联盟链共识方法及系统 |
CN114448980A (zh) * | 2022-01-06 | 2022-05-06 | 上海应用技术大学 | 面向物联网的pbft算法的改进方法 |
CN114448980B (zh) * | 2022-01-06 | 2023-09-01 | 上海应用技术大学 | 面向物联网的pbft算法的改进方法 |
CN114185997A (zh) * | 2022-02-17 | 2022-03-15 | 天津眧合数字科技有限公司 | 一种基于区块链的宠物信息可信存储系统 |
WO2023231558A1 (zh) * | 2022-06-02 | 2023-12-07 | 腾讯科技(深圳)有限公司 | 区块链共识方法、装置、介质、电子设备和程序产品 |
CN115760388A (zh) * | 2022-11-07 | 2023-03-07 | 深圳市腾盟技术有限公司 | 基于区块链的共识方法、装置、设备及存储介质 |
CN115760388B (zh) * | 2022-11-07 | 2023-11-21 | 深圳市腾盟技术有限公司 | 基于区块链的共识方法、装置、设备及存储介质 |
CN117240862A (zh) * | 2023-11-15 | 2023-12-15 | 国网数字科技控股有限公司 | 适用于分布式电力交易的区块链共识方法及装置 |
CN117240862B (zh) * | 2023-11-15 | 2024-04-12 | 国网数字科技控股有限公司 | 适用于分布式电力交易的区块链共识方法及装置 |
CN117278326A (zh) * | 2023-11-21 | 2023-12-22 | 四川易利数字城市科技有限公司 | 一种基于信用分层的区块链数据安全性提升方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112883114A (zh) | 应用于区块链的交易处理方法和装置 | |
Shrestha et al. | A new type of blockchain for secure message exchange in VANET | |
Zamyatin et al. | Xclaim: Trustless, interoperable, cryptocurrency-backed assets | |
US11630808B2 (en) | Proof of lottery (PoL) blockchain | |
US11347726B2 (en) | Cross-chain transaction method and apparatus | |
US11153069B2 (en) | Data authentication using a blockchain approach | |
CN108924130B (zh) | 一种区块数据的验证方法、装置、设备和存储介质 | |
WO2020107919A1 (zh) | 基于创新性的信誉证明共识协议的分布式网络及生态系统 | |
CN110189128B (zh) | 一种用于区块快速生成的分布式共识的方法和装置 | |
CN110351133A (zh) | 用于区块链系统中的主节点切换处理的方法及装置 | |
CN108846673B (zh) | 一种区块数据的处理方法、装置、设备和存储介质 | |
CN112541758A (zh) | 基于区块链的多轮投票式容错排序共识机制与方法 | |
US20230037932A1 (en) | Data processing method and apparatus based on blockchain network, and computer device | |
US20190268153A1 (en) | Event execution using a blockchain approach | |
US11503036B2 (en) | Methods of electing leader nodes in a blockchain network using a role-based consensus protocol | |
CN117112196A (zh) | 用于区块链网络中一致分布式内存池的方法和系统 | |
Mershad et al. | Proof of accumulated trust: A new consensus protocol for the security of the IoV | |
Yuan et al. | Efficient Byzantine consensus mechanism based on reputation in IoT blockchain | |
US20200250655A1 (en) | Efficient, environmental and consumer friendly consensus method for cryptographic transactions | |
Sun et al. | Rtchain: A reputation system with transaction and consensus incentives for e-commerce blockchain | |
Li et al. | Game theory based compatible incentive mechanism design for non-cryptocurrency blockchain systems | |
Putra et al. | Decentralised trustworthy collaborative intrusion detection system for IoT | |
CN112242979B (zh) | 基于区块链系统的ip地址前缀认证方法和设备 | |
CN112308700A (zh) | 企业征信数据的处理方法、装置、计算机设备和存储介质 | |
Bai et al. | Blockchain-based Authentication and Proof-of-Reputation Mechanism for Trust Data Sharing in Internet of Vehicles. |
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 |