CN116455974A - 交易缓存及排序的方法、装置、电子设备和存储介质 - Google Patents
交易缓存及排序的方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116455974A CN116455974A CN202310414116.9A CN202310414116A CN116455974A CN 116455974 A CN116455974 A CN 116455974A CN 202310414116 A CN202310414116 A CN 202310414116A CN 116455974 A CN116455974 A CN 116455974A
- Authority
- CN
- China
- Prior art keywords
- transaction
- trusted
- ordering
- nodes
- preset
- 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 56
- 238000012795 verification Methods 0.000 claims abstract description 50
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000008901 benefit Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请提供了一种交易缓存及排序的方法、装置、电子设备和存储介质,涉及区块链技术领域,该方法包括:响应用户发起的交易事件,在拜占庭排序交易池中进行交易验证,并添加至验证后的待排序交易集合;基于待排序交易集合中预设数量个节点对应的交易事件所对应的预置时间戳,确定交易全局可信时间戳;基于交易全局可信时间戳对待排序交易集合中的交易事件进行排序,得到可信链表,以便共识协议基于可信链表按序获取交易并进行共识处理。本申请缓解了现有技术中存在的区块链中共识层面主节点对顺序的“霸权”技术问题,避免了交易受到审查攻击,提升了交易的稳定性和安全性。
Description
技术领域
本申请涉及区块链技术领域,尤其是涉及一种交易缓存及排序的方法、装置、电子设备和存储介质。
背景技术
目前的区块链平台中,交易池内交易节点出块时,区块中交易的顺序由节点自身决定,由于区块链系统是去中心化的,导致交易池内交易的排序容易遭受审查攻击。从节点层间看,节点为了自己利益的最大化,一般是按照gas费顺序来对交易进行打包,因此每个节点都有权利进行交易顺序的确定,导致节点易对交易进行审查攻击;从用户层面看,如若通过设置较高的gas费来阻止特定交易不被提交,也会对交易造成审查攻击。
发明内容
本申请的目的在于提供一种交易缓存及排序的方法、装置、电子设备和存储介质,以缓解了现有技术中存在的区块链中共识层面主节点对顺序的“霸权”技术问题。
第一方面,本发明提供一种交易缓存及排序的方法,所述方法应用于区块链的节点;所述方法包括:
响应用户发起的交易事件,在拜占庭排序交易池中进行交易验证,并添加至验证后的待排序交易集合;
基于所述待排序交易集合中预设数量个节点对应的交易事件所对应的预置时间戳,确定交易全局可信时间戳;
基于所述交易全局可信时间戳对所述待排序交易集合中的交易事件进行排序,得到可信链表,以便共识协议基于所述可信链表按序获取交易并进行共识处理;其中,所述可信链表缓存有包括所述可信时间戳的交易信息。
第二方面,本发明提供一种交易缓存及排序的装置,所述装置应用于区块链的节点;所述装置包括:
缓存及验证模块,用于响应用户发起的交易事件,在拜占庭排序交易池中进行交易验证,并添加至验证后的待排序交易集合;
可信时间戳确定模块,用于基于所述待排序交易集合中预设数量个节点对应的交易事件所对应的预置时间戳,确定交易全局可信时间戳;
排序模块,用于基于所述交易全局可信时间戳对所述待排序交易集合中的交易事件进行排序,得到可信链表,以便共识协议基于所述可信链表按序获取交易并进行共识处理;其中,所述可信链表缓存有包括所述可信时间戳的交易信息。
第三方面,本发明提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现前述实施方式任一项所述的交易缓存及排序的方法。
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现前述实施方式任一项所述的交易缓存及排序的方法。
本申请提供的交易缓存及排序的方法、装置、电子设备和存储介质,更改交易缓存及排序的方法,在用户发起交易事件后,如果验证该交易事件合法,则将该交易事件添加至待排序交易集合中,并根据待排序交易集合中的预设数量个交易事件所对应的阈值时间戳确定交易全局可信时间戳,从而根据该交易全局可信时间戳对交易事件按序生成可信链表。由于可信链表中对应的交易事件的顺序是由区块链系统中预设数量个节点来确定,当区块链系统中存在恶意节点时,由于确定交易全局可信时间戳对应的节点数量大于恶意节点的数量,因此也不会影响整个系统的交易排序,避免了交易受到审查攻击,提升了交易的稳定性和安全性。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种交易缓存及排序的方法的流程图;
图2为本申请实施例提供的一种具体的交易缓存及排序的方法的示意图;
图3为本申请实施例提供的一种preset-order处理的示意图;
图4为本申请实施例提供的一种交易缓存及排序的装置的结构图;
图5为本申请实施例提供的一种电子设备的结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
首先,对本申请涉及对名词进行介绍:
(1)区块链:
一种以分布式容错技术为原理实现的一种分布式账本技术,通过链式结构保存日志数据(即区块数据),使用共识算法确定被最终提交的区块数据,这些区块数据最终以自动化脚本组成的智能合约来完成对账本数据的修改,是一种新的分布式基础设施与计算范式。
(2)交易池:
一种交易缓冲技术,在区块链平台中作为临时存储交易的场所,完成交易的本地排序和验证。
现有技术中,如以太坊的交易池作为区块链节点的交易缓冲区,在打包区块前完成交易的缓存、验证、共享、排序等工作。当某节点收到来自用户签名的交易时,首先在交易池内完成对用户的签名验证,再通过p2p网络进行共给其他的节点,最后通过某种策略(如gas费),在节点本地将已验证的交易进行排序。当节点需要打包交易时,将交易池中一定数量排序好的交易打包并完成后续的共识、执行等工作。然而,现有技术存在以下缺点:
1、区块链系统是去中心化的,交易池内的交易会被排序容易遭受审查攻击。
目前的区块链平台中,节点出块时,区块中交易的顺序由节点自身决定。尽管节点为了自己利益的最大化,一般是按照gas费顺序来对交易进行打包。从节点角度来说,意味着每个节点都有权利进行交易顺序的确定,从节点层面可以对交易进行审查攻击。从用户层面来说,可以通过设置较高的gas费来阻止特定交易不被提交,从而对交易造成审查攻击,如Froint-running的行为。
2、区块链共识模块对全量的区块数据进行共识效率不高。
由于区块链是分布式系统的一种实现,其一致性依靠共识协议,共识协议通过相互通信保证了提交区块顺序的一致性。但是对于共识目的是对区块交易顺序达成一致,无关交易内容。在共识通信过程中交易的内容占据了较大的传输带宽,该部分又不是共识的目的。因此,将交易内容放在共识的区块中将会严重影响共识的性能。
基于此,本申请实施例提供了一种交易缓存及排序的方法、装置、电子设备和存储介质,可以解决交易审查问题,通过在交易池内执行一个拜占庭排序的协议,通过该协议完成诚实节点对顺序的确定,而避免了每个节点单独决定交易顺序。
本申请实施例提供了一种交易缓存及排序的方法,方法应用于区块链的节点,区块链中包含有多个节点,本申请实施例所采用的方法适用于区块链中所包含的任意一个节点,也即,每个节点均可以执行本申请实施例所提供的方式。
参见图1所示,本申请实施例所提供的交易缓存及排序的方法,主要包括以下步骤:
步骤S102,响应用户发起的交易事件,在拜占庭排序交易池中进行交易验证,并添加至验证后的待排序交易集合。
在一种实施方式中,拜占庭排序交易池包括未验证交易队列、交易验证模块、待排序交易集合、拜占庭排序协议、可信时间戳确序模块和可信链表。其中,未验证交易队列用于对接收来自用户发起的交易事件进行临时缓存;交易验证模块用于对交易排序前的验证工作,诸如签名、Nonce等验证;待排序交易集合中缓存了当前所有的待排序交易,包括来自其他节点发送的待排序交易。
步骤S104,基于待排序交易集合中预设数量个节点对应的交易事件所对应的预置时间戳,确定交易全局可信时间戳。
由于区块链系统中可能存在拜占庭节点(也即恶意节点),因此为了避免恶意节点通过影响交易顺序导致的审查攻击,上述在确定交易全局可信时间戳时,可以通过拜占庭排序协议与其他节点进行通信,获取其他节点的阈值时间戳,并基于预设数量个节点对应的交易事件所对应的预置时间戳,确定交易全局可信时间戳。
步骤S106,基于交易全局可信时间戳对待排序交易集合中的交易事件进行排序,得到可信链表,以便共识协议基于可信链表按序获取交易并进行共识处理。
在一种实施方式中,可以通过拜占庭交易池中的可信时间戳确序模块,用于根据已有的交易全局可信时间戳对交易排序。可信链表用于缓存具有可信时间戳的交易。
共识协议是需要按照顺序从可信链表的头部不断获取交易进行打包。在打包之前,在拜占庭交易池内已经完成了交易的缓存和排序的工作。通过全局可信时间戳进行排序的交易避免了主节点对交易的恶意排序和审查攻击;交易池的缓存功能也解决了交易在节点间共享和共识层面的压力。
本申请实施例所提供的交易缓存及排序的方法,在用户发起交易事件后,如果验证该交易事件合法,则将该交易事件添加至待排序交易集合中,并根据待排序交易集合中的预设数量个交易事件所对应的阈值时间戳确定交易全局可信时间戳,从而根据该交易全局可信时间戳对交易事件按序生成可信链表。由于可信链表中对应的交易事件的顺序是由区块链系统中预设数量个节点来确定,当区块链系统中存在恶意节点时,由于确定交易全局可信时间戳对应的节点数量大于恶意节点的数量,因此也不会影响整个系统的交易排序,避免了交易受到审查攻击,提升了交易的稳定性和安全性。
在一种实施方式中,在拜占庭排序交易池中进行交易验证之前,方法还包括:对交易事件进行签名,并向区块链所包含的其他节点发送第一预置时间戳。
例如,区块链中包括节点1、节点2、节点3、……、节点n,当区块链中的节点1接收到用户发起的交易事件后,则对该交易事件进行签名,并向区块链所包含的节点2、节点3、……、节点n发送第一预置时间戳(也即节点1对应的preset-order)。
在另一种实施方式中,上述示例中的节点1也可能会接收到节点2、节点3、……、节点n中的任意一个节点发送的预置时间戳,则上述方式还包括:
若获取到区块链所包含的其他节点发送的投票信息,则将投票信息对应的交易事件添加到待排序交易集合;其中,投票信息为发送投票信息的节点在接收到区块链中除自身外的其他节点发送的第二预置时间戳并验证第二预置时间戳合法性后,基于接收第二预置时间戳的时刻对应的本地时间戳生成的,投票信息包括本地时间戳和签名信息。
为便于理解,仍以节点1为例,获取到区块链所包含的其他节点(假设为节点2)发送的投票信息,则将该投票信息对应的交易事件添加到待排序交易集合。例如,节点2收到其他节点(节点1、节点3、……、节点n)发送的preset-order,则节点2记录一个本地的时间戳t,同时,验证收到的preset-order内的交易的合法性。若通过验证,节点2将会生成投票信息,投票信息中包含节点2的本地时间戳和签名信息,最后将投票发送给节点1并添加到待排序交易集合。
为便于理解,可以将上述两个实施方式在同一示例中说明,以区块链中所包含的不同节点分别进行操作的举例。在一种实施方式中,假设区块链中包括节点1和节点2,则在用户发起交易事件后,上述两种实施方式可以为:
节点1,对交易事件进行签名,并向区块链所包含的其他节点发送第一预置时间戳;
节点2,获取区块链所包含的其他节点(例如节点1)发送的第二预置时间戳,并记录获取时刻对应的本地时间戳;对第二时间戳进行合法性验证,并在验证通过后,生成投票信息,将投票信息发送至节点1,并添加到待排序交易集合中。
进一步,为了保证交易的可靠性和安全性,在用户发起交易事件后,通过响应用户发起的交易事件,在拜占庭排序交易池对交易事件进行临时缓存,得到未验证交易队列,对未验证交易队列所包含的交易事件进行排序前的交易验证,并添加至验证后的待排序交易集合;交易验证至少包括签名验证、加密验证。
进一步,为解决区块链系统中存在的恶意节点破坏交易排序的问题,在一可选的实施方式中,上述基于待排序交易集合中预设数量个节点对应的交易事件所对应的预置时间戳,确定交易全局可信时间戳,在具体实施时,可以包括以下步骤1和步骤2:
步骤1,对待排序交易集合中的交易事件所对应的投票信息进行合法性验证,将通过验证的交易事件添加至投票交易集合;
步骤2,若投票交易集合中的投票数满足预设数量要求,则基于投票交易集合中预设数量个节点对应的预置事件戳,确定交易全局可信时间戳;其中,预设数量要求大于区块链中恶意节点的数量。
在一具体的示例中,假设区块链中的系统节点数为3f+1,其中f为拜占庭节点(也即恶意节点),上述若投票交易集合中的投票数满足预设数量要求,则基于投票交易集合中预设数量个节点对应的预置事件戳,确定交易全局可信时间戳,在具体示例中,可以参照以下示例:
若投票交易集合中的投票数满足2f+1,则基于投票交易集合中2f+1个节点对应的预置事件戳,确定交易全局可信时间戳,确定交易全局可信时间戳。
在一种实施方式中,上述基于投票交易集合中2f+1个节点对应的预置事件戳,确定交易全局可信时间戳,可以通过计算投票交易集合中2f+1个节点对应的预置事件戳的中位数,确定交易全局可信时间戳,2f+1的数量保证了中位数的上限和下限。
可选的,在实际应用中,也可以通过计算投票交易集合中2f+1个节点对应的预置事件戳的其他数值处理结果(诸如均值、方差等等),以便于约束。
由此,系统中确定交易全局可信时间戳的节点为2f+1个,保证了f个恶意节点不会影响整个系统的排序,保证了交易的公平性,避免交易顺序的审查。
进一步,基于交易全局可信时间戳对待排序交易集合中的交易事件进行排序,得到可信链表,在具体实施时,可以包括以下步骤A和步骤B:
步骤A,若接收到交易全局可信时间戳,验证投票交易集合对应的交易事件是否合法,以及验证与交易事件对应的交易全局可信时间戳的正确性;
步骤B,按照接收的交易全局可信时间戳的预设关系对待排序交易集合中的交易事件进行排序,得到可信链表;预设关系至少包括接收时刻先后、时间戳数值大小关系中的至少一种。
针对上述步骤A,当交易全局可信时间戳为通过预设个数的节点赌赢的预置时间戳的中位数确定的时,验证与交易事件对应的交易全局可信时间戳的正确性,也即验证预设个数的节点对应的预置时间戳的中位数是否正确。
针对上述步骤B,按照接收的交易全局可信时间戳的预设关系对待排序交易集合中的交易事件进行排序,在一种实施方式中,可以按照接收的交易全局可信时间戳的递增顺序将交易事件添加到可信链表中。
为便于理解,本申请实施例提供了一种具体的实施方式,主要通过拜占庭排序的交易池协议解决区块链中共识层面主节点对顺序的“霸权”和缓解共识系统的压力。
交易池由以下几个部分构成:
1)未验证交易队列,可以采用FIFO的方式对进行临时缓存交易,主要接收来自用户发送的交易。
2)交易验证模块,主要负责对交易排序前的验证工作,包括签名、Nonce的验证。
3)待排序的集合中缓存了当前所有的待排序交易,包括来自其他节点发送的待排序交易。
4)拜占庭排序协议,该协议负责运行与其他节点进行通信,确定交易全局可信时间戳。系统存在3f+1个节点,每个节点都会根据自己收到的待排序的交易,记录时间戳并发送回排序节点。每个交易的可信时间戳由2f+1个时间戳的中位数确定,2f+1的数量保证了中位数的上限和下限。
5)可信时间戳确序模块,主要负责根据已有的可信时间戳对交易排序。
6)可信链表缓存了具有可信时间戳的交易。
交易池运行机制参见图2所示,排序交易池内将完成排序和交易缓存的功能。因此,共识协议是需要按照顺序从可信链表的头部不断获取交易打包即可;在打包之前,在交易池内已经完成了交易的缓存和排序的工作。已排序的交易避免了主节点对交易的恶意排序和审查攻击;交易池的缓存功能也解决了交易在节点间共享和共识层面的压力。
上述交易池在进行排序处理时,主要包括以下处理过程:
上述流程,描述了交易池中进行排序的核心流程。其中,针对排序过程,每个节点获取FIFO队列F中获取交易(假设节点1),并签名发送preset-order给其他所有节点;此时更新队列F、O。若节点2收到其他节点收到preset-order,并记录一个本地的时间戳t。同时,验证收到的preset-order内的交易的合法性。若通过验证,节点2将会生成投票vote,投票中包含自己的时间戳和签名信息,最后将投票发送给节点1并添加到集合O中;不通过则不投票。节点1对于收到的投票vote会验证其签名的合法性,若合法则添加到集合V里preset-order对应投票集合,当|V(preset-order)|=2f+1时,为preset-order生成可信的时间戳trust-order,并将其添加到链表M中,同时发送给其他所有节点,更新集合O;其中vote不合法则丢弃。当节点2收到来自节点1的trust-order时,通过集合V验证trust-order对应的交易是否存在且合法;然后计算可信时间戳的tm的正确性和V(preset-order)的合法性;若通过则将trust-order添加至M中,同时更新集合O,参见图3所示。
为便于理解,图3中仅示出节点1在发送自己的preset-order。在实际应用中,每个节点都可以发送自己的preset-order,然后计算一个可信的时间戳trust-order,由于trust-order是唯一的根据2f+1个人的时间戳中位数计算出来的,因此保证trust-order的全序性。
针对共识过程,可以从交易池链表M中获取交易摘要,添加到区块中并开始共识,共识可以使用任何主节点驱动的共识协议。其中共识过程对于交易的验证可通过链表M进行。共识完成则更新集合M、V。
本申请实施例通过吧拜占庭交易池进行排序,保证了交易的顺序是由系统中至少2f+1个节点来确定,保证了f个恶意节点不会影响整个系统的排序。保证了交易的公平性,避免交易顺序的审查。并且,在交易池内交易排序过程中,排序节点将待排序的交易发送给其他节点的过程中,已经缓存过了交易,如果排序成功,则证明该节点收到了待排序的交易且发送了自己的时间戳。因此,保证了交易经存在缓存,在共识过程中不需要进一步发送完成的交易内容,可以缓解共识层面的压力。
基于上述方法实施例,本申请实施例还提供一种交易缓存及排序的装置,装置应用于区块链的节点,参见图4所示,该装置主要包括以下部分:
缓存及验证模块42,用于响应用户发起的交易事件,在拜占庭排序交易池中进行交易验证,并添加至验证后的待排序交易集合;
可信时间戳确定模块44,用于基于待排序交易集合中预设数量个节点对应的交易事件所对应的预置时间戳,确定交易全局可信时间戳;
排序模块46,用于基于交易全局可信时间戳对待排序交易集合中的交易事件进行排序,得到可信链表,以便共识协议基于可信链表按序获取交易并进行共识处理。
本申请实施例提供的交易缓存及排序的装置,在用户发起交易事件后,如果验证该交易事件合法,则将该交易事件添加至待排序交易集合中,并根据待排序交易集合中的预设数量个交易事件所对应的阈值时间戳确定交易全局可信时间戳,从而根据该交易全局可信时间戳对交易事件按序生成可信链表。由于可信链表中对应的交易事件的顺序是由区块链系统中预设数量个节点来确定,当区块链系统中存在恶意节点时,由于确定交易全局可信时间戳对应的节点数量大于恶意节点的数量,因此也不会影响整个系统的交易排序,避免了交易受到审查攻击,提升了交易的稳定性和安全性。
在一可行的实施方式中,在拜占庭排序交易池中进行交易验证之前,上述装置还包括,签名及预置时间戳发送模块,用于:
对交易事件进行签名,并向区块链所包含的其他节点发送第一预置时间戳。
在一可行的实施方式中,上述装置还包括,交易事件添加模块,用于若获取到区块链所包含的其他节点发送的投票信息,则将投票信息对应的交易事件添加到待排序交易集合;其中,投票信息为发送投票信息的节点在接收到区块链中除自身外的其他节点发送的第二预置时间戳并验证第二预置时间戳合法性后,基于接收第二预置时间戳的时刻对应的本地时间戳生成的,投票信息包括本地时间戳和签名信息。
在一可行的实施方式中,上述可信时间戳确定模块44,还用于:
对待排序交易集合中的交易事件所对应的投票信息进行合法性验证,将通过验证的交易事件添加至投票交易集合;
若投票交易集合中的投票数满足预设数量要求,则基于投票交易集合中预设数量个节点对应的预置事件戳,确定交易全局可信时间戳;其中,预设数量要求大于区块链中恶意节点的数量。
在一可行的实施方式中,上述可信时间戳确定模块44,还用于:
若投票交易集合中的投票数满足2f+1,则基于投票交易集合中2f+1个节点对应的预置事件戳,确定交易全局可信时间戳,确定交易全局可信时间戳;其中,f为拜占庭节点的数量,区块链系统所包含的节点数为3f+1。
在一可行的实施方式中,上述排序模块46,还用于:
若接收到交易全局可信时间戳,验证投票交易集合对应的交易事件是否合法,以及验证与交易事件对应的交易全局可信时间戳的正确性;
按照接收的交易全局可信时间戳的预设关系对待排序交易集合中的交易事件进行排序,得到可信链表;预设关系至少包括接收时刻先后、时间戳数值大小关系中的至少一种。
在一可行的实施方式中,上述缓存及验证模块42,还用于:
响应用户发起的交易事件,在拜占庭排序交易池对交易事件进行临时缓存,得到未验证交易队列;
对未验证交易队列所包含的交易事件进行排序前的交易验证,并添加至验证后的待排序交易集合;交易验证至少包括签名验证、加密验证。
本申请实施例提供的交易缓存及排序的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,交易缓存及排序的装置的实施例部分未提及之处,可参考前述交易缓存及排序的方法实施例中相应内容。
本申请实施例还提供了一种电子设备,如图5所示,为该电子设备的结构示意图,其中,该电子设备100包括处理器51和存储器50,该存储器50存储有能够被该处理器51执行的计算机可执行指令,该处理器51执行该计算机可执行指令以实现上述任一项交易缓存及排序的方法。
在图5示出的实施方式中,该电子设备还包括总线52和通信接口53,其中,处理器51、通信接口53和存储器50通过总线52连接。
其中,存储器50可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口53(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线52可以是ISA(IndustryStandard Architecture,工业标准体系结构)总线、PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线52可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器51可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器51中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器51可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器51读取存储器中的信息,结合其硬件完成前述实施例的交易缓存及排序的方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述交易缓存及排序的方法,具体实现可参见前述方法实施例,在此不再赘述。
本申请实施例所提供的交易缓存及排序的方法、装置、电子设备和存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本申请的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种交易缓存及排序的方法,其特征在于,所述方法应用于区块链的节点;所述方法包括:
响应用户发起的交易事件,在拜占庭排序交易池中进行交易验证,并添加至验证后的待排序交易集合;
基于所述待排序交易集合中预设数量个节点对应的交易事件所对应的预置时间戳,确定交易全局可信时间戳;
基于所述交易全局可信时间戳对所述待排序交易集合中的交易事件进行排序,得到可信链表,以便共识协议基于所述可信链表按序获取交易并进行共识处理。
2.根据权利要求1所述的交易缓存及排序的方法,其特征在于,在拜占庭排序交易池中进行交易验证之前,所述方法还包括:
对所述交易事件进行签名,并向区块链所包含的其他节点发送第一预置时间戳。
3.根据权利要求2所述的交易缓存及排序的方法,其特征在于,所述方法还包括:
若获取到区块链所包含的其他节点发送的投票信息,则将所述投票信息对应的交易事件添加到所述待排序交易集合;
其中,所述投票信息为发送投票信息的节点在接收到区块链中除自身外的其他节点发送的第二预置时间戳并验证所述第二预置时间戳合法性后,基于接收所述第二预置时间戳的时刻对应的本地时间戳生成的,所述投票信息包括本地时间戳和签名信息。
4.根据权利要求3所述的交易缓存及排序的方法,其特征在于,基于所述待排序交易集合中预设数量个节点对应的交易事件所对应的预置时间戳,确定交易全局可信时间戳,包括:
对所述待排序交易集合中的交易事件所对应的投票信息进行合法性验证,将通过验证的所述交易事件添加至投票交易集合;
若所述投票交易集合中的投票数满足预设数量要求,则基于投票交易集合中预设数量个节点对应的预置事件戳,确定交易全局可信时间戳;其中,所述预设数量要求大于区块链中恶意节点的数量。
5.根据权利要求4所述的交易缓存及排序的方法,其特征在于,若所述投票交易集合中的投票数满足预设数量要求,则基于投票交易集合中预设数量个节点对应的预置事件戳,确定交易全局可信时间戳,包括:
若所述投票交易集合中的投票数满足2f+1,则基于投票交易集合中2f+1个节点对应的预置事件戳,确定交易全局可信时间戳,确定交易全局可信时间戳;其中,f为拜占庭节点的数量,区块链系统所包含的节点数为3f+1。
6.根据权利要求4所述的交易缓存及排序的方法,其特征在于,基于所述交易全局可信时间戳对所述待排序交易集合中的交易事件进行排序,得到可信链表,包括:
若接收到交易全局可信时间戳,验证所述投票交易集合对应的交易事件是否合法,以及验证与所述交易事件对应的交易全局可信时间戳的正确性;
按照接收的交易全局可信时间戳的预设关系对所述待排序交易集合中的交易事件进行排序,得到可信链表;所述预设关系至少包括接收时刻先后、时间戳数值大小关系中的至少一种。
7.根据权利要求1所述的交易缓存及排序的方法,其特征在于,响应用户发起的交易事件,在拜占庭排序交易池中进行交易验证,并添加至验证后的待排序交易集合,包括:
响应用户发起的交易事件,在拜占庭排序交易池对所述交易事件进行临时缓存,得到未验证交易队列;
对未验证交易队列所包含的交易事件进行排序前的交易验证,并添加至验证后的待排序交易集合;所述交易验证至少包括签名验证、加密验证。
8.一种交易缓存及排序的装置,其特征在于,所述装置应用于区块链的节点;所述装置包括:
缓存及验证模块,用于响应用户发起的交易事件,在拜占庭排序交易池中进行交易验证,并添加至验证后的待排序交易集合;
可信时间戳确定模块,用于基于所述待排序交易集合中预设数量个节点对应的交易事件所对应的预置时间戳,确定交易全局可信时间戳;
排序模块,用于基于所述交易全局可信时间戳对所述待排序交易集合中的交易事件进行排序,得到可信链表,以便共识协议基于所述可信链表按序获取交易并进行共识处理;其中,所述可信链表缓存有包括所述可信时间戳的交易信息。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至7任一项所述的交易缓存及排序的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现权利要求1至7任一项所述的交易缓存及排序的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310414116.9A CN116455974A (zh) | 2023-04-10 | 2023-04-10 | 交易缓存及排序的方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310414116.9A CN116455974A (zh) | 2023-04-10 | 2023-04-10 | 交易缓存及排序的方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116455974A true CN116455974A (zh) | 2023-07-18 |
Family
ID=87131703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310414116.9A Pending CN116455974A (zh) | 2023-04-10 | 2023-04-10 | 交易缓存及排序的方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116455974A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117527832A (zh) * | 2024-01-03 | 2024-02-06 | 杭州趣链科技有限公司 | 一种区块链的交易排序方法、装置、电子设备和存储介质 |
-
2023
- 2023-04-10 CN CN202310414116.9A patent/CN116455974A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117527832A (zh) * | 2024-01-03 | 2024-02-06 | 杭州趣链科技有限公司 | 一种区块链的交易排序方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109447810B (zh) | 并行区块链共识方法、系统、电子设备和计算机可读存储介质 | |
KR102469267B1 (ko) | 블록 체인 합의 방법, 어카운팅 노드 및 노드 | |
US20190386834A1 (en) | Blockchain management apparatus, blockchain management method, and program | |
WO2020108419A1 (zh) | 区块确认方法、设备和存储介质 | |
CN110741342A (zh) | 区块链交易提交排序 | |
CN110012100B (zh) | 一种带宽优化的区块链共识方法、装置及电子设备 | |
CN112381649B (zh) | 基于区块链的交易共识方法、装置及设备 | |
CN113850600B (zh) | 基于区块链的交易共识方法、装置、设备及存储介质 | |
CN111641563B (zh) | 基于分布式场景的流量自适应方法与系统 | |
CN116455974A (zh) | 交易缓存及排序的方法、装置、电子设备和存储介质 | |
CN111428269A (zh) | 数据访问方法、装置和终端设备 | |
CN109145651B (zh) | 一种数据处理方法及装置 | |
CN112232957A (zh) | 交易共识方法、装置和电子设备 | |
CN114297487A (zh) | 一种防欺诈的秘密分享方法及装置 | |
CN109560893B (zh) | 数据校验方法、装置及服务器 | |
CN106598747A (zh) | 网络数据包的并行处理方法及装置 | |
CN115811516A (zh) | 多分帧文件并发上报的方法、装置、设备和介质 | |
CN113706146B (zh) | 一种基于区块链执行批量交易的处理方法、装置和系统 | |
CN112184439B (zh) | 基于节点排序的去中心化交易方法、装置及相关产品 | |
CN111814204B (zh) | 基于区块链的数据共识方法、相关设备及存储介质 | |
KR101946620B1 (ko) | 서버의 서명 데이터를 포함하는 데이터 블록을 생성하는 방법 및 그 서버 | |
CN112351085A (zh) | 一种网络资源安全共享方法 | |
CN112202875A (zh) | 基于区块链节点权重进行安全检测的方法、装置及相关产品 | |
CN112258184A (zh) | 冻结区块链网络的方法、装置、电子设备及可读存储介质 | |
CN112131602A (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 |