CN116707891A - 重放攻击检查方法和区块链节点 - Google Patents
重放攻击检查方法和区块链节点 Download PDFInfo
- Publication number
- CN116707891A CN116707891A CN202310640776.9A CN202310640776A CN116707891A CN 116707891 A CN116707891 A CN 116707891A CN 202310640776 A CN202310640776 A CN 202310640776A CN 116707891 A CN116707891 A CN 116707891A
- Authority
- CN
- China
- Prior art keywords
- transaction
- transactions
- block
- ith
- replay attack
- 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 210
- 230000008569 process Effects 0.000 claims description 147
- 238000007689 inspection Methods 0.000 claims description 27
- 238000001514 detection method Methods 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 12
- 239000003999 initiator Substances 0.000 claims description 10
- 238000009826 distribution Methods 0.000 claims description 3
- 239000004973 liquid crystal related substance Substances 0.000 claims 2
- 238000009414 blockwork Methods 0.000 claims 1
- 238000007726 management method Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 230000006872 improvement Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 108091035707 Consensus sequence Proteins 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- 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 Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种重放攻击检查方法和区块链节点,该方法包括:对属于第一区块的多个第一交易中任意的第i个第一交易,一方面进行第一检查,另一方面进行第二检查;其中该第一检查包括根据多个第二交易确定第i个第一交易是否为重放攻击交易,多个第二交易属于区块链节点将要提交的若干第二区块,若干第二区块的区块高度小于第一区块;该第二检查包括根据多个第三交易确定第i个第一交易是否为重放攻击交易,多个第三交易属于区块链节点在当前时刻之前的预定时间间隔内提交的若干第三区块。
Description
技术领域
本说明书实施例属于区块链技术领域,尤其涉及一种重放攻击检查方法和区块链节点。
背景技术
数据区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
发明内容
本发明的目的在于提供一种重放攻击检查方法和区块链节点。
第一方面,提供了一种重放攻击检查方法,所述方法由区块链节点执行,所述方法包括:对属于第一区块的多个第一交易中任意的第i个第一交易,一方面进行第一检查,另一方面进行第二检查;所述第一检查包括,根据多个第二交易确定所述第i个第一交易是否为重放攻击交易,所述多个第二交易属于所述区块链节点将要提交的若干第二区块,所述若干第二区块的区块高度小于所述第一区块;所述第二检查包括,根据多个第三交易确定所述第i个第一交易是否为重放攻击交易,所述多个第三交易属于所述区块链节点在当前时刻之前的预定时间间隔内提交的若干第三区块。
第二方面,提供了一种区块链节点,包括第一检查单元,配置为对属于第一区块的多个第一交易中任意的第i个第一交易,一方面进行第一检查,另一方面进行第二检查;其中,所述第一检查包括,根据多个第二交易确定所述第i个第一交易是否为重放攻击交易,所述多个第二交易属于所述区块链节点将要提交的若干第二区块,所述若干第二区块的区块高度小于所述第一区块;所述第二检查包括,根据多个第三交易确定所述第i个第一交易是否为重放攻击交易,所述多个第三交易属于所述区块链节点在当前时刻之前的预定时间间隔内提交的若干第三区块。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序/指令,当所述计算机程序/指令在计算设备中执行时,计算设备执行第一方面中所述的方法。
本说明书实施例提供的技术方案中,区块链节点可以对属于第一区块的多个第一交易中任意的第i个第一交易,一方面进行第一检查,另一方面进行第二检查;其中该第一检查包括根据多个第二交易确定第i个第一交易是否为重放攻击交易,多个第二交易属于区块链节点将要提交的若干第二区块,若干第二区块的区块高度小于第一区块;该第二第二检查包括根据多个第三交易确定第i个第一交易是否为重放攻击交易,多个第三交易属于区块链节点在当前时刻之前的预定时间间隔内提交的若干第三区块。如此,可以在采用异步流水线机制的区块链系统中,准确实现对属于第一区块的第一交易进行重放攻击检查。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中示例性提供的区块链系统的示意图;
图2为本说明书实施例中提供的一种区块链节点的结构示意图之一;
图3为本说明书实施例中提供的一种重放攻击检查的方法的流程图之一;
图4为本说明书实施例中提供的一种重放攻击检查的方法的流程图之二;
图5为本说明书实施例中提供的一种区块链节点的结构示意图之二。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
图1为本说明书实施例中示例性提供的一种区块链系统的架构图。区块链系统可以包括N个区块链节点,其中图1中示例性的示出了节点1-节点8等8个区块链节点。节点之间的连线示意性的表示P2P(Peer to Peer,点对点)连接,前述连接例如可以为传输控制协议(transmission control trotocol,TCP)连接,前述连接用于支持在不同节点之间传输数据。
区块链系统中需要持久化存储的系统数据可以被划分为区块数据和状态数据两部分。
区块数据包括按照区块高度(或称为区块号)递增的一个或多个区块,单个区块可以包括区块头和区块体。区块头中可以包括前一区块的区块哈希previous_Hash(或者称为父hash)、时间戳Timestamp、区块号BlockNum、状态根哈希State_Root、交易根哈希Transaction_Root以及收据根哈希Receipt_Root等。区块体中可以包括交易集合和收据集合。
区块链系统中的交易是指在区块链系统中执行并记录在区块链系统中的任务单元。单个交易中通常包括发送字段(From)、接收字段(To)和数据字段(Data),其中From字段包括发起该交易的账户,To字段可能包括该交易涉及/指向的另一个账户。
对于任意第k个区块,可以根据区块高度(或称为区块号)为k-1的状态数据,执行属于第k个区块的交易集合中所包括的按顺序排列的多个交易,获得该多个交易的执行结果。进而根据该多个交易的执行结果更新区块高度为k-1的状态数据,获得区块高度为k的状态数据。
区块链系统中的共识机制是区块链节点就区块信息(或称区块)达成全网相同共识的机制,可以保证最新获得的区块被准确存储。当前主流的共识机制包括:工作量证明(Proof of Work,POW)、股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proofof Stake,DPOS)、实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法等。其中在各种共识算法中,通常在预设数目的共识节点对待共识的数据达成相同之后,确定对待共识的数据达成共识。例如在PBFT算法中,对于n≥3f+1个共识节点,最多允许存在f个恶意节点,也就是说,当N个区块链节点中的2f+1个共识节点达成相同时,可确定共识成功,n可能小于N。
区块链系统中可以采用异步流水线机制来并发处理与连续的多个区块相关的事务。此种情况下,区块链节点执行属于第k个区块的交易时,第k-1个区块可能还未被提交,即区块链节点执行属于第k个区块的交易时,第k-1个区块可能还未被该区块链节点持久化存储。举例来说,区块链节点执行属于第k个区块的交易时,第k-1个区块可能因未能完成计算第k-1个区块的收据根哈希、未能完成获取第k-1个区块的区块证明等,导致第k-1个区块还未被提交。
采用异步流水线机制的区块链系统中,考虑到发起共识提议的区块链节点可能作为恶意节点而发起重放攻击交易,造成相同交易被重复执行而影响状态数据的准确性,区块链节点在对第k个区块所对应的共识提议达成共识之后,在执行属于第k个区块的交易之前,需要对属于第k个区块的交易进行重放攻击检查,进而对检查到的重放攻击交易进行拒绝执行。
本说明书实施例中至少提供了一种重放攻击检查方法和区块链节点。区块链节点可以对属于第一区块的多个第一交易中任意的第i个第一交易,一方面进行第一检查,另一方面进行第二检查;其中该第一检查包括根据多个第二交易确定第i个第一交易是否为重放攻击交易,多个第二交易属于区块链节点将要提交的若干第二区块,若干第二区块的区块高度小于第一区块;该第二第二检查包括根据多个第三交易确定第i个第一交易是否为重放攻击交易,多个第三交易属于区块链节点在当前时刻之前的预定时间间隔内提交的若干第三区块。如此,可以在采用异步流水线机制的区块链系统中,准确实现对属于第一区块的第一交易进行重放攻击检查。
图2为本说明书实施例中提供的一种区块链节点的示意图。该区块链节点属于采用异步流水线机制的区块链系统,其可以通过多个进程来提供多种服务。参见图2所示,该区块链节点例如可以包括用于提供接入服务的接入进程、用于提供缓存服务的缓存进程、用于提供预执行服务的预执行进程、用于提供网络服务的网络进程、用于提供共识服务的共识进程、用于提供区块管理服务的区块管理进程、用于提供存储服务的存储进程以及用于执行交易的一个或多个计算进程。其中进程是指具有一定独立功能的程序关于一个数据集合的一次运行活动,即进程是计算机中通过由CPU顺序执行应用程序中的指令而进行的一个过程,而每个进程在创建时被分配自己的内存地址空间。多个进程可以分布在多个计算设备或虚拟计算节点中。
接入进程可以用于接收来自用户设备的交易,进而由接入进程调用缓存进程实现将其接收的交易加入待处理的交易队列中进行缓存。
预执行进程可以调用缓存进程来实现从待处理的交易队列中按顺序读取其缓存的交易并对该交易进行验证,例如验证用户设备对该交易的签名,并将经验证的交易返回给缓存进程。
网络进程可以向区块链系统中的其余节点的网络进程广播缓存进程中存储的经验证的交易;与之相应的是,网络进程还可以从其余区块链节点的网络进程接收经其余区块链节点验证的交易,并通过缓存进程缓存加入到待处理的交易队列中。由此,单个区块链节点的缓存进程通过内存缓存的待处理的交易队列,不仅包括通过该区块链节点的接入进程从用户设备接收的交易,还包括通过其网络进程接收的来自其余区块链节点的交易。
预执行进程还可以通过调用缓存进程,实现从待处理的交易队列中按顺序读取其缓存的交易,并至少对来自与该区块链节点直接连接的用户设备的交易进行验证。该区块链节点作为主节点时,预执行进程还可以对其从缓存进程按顺序接收的交易进行预执行以得到该交易的预执行信息,其中预执行信息例如包括预执行读集、预执行写集以及执行该交易所需消耗的数字资源/计算资源的数量(即资源消费信息);进而预执行进程还可以在其每完成对一批交易的预执行后,将该批交易的预执行信息返回给缓存进程以缓存到待共识的交易队列中进行缓存。需要特别说明的是,该区块链节点作为主节点时,缓存进程对应的内存中还可以缓存有部分状态数据;对于由预执行进程预执行的任一交易而言,在对该任一交易进行预执行的过程中,预执行进程可以首先调用缓存进程查询其缓存的状态数据中是否包括将要读取的任意变量的状态值,如果是则获得缓存进程返回的该任意变量的状态值,如果否则预执行进程可以调用存储进程从已提交到状态数据库的状态数据中查询该任意变量的状态值。该区块链节点作为主节点时,由于预执行进程会将其预执行的交易的预执行信息返回给缓存进程,因而其缓存进程还可以基于其接收的预执行读写集对应更新该缓存进程缓存的状态数据。该区块链节点作为主节点时,由于预执行进程可以按顺序从缓存进程缓存的待处理的交易队列中依次读取交易并对其进行预执行,因而缓存进程还可以基于其缓存的待处理的交易队列在其内存中对应缓存由预执行进程预执行的多个交易的预执行顺序。
预执行读集中包含若干唯一键(key),还包括从已提交的世界状态中读取的与前述各个key相对应的键值(value)。预执行写集中也包含若干唯一键(key),还包括期望提交的与前述各个key相对应的键值(value);此外如果某个交易对世界状态中的某个key进行删除处理,则预执行写集中还会对被删除的key记录相应的标记。需要特别说明的是,如果被预执行的交易是用于调用智能合约的合约调用交易,则其预执行读写集中可能不仅仅包含与外部账户相关的状态参数,还可能涉及与智能合约的合约状态相关的若干合约参数。
下面示例性描述区块链节点依次对交易Tx1~交易Tx5进行预执行的过程,其中假设交易Tx1和和交易Tx2为用于外部账户A1和外部账户A2分别发起的用于调用智能合约C1的合约调用交易,并且假设智能合约C1对应合约账户B1;此外假设交易Tx3是外部账户A1发起的指向外部账户A3的转账交易,交易Tx4是外部账户A4发起的指向外部账户A5的转账交易,交易Tx5是外部账户A6发起的指向外部账户A7的转账交易。节点n1通过其预执行进程对交易Tx1~交易Tx5进行预执行,可能获得如下表1中示例的交易Tx1~交易Tx5各自的预执行信息。
交易 | 预执行读集 | 预执行写集 |
交易Tx1 | k1=v11,k2=v21 | k1=v12,k2=v22 |
交易Tx2 | k3=v31,k4=v41 | k3=v32,k4=v42 |
交易Tx3 | k1=v12,k5=v51 | k1=v13,k5=v52 |
交易Tx4 | k6=v61,k7=v71 | k6=v62,k7=v72 |
交易Tx5 | k8=v81,k9=v91 | k8=v82,k9=v92 |
表1
对于前述表1中示例性提供的各个参数,例如k1表征外部账户A1的balance的key,k2表征合约账户B1下的某个状态参数的key,k3表征外部账户A2的balance的key,k4表征合约账户B1下的某个状态参数的key,k5~k9依次表征外部账户A3~外部账户A7下的balance的key。其中v11、v12、v13以及v21~v92分别表征其各自对应的key的值。需要特别说明的是,由于交易Tx3在交易Tx1之后执行,因此交易Tx3的预执行读集中k1的值为交易Tx1的预执行写集中k1的值。
该区块链节点作为主节点时,共识进程可以调用其缓存进程,从待共识的交易队列中按顺序读取多个交易以及其相关数据来生成对应任意第k个区块的共识提议,其中该共识提议中例如可以包括该多个交易各自对应的预执行信息、该多个交易的共识顺序(该多个交易的共识顺序与该多个交易的预执行顺序相同),以及该多个交易或者该多个交易各自的指示信息(例如该多个交易各自的摘要值)。该区块链节点作为主节点时,共识进程调用其缓存进程的条件,可以包括但不限于按照固定时间步长调用缓存进程、通过缓存进程缓存的交易的数据量达到预定大小时调用缓存进程,或者通过缓存进程缓存的经预执行的交易达到预定数量时调用缓存进程等等。进而,共识进程还可以通过其网络进程,与其余节点的共识进程对共识提议进行共识。该区块链节点作为主节点时,还可以基于共识提议所指示的多个交易各自的预执行信息,计算该多个交易对应的分组信息,并将该分组信息携带于共识提议中,以便参与对共识提议进行共识的其它节点可以基于该分组信息对前述多个交易进行分组。
对共识提议进行共识的过程中,或者在对共识提议达成共识之后,可以通过共识进程和/或区块管理进程从该共识提议中读取前述多个交易各自的预执行信息,进而基于该多个交易各自的预执行信息对其进行分组以得到M个交易分组(M大于1);或者从共识提议中读取前述多个交易的分组信息并基于该分组信息将前述多个交易划分为M个交易分组。更具体地说,例如可以由共识进程基于前述多个交易各自的预执行信息计算分组信息,并将分组信息、前述多个交易以及其各自对应的预执行读写集发送至区块管理进程;进而由区块管理进程基于分组信息将前述多个交易划分为M个交易分组,并对N个计算进程进行任务调度。
将多个交易划分为M个交易分组时,可以确保位于任意两个交易分组中的任意两个交易互不冲突。任意两个交易互不冲突具体是指任意两个交易不存在如下情况之一:一个交易的预执行读集与另一个交易的预执行写集中包括相同的key、一个交易的预执行写集和另一个交易的预执行写集中包括相同的key。而对于存在冲突的任意两个交易,则其需要被划分到相同的交易分组中,换而言之即如果该任意两个交易各自的预执行写集中包含相同的key,即认为该任意两个冲突交易访问了相同的参数而存在冲突,该任意两个交易需要被划分到相同的交易分组;如果该任意两个交易中的一个交易的预执行读集与另一个交易的预执行写集中包含相同的key,即认为该任意两个交易访问了相同的参数而存在冲突,该任意两个交易需要被划分到相同的交易分组。在另一种可能的实施方式中,为了高效的实现确定出前述多个交易的分组信息或者说高效的完成将前述多个交易划分为M个交易分组,通常可以按照位于任意两个不同的交易分组中的任意两个交易不访问相同参数(即不包含相同的key)的要求来对前述多个交易进行分组。这样,对于前述示例的交易Tx1~交易Tx5,其分组情况例如可能包括:交易Tx1和交易Tx3被划分到交易分组1中,交易Tx2被划分到交易分组2中,交易Tx4和交易Tx5各自被划分到交易分组3和交易分组4中。
区块管理进程可以将M个交易分组分发到N个计算进程,由N个计算进程并行执行该M个交易分组中的多个交易。区块管理还可以根据该多个交易的交易回执、成功执行该多个交易中的部分或全部交易以得到的执行写集,通过存储进程提交第k个区块及其对应的状态数据。
前述图2所示区块链节点的结果仅仅是示例性的,例如区块链节点中的接入进程和网络进程可以合并为相同进程。本说明书实施例中提供的重放攻击检查方法可以应用于图2所示的区块链节点中,然而并不局限于图2所示的区块链节点和采用主从架构的区块链系统。
图3为本说明书实施例中提供的一种重放攻击检查方法的流程图之一。该方法示例性描述了对第一区块中的第一交易进行重放攻击检查的过程,该方法可以由区块链系统中的任一区块链节点执行,例如由并未作为共识提议节点(主节点)的其它区块链节点(从节点)执行,该区块链节点例如可以对应图2所示的结构,其中无论是作为主节点或是从节点的区块链节点,均可各自实现为任何具有计算/处理能力的装置、平台、设备或设备集群。
参见图3所示,该方法可以包括但不限于如下步骤S301~步骤S305中的部分或全部。
第一区块的前一区块中可能包括已被成功执行的用于更改系统时间的目标交易,通过目标交易修改后的系统时间需要在前一区块被正式提交后才能生效,而区块链节点开始对第一区块中的第一交易进行重放攻击检查时生效的系统时间是被目标交易修改前的系统时间,因此根据当前生效的修改前的系统时间确定的、用于对第一区块中的交易进行重放攻击检查的多个交易,可能不同于根据修改后的系统时间确定的、用于对第一区块中的交易进行重放攻击检查的多个交易。可选地,为了实现对第一区块中的第一交易准确进行重放攻击检查,在步骤S301,确定第一区块的前一区块中是否包括已被成功执行的用于更改系统时间的目标交易;如果是则在区块链节点完成提交第一区块的前一区块后执行步骤S305;否则执行步骤303。
步骤S303,对属于第一区块的多个第一交易中任意的第i个第一交易,根据多个第二交易确定第i个第一交易是否为重放攻击交易,多个第二交易属于区块链节点将要提交的若干第二区块,若干第二区块的区块高度小于第一区块。
区块链系统中的重放攻击交易,主要是作为攻击者的主节点或者用户设备,在相同时刻下以相同的发起方账户(即交易中from字段的字段值)发起的大量具有相同nonce的交易,因此在对交易进行重放攻击检查时,实质上只需要检查交易的时间戳、nonce和发起方账户即可。基于此,为了更加快速的完成对交易进行重放攻击检查,区块链节点中可以维护第一缓存数据,该第一缓存数据中以属于多个第二交易的时间戳为key记录该多个第二交易的检测信息,单个第二交易的检测信息可以包括该第二交易的时间戳、nonce和发起方账户。与之相应的是,前述步骤S303中可以第i个第一交易的时间戳为key,查询第一缓存数据中是否包括目标检测信息,该目标检测信息包括第i个第一交易的时间戳、nonce和发起方账户;如果是则将第i个第一交易确定为重放攻击交易。
当第i个第一交易在步骤S303中未被确定为重放攻击交易的情况下,区块链节点可以接着对第i个第一交易执行步骤S305,根据多个第三交易确定第i个第一交易是否为重放攻击交易,多个第三交易属于区块链节点在当前时刻之前的预定时间间隔内提交的若干第三区块。
为了更加快速的完成对第一交易进行重放攻击检查,区块链节点中可以维护第二缓存数据,该第二缓存数据中以属于多个第三交易的时间戳为key记录该多个第三交易的检测信息,单个第三交易的检测信息可以包括该第三交易的时间戳、nonce和发起方账户。与之相应的是,前述步骤S305中可以第i个第一交易的时间戳为key,查询第二缓存数据中是否包括目标检测信息,该目标检测信息包括第i个第一交易的时间戳、nonce和发起方账户;如果是则将第i个第一交易确定为重放攻击交易。
图4为本说明书实施例中提供的一种重放攻击检查方法的流程图之二。该方法示例性描述了对第一区块中的第一交易进行重放攻击检查的过程,该方法可以由区块链系统中的任一区块链节点执行,例如由并未作为共识提议节点(主节点)的其它区块链节点(从节点)执行,该区块链节点例如可以对应图2所示的结构,其中无论是作为主节点或是从节点的区块链节点,均可各自实现为任何具有计算/处理能力的装置、平台、设备或设备集群。
参见图4所示,该方法可以包括但不限于如下步骤S401~步骤S405中的部分或全部。
在步骤S401,确定第一区块的前一区块中是否包括已被成功执行的用于更改系统时间的目标交易。如果否则接着执行步骤403,基于步骤S403的执行结果决策是否执行步骤S405;如果是则在区块链节点完成提交第一区块的前一区块后执行步骤S403,不再执行后续步骤S405。
步骤S403,对属于第一区块的多个第一交易中任意的第i个第一交易,根据多个第三交易确定第i个第一交易是否为重放攻击交易,多个第三交易属于区块链节点在当前时刻之前的预定时间间隔内提交的若干第三区块。
前述步骤S403的执行过程相似于前述步骤S305,不再赘述。
当第i个第一交易在步骤S403中未被确定为重放攻击交易,并且前述步骤S401中确定第一区块的前一区块中未包括已被成功执行的用于更改系统时间的目标交易,区块链节点可以接着执行步骤S405,根据多个第二交易确定第i个第一交易是否为重放攻击交易,多个第二交易属于区块链节点将要提交的若干第二区块,若干第二区块的区块高度小于第一区块。
前述步骤S405的执行过程相似于前述步骤S303,不再赘述。
本说明书实施例中还提供了另一种重放攻击检查方法,区块链节点中可以包括第一检查进程和第二检查进程,对属于第一区块的多个第一交易中任意的第i个第一交易,区块链节点可以通过第一检查进程和第二检查进程并发进行第一检查和第二检查;其中第一检查包括根据多个第二交易确定第i个第一交易是否为重放攻击交易,多个第二交易属于区块链节点将要提交的若干第二区块,若干第二区块的区块高度小于第一区块;第二检查包括,根据多个第三交易确定第i个第一交易是否为重放攻击交易,多个第三交易属于区块链节点在当前时刻之前的预定时间间隔内提交的若干第三区块。基于该实施方式的一个更加具体的示例中,在第一检查进程通过第一检查确定第i个第一交易是重放攻击交易的情况下,向第二检查进程发送通知消息,使得第二检查进程终止进行第二检查。与之相应的,基于该实施方式的另一个更加具体的示例中,在第二检查进程通过第二检查确定第i个第一交易是重放攻击交易的情况下,向第一检查进程发送通知消息,使得第一检查进程终止进行第一检查。
当第i个第一交易被确定为重放攻击交易时,区块链节点无需执行该第i个第一交易,直接生成该第i个第一交易的交易回执,并在该第i个第一交易的交易回执中指示第i个第一交易未被成功执行即可,以便后续将第i个第一交易的交易回执返回给对应的用户设备,并利用多个第一交易各自的交易回执确定相应的Receipt_Root。当区块链节点包括区块管理进程和多个计算进程的情况下,如果第i个第一交易被确定为重放攻击交易的,则可以由区块管理进程或接收到第i个第一交易的计算进程生成第i个第一交易的交易回执。
在一种可能的实施方式中,当第i个第一交易被确定为重放攻击交易的情况下,区块管理进程可以禁止向多个计算进程分发第i个第一交易,并生成第i个第一交易的交易回执。区块管理进程还可以将未被确定为重放攻击交易的各个第一交易划分为多个交易分组,并向多个计算进程分发多个交易分组对应的多个分组数据。如此,区块管理进程从多个第一交易中确定出各个重放攻击交易后,无需执行对重放攻击交易的预执行读集和预执行写集进行分析来确定重放攻击交易所属的交易分组,从而避免造成资源的浪费。
在另一种可能的实施方式中,区块管理进程可以按照多个第一交易的预执行读集和预执行写集,或者按照从共识提议中获取的分组信息,将多个第一交易划分为多个交易分组,并向多个计算进程分发多个交易分组对应的多个分组数据,其中任意第j个分组数据中包括第j个交易分组和指示信息,第j个分组数据中的指示信息用于指示第j个交易分组中的重放攻击交易;与之相应的是,计算进程在执行第j个交易分组中的任意第k个第一交易之前,可以根据指示信息确定第k个第一交易是否为重放攻击交易,如果是则生成第k个第一交易的交易回执,交易回执中指示第k个第一交易未被成功执行。在一个更为具体的示例中,第j个交易分组中的第k个第一交易被确定为重放攻击交易时,第j个交易分组中的指示信息可以包括该第k个第一交易的交易哈希、其对应在第j个交易分组中的序号k或者其对应在多个第一交易中的序号i。
对于未被确定为重放攻击交易的第一交易,可对其正确执行以获得相应的交易回执。
当区块链节点中维护有前述的第一缓存数据的情况下,在区块链节点成功获得该多个第一交易的交易回执后,可以在第一缓存数据中新增多个第一交易的检测信息;在区块链节点提交第一区块后,可以从第一缓存数据中删除多个第一交易的检测信息。当需要对任意第k个区块中的交易进行重放攻击检查时,均可直接使用第一缓存数据来对其进行重放攻击检查,无需频繁执行获取区块号小于k且并未提交的各个区块中的交易所对应的检查信息。
当区块链节点中维护有前述的第二缓存数据的情况下,在区块链节点提交第一区块后,可以在第二缓存数据中新增多个第一交易的检测信息;并在经过预定时间间隔后,从第二缓存数据中删除多个第一交易的检测信息。当需要对任意第k个区块中的交易进行重放攻击检查时,均可直接使用第二缓存数据来对其进行重放攻击检查,无需频繁执行获取区块链节点在当前时间间隔之前的预定时间间隔内提交的各个区块中的交易所对应的检查信息。
与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种区块链节点500。参见图5所示,所述区块链节点包括第一检查单元501,配置为对属于第一区块的多个第一交易中任意的第i个第一交易,一方面进行第一检查,另一方面进行第二检查;其中,所述第一检查包括,根据多个第二交易确定所述第i个第一交易是否为重放攻击交易,所述多个第二交易属于所述区块链节点将要提交的若干第二区块,所述若干第二区块的区块高度小于所述第一区块;所述第二检查包括,根据多个第三交易确定所述第i个第一交易是否为重放攻击交易,所述多个第三交易属于所述区块链节点在当前时刻之前的预定时间间隔内提交的若干第三区块。
在一种可能的实施方式中,所述第一检查单元501,配置为在通过所述第一检查确定所述第i个第一交易不是重放攻击交易的情况下,执行所述进行第二检查。
在一种可能的实施方式中,所述第一检查单元501,配置为在通过所述第二检查确定所述第i个第一交易不是重放攻击交易的情况下,执行所述进行第一检查。
在一种可能的实施方式中,所述第一检查单元501包括第一检查进程5011和第二检查进程5013,所述第一检查进程5011和所述第二检查进程5013配置为并发进行所述第一检查和所述第二检查。
在一种可能的实施方式中,所述第一检查进程5011,还配置为在通过所述第一检查确定所述第i个第一交易是重放攻击交易的情况下,向所述第二检查进程5013发送通知消息,使得所述第二检查进程5013终止进行所述第二检查。
在一种可能的实施方式中,所述区块链节点包括区块管理进程503和多个计算进程505,所述计算进程505用于执行交易;其中,所述区块管理进程503,配置为在所述第i个第一交易为重放攻击交易的情况下,禁止向所述多个计算进程505分发所述第i个第一交易,并生成所述第i个第三交易的交易回执,所述交易回执中指示所述第i个第三交易未被成功执行。
在一种可能的实施方式中,所述区块管理进程503,还配置为将未被确定为重放攻击交易的各个第一交易划分为多个交易分组,并向所述多个计算进程505分发所述多个交易分组对应的多个分组数据。
在一种可能的实施方式中,所述区块链节点500包括区块管理进程503和多个计算进程505,所述多个第一交易被划分为多个交易分组;其中,所述区块管理进程503,配置为向所述多个计算进程505分发所述多个交易分组对应的多个分组数据,其中任意第j个分组数据中包括第j个交易分组和指示信息,所述指示信息用于指示所述第j个交易分组中的重放攻击交易;所述计算进程505,配置为在执行所述第j个交易分组中的任意第k个第一交易之前,根据所述指示信息确定所述第k个第一交易是否为重放攻击交易,如果是则生成所述第k个第一交易的交易回执,所述交易回执中指示所述第k个第一交易未被成功执行。
在一种可能的实施方式中,所述区块链节点500维护有第一缓存数据和第二缓存数据,所述第一缓存数据中以所述多个第二交易的时间戳为key记录所述多个第二交易的检测信息,所述检测信息包括时间戳、nonce和发起方账户;其中,所述第一检查单元501,配置为以所述第i个第一交易的时间戳为key查询所述第一缓存数据中是否包括目标检测信息,所述目标检测信息包括所述第i个第一交易的时间戳、nonce和发起方账户;如果是,则确定所述第i个第一交易为重放攻击交易。
在一种可能的实施方式中,所述区块链节点500还包括缓存管理单元507,配置为在所述区块链节点获得所述多个第一交易的交易回执后,在所述第一缓存数据中新增所述多个第一交易的检测信息。
在一种可能的实施方式中,所述缓存管理单元507,还配置为在所述区块链节点500提交所述第一区块后,从所述第一缓存数据中删除所述多个第一交易的检测信息。
在一种可能的实施方式中,所述区块链节点500还包括第二检查单元509,配置为确定所述第一区块的前一区块中是否包括已被成功执行的用于更改系统时间的目标交易;如果是,则在所述区块链节点500提交所述第一区块的前一区块后,触发所述第一检查单元501进行所述第二检查。
本说明书实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,当所述计算机程序/指令在计算机中执行时,令计算机执行前述各个实施例中提供的一种重放攻击检查方法。
本说明书实施例中还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序/指令,所述处理器执行所述计算机程序/指令时,实现前述各个实施例中提供的一种重放攻击检查方法。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本申请不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
Claims (14)
1.一种重放攻击检查方法,所述方法由区块链节点执行,所述方法包括:
对属于第一区块的多个第一交易中任意的第i个第一交易,一方面进行第一检查,另一方面进行第二检查;其中,
所述第一检查包括根据多个第二交易确定所述第i个第一交易是否为重放攻击交易,所述多个第二交易属于所述区块链节点将要提交的若干第二区块,所述若干第二区块的区块高度小于所述第一区块;
所述第二检查包括根据多个第三交易确定所述第i个第一交易是否为重放攻击交易,所述多个第三交易属于所述区块链节点在当前时刻之前的预定时间间隔内提交的若干第三区块。
2.根据权利要求1所述的方法,所述一方面进行第一检查,另一方面进行第二检查,包括:在通过所述第一检查确定所述第i个第一交易不是重放攻击交易的情况下,执行所述进行第二检查。
3.根据权利要求1所述的方法,所述一方面进行第一检查,另一方面进行第二检查,包括:在通过所述第二检查确定所述第i个第一交易不是重放攻击交易的情况下,执行所述进行第一检查。
4.根据权利要求1所述的方法,所述一方面进行第一检查,另一方面进行第二检查,包括:通过第一检查进程和第二检查进程并发进行所述第一检查和所述第二检查。
5.根据权利要求4所述的方法,所述方法还包括:在所述第一检查进程通过所述第一检查确定所述第i个第一交易是重放攻击交易的情况下,向所述第二检查进程发送通知消息,使得所述第二检查进程终止进行所述第二检查。
6.根据权利要求1所述的方法,所述区块链节点包括区块管理进程和多个计算进程,所述计算进程用于执行交易;在所述第i个第一交易为重放攻击交易的情况下,所述区块管理进程禁止向所述多个计算进程分发所述第i个第一交易;
其中,所述方法还包括:所述区块管理进程生成所述第i个第三交易的交易回执,所述交易回执中指示所述第i个第三交易未被成功执行。
7.根据权利要求5所述的方法,所述方法还包括:所述区块管理进程将未被确定为重放攻击交易的各个第一交易划分为多个交易分组,并向所述多个计算进程分发所述多个交易分组对应的多个分组数据。
8.根据权利要求1所述的方法,所述区块链节点包括区块管理进程和多个计算进程,所述多个第一交易被划分为多个交易分组;其中,所述方法还包括:
所述区块管理进程向所述多个计算进程分发所述多个交易分组对应的多个分组数据,其中任意第j个分组数据中包括第j个交易分组和指示信息,所述指示信息用于指示所述第j个交易分组中的重放攻击交易;
所述计算进程在执行所述第j个交易分组中的任意第k个第一交易之前,根据所述指示信息确定所述第k个第一交易是否为重放攻击交易,如果是则生成所述第k个第一交易的交易回执,所述交易回执中指示所述第k个第一交易未被成功执行。
9.根据权利要求1所述的方法,所述区块链节点维护有第一缓存数据和第二缓存数据,所述第一缓存数据中以所述多个第二交易的时间戳为key记录所述多个第二交易的检测信息,所述检测信息包括时间戳、nonce和发起方账户;
其中,所述根据多个第二交易确定所述第i个第一交易是否为重放攻击交易,包括:
以所述第i个第一交易的时间戳为key查询所述第一缓存数据中是否包括目标检测信息,所述目标检测信息包括所述第i个第一交易的时间戳、nonce和发起方账户;
如果是,则确定所述第i个第一交易为重放攻击交易。
10.根据权利要求9所述的方法,所述方法还包括:在所述区块链节点获得所述多个第一交易的交易回执后,在所述第一缓存数据中新增所述多个第一交易的检测信息。
11.根据权利要求10所述的方法,所述方法还包括:在所述区块链节点提交所述第一区块后,从所述第一缓存数据中删除所述多个第一交易的检测信息。
12.根据权利要求1-11中任一项所述的方法,所述方法还包括:
在所述根据多个第二交易确定所述第i个第一交易是否为重放攻击交易之前,确定所述第一区块的前一区块中是否包括已被成功执行的用于更改系统时间的目标交易;
如果是,则在所述区块链节点提交所述第一区块的前一区块后,执行所述根据多个第三交易确定所述第i个第一交易是否为重放攻击交易。
13.一种区块链节点,包括第一检查单元,配置为对属于第一区块的多个第一交易中任意的第i个第一交易,一方面进行第一检查,另一方面进行第二检查;其中,所述第一检查包括根据多个第二交易确定所述第i个第一交易是否为重放攻击交易,所述多个第二交易属于所述区块链节点将要提交的若干第二区块,所述若干第二区块的区块高度小于所述第一区块;所述第二检查包括根据多个第三交易确定所述第i个第一交易是否为重放攻击交易,所述多个第三交易属于所述区块链节点在当前时刻之前的预定时间间隔内提交的若干第三区块。
14.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算设备中执行时,计算设备执行权利要求1-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310640776.9A CN116707891A (zh) | 2023-05-31 | 2023-05-31 | 重放攻击检查方法和区块链节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310640776.9A CN116707891A (zh) | 2023-05-31 | 2023-05-31 | 重放攻击检查方法和区块链节点 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116707891A true CN116707891A (zh) | 2023-09-05 |
Family
ID=87828590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310640776.9A Pending CN116707891A (zh) | 2023-05-31 | 2023-05-31 | 重放攻击检查方法和区块链节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116707891A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117670330A (zh) * | 2024-02-01 | 2024-03-08 | 中国信息通信研究院 | 基于区块链的交易处理方法和装置、电子设备和存储介质 |
-
2023
- 2023-05-31 CN CN202310640776.9A patent/CN116707891A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117670330A (zh) * | 2024-02-01 | 2024-03-08 | 中国信息通信研究院 | 基于区块链的交易处理方法和装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190370223A1 (en) | Blockchain-based data migration method and apparatus | |
EP3547169B1 (en) | Block chain-based data processing method and equipment | |
CN113743941B (zh) | 一种在区块链中执行交易的方法、区块链和主节点 | |
CN114827165B (zh) | 对多个交易进行分组的方法和区块链节点 | |
WO2023231336A1 (zh) | 执行交易的方法和区块链节点 | |
CN113743942B (zh) | 交易执行方法、区块链、主节点和主存储设备 | |
WO2024001024A1 (zh) | 在区块链系统中执行交易的方法、区块链系统和节点 | |
CN113743940B (zh) | 在区块链中执行交易的方法、区块链、主节点和从节点 | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
CN107578338B (zh) | 一种业务发布方法、装置及设备 | |
WO2023160083A1 (zh) | 执行交易的方法、区块链、主节点和从节点 | |
WO2023160085A1 (zh) | 执行交易的方法、区块链、主节点和从节点 | |
TW202008763A (zh) | 資料處理方法和裝置、用戶端 | |
CN116707891A (zh) | 重放攻击检查方法和区块链节点 | |
CN106250229B (zh) | 事件处理的方法及装置 | |
CN114936256A (zh) | 在区块链中执行交易的方法和区块链节点 | |
CN113744062B (zh) | 在区块链中执行交易的方法、区块链节点和区块链 | |
WO2024001025A1 (zh) | 一种预执行缓存数据清理方法和区块链节点 | |
WO2024001032A1 (zh) | 在区块链系统中执行交易的方法、区块链系统和节点 | |
CN114785662B (zh) | 一种存储管理方法、装置、设备及机器可读存储介质 | |
CN116366666A (zh) | 区块链系统中的链状态更新方法和区块链节点 | |
CN116032756A (zh) | 基于区块链更新应用程序的配置信息的方法和区块链节点 | |
CN111339117B (zh) | 数据处理方法、装置及设备 | |
CN107645541B (zh) | 数据存储方法、装置及服务器 | |
CN116431312A (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 |