CN111191273B - 处理单据的方法、装置、电子设备及可读存储介质 - Google Patents
处理单据的方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN111191273B CN111191273B CN201911168074.5A CN201911168074A CN111191273B CN 111191273 B CN111191273 B CN 111191273B CN 201911168074 A CN201911168074 A CN 201911168074A CN 111191273 B CN111191273 B CN 111191273B
- Authority
- CN
- China
- Prior art keywords
- upstream
- document
- current
- data
- block
- 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.)
- Active
Links
Images
Classifications
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, 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/401—Transaction verification
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种处理单据的方法、装置、电子设备及可读存储介质,旨在为业务处理系统中的处理节点提供用于验证伪造单据的验证机制。所述方法应用于业务处理系统中的处理节点,所述方法包括:接收上游处理节点各自发送的上游单据和上游单据对应的上游区块ID;在获得当前处理节点对应的当前单据之后,针对所述当前单据中包括的每条当前数据,确定该条当前数据所依赖的各条上游数据各自对应的上游区块ID,并根据所依赖的各条上游数据的哈希值和所确定的各个上游区块ID,建立该条当前数据对各条上游数据的依赖关系;将当前数据的依赖关系和哈希值存入区块链中的目标区块;将所述当前单据和所述目标区块的区块ID发送给下游处理节点。
Description
技术领域
本申请实施例涉及数据处理技术领域,具体而言,涉及一种处理单据的方法、装置、电子设备及可读存储介质。
背景技术
随着数据处理技术和网络技术的发展,越来越多的业务流程通过业务处理系统开展。其中,业务处理系统通常包括多个处理节点,各个处理节点之间通过各种结构或规模的网络连接。
在业务流程基于业务处理系统开展期间,在各个处理节点之间会涉及大量的单据传输。例如,当前处理节点在接收到一个或多个上游处理节点所发送的单据后,基于所接收的单据中的数据进行业务处理,从而产生新数据。当前处理节点将新数据填入其接收的单据中,从而获得当前处理节点对应的单据。或者当前处理节点针对新数据生成单独的单据,从而获得当前处理节点对应的单据。
多数的业务流程在开展期间,对单据在不同处理节点之间传递时的数据安全具有很高的要求。其中,对单据数据安全的威胁主要来源于网络攻击者对单据的凭空伪造和对单据中数据的篡改。特别是由于业务处理系统中,通常只有相邻的上下游处理节点之间实现互联,当网络攻击者在相邻的处理节点之间伪造出全业务流程的单据后,下游处理节点在接收到该伪造单据后,难以进行验证和检查。
发明内容
本申请实施例提供一种处理单据的方法、装置、电子设备及可读存储介质,旨在为业务处理系统中的处理节点提供用于验证伪造单据的验证机制,从而提高单据的数据安全。
本申请实施例第一方面提供一种处理单据的方法,应用于业务处理系统中的处理节点,所述方法包括:
接收至少一个上游处理节点各自发送的上游单据和各份上游单据对应的上游区块ID,其中每份上游单据中包括上游数据,每份上游单据对应的区块中存储有该份上游单据中包括的上游数据的哈希值;
在根据各份上游单据获得当前处理节点对应的当前单据之后,针对所述当前单据中包括的每条当前数据,确定在计算该条当前数据时所依赖的各条上游数据各自对应的上游区块ID,并根据所依赖的各条上游数据的哈希值和所确定的各个上游区块ID,建立该条当前数据对各条上游数据的依赖关系;
将每条当前数据的哈希值和依赖关系存入区块链中的目标区块;
将所述当前单据和所述目标区块的区块ID发送给下游处理节点。
可选地,在将每条当前数据的依赖关系和哈希值存入区块链中的目标区块之前,所述方法还包括:
利用所述当前处理节点的私钥,对每条当前数据的依赖关系和/或哈希值进行加密。
可选地,在根据各份上游单据获得当前处理节点对应的当前单据之前,所述方法还包括:
针对所接收的每份上游单据,根据该份上游单据对应的上游区块ID,从对应区块中查询该份上游单据中包括的每条上游数据的依赖关系;
针对每条上游数据,从该条上游数据的依赖关系中提取记录在该依赖关系中的哈希值、以及该哈希值对应的区块ID;
根据提取的哈希值、以及提取的区块ID所对应的区块中记录的哈希值,确定该条上游数据是否是伪造数据。
可选地,每份上游单据中包括多条上游数据,多条上游数据的哈希值对应的Merkle树根哈希值被所述上游处理节点存储至该份上游单据对应的区块中;在根据各份上游单据获得当前处理节点对应的当前单据之前,所述方法还包括:
针对所接收的每份上游单据,计算该份上游单据中包括的每条上游数据的当前哈希值;
根据计算出的多个当前哈希值,构造该份上游单据对应的Merkle树,以获得Merkle树根哈希值;
根据获得的Merkle树根哈希值和该份上游单据对应的区块中所记录的Merkle树根哈希值,确定该份上游单据是否被篡改。
可选地,由上游单据所包括的多条上游数据的哈希值所构造的Merkle树,也被所述上游处理节点存储至该份上游单据对应的区块中;所述方法还包括:
在确定所述上游单据被篡改的情况下,根据由所述多个当前哈希值所构造的Merkle树、以及该上游单据所对应的区块中存储的Merkle树,确定该上游单据中被篡改的上游数据。
可选地,在根据各份上游单据获得当前处理节点对应的当前单据之后,所述方法还包括:
根据当前单据中包括的各条当前数据的哈希值,构造当前单据对应的Merkle树,以获得Merkle树根哈希值;
将该Merkle树和该Merkle树根哈希值存入所述目标区块。
可选地,在将所述当前单据发送给下游处理节点之前,所述方法还包括:
利用所述当前处理节点的私钥对所述当前单据进行加密。
本申请实施例第二方面提供一种处理单据的装置,应用于业务处理系统中的处理节点,所述装置包括:
接收模块,用于接收至少一个上游处理节点各自发送的上游单据和各份上游单据对应的上游区块ID,其中每份上游单据中包括上游数据,每份上游单据对应的区块中存储有该份上游单据中包括的上游数据的哈希值;
关系建立模块,用于在根据各份上游单据获得当前处理节点对应的当前单据之后,针对所述当前单据中包括的每条当前数据,确定在计算该条当前数据时所依赖的各条上游数据各自对应的上游区块ID,并根据所依赖的各条上游数据的哈希值和所确定的各个上游区块ID,建立该条当前数据对各条上游数据的依赖关系;
存储模块,用于将每条当前数据的哈希值和依赖关系存入区块链中的目标区块;
发送模块,用于将所述当前单据和所述目标区块的区块ID发送给下游处理节点。
可选地,所述装置还包括:
加密模块,用于在将每条当前数据的依赖关系和哈希值存入区块链中的目标区块之前,利用所述当前处理节点的私钥,对每条当前数据的依赖关系和/或哈希值进行加密。
可选地,所述装置还包括:
查询模块,用于在根据各份上游单据获得当前处理节点对应的当前单据之前,针对所接收的每份上游单据,根据该份上游单据对应的上游区块ID,从对应区块中查询该份上游单据中包括的每条上游数据的依赖关系;
提取模块,用于针对每条上游数据,从该条上游数据的依赖关系中提取记录在该依赖关系中的哈希值、以及该哈希值对应的区块ID;
第一检验模块,用于根据提取的哈希值、以及提取的区块ID所对应的区块中记录的哈希值,确定该条上游数据是否是伪造数据。
可选地,每份上游单据中包括多条上游数据,多条上游数据的哈希值对应的Merkle树根哈希值被所述上游处理节点存储至该份上游单据对应的区块中;所述装置还包括:
哈希值计算模块,用于在根据各份上游单据获得当前处理节点对应的当前单据之前,针对所接收的每份上游单据,计算该份上游单据中包括的每条上游数据的当前哈希值;
Merkle树构造模块,用于根据计算出的多个当前哈希值,构造该份上游单据对应的Merkle树,以获得Merkle树根哈希值;
第二检测模块,用于根据获得的Merkle树根哈希值和该份上游单据对应的区块中所记录的Merkle树根哈希值,确定该份上游单据是否被篡改。
可选地,由上游单据所包括的多条上游数据的哈希值所构造的Merkle树,也被所述上游处理节点存储至该份上游单据对应的区块中;所述装置还包括:
篡改数据确定模块,用于在确定所述上游单据被篡改的情况下,根据由所述多个当前哈希值所构造的Merkle树、以及该上游单据所对应的区块中存储的Merkle树,确定该上游单据中被篡改的上游数据。
可选地,所述Merkle树构造模块还用于在根据各份上游单据获得当前处理节点对应的当前单据之后,根据当前单据中包括的各条当前数据的哈希值,构造当前单据对应的Merkle树,以获得Merkle树根哈希值;
所述存储模块还用于将该Merkle树和该Merkle树根哈希值存入所述目标区块。
可选地,所述加密模块还用于在将所述当前单据发送给下游处理节点之前,利用所述当前处理节点的私钥对所述当前单据进行加密。
本申请实施例第三方面提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如本申请第一方面所述的方法中的步骤。
本申请实施例第四方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时,实现本申请第一方面所述的方法的步骤。
采用本申请提供的处理单据的方法,当前处理节点在接收到上游处理节点发送的上游单据和上游单据对应的上游区块ID,从而根据上游单据获得当前单据后,针对当前单据中包括的每条当前数据,建立该条当前数据的依赖关系,并将该依赖关系存入区块链的目标区块中。其中,该条当前数据的依赖关系中包括:在计算该条当前数据时所依赖的各条上游数据的哈希值、以及其各自对应的上游区块ID。并且,每条上游数据的哈希值也已经被上游处理节点存储至对应区块中。
如此,在当前处理节点将当前单据和目标区块的区块ID发送给下游处理节点后,下游处理节点可以根据所接收的区块ID,从对应的区块中查询所述各条当前数据的依赖关系。然后针对每条当前数据,从该条当前数据的依赖关系中提取出所述上游数据的哈希值、以及该哈希值对应的所述上游区块ID。然后根据提取的上游数据的哈希值、以及所述上游区块ID所对应的区块中记录的哈希值,确定该条当前数据是否是伪造数据。
通常,如果从依赖关系中提取的上游数据的哈希值,与上游区块ID所对应的区块中记录的哈希值不相等,则认为该条当前数据是伪造的。
可见,当前处理节点通过建立上述依赖关系,并将其存入区块链的区块中,从而为下游处理节点提供了用于验证伪造单据的验证机制,进而提高单据的数据安全。此外,由于存储在区块链中的数据均为哈希值,因此保证了业务数据的私密性,避免业务数据被公开。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提出的处理单据的方法的流程图;
图2是本申请一实施例中提出的上游单据的示意图;
图3是本申请一实施例提出的处理单据的方法的示意图;
图4是本申请一实施例提出的检验上游单据是否被篡改的流程图;
图5是本申请一实施例中提出的当前Merkle树的示意图;
图6是本申请一实施例提出的处理单据的装置的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术中,越来越多的业务流程通过业务处理系统开展。通常,业务处理系统包括多个处理节点,各个处理节点之间通过各种结构或规模的网络连接。在业务流程基于业务处理系统开展期间,在各个处理节点之间会涉及大量的单据传输。
以保险业务为例,多个第一经办节点负责对个体赔付费用进行计算,从而生成多份关于个体赔付费用的单据,多个第一经办节点将生成的多份单据发送给其下游的第二经办节点。第二经办节点在接收到上游的多个第一经办节点所发送的多份单据后,负责对一个自然月内的多个个体赔付费用进行统计汇总,从而生成关于总赔付费用的单据,第二经办节点将生成的单据发送给其下游的第三经办节点,第三经办节点在接收到上游的第二经办节点发送的单据后,对单据中所记录的总赔付费用执行支付操作。
可以理解的,在保险业务或者其他业务(本申请对业务类型不做限定)开展期间,对单据在不同处理节点之间传递时的数据安全具有很高的要求。其中,对单据数据安全的威胁主要来源于网络攻击者对单据的凭空伪造和对单据中数据的篡改。特别是由于业务处理系统中,通常只有相邻的上下游处理节点之间实现互联,例如上述保险业务处理系统中第一经办节点与第二经办节点之间通常不相连,当网络攻击者在相邻的处理节点之间伪造出全业务流程的单据后,下游处理节点在接收到该伪造单据后,难以进行验证和检查。
为此,本申请实施例提出处理单据的方法,旨在为业务处理系统中的处理节点提供用于验证伪造单据的验证机制,从而提高单据的数据安全。参考图1,图1是本申请一实施例提出的处理单据的方法的流程图。如图1所示,该方法包括以下步骤:
步骤S11:接收至少一个上游处理节点各自发送的上游单据和各份上游单据对应的上游区块ID,其中每份上游单据中包括上游数据,每份上游单据对应的区块中存储有该份上游单据中包括的上游数据的哈希值。
步骤S12:在根据各份上游单据获得当前处理节点对应的当前单据之后,针对所述当前单据中包括的每条当前数据,确定在计算该条当前数据时所依赖的各条上游数据各自对应的上游区块ID,并根据所依赖的各条上游数据的哈希值和所确定的各个上游区块ID,建立该条当前数据对各条上游数据的依赖关系。
步骤S13:将每条当前数据的哈希值和依赖关系存入区块链中的目标区块。
步骤S14:将所述当前单据和所述目标区块的区块ID发送给下游处理节点。
其中,上游单据对应的上游区块ID是指:存储有上游单据中包括的上游数据的哈希值和依赖关系的区块的ID。示例地,一个区块的ID可以是该区块的区块头的哈希值。
参考图2,图2是本申请一实施例中提出的上游单据的示意图。如图2所示,一份上游单据中主要包括单据体,该单据体中包括一条或多条业务数据。此外,上游单据中还可以包括单据头和签名区,其中单据头可以包括单据ID、生成日期、生成部分、单据金额以及审批部门等等。或者,上游单据中还可以包括单据索引,组织ID、系统ID、部分ID、处理节点ID等等,便于根据ID对单据进行搜索。一份上游单据中单据体、单据头以及签名区内包括的数据,均可视为该上游单据包括的上游数据。应当理解的,单据中的数据种类、数据内容等与业务类型相关,本申请对此不做限定。
其中,当前单据是与上游单据相对的概念,上游单据是指由上游处理节点生成的单据,而当前单据是指由当前处理节点生成的单据。当前数据是指当前单据中包括的数据。
其中,当前数据对各条上游数据的依赖关系中包括:在计算该条当前数据时所依赖的各条上游数据的哈希值、及其各自对应的上游区块ID。
示例地,参考图3,图3是本申请一实施例提出的处理单据的方法的示意图。如图3所示,处理节点M-1作为上游处理节点,处理节点M-1生成的单据1(图3中未示出)即是上游单据,单据1中包括的数据B1、B2、B3、B4即是上游数据。处理节点M作为当前处理节点,处理节点M生成的单据2(图3中未示出)即是当前单据,其中包括的数据C1、C2、C3、C4即是当前数据。处理节点M+1作为下游处理节点。
处理节点M-1在生成其对应的单据1后,建立数据B1、B2、B3、B4各自的依赖关系,例如数据B1的依赖关系是“Hash.B1依赖于:hash.A1(区块ID)、hash.A2(区块ID)”。其中,Hash.B1是数据B1的哈希值,A1和A2是计算B1时所依赖的数据,hash.A1是数据A1的哈希值,hash.A2是数据A2的哈希值,hash.A1对应括号中的区块ID是数据A1所在单据所对应的区块的ID,hash.A2对应括号中的区块ID是数据A2所在单据所对应的区块的ID。
如图3所示,处理节点M-1在建立数据B1、B2、B3、B4各自的依赖关系后,通过其与区块链系统之间的API接口,将数据B1、B2、B3、B4各自的哈希值和依赖关系存入区块链中的区块K。并将单据1和区块K的区块ID发送给处理节点M。
处理节点M在接收到单据1和区块K的区块ID后,在操作人员的控制下,或者通过自动调用业务处理函数,根据单据1(假设处理节点M在进行业务处理时仅依赖于处理节点M-1的单据1)中的数据B1、B2、B3、B4等生成单据2。其中,单据2包括数据C1、C2、C3、C4。
处理节点M在获得当前单据(即单据2)后,建立数据C1、C2、C3、C4各自的依赖关系,例如数据C1的依赖关系是“Hash.C1依赖于:hash.B1(区块ID)、hash.B2(区块ID)”。其中,Hash.C1是数据C1的哈希值,B1和B2是计算C1时所依赖的数据,hash.B1是数据B1的哈希值,hash.B2是数据B2的哈希值,hash.B1对应括号中的区块ID是区块K的ID,hash.B2对应括号中的区块ID也是区块K的ID。
如图3所示,处理节点M在建立数据C1、C2、C3、C4各自的依赖关系后,通过其与区块链系统之间的API接口,将数据C1、C2、C3、C4各自的哈希值和依赖关系存入区块链中的区块N。并将单据2和区块N的区块ID发送给处理节点M+1。
如此,处理节点M+1在接收到单据2和区块N的区块ID后,可以对单据2的安全性进行验证,从而判断单据2是否是伪造单据。示例地,处理节点M+1可以通过其与区块链系统之间的API接口,根据所接收的区块ID,从区块N中读取数据C1、C2、C3、C4各自的依赖关系。然后针对每条数据,验证其安全性。以数据C1为例,从C1的依赖关系中提取出:数据B1的哈希值hash.B1、hash.B1对应的区块ID(即区块K的ID)、数据B2的哈希值hash.B2、以及hash.B2对应的区块ID(即区块K的ID)。然后将提取出的hash.B1与区块K中记录的hash.B1进行对比,将提取出的hash.B2与区块K中记录的hash.B2进行对比,从而判断单据2中的数据C1是否是伪造数据。
由于数据C1是处理节点M生成的合法数据,因此提取出的hash.B1与区块K中记录的hash.B1相等,提取出的hash.B2与区块K中记录的hash.B2相同。
通常,如果在处理节点M将单据2传输给处理节点M+1的过程中,被网络攻击者添入了伪造数据C5。则处理节点M+1在对单据2的安全性进行检验时,将不能从区块N中读取到数据C5的依赖关系,因此可以将数据C5加入可疑数据队列,从而可以提示操作人员通过其他方式确认数据C5是否是伪造数据。例如处理节点M+1的操作人员可以和处理节点M的操作人员电话沟通,从而确认数据C5是否是伪造数据。
或者如果处理节点M+1接收到一份由网络攻击者伪造的单据2’,该单据2’中包括伪造数据C1’、C2’、C3’、C4’,同时网络攻击者还在区块链系统的某一区块中伪造了数据C1’、C2’、C3’、C4’的依赖关系,并将该区块的区块ID发送给处理节点M+1。如此,处理节点M+1在接收到单据2’和区块ID后,可以根据区块ID从对应区块中读取数据C1’、C2’、C3’、C4’各自的依赖关系。然后针对每条数据,验证其安全性。以数据C1’为例,从C1’的依赖关系中提取出:哈希值和该哈希值对应的区块ID。然后根据提取的哈希值、以及提取的区块ID所对应的区块中记录的哈希值,确定该条上游数据是否是伪造数据。
由于数据C1’是网络攻击者伪造的数据,因此通常其从提取的区块ID所对应的区块中,查找不到从C1’的依赖关系中提取的哈希值。
可见,当前处理节点(即图3中的处理节点M)通过建立上述依赖关系,并将其存入区块链的区块中,从而为下游处理节点(即图3中的处理节点M+1)提供了用于验证伪造单据的验证机制,进而提高单据的数据安全。此外,由于存储在区块链中的数据均为哈希值,因此保证了业务数据的私密性,避免业务数据被公开。
此外,考虑到网络攻击者为了突破下游处理节点对其伪造单据进行的安全性检验,可能会不惜代价采取如下手段:在利用区块链系统中的多个区块,按照业务流程伪造一系列前后串联的依赖关系,例如形如图3中数据C1的依赖关系与数据B1的依赖关系彼此串联,数据C1的依赖关系与数据B2的依赖关系也彼此串联。
为此,可以在将每条当前数据的依赖关系和哈希值存入区块链中的目标区块之前,利用当前处理节点的私钥,对每条当前数据的依赖关系和/或哈希值进行加密。
如此,下游处理节点在接收到当前处理节点发送的当前单据和目标区块的区块ID后,可以根据该区块ID从对应区块中读取各条当前数据的依赖关系,并利用公钥对该依赖关系进行解密。如果解密成功,则可以进一步进行后续验证操作。如果解密失败,则可以认定该区块中的依赖关系是网络攻击者伪造的,因此确认其接收的单据是伪造单据。
沿用上述示例,如图3所示,处理节点M-1在将数据B1、B2、B3、B4各自的哈希值和依赖关系存入区块链中的区块K之前,可以利用其秘钥,对数据B1、B2、B3、B4各自的哈希值和/或依赖关系进行加密。同样地,处理节点M在将数据C1、C2、C3、C4各自的哈希值和依赖关系存入区块链中的区块N之前,可以利用其秘钥,对数据C1、C2、C3、C4各自的哈希值和/或依赖关系进行加密。
如此,当处理节点M+1在接收到处理节点M发送的单据2和区块N的区块ID后,可以根据所接收的区块ID,从区块N中读取数据C1、C2、C3、C4各自的依赖关系。然后利用与处理节点M掌握的私钥相对应的公钥,对各个依赖关系进行解密。如果解密失败,则确定单据2是伪造单据,或者确定读取的依赖关系是伪造的。如果解密成功,则执行后续的验证操作。
考虑到当前处理节点在接收到上游处理节点各自发送的上游单据和各份上游单据对应的上游区块ID后,需要在操作人员的控制下,或者自动调用业务处理函数,根据上游单据生成当前单据。当前处理节点为了确保其接收的上游单据是可靠的,同样地,可以在根据各份上游单据获得当前处理节点对应的当前单据之前,对上游单据的安全性进行检验。
具体地,当前处理节点对上游单据的安全性进行检验的具体方式可以是:针对所接收的每份上游单据,根据该份上游单据对应的上游区块ID,从对应区块中查询该份上游单据中包括的每条上游数据的依赖关系;针对每条上游数据,从该条上游数据的依赖关系中提取记录在该依赖关系中的哈希值、以及该哈希值对应的区块ID;根据提取的哈希值、以及提取的区块ID所对应的区块中记录的哈希值,确定该条上游数据是否是伪造数据。
由于该具体检验方式与上文中所提到的处理节点M+1对单据2的检验方式相同,因此本申请对该具体检验方式不做重复性介绍。
通过执行上述各个实施例提供的方法,为业务处理系统中的处理节点提供用于验证伪造单据的验证机制。为了再向业务处理系统中的处理节点提供用于验证篡改单据的验证机制,上游处理节点在获得上游单据后,可以计算各条上游数据的哈希值,并根据各个哈希值构建Merkle树,以获得Merkle树根哈希值,然后将该Merkle树根哈希值存入该上游单据对应的区块中。
如此,当前处理节点在接收到上游处理节点发送的上游单据和上游区块ID后,在根据各份上游单据获得当前处理节点对应的当前单据之前,可以检验该上游单据是否被篡改。参考图4,图4是本申请一实施例提出的检验上游单据是否被篡改的流程图。如图4所示,该检验流程包括以下步骤:
步骤S41:针对所接收的每份上游单据,计算该份上游单据中包括的每条上游数据的当前哈希值;
步骤S42:根据计算出的多个当前哈希值,构造该份上游单据对应的Merkle树,以获得Merkle树根哈希值;
步骤S43:根据获得的Merkle树根哈希值和该份上游单据对应的区块中所记录的Merkle树根哈希值,确定该份上游单据是否被篡改。
沿用上述示例,如图3所示,处理节点M-1在根据数据B1、B2、B3、B4各自的哈希值构建出对应的Merkle树,从而获得Merkle树根哈希值(即图3中的Hash.B1B2B3B4)后,将该Merkle树根哈希值和各条依赖关系同时存入区块K中。
如此,当处理节点M接收到单据2和区块K的区块ID后,从区块K中读取由数据B1、B2、B3、B4各自的哈希值所计算的Merkle树根哈希值。如果该Merkle树根哈希值提前被处理节点M-1利用私钥加密,则处理节点M可以首先利用公钥对读取的Merkle树根哈希值进行解密,得到Merkle树根哈希值的明文。
同时,处理节点M针对接收到的单据2中的每条数据,计算其当前哈希值,然后根据计算出的多个当前哈希值,构造接收到的单据2对应的Merkle树,从而获得Merkle树根哈希值。
最后,处理节点M将计算出的Merkle树根哈希值,与区块K中记录的Merkle树根哈希值解密后的明文进行比较,如果两者相同,则确定单据2没有被篡改。如果两者不同,则确定单据2被篡改。
此外,在确定上游单据被篡改的情况下,为了能从上游单据包括的多条上游数据中快速定位出篡改数据,本申请可以提供以下快速定位机制。首先,上游处理节点在将各条依赖关系和Merkle树根哈希值存入上游单据对应区块的同时,还将Merkle树存入该区块。
如此,在当前节点通过执行上述步骤S41至步骤S43,确定上游单据被篡改的情况下,可以根据由所述多个当前哈希值所构造的Merkle树(下文统称当前Merkle树)、以及该上游单据所对应的区块中存储的Merkle树,确定该上游单据中被篡改的上游数据。
沿用上述示例,如图3所示,区块K中存储了上游单据(单据1)对应的Merkle树,该Merkle树包括:根节点、第一层子叶节点、以及第二层子叶节点。其中根节点是Hash.B1B2B3B4,也即Merkle树根哈希值。第一层子叶节点包括:Hash.B1B2和Hash.B3B4。第二层子叶节点包括:Hash.B1、Hash.B2、Hash.B3、以及Hash.B4。
参考图5,图5是本申请一实施例中提出的当前Merkle树的示意图。如图5所示,当前Merkle树同样包括根节点、第一层子叶节点、以及第二层子叶节点。其中根节点是Hash.B1B2B3B4’,也即当前Merkle树的Merkle树根哈希值。第一层子叶节点包括:Hash.B1B2’和Hash.B3B4’。第二层子叶节点包括:Hash.B1’、Hash.B2’、Hash.B3’、以及Hash.B4’。
在定位被篡改数据时,首先将Hash.B1B2’和Hash.B3B4’分别与Hash.B1B2和Hash.B3B4进行比较。假设Hash.B1B2’与Hash.B1B2相等,而Hash.B3B4’与Hash.B3B4不相等,则将Hash.B3’和Hash.B4’分别与Hash.B3和Hash.B4进行比较。假设Hash.B3’与Hash.B3不相等,而Hash.B4’与Hash.B4相等,则确定接收的单据2中的数据B3被篡改,从而迅速实现对篡改数据的定位。
此外,当前处理节点为了向下游处理节点提供用于验证篡改单据的验证机制、以及在确定单据被篡改的情况下快速定位篡改数据的机制,当前节点在根据各份上游单据获得当前处理节点对应的当前单据之后,还可以根据当前单据中包括的各条当前数据的哈希值,构造当前单据对应的Merkle树,以获得Merkle树根哈希值;将该Merkle树和该Merkle树根哈希值存入所述目标区块。
沿用上述示例,如图3所示,处理节点M在根据数据C1、C2、C3、C4各自的哈希值构建出对应的Merkle树,从而获得Merkle树根哈希值(即图3中的Hash.C1C2C3C4)后,将该Merkle树、Merkle树根哈希值、各条依赖关系、以及数据C1、C2、C3、C4各自的哈希值同时存入区块N中。
沿用上述示例,处理节点M还可以同时将单据2对应的单据ID、组织ID、系统ID、部门ID、处理节点ID等等同时存储区块N中,便于后续利用ID对区块进行搜索。同样地,处理节点M-1也可以将单据1对应的单据ID、组织ID、系统ID、部门ID、处理节点ID等等同时存储区块K中,便于后续利用ID对区块进行搜索。
示例地,假设处理节点M+1通过检验,确定单据2中的数据C1被篡改。如此,处理节点M+1可以根据数据C1在区块N中的依赖关系,查询到数据C1依赖于区块K中的数据B1和B2。如此,处理节点M+1可以进一步追溯至区块K,根据区块K中记录的组织ID、系统ID、部分ID、处理节点ID等等,与处理节点M-1取得联系,通知其重新向处理节点M发送单据1和区块K的区块ID,使处理节点M再次生成单据2。
另外,为了进一步提高单据在传输中的数据安全,当前节点在将当前单据发送给下游处理节点之前,还可以利用其私钥对所述当前单据进行加密。如此,下游处理节点在接收到该当前单据后,可以利用与该私钥相对应的公钥,对该当前单据进行解密,从而获得该当前单据的明文。
基于同一发明构思,本申请一实施例提供一种处理单据的装置。参考图6,图6是本申请一实施例提出的处理单据的装置的示意图。如图6所示,该装置包括:
接收模块61,用于接收至少一个上游处理节点各自发送的上游单据和各份上游单据对应的上游区块ID,其中每份上游单据中包括上游数据,每份上游单据对应的区块中存储有该份上游单据中包括的上游数据的哈希值;
关系建立模块62,用于在根据各份上游单据获得当前处理节点对应的当前单据之后,针对所述当前单据中包括的每条当前数据,确定在计算该条当前数据时所依赖的各条上游数据各自对应的上游区块ID,并根据所依赖的各条上游数据的哈希值和所确定的各个上游区块ID,建立该条当前数据对各条上游数据的依赖关系;
存储模块63,用于将每条当前数据的哈希值和依赖关系存入区块链中的目标区块;
发送模块64,用于将所述当前单据和所述目标区块的区块ID发送给下游处理节点。
可选地,所述装置还包括:
加密模块,用于在将每条当前数据的依赖关系和哈希值存入区块链中的目标区块之前,利用所述当前处理节点的私钥,对每条当前数据的依赖关系和/或哈希值进行加密。
可选地,所述装置还包括:
查询模块,用于在根据各份上游单据获得当前处理节点对应的当前单据之前,针对所接收的每份上游单据,根据该份上游单据对应的上游区块ID,从对应区块中查询该份上游单据中包括的每条上游数据的依赖关系;
提取模块,用于针对每条上游数据,从该条上游数据的依赖关系中提取记录在该依赖关系中的哈希值、以及该哈希值对应的区块ID;
第一检验模块,用于根据提取的哈希值、以及提取的区块ID所对应的区块中记录的哈希值,确定该条上游数据是否是伪造数据。
可选地,每份上游单据中包括多条上游数据,多条上游数据的哈希值对应的Merkle树根哈希值被所述上游处理节点存储至该份上游单据对应的区块中;所述装置还包括:
哈希值计算模块,用于在根据各份上游单据获得当前处理节点对应的当前单据之前,针对所接收的每份上游单据,计算该份上游单据中包括的每条上游数据的当前哈希值;
Merkle树构造模块,用于根据计算出的多个当前哈希值,构造该份上游单据对应的Merkle树,以获得Merkle树根哈希值;
第二检测模块,用于根据获得的Merkle树根哈希值和该份上游单据对应的区块中所记录的Merkle树根哈希值,确定该份上游单据是否被篡改。
可选地,由上游单据所包括的多条上游数据的哈希值所构造的Merkle树,也被所述上游处理节点存储至该份上游单据对应的区块中;所述装置还包括:
篡改数据确定模块,用于在确定所述上游单据被篡改的情况下,根据由所述多个当前哈希值所构造的Merkle树、以及该上游单据所对应的区块中存储的Merkle树,确定该上游单据中被篡改的上游数据。
可选地,所述Merkle树构造模块还用于在根据各份上游单据获得当前处理节点对应的当前单据之后,根据当前单据中包括的各条当前数据的哈希值,构造当前单据对应的Merkle树,以获得Merkle树根哈希值;
所述存储模块还用于将该Merkle树和该Merkle树根哈希值存入所述目标区块。
可选地,所述加密模块还用于在将所述当前单据发送给下游处理节点之前,利用所述当前处理节点的私钥对所述当前单据进行加密。
基于同一发明构思,本申请另一实施例提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的处理单据的方法中的步骤。
基于同一发明构思,本申请另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的处理单据的方法中的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种处理单据的方法、装置、电子设备及可读存储介质,进行了详细介绍,本文中应用了具体实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种处理单据的方法,其特征在于,应用于业务处理系统中的处理节点,所述方法包括:
接收至少一个上游处理节点各自发送的上游单据和各份上游单据对应的上游区块ID,其中每份上游单据中包括上游数据,每份上游单据对应的区块中存储有该份上游单据中包括的上游数据的哈希值;
针对所接收的每份上游单据,根据该份上游单据对应的上游区块ID,从对应区块中查询该份上游单据中包括的每条上游数据的依赖关系;
针对每条上游数据,从该条上游数据的依赖关系中提取记录在该依赖关系中的哈希值、以及该哈希值对应的区块ID;
根据提取的哈希值、以及提取的区块ID所对应的区块中记录的哈希值,确定该条上游数据是否是伪造数据;
在根据各份上游单据获得当前处理节点对应的当前单据之后,针对所述当前单据中包括的每条当前数据,确定在计算该条当前数据时所依赖的各条上游数据各自对应的上游区块ID,并根据所依赖的各条上游数据的哈希值和所确定的各个上游区块ID,建立该条当前数据对各条上游数据的依赖关系;
所述依赖关系中包括:在计算该条当前数据时所依赖的各条上游数据的哈希值、及其各自对应的上游区块ID;
将每条当前数据的哈希值和依赖关系存入区块链中的目标区块;
将所述当前单据和所述目标区块的区块ID发送给下游处理节点。
2.根据权利要求1所述的方法,其特征在于,在将每条当前数据的依赖关系和哈希值存入区块链中的目标区块之前,所述方法还包括:
利用所述当前处理节点的私钥,对每条当前数据的依赖关系和/或哈希值进行加密。
3.根据权利要求1所述的方法,其特征在于,每份上游单据中包括多条上游数据,多条上游数据的哈希值对应的Merkle树根哈希值被所述上游处理节点存储至该份上游单据对应的区块中;在根据各份上游单据获得当前处理节点对应的当前单据之前,所述方法还包括:
针对所接收的每份上游单据,计算该份上游单据中包括的每条上游数据的当前哈希值;
根据计算出的多个当前哈希值,构造该份上游单据对应的Merkle树,以获得Merkle树根哈希值;
根据获得的Merkle树根哈希值和该份上游单据对应的区块中所记录的Merkle树根哈希值,确定该份上游单据是否被篡改。
4.根据权利要求3所述的方法,其特征在于,由上游单据所包括的多条上游数据的哈希值所构造的Merkle树,也被所述上游处理节点存储至该份上游单据对应的区块中;所述方法还包括:
在确定所述上游单据被篡改的情况下,根据由所述多个当前哈希值所构造的Merkle树、以及该上游单据所对应的区块中存储的Merkle树,确定该上游单据中被篡改的上游数据。
5.根据权利要求3所述的方法,其特征在于,在根据各份上游单据获得当前处理节点对应的当前单据之后,所述方法还包括:
根据当前单据中包括的各条当前数据的哈希值,构造当前单据对应的Merkle树,以获得Merkle树根哈希值;
将该Merkle树和该Merkle树根哈希值存入所述目标区块。
6.根据权利要求1至5任一项所述的方法,其特征在于,在将所述当前单据发送给下游处理节点之前,所述方法还包括:
利用所述当前处理节点的私钥对所述当前单据进行加密。
7.一种处理单据的装置,其特征在于,应用于业务处理系统中的处理节点,所述装置包括:
接收模块,用于接收至少一个上游处理节点各自发送的上游单据和各份上游单据对应的上游区块ID,其中每份上游单据中包括上游数据,每份上游单据对应的区块中存储有该份上游单据中包括的上游数据的哈希值;
查询模块,用于在根据各份上游单据获得当前处理节点对应的当前单据之前,针对所接收的每份上游单据,根据该份上游单据对应的上游区块ID,从对应区块中查询该份上游单据中包括的每条上游数据的依赖关系;
提取模块,用于针对每条上游数据,从该条上游数据的依赖关系中提取记录在该依赖关系中的哈希值、以及该哈希值对应的区块ID;
第一检验模块,用于根据提取的哈希值、以及提取的区块ID所对应的区块中记录的哈希值,确定该条上游数据是否是伪造数据;
关系建立模块,用于在根据各份上游单据获得当前处理节点对应的当前单据之后,针对所述当前单据中包括的每条当前数据,确定在计算该条当前数据时所依赖的各条上游数据各自对应的上游区块ID,并根据所依赖的各条上游数据的哈希值和所确定的各个上游区块ID,建立该条当前数据对各条上游数据的依赖关系;
存储模块,用于将每条当前数据的哈希值和依赖关系存入区块链中的目标区块;
发送模块,用于将所述当前单据和所述目标区块的区块ID发送给下游处理节点。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现如权利要求1至6任一所述的方法中的步骤。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行时实现如权利要求1至6任一所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911168074.5A CN111191273B (zh) | 2019-11-25 | 2019-11-25 | 处理单据的方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911168074.5A CN111191273B (zh) | 2019-11-25 | 2019-11-25 | 处理单据的方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111191273A CN111191273A (zh) | 2020-05-22 |
CN111191273B true CN111191273B (zh) | 2022-10-28 |
Family
ID=70709141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911168074.5A Active CN111191273B (zh) | 2019-11-25 | 2019-11-25 | 处理单据的方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111191273B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111985006A (zh) * | 2020-08-18 | 2020-11-24 | 深圳中兴网信科技有限公司 | 基于区块链的数据同步方法、系统和计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109409122A (zh) * | 2018-09-13 | 2019-03-01 | 远光软件股份有限公司 | 文件存储方法及其电子设备、存储介质 |
CN109684375A (zh) * | 2018-12-07 | 2019-04-26 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、记账节点和介质 |
CN110427346A (zh) * | 2019-08-13 | 2019-11-08 | 河南中盾云安信息科技有限公司 | 一种基于区块链的文件存储系统及其文件存储方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9473306B2 (en) * | 2013-08-05 | 2016-10-18 | Guardtime IP Holdings, Ltd. | Document verification with ID augmentation |
US20190147065A1 (en) * | 2017-11-16 | 2019-05-16 | International Business Machines Corporation | Method and system for verification of deleted data for blockchains |
-
2019
- 2019-11-25 CN CN201911168074.5A patent/CN111191273B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109409122A (zh) * | 2018-09-13 | 2019-03-01 | 远光软件股份有限公司 | 文件存储方法及其电子设备、存储介质 |
CN109684375A (zh) * | 2018-12-07 | 2019-04-26 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、记账节点和介质 |
CN110427346A (zh) * | 2019-08-13 | 2019-11-08 | 河南中盾云安信息科技有限公司 | 一种基于区块链的文件存储系统及其文件存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111191273A (zh) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109409122B (zh) | 文件存储方法及其电子设备、存储介质 | |
CN107342867B (zh) | 签名验签方法和装置 | |
CN110113167A (zh) | 一种智能终端的信息保护方法、系统以及可读存储介质 | |
CN111444273B (zh) | 一种基于区块链的数据授权方法以及装置 | |
CN108805571B (zh) | 数据保护方法、平台、区块链节点、系统和存储介质 | |
CN108737442A (zh) | 一种加密校验处理方法 | |
KR101937220B1 (ko) | 키 관리가 필요없는 블록체인을 기반한 전자서명 또는 메시지 인증 코드를 생성 및 검증 방법 | |
CN111200589A (zh) | 一种联盟链的数据保护方法及系统 | |
CN109509099B (zh) | 数据交易方法及装置、计算设备、存储介质 | |
CN108734018B (zh) | 认证方法、装置、系统和计算机可读存储介质 | |
CZ197896A3 (en) | Encryption method with safekeeping of a key in a third person and a cryptographic system for making the same | |
CN112288434B (zh) | 隐私交易方法、装置、零知识证明系统和隐私交易架构模型 | |
CN108496323B (zh) | 一种证书导入方法及终端 | |
CN110826092A (zh) | 一种文件签名处理系统 | |
CN111815321A (zh) | 交易提案的处理方法、装置、系统、存储介质和电子装置 | |
CN110826091B (zh) | 一种文件签名方法、装置、电子设备及可读存储介质 | |
CN106656992B (zh) | 一种信息验证方法 | |
CN115001775B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN111585995B (zh) | 安全风控信息传输、处理方法、装置、计算机设备及存储介质 | |
CN112907375A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN115796871A (zh) | 基于区块链的资源数据处理方法、装置和服务器 | |
CN115604038A (zh) | 基于区块链和边缘计算的云存储数据审计系统及方法 | |
CN111191273B (zh) | 处理单据的方法、装置、电子设备及可读存储介质 | |
CN114239066A (zh) | 基于区块链的合同处理方法及相关设备 | |
CN116720839B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |