CN117675216A - 一种数据处理方法及相关设备 - Google Patents
一种数据处理方法及相关设备 Download PDFInfo
- Publication number
- CN117675216A CN117675216A CN202211063836.7A CN202211063836A CN117675216A CN 117675216 A CN117675216 A CN 117675216A CN 202211063836 A CN202211063836 A CN 202211063836A CN 117675216 A CN117675216 A CN 117675216A
- Authority
- CN
- China
- Prior art keywords
- transaction
- data management
- management device
- blockchain
- target data
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 31
- 238000013523 data management Methods 0.000 claims abstract description 382
- 238000000034 method Methods 0.000 claims abstract description 53
- 238000007726 management method Methods 0.000 claims description 36
- 238000004891 communication Methods 0.000 claims description 35
- 239000003999 initiator Substances 0.000 claims description 34
- 238000004422 calculation algorithm Methods 0.000 claims description 24
- 230000015654 memory Effects 0.000 claims description 23
- 238000011084 recovery Methods 0.000 claims description 19
- 238000001514 detection method Methods 0.000 claims description 16
- 230000009977 dual effect Effects 0.000 claims description 12
- 230000001960 triggered effect Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 4
- 230000008520 organization Effects 0.000 description 118
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000012795 verification Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000002071 nanotube Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- 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/3247—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 digital signatures
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- 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
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3239—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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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/40—Network security protocols
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)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请提供了一种数据处理方法,应用于分布式数据管理系统,该系统包括多个数据管理装置,每个数据管理装置对应区块链网络的一个区块链节点,该方法包括:多个数据管理装置中的目标数据管理装置接收来自区块链客户端的交易请求,交易请求中包括交易参与方的标识,目标数据管理装置根据交易请求,在区块链网络输入输出IO基于对交易参与方之外的另一参与方不可见的密钥对交易信息明文加密所得的交易信息密文,然后向区块链客户端返回交易结果。该方法通过在交易请求中指定交易参与方,并依托区块链实现隐私写入或隐私查询等隐私交易,实现了对用户屏蔽隐私数据上链需要开发的链代码、业务代码,提升了区块链网络的适用范围和易用性。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种数据处理方法、分布式数据管理系统、数据管理装置、计算设备集群、计算机可读存储介质、计算机程序产品。
背景技术
区块链(block chain)技术是利用块链式数据结构来验证和存储数据,利用分布式节点共识算法来生成和更新数据,利用密码学的方式保证数据传输和访问的安全,以及利用由自动化脚本代码组成的智能合约来编程和操作数据的一种去中心化架构与计算范式。
区块链的每个参与方都持有相同的账本,对于每个参与方而言,他们的信息对其他参与方都是公开可见的。随着区块链的应用越加广泛,更多的组织可以作为参与方在一条主链上共享数据。
然而,不同参与方之间可以存在一些独特的交易诉求,具体是交易参与方之间的交易信息对链上的非交易参与方不公开。如果在交易参与方之间额外构建一条区块链需要耗费大量的资源,如何在开放的区块链网络中实现交易参与方之间交易的隐私保护成为研究热点。
发明内容
本申请提供了一种数据处理方法,该方法通过在交易请求中指定交易参与方,并依托区块链实现隐私写入或隐私查询等隐私交易,无需额外编写链代码,或者每次更新链代码,实现了对用户屏蔽隐私数据上链需要开发的链代码、业务代码,降低了操作复杂性,提升了区块链网络的适用范围和易用性。该方法也不需要线下传递私钥,避免了私钥泄露导致的隐私泄露风险。本申请还提供了上述方法对应的分布式数据管理系统、数据管理装置、计算设备集群、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供一种数据处理方法。该方法应用于分布式数据管理系统,所述分布式数据管理系统包括多个数据管理装置,所述多个数据管理装置中的第一数据管理装置对应区块链网络的第一区块链节点,所述多个数据管理装置中的第二数据管理装置对应区块链网络的第二区块链节点。
具体地,多个数据管理装置中的目标数据管理装置接收来自区块链客户端的交易请求,该交易请求中包括交易参与方的标识,然后目标数据管理装置根据交易请求,在区块链网络输入输出(input output,IO)交易信息密文,该交易信息密文采用对交易参与方之外的另一参与方不可见的密钥对交易信息明文加密得到,接着目标数据管理装置向区块链客户端返回交易结果。
该方法通过在交易请求中指定交易参与方,并依托区块链实现隐私写入或隐私查询等隐私交易,无需额外编写链代码,或者每次更新链代码,实现了对用户屏蔽隐私数据上链需要开发的链代码、业务代码,降低了操作复杂性,提升了区块链网络的适用范围和易用性。该方法也不需要线下传递私钥,避免了私钥泄露导致的隐私泄露风险。
并且,该方法为区块链网络这种去中心化系统提供一套适配的分布式数据管理系统(也称作分布式隐私保护引擎)完成去中心化的实现隐私保护能力的需求,解决了中心化的系统无法满足分布式管理需求,又会造成集中管理中出现的管理者作恶风险的问题。此外,分布式数据管理系统依托于区块链体系的性能以加密交易信息方式高效利用当前链的性能。
在一些可能的实现方式中,区块链网络的区块链节点中包括区块链账本,区块链账本为分布式的公有账本。目标数据管理装置可以根据交易请求,在区块链账本IO交易信息密文。
如此,目标数据管理装置在区块链账本IO交易信息密文的操作可以记录在区块链,以便后续追溯,保障数据安全。
在一些可能的实现方式中,目标数据管理装置挂载本地存储,本地存储中包括区块链网络的私有账本。私有账本由目标数据管理装置维护。具体地,目标数据管理装置可以根据交易请求,在区块链网络的私有账本IO交易信息密文。
相较于在区块链网络的区块链账本IO交易信息密文,在私有账本IO交易信息密文,无需区块链网络的各个区块链节点达成共识,具有更高的效率,能够满足交易需求。
在一些可能的实现方式中,交易请求为存储请求,交易请求包括交易信息明文,相应地,目标数据管理装置可以根据交易参与方中交易发起方在隐私交易群组中的链密钥,加密交易信息明文,获得第一交易信息密文,存储该第一交易信息密文至区块链账本。目标数据管理装置根据交易参与方中交易发起方的公钥或对称密钥加密交易信息明文,获得第二交易信息密文,存储第二交易信息密文至私有账本。
该方法通过将交易信息密文分别加密,然后存储至区块链账本、私有账本,当私有账本数据丢失或被篡改时,还可以基于区块链账本进行恢复,进一步提升了数据存储的可靠性。
在一些可能的实现方式中,交易请求为查询请求,目标数据管理装置还可以根据交易请求,从私有账本或区块链账本读取交易信息密文,然后目标数据管理装置可以对交易信息密文进行解密,获得所述交易信息明文。交易结果可以包括上述交易信息明文。
在该方法中,该交易信息密文对非交易参与方不可见,目标数据管理装置获取到上述交易信息密文后进行解密,然后携带在交易结果中返回至区块链客户端,实现了隐私查询。
在一些可能的实现方式中,目标数据管理装置还可以根据交易请求,在区块链网络IO交易信息密文之前,通过区块链网络协商得到交易参与方中交易发起方在隐私交易群组中的链密钥,对交易参与方之外的另一参与方不可见的密钥包括所述链密钥。
如此,隐私交易群组中的交易参与方可以利用上述链密钥实现加密会话,区块链网络(如联盟链)中除交易参与方之外的其他参与方无法解密,保障了交易安全。
在一些可能的实现方式中,目标数据管理装置还支持更新链密钥。具体地,当密钥更新条件被触发时,目标数据管理装置可以通过双棘轮算法更新所述链密钥。如此,可以防止重放攻击,进一步提升安全性。
在一些可能的实现方式中,密钥更新条件包括基于所述链密钥的交易次数达到预设数量。通过设置链密钥对应的最大交易次数,可以避免攻击者获取到链密钥持续使用该链密钥进行加密会话,缩小攻击范围。
在一些可能的实现方式中,目标数据管理装置根据交易请求,在区块链网络IO交易信息密文之前,还可以接收证书签发节点为交易参与方中交易发起方签发的公私钥对。对交易参与方之外的另一参与方不可见的密钥包括公私钥对中的公钥。
隐私交易群组中的交易参与方可以在群组内公开各自的公钥,该公钥对区块链网络的另一参与方不可见,区块链网络中除交易参与方之外的参与方无法解密采用上述公钥进行加密的密文,由此可以实现隐私交易,保障隐私安全。
在一些可能的实现方式中,目标数据管理装置挂载本地存储,本地存储中包括所述区块链网络的私有账本。目标数据管理装置可以从私有账本获取私有账本中存储数据的第一元信息,以及从区块链网络的区块链账本中获取私有账本中存储数据的第二元信息。然后目标数据管理装置根据第一元信息和第二元信息进行故障检查,获得故障检查结果。
该方法中,目标数据管理装置通过扫描本地的私有账本以及区块链账本中的元信息,并对元信息进行比对,从而确定本地存储是否故障或者本地存储的私有账本中数据是否被删除或篡改,由此实现了高效的故障检查,能够快速定位故障点,满足了业务需求。
在一些可能的实现方式中,当所述故障检查结果表征所述私有账本中存储数据被篡改、删除或者所述目标数据管理装置挂载的存储故障,目标数据管理装置还可以根据区块链账本进行故障恢复。
该方法中,目标数据管理装置可以在私有账本中存储数据被篡改、删除或者目标数据管理装置挂载的存储故障时,基于区块链账本存储数据进行故障恢复,保持数据一致性。
在一些可能的实现方式中,目标数据管理装置可以提供存储接口或查询接口,相应地,区块链客户端可以调用存储接口生成存储请求,或者是调用查询接口生成查询请求。该方法通过提供隐私数据存储(上传、上链)或查询(下载)的统一接口,无需针对隐私数据上链、查询单独开发链代码、业务代码,降低了操作复杂度,提升区块链系统的适用范围和易用性。
在一些可能的实现方式中,交易请求为查询请求,目标数据管理装置根据交易请求,从私有账本读取交易信息密文,对交易信息密文进行解密,获得交易信息明文。将交易信息明文的哈希值与区块链网络存储的该笔交易的交易信息明文的哈希值比较,若一致,则将该交易信息明文携带在交易结果中。
在该方法中,目标数据管理装置支持将从私有账本中查询的隐私数据和链上数据进行校验,从而保障隐私数据无篡改。
在一些可能的实现方式中,隐私交易群组存在交易参与方退出时,目标数据管理装置无需更新链密钥,目标数据管理装置可以复用链密钥,在剩余交易参与方形成的隐私交易群组内进行隐私交易。一方面保障隐私交易安全,另一方面无需更新链密钥,降低了操作复杂度。
第二方面,本申请提供一种分布式数据管理系统。所述分布式数据管理系统包括多个数据管理装置,所述多个数据管理装置中的第一数据管理装置对应区块链网络的第一区块链节点,所述多个数据管理装置中的第二数据管理装置对应区块链网络的第二区块链节点;
所述多个数据管理装置中的目标数据管理装置,用于接收来自区块链客户端的交易请求,所述交易请求中包括交易参与方的标识;
所述目标数据管理装置,还用于根据所述交易请求,在所述区块链网络输入输出IO交易信息密文,所述交易信息密文采用对所述交易参与方之外的另一参与方不可见的密钥对交易信息明文加密得到,向所述区块链客户端返回交易结果。
在一些可能的实现方式中,所述区块链网络的区块链节点中包括区块链账本;
所述目标数据管理装置具体用于:
根据所述交易请求,在所述区块链账本IO交易信息密文。
在一些可能的实现方式中,所述目标数据管理装置挂载本地存储,所述本地存储中包括所述区块链网络的私有账本;
所述目标数据管理装置具体用于:
根据所述交易请求,在所述私有账本IO交易信息密文。
在一些可能的实现方式中,所述交易请求为存储请求,所述交易请求包括交易信息明文;
所述目标数据管理装置具体用于:
根据所述交易参与方中交易发起方在隐私交易群组中的链密钥,加密交易信息明文,获得第一交易信息密文,存储所述第一交易信息密文至所述区块链账本;
根据所述交易参与方中交易发起方的公钥或对称密钥加密交易信息明文,获得第二交易信息密文,存储所述第二交易信息密文至所述私有账本。
在一些可能的实现方式中,所述交易请求为查询请求;
所述目标数据管理装置具体用于:
根据所述交易请求,从所述私有账本或所述区块链账本读取所述交易信息密文;
所述方法还包括:
所述目标数据管理装置对所述交易信息密文进行解密,获得所述交易信息明文;
所述交易结果包括所述交易信息明文。
在一些可能的实现方式中,所述目标数据管理装置还用于:
在根据所述交易请求,在所述区块链网络输入输出IO交易信息密文之前,通过所述区块链网络协商得到所述交易参与方中交易发起方在隐私交易群组中的链密钥;
对所述交易参与方之外的另一参与方不可见的密钥包括所述链密钥。
在一些可能的实现方式中,所述目标数据管理装置还用于:
当密钥更新条件被触发时,通过双棘轮算法更新所述链密钥。
在一些可能的实现方式中,所述密钥更新条件包括:
基于所述链密钥的交易次数达到预设数量。
在一些可能的实现方式中,所述目标数据管理装置还用于:
在根据所述交易请求,在所述区块链网络输入输出IO交易信息密文之前,接收证书签发节点为所述交易参与方中交易发起方签发的公私钥对;
对所述交易参与方之外的另一参与方不可见的密钥包括所述公私钥对中的公钥。
在一些可能的实现方式中,所述目标数据管理装置挂载本地存储,所述本地存储中包括所述区块链网络的私有账本;
所述目标数据管理装置还用于:
从所述私有账本获取所述私有账本中存储数据的第一元信息,以及从所述区块链网络的区块链账本中获取所述私有账本中存储数据的第二元信息;
根据所述第一元信息和所述第二元信息进行故障检查,获得故障检查结果。
在一些可能的实现方式中,所述目标数据管理装置还用于:
当所述故障检查结果表征所述私有账本中存储数据被篡改、删除或者所述目标数据管理装置挂载的存储故障,根据所述区块链账本进行故障恢复。
第三方面,本申请提供一种数据管理装置。所述数据管理装置对应区块链网络的区块链节点,所述数据管理装置包括:
通信模块,用于接收来自区块链客户端的交易请求,所述交易请求中包括交易参与方的标识;
管理模块,用于根据所述交易请求,在所述区块链网络输入输出IO交易信息密文,所述交易信息密文采用对所述交易参与方之外的另一参与方不可见的密钥对交易信息明文加密得到;
所述通信模块,还用于向所述区块链客户端返回交易结果。
在一些可能的实现方式中,所述区块链网络的区块链节点中包括区块链账本;
所述管理模块具体用于:
根据所述交易请求,在所述区块链账本IO交易信息密文。
在一些可能的实现方式中,所述数据管理装置挂载本地存储,所述本地存储中包括所述区块链网络的私有账本;
所述管理模块具体用于:
根据所述交易请求,在所述私有账本IO交易信息密文。
在一些可能的实现方式中,所述交易请求为存储请求,所述交易请求包括交易信息明文;
所述管理模块具体用于:
根据所述交易参与方中交易发起方在隐私交易群组中的链密钥,加密交易信息明文,获得第一交易信息密文,存储所述第一交易信息密文至所述区块链账本;
根据所述交易参与方中交易发起方的公钥或对称密钥加密交易信息明文,获得第二交易信息密文,存储所述第二交易信息密文至所述私有账本。
在一些可能的实现方式中,所述交易请求为查询请求;
所述管理模块具体用于:
根据所述交易请求,从所述私有账本或所述区块链账本读取所述交易信息密文;
所述管理模块还用于:
对所述交易信息密文进行解密,获得所述交易信息明文;
所述交易结果包括所述交易信息明文。
在一些可能的实现方式中,所述管理模块还用于:
在根据所述交易请求,在所述区块链网络输入输出IO交易信息密文之前,通过所述区块链网络协商得到所述交易参与方中交易发起方在隐私交易群组中的链密钥;
对所述交易参与方之外的另一参与方不可见的密钥包括所述链密钥。
在一些可能的实现方式中,所述管理模块还用于:
当密钥更新条件被触发时,通过双棘轮算法更新所述链密钥。
在一些可能的实现方式中,所述密钥更新条件包括:
基于所述链密钥的交易次数达到预设数量。
在一些可能的实现方式中,所述通信模块还用于:
接收证书签发节点为所述交易参与方中交易发起方签发的公私钥对;
对所述交易参与方之外的另一参与方不可见的密钥包括所述公私钥对中的公钥。
在一些可能的实现方式中,所述数据管理装置挂载本地存储,所述本地存储中包括所述区块链网络的私有账本;
所述通信模块还用于:
从所述私有账本获取所述私有账本中存储数据的第一元信息,以及从所述区块链网络的区块链账本中获取所述私有账本中存储数据的第二元信息;
所述装置还包括:
故障检查模块,用于根据所述第一元信息和所述第二元信息进行故障检查,获得故障检查结果。
在一些可能的实现方式中,所述装置还包括:
故障恢复模块,用于当所述故障检查结果表征所述私有账本中存储数据被篡改、删除或者所述数据管理装置挂载的存储故障,根据所述区块链账本进行故障恢复。
第四方面,本申请提供一种计算设备集群。所述计算设备集群包括至少一台计算设备,所述至少一台计算设备包括至少一个处理器和至少一个存储器。所述至少一个处理器、所述至少一个存储器进行相互的通信。所述至少一个处理器用于执行所述至少一个存储器中存储的指令,以使得计算设备或计算设备集群执行如第一方面或第一方面的任一种实现方式所述的数据处理方法。
第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示计算设备或计算设备集群执行上述第一方面或第一方面的任一种实现方式所述的数据处理方法。
第六方面,本申请提供了一种包含指令的计算机程序产品,当其在计算设备或计算设备集群上运行时,使得计算设备或计算设备集群执行上述第一方面或第一方面的任一种实现方式所述的数据处理方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的一种分布式数据管理系统的架构示意图;
图2为本申请实施例提供的一种分布式数据管理系统的架构示意图;
图3为本申请实施例提供的一种多场景联盟中分布式数据管理系统的架构示意图;
图4为本申请实施例提供的一种数据处理方法的流程图;
图5为本申请实施例提供的一种密钥链的示意图;
图6为本申请实施例提供的一种数据处理方法的应用场景示意图;
图7为本申请实施例提供的一种分布式数据管理系统初始化的流程示意图;
图8为本申请实施例提供的一种群组创建的流程示意图;
图9为本申请实施例提供的一种隐私交易发起的流程示意图;
图10为本申请实施例提供的一种隐私交易同步的流程示意图;
图11为本申请实施例提供的一种隐私交易查询的流程示意图;
图12为本申请实施例提供的一种分布式数据管理系统的结构示意图;
图13为本申请实施例提供的一种计算设备的结构示意图;
图14为本申请实施例提供的一种计算设备集群的结构示意图;
图15为本申请实施例提供的一种计算设备集群的结构示意图;
图16为本申请实施例提供的一种计算设备集群的结构示意图。
具体实施方式
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
区块链网络,也可以简称为区块链,是指基于区块链技术构建的对等(peer topeer,P2P)网络。区块链网络包括多个区块链节点,每个区块链节点为对等节点。在区块链网络中,多个区块链节点共同维护一个持续增长,由有序数据块所构建的区块链账本。每个区块链节点存储上述区块链账本的副本,并保持副本之间的一致性,因此,区块链账本为区块链网络的公有账本。
区块链网络的参与方之间不同参与方之间可以存在一些独特的交易诉求,具体为交易参与方之间的交易信息对链上的非交易参与方不公开。考虑到重新构建一条区块链的成本比较昂贵,可以通过对交易信息进行端到端加密(end-to-end encryption,E2EE),以满足上述交易诉求,实现交易的隐私保护。
端到端加密是一种只有参与通信的用户可以读取信息的通信系统。它可以防止潜在的窃听者,包括但不限于电信供应商、互联网服务供应商以及该通讯系统的提供者,获取双方通信的明文。此类系统被设计为可以防止潜在的监视或篡改企图。
为了便于理解,本申请提供了具体示例进行说明。在该示例中,区块链网络包括参与方A、参与方B、参与方C、参与方D,参与方A、参与方B、参与方C进行交易,例如参与方A向参与方B、参与方C共享数据时,参与方A可以对数据进行端到端加密,以共享给参与方B、参与方C,并对参与方D保密。
目前,业界通常采用零知识证明对交易信息进行隐私保护。为了便于理解,以票据场景示例说明。区块链客户端可以生成零知识证明信息,然后发起上链验证,由区块链节点执行对零知识证明信息的有效性验证。如果验证通过,则区块链节点与预先建立的隐私票据池进行隐私交易。其中,隐私票据池用于存储待交易隐私票据。
然而,上述方案需要交易参与方发生变更时,变更智能合约,进行链码升级。例如,参与方A和参与方B进行隐私交易时,需要升级链码,以指定参与方A、参与方B进行隐私交易,如此,大幅降低了区块链网络的性能,影响了交易效率,进而影响了区块链网络的可用性。
有鉴于此,本申请实施例提供了一种数据处理方法。该方法可以应用于分布式数据管理系统。分布式管理系统包括多个数据管理装置。每个数据管理装置为分布式数据管理系统的一部分。其中,分布式数据管理系统实质是一种分布式存储引擎,主要用于对交易信息等数据进行隐私保护,因此,分布式数据管理系统也可以称作分布式隐私保护引擎,分布式数据管理系统中的数据管理装置为上述分布式隐私保护引擎的一部分。多个数据管理装置中的第一数据管理装置对应区块链网络的第一区块链节点,多个数据管理装置中的第二数据管理装置对应区块链网络中的第二区块链节点。
具体地,多个数据管理装置中的目标数据管理装置接收来自区块链客户端的交易请求,该交易请求中包括交易参与方的标识,然后目标数据管理装置根据交易请求,在区块链网络输入输出(input output,IO)交易信息密文,该交易信息密文采用对交易参与方之外的另一参与方不可见的密钥对交易信息明文加密得到,接着目标数据管理装置向区块链客户端返回交易结果。
该方法通过在交易请求中指定交易参与方,并依托区块链实现隐私写入或隐私查询等隐私交易,无需额外编写链代码,或者每次更新链代码,实现了对用户屏蔽隐私数据上链需要开发的链代码、业务代码,降低了操作复杂性,提升了区块链网络的适用范围和易用性。该方法也不需要线下传递私钥,避免了私钥泄露导致的隐私泄露风险。
该方法为区块链网络这种去中心化系统提供一套适配的分布式数据管理系统(也称作分布式隐私保护引擎)完成去中心化的实现隐私保护能力的需求,解决了中心化的系统无法满足分布式管理需求,又会造成集中管理中出现的管理者作恶风险的问题。此外,分布式数据管理系统依托于区块链体系的性能以加密交易信息方式高效利用当前链的性能。
为了使得本申请的技术方案更加清楚、易于理解,下面结合附图对本申请实施例的系统架构进行介绍。
参见图1所示的分布式数据管理系统的架构示意图,分布式数据管理系统100包括多个数据管理装置10,多个数据管理装置10中的每个数据管理装置10分别对应区块链网络200的一个区块链节点20。例如,第一数据管理装置对应第一区块链节点,第二数据管理装置对应第二区块链节点。
进一步地,每个数据管理装置10还可以挂载本地存储30。需要说明,本申请实施例的数据管理装置10支持对不同存储介质的纳管和适配,例如数据管理装置10可以挂载不同存储介质,包括但不限于机械硬盘(hard disk drive,HDD)或者固态硬盘(solid statedrive,SDD)。其中,区块链节点20中包括区块链网络200的区块链账本(属于公有账本),本地存储30包括区块链网络200的私有账本。
在图1的示例中,数据管理装置10还可以对接区块链客户端40。区块链的参与方如云上租户、云下用户可以通过区块链客户端40发起交易。例如,区块链的参与方可以通过区块链客户端向指定的参与方共享隐私数据,或者查询隐私数据。
具体实现时,多个数据管理装置10中的目标数据管理装置可以接收来自区块链客户端40的交易请求,该交易请求中包括交易参与方的标识(identifier,ID),例如交易参与方包括参与方A(例如是组织A)、参与方B(例如是组织B)时,交易请求中可以包括组织A的标识和组织B的标识。
然后目标数据管理装置根据该交易请求,在区块链网络200IO交易信息密文。其中,交易请求为存储请求时,可以是在区块链网络200的区块链账本和私有账本存储交易信息密文;交易请求为查询请求时,可以是在区块链网络200的私有账本查询交易信息密文,当私有账本中未查找到交易信息密文时,还可以从区块链账本查询交易信息密文。其中,交易信息密文可以是采用对交易参与方之外的另一参与方(如组织C)不可见的密钥对交易信息明文加密得到。
在一些可能的实现方式中,存储至公有账本的交易信息密文以及存储至私有账本的交易信息密文可以采用不同密钥加密得到。例如,存储至公有账本的交易信息密文,也可以称作第一交易信息密文,可以是基于区块链网络200协商得到的交易发起方在隐私交易群组中的链密钥加密得到。存储至私有账本的交易信息密文,也称作第二交易信息密文,可以是采用证书签发(certificate authority,CA)节点为交易参与方中交易发起方签发的公私钥对中的公钥加密得到。
接着目标数据管理装置向区块链客户端40返回交易结果。针对不同交易请求,交易结果可以是不同的。例如,交易请求为存储请求(也可以称作数据上链请求、数据上传请求)时,交易结果可以是交易成功通知,用于表征存储成功。又例如,交易请求为查询请求(也可以称作数据下载请求)时,交易结果可以包括查询到的交易信息明文。该交易信息明文可以由目标数据管理装置对交易信息密文进行解密得到。
需要说明的是,客户侧除了区块链客户端40外,还可以包括区块链软件开发套件(software development toolkit,SDK)。其中,区块链SDK用于接收交易请求,如用于隐私数据的存储请求、用于查询隐私数据的查询请求,负载在客户侧处理隐私数据的获取、群组、身份的验证计算、提交隐私数据至分布式数据管理系统100侧,与区块链节点200进行进一步交互。
分布式数据管理系统100的数据管理装置10可以包括端到端加密组件,从而实现对交易信息明文进行加密。端到端加密组件包括对于signal算法的优化以及区块链集成的整改,基于区块链网络200完成密钥协商(如链密钥协商)的全过程,取代了中心化系统或中心化节点分发密钥,使用其能力打造高安全的群组交易能力。
数据管理装置10还可以包括群组管理器。群组管理器用于为每个数据管理装置10对应的组织(也可以称作参与方、成员)计算相关群组信息。例如,群组管理器检查隐私交易群组、创建隐私交易群组、删除隐私交易群组。进一步地,群组管理器还可以触发生成和保存密钥。例如,群组管理器可以触发生成和保存链密钥、临时的公私钥对、对称密钥中的一种或多种。
进一步地,数据管理装置10还可以包括私有账本管理。私有账本管理可以支持对不同参与方的隐私数据进行本地存储,构建隐私数据快速查询能力。同时该模块也可以支持数据丢失时从区块链账本重建本地数据能力。数据管理装置10还可以包括计算校验。计算校验用于为身份验证、群组比较、本地存储信息及链上存储信息比较等提供支持。
端到端加密组件、私有账本管理、群组管理器、计算校验等模块,组合在一起可以依托区块链网络200构建起高可用的分布式数据管理系统100。
在该方案中,所有与隐私数据(被标识为隐私的交易信息)的交互均需通过数据管理装置10(分布式隐私保护引擎的一部分),并由该数据管理装置10记录交互历史,基于链分享公钥和加密密钥,提升数据的安全性、可访问性与操作可追溯性。而且通过集成端到端加密技术到分布式隐私保护引擎中,支持通过区块链协商端到端加密所需要的公钥和加密密钥,优化其算法流程,依托区块链实现其具备的前向安全(forward secrecy,FS)和后向安全(backward secrecy,BS)能力。前向安全能够保护过去进行的通信不受密码或密钥在未来暴露的威胁。后向安全能够保护未来进行的通信不受密码或密钥在当前暴露的威胁。
需要说明的是,图1所示的数据管理装置10可以是软件装置,该软件装置可以部署在独立于区块链节点的其他计算设备上。图1所示的数据管理装置也可以是硬件装置,例如该硬件装置可以为独立于区块链节点20的、具有隐私保护功能的计算设备。
在一些可能的实现方式中,参见图2所示的分布式数据管理系统100的架构示意图,分布式数据管理系统100的各个数据管理装置10也可以部署在区块链节点20,也即区块链节点20中包括区块链内核和数据管理装置10。其中,数据管理装置10可以是中间件或组件,该中间件或组件可以集成到区块链节点20中。
本申请实施例的分布式数据管理系统100是针对区块链在联盟链场景或是开放联盟链场景下,用户数据针对所有链上参与方开放的,但是部分用户希望通过指定交易参与方定义隐私交易或者隐私信息,所设计的一种融合区块链和端到端加密的系统。该系统通过提供分布式的隐私保护组件(如上述数据管理装置10),以支持对不同用户进行密钥管理及隐私数据的存储,实现组织级别用户隐私保护,同时基于内嵌式群组管理能力提升用户隐私保护数据上链及查询的便捷性。
分布式数据管理系统100可以应用于金融、能源、政务、航空、农业、民生、物流等行业。例如,分布式数据管理系统100可以应用于商品采购与售卖、非同质化代币(Non-fungible token,NFT)交易等场景。而且,该分布式数据管理系统100可以作为分布式存储底层,支持元宇宙或web3.0。
分布式数据管理系统100应用于上述场景中时,支持部署在私有云、公有云、混合云或边缘节点中。其中,公有云是指云服务提供商通过公共互联网(Internet)为用户提供的云服务,用户可以通过Internet访问云并享受各类服务,包括并不限于计算、存储、网络等。私有云是企业自己建设的为企业内部提供服务的一种云计算使用方式,私有云为一个企业单独使用而构建,可部署在企业的数据中心中,也可统一部署在云服务提供商的机房。混合云是将私有云和公有云结合的一种云计算使用方式。边缘节点是相对于云计算数据中心的,指与最终接入的用户之间具有较少中间环节的网络节点。边缘节点可以是某个机房或者某个物理设备,相对于直接访问源站而言,用户访问边缘节点时有更好的响应能力和连接速度。
在一些可能的实现方式中,分布式数据管理系统100也可以分布式地部署在不同环境中。参见图3所示的分布式数据管理系统100的架构示意图,分布式数据管理系统100的多个数据管理装置10可以分别部署在公有云、混合云、边缘节点中,从而实现为多场景联盟提供数据管理服务。例如,在一个电商平台上交易商品涉及以下五个组织:农民、托运人、批发商、分销商、零售商。这些组织对应的数据管理装置10可以分布式地部署在公有云、私有云和边缘节点形成的混合环境中。其中,农民在国外售卖商品时,将商品转移到国外的分销商,托运人在各方之间移动商品,批发商从分销商处采购商品,零售商从托运人和批发商那里购买商品,分销商可能希望与农民、托运人进行隐私交易,以使批发商和零售商对交易条款保密,由此避免暴露分销商收取的加价。分销商可能还希望与批发商建立单独的隐私交易,因为它向批发商收取的价格低于零售商。类似地,批发商可能还希望与零售商和发货人建立隐私交易。
基于本申请实施例提供的分布式数据管理系统100,本申请实施例还提供了相应的数据处理方法。
为了使得本申请的技术方案更加清楚、易于理解,下面结合附图对本申请实施例的数据处理方法进行介绍。
参见图4所示的数据处理方法的流程图,该方法包括:
S402:目标数据管理装置接收区块链客户端发送的交易请求。交易请求为存储请求时,执行S404至S410;交易请求为查询请求时,执行S412至S418。
目标数据管理装置可以是分布式数据管理系统100中的任意一个数据管理装置10,例如可以是上述第一数据管理装置,或第二数据管理装置。
交易请求可以是存储请求。存储请求用于存储数据,例如将数据存储至区块链网络200。交易请求也可以是查询请求。查询请求中用于查询数据,例如从区块链网络200获取数据。其中,交易请求中可以包括交易参与方的标识,以指示在交易参与方之间共享数据,而对非交易参与方(如区块链网络中除交易参与方之外的另一参与方)保密。基于此,交易请求为存储请求时,存储请求用于请求将交易信息明文等数据进行端到端加密后上链,交易请求为查询请求时,用于请求将交易信息密文解密获得交易信息明文后返回。
其中,参与方可以是区块链网络的组织,基于此,交易参与方的标识可以是组织名称、组织代码中的一种或多种。例如,用户想要在组织A、组织B之间发起隐私交易时,交易请求中可以包括组织A、组织B的组织名称,从而指定在组织A、组织B之间进行隐私交易,又例如,用户想要在组织B、组织C之间发起隐私交易时,交易请求中可以包括组织B和组织C的组织名称,从而指定在组织B、组织C之间进行隐私交易。
其中,交易请求为存储请求时,交易请求中还可以携带交易信息明文。其中,交易信息明文具体可以是需要共享的数据。
S404:目标数据管理装置根据交易参与方中交易发起方在隐私交易群组中的链密钥,加密交易信息明文,获得第一交易信息密文。
对于区块链网络中的参与方,该参与方可以在一个或多个隐私交易群组,目标数据管理装置可以根据交易请求中交易参与方的标识,确定本次交易对应的隐私交易群组。例如,交易请求中包括组织A、组织B的组织名称时,目标数据管理装置可以确定隐私交易群组为组织A、组织B形成的群组,记作group(组织A,组织B)。同一组织在不同隐私交易群组可以具有不同的链密钥,目标数据管理装置可以根据本次交易对于的隐私交易群组,获取交易参与方中交易发起方在该隐私交易群组中的链密钥,如组织A在group(组织A,组织B)中的链密钥,然后利用该链密钥进行加密,从而获得第一交易信息密文。
链密钥(chain key)是指密钥派生函数(Key derivation function,KDF)链的KDF密钥。KDF链为KDF密钥链的简称。KDF定义为这样一个密码学函数:输入一个秘密且随机的KDF密钥(KDF key)及其它一些输入数据,并返回输出数据。在密钥未知的前提下,输出的数据与随机数不可区分(也就是说,KDF满足密码学中伪随机函数(pseudo random function,PRF)的要求)。若密钥不是秘密且随机的,则KDF输出应仍然能作为KDF密钥和输入数据的安全的密码学哈希。KDF链包括多个KDF的输出密钥。其中,一个KDF输出的一部分作为输出密钥(Output key),而另一部分将取代KDF密钥,作为另一个KDF的输入密钥。图5示出了一个处理三个输入密钥(KDF key)并生成三个输出密钥的KDF链。
目标数据管理装置可以根据链密钥,采用双棘轮算法对交易信息进行加密,从而获得第一交易信息密文,然后携带在消息中,以发送至指定的交易参与方所对应的数据管理装置10。
具体地,在组织A和组织B的双棘轮会话中,双方保存的KDF密钥将用于三条链:根链(root chain)、发送链(sending chain)及接收链(receiving chain)(一方的发送链对应另一方的接收链,反之亦然)。
组织A和组织B交换消息(消息中可以携带第一交易信息密文)的同时,也交换新的迪菲-赫尔曼公钥,而迪菲-赫尔曼输出的密钥将作为根链的输入。根链输出的密钥将作为发送链和接收链的KDF密钥。这称为迪菲-赫尔曼棘轮(Diffie-Hellman ratchet)。每发送和接收一条消息,发送链和接收链都将向前推进。相应地,输出密钥将用于加密和解密消息。这称为对称密钥棘轮(symmetric-key ratchet)。
每条发送或接收的消息(携带第一交易密文的消息)可以使用一个唯一的消息密钥(message key)加密。消息密钥是发送KDF链和接收KDF链的输出密钥。由于发送KDF链和接收KDF链的KDF输入是常数,所以这两条链不具备被攻破后的可恢复性。发送链和接收链确保每条消息使用唯一的密钥加密,而此密钥在加密或解密后可以删除。由一个给定的链密钥计算下一个链密钥和消息密钥的过程,称为对称密钥棘轮(symmetric-key ratchet)的一次棘轮步进(ratchet step)。
如果中间攻击者窃取了其中一方的发送链密钥和接收链密钥,那么他可以计算此后所有的消息密钥,并解密对应的消息。为了避免这种情况,双棘轮算法将对称密钥棘轮与DH棘轮组成在一起,使用后者基于迪菲-赫尔曼的输出更新链密钥。
为了实现DH棘轮,通信双方各自生成一个DH密钥对(迪菲-赫尔曼公钥和私钥)作为当前的棘轮密钥对(ratchet key pair)。从任意一方发出的每一条消息都将携带一个消息头,其中包含发送者当前的棘轮公钥。当接收到远端发送过来的新的棘轮公钥时,本端将实施一次DH棘轮步进(DH ratchet step),生成一个新的棘轮密钥对以取代本端当前的密钥对。
通信双方交替地更新棘轮密钥对,使之形成一个「乒乓」行为模式。仅截获了其中一方的窃听者可能得到当前棘轮私钥的值,但此棘轮私钥将最终被未泄露的棘轮私钥取代。那时,棘轮密钥对之间的迪菲-赫尔曼计算将定义一个对攻击者未知的新的DH输出。
需要说明的是,目标数据管理装置还可以利用CA节点生成的公私钥对中的私钥进行签名,以便于对端可以进行签名验证,从而确定本端的身份。为了保障安全性,CA节点可以派生临时的公私钥对,目标数据管理装置可以利用临时的私钥,结合签名算法对消息中的第一交易信息密文进行签名。此外,为了提高上链效率,目标数据管理装置可以根据群组以及群组消息构建键值(key value,KV),然后将群组消息以键值形式上链。
S406:目标数据管理装置存储第一交易信息密文至区块链账本。
具体地,目标数据管理装置可以将第一交易信息密文发送至对应的区块链节点20,由区块链节点20基于区块链网络200的智能合约将该第一交易信息密文存储至区块链账本。其中,区块链节点20可以基于智能合约定义的共识算法进行共识,并在达成共识后,由各个区块链节点20以添加区块的方式将第一交易信息密文存储至各自维护的区块链账本。
S408:目标数据管理装置根据交易参与方中交易发起方的公钥或对称密钥,加密交易信息明文,获得第二交易信息密文。
当目标数据管理装置还挂载本地存储,目标数据管理装置可以利用交易发起方的公钥或对称密钥,通过加密算法对交易信息明文进行加密,从而获得第二交易信息密文。其中,目标数据管理装置利用公钥时,可以通过非对称加密算法进行加密,目标数据管理装置利用对称密钥时,可以通过对称加密算法进行加密。
需要说明的是,该隐私交易群组中其他交易参与方对应的数据管理装置10可以利用该交易参与方的公钥或对称密钥,通过加密算法对交易信息明文进行加密,从而获得第二交易信息密文。
S410:目标数据管理装置存储第二交易信息密文至私有账本。
目标数据管理装置存储该目标数据管理装置计算得到的第二交易信息密文至该目标数据管理装置挂载的本地存储中的私有账本。该隐私交易群组中其他交易参与方对应的数据管理装置10可以存储该数据管理装置10计算得到的第二交易信息密文至该数据管理装置10挂载的本地存储中的私有账本。
不同私有账本存储的第二交易信息密文可以采用各自对应的交易参与方的密钥(公钥或对称密钥)加密得到,因此,不同私有账本存储的第二交易信息密文可以是不同的。
需要说明的是,上述S404至S410为目标数据管理装置根据存储请求,在区块链网络200中存储交易信息密文的一种实现方式,在本申请实施例其他可能的实现方式中,也可以通过其他方式存储交易信息密文。例如,目标数据管理装置也可以不挂载本地存储,相应地目标数据管理装置可以不执行上述S408、S410。
S412:目标数据管理装置从私有账本查询第二交易信息密文。若查询成功,则可以执行S414。若查询失败,则可以执行S416、S418。
目标数据管理装置挂载本地存储时,目标数据管理装置可以优先从本地存储的私有账本查询第二交易信息密文,以提高查询效率和查询性能。考虑到本地存储的私有账本中第二交易信息密文可能被篡改、删除,或者本地存储的存储介质故障,可以导致查询失败,基于此,目标数据管理装置可以在查询成功时,执行S414进行解密,在查询失败时,执行S416、S418进行第一交易信息密文的获取和解密。
S414:目标数据管理装置解密第二交易信息密文,获得交易信息明文。
具体地,目标数据管理装置采用公钥加密交易信息明文获得第二交易信息密文时,可以利用私钥对第二交易信息密文进行解密,以恢复交易信息明文。目标数据管理装置采用对称密钥加密交易信息明文获得第二交易信息密文时,可以利用对称密钥对第二交易信息密文进行解密,以恢复交易信息明文。
S416:目标数据管理装置从区块链账本查询第一交易信息密文。
目标数据管理装置可以基于区块链网络200的智能合约,从区块链账本查询第一交易信息密文。由于区块链的不可篡改特性,目标数据管理装置可以从各区块链节点20维护的区块链账本查询到上述第一交易信息密文。
S418:目标数据管理装置解密第一交易信息密文,获得交易信息明文。
第一交易信息密文通常是基于链密钥,采用双棘轮算法加密得到。基于此,目标数据管理装置可以结合链密钥,通过双棘轮算法对第一交易信息密文解密,从而获得交易信息明文。
需要说明的是,上述S412、S414为本申请实施例的可选步骤,执行本申请实施例的数据处理方法也可以不执行上述步骤。例如,目标数据管理装置可以根据查询请求,直接从区块链账本查询第一交易信息密文,然后解密该第一交易信息密文,获得交易信息明文。
上述S404至S418为本申请实施例中目标数据管理装置根据所述交易请求,在区块链网络200IO交易信息密文的一种实现方式,执行本申请实施例的数据处理方法也可以通过执行其他步骤实现。
S420:目标数据管理装置向所述区块链客户端返回交易结果。
针对不同交易请求,交易结果有所不同。例如,交易请求为存储请求时,交易结果可以是交易成功通知,用于表征存储成功。又例如,交易请求为查询请求时,交易结果还可以包括查询到的交易信息明文。该交易信息明文可以由目标数据管理装置对交易信息密文进行解密得到。
在一些可能的实现方式中,目标数据管理装置还可以从所述私有账本获取所述私有账本中存储数据的第一元信息,以及从所述区块链网络的区块链账本中获取所述私有账本中存储数据的第二元信息。其中,第一元信息是指私有账本自身存储的数据的元信息,如数据的创建者、创建时间、大小、哈希值中的一种或多种,第二元信息是指链上存储的私有账本中数据的元信息,如数据的创建者、创建时间、大小、哈希值中的一种或多种,第二元信息可以是数据存储至私有账本时,将其元信息上链存储。
目标数据管理装置可以根据所述第一元信息和所述第二元信息进行故障检查,获得故障检查结果。具体地,目标数据管理装置可以比较第一元信息、第二元信息,若第一元信息和第二元信息不匹配,则表明发生故障,例如是私有账本中存储数据被篡改、删除或者所述目标数据管理装置挂载的存储故障,目标管理装置可以写入向区块链网络200中写入故障检查结果。
进一步地,当故障检查结果表征私有账本中存储数据被篡改、删除或者所述目标数据管理装置挂载的存储故障,目标数据管理装置还可以根据所述区块链账本进行故障恢复。具体地,目标数据管理装置可以根据区块链账本中的第一交易信息密文,解密得到交易信息明文,然后加密交易信息明文获得第二交易信息密文,并将该第二交易信息密文存储至私有账本,从而进行故障恢复。
基于上述内容描述,本申请实施例提供了一种数据处理方法。在该方法中,针对区块链在联盟链场景或是开放联盟链场景下,用户数据是针对所有链上参与方开放的,但是部分参与方希望通过指定不同参与方定义隐私交易或者隐私信息,从而设计了一种融合区块链和端到端加密的方法。该方法引入分布式数据管理系统100以支持对不同参与方进行密钥的管理及隐私数据的存储,实现组织级别隐私保护,同时基于内嵌式群组管理能力提升用户隐私数据上链及查询的便捷性。
同时对前后向安全等问题提出了相应的隐私保护算法,基于区块链的传播进行密钥协商,基于端到端加密双棘轮算法提高安全性。用户的操作和加密信息都基于区块链账本记录,因而可以实现全程可追溯。同时在本地账本对当前组织的交易信息明文进行加密存储,本地私有账本丢失后,可以从区块链账本中进行逐条交易解析恢复数据,保证数据一致和可靠性,整体提高其可用性。
为了使得本申请的技术方案更加清楚、易于理解,下面结合一具体场景对本申请实施例的方法进行说明。
参见图6所示的数据处理方法的流程示意图,区块链网络包括组织A对应的区块链节点A、组织B对应的区块链节点B、组织C对应的区块链节点C和组织D对应的区块链节点D。其中,区块链节点A绑定有数据管理装置A,区块链节点B绑定有数据管理装置B,区块链节点C绑定有数据管理装置C,区块链节点D未绑定数据管理装置,因此,区块链节点A、区块链节点B、区块链节点C具有隐私交易能力,而区块链节点D为普通区块链节点,不具有隐私交易能力。
具体实现时,区块链节点绑定的数据管理装置可以创建隐私交易群组。例如,数据管理装置A可以创建如下隐私交易群组:group(组织A,组织B),group(组织A,组织C),group(组织B,组织C)以及group(组织A,组织B,组织C)。需要说明的是,随着区块链网络中组织扩容或缩容,数据管理装置还可以动态更新隐私交易群组。例如,组织D加入区块链网络,数据管理装置还可以再创建如下隐私交易群组:group(组织A,组织D),group(组织A,组织B,组织D),group(组织A,组织C,组织D),group(组织B,组织C,组织D),group(组织C,组织D)以及group(组织A,组织B,组织C),组织D。
用户通过发送隐私保护交易到区块链隐私保护引擎侧,隐私保护引擎记录隐私交易信息到本地私有账本,而加密信息会被记录到区块链节点的各个账本中。图3支持不同类型的部署,只有再部署了隐私保护引擎的组织支持发起隐私保护交易,其它节点无法支持此种功能。
数据管理装置A、数据管理装置B、数据管理装置C可以基于区块链网络协商链密钥,并在群组中同步链密钥。当组织A发起交易,如组织A通过区块链客户端向数据管理装置A发送用于存储数据的交易请求,该交易请求中包括组织A的标识、组织B的标识时,数据管理装置A可以组织A在group(组织A,组织B)中的链密钥,加密交易信息明文,获得第一交易信息密文,然后将第一交易信息密文上链存储。进一步地,数据管理装置A还可以利用组织A的公钥或对称密钥加密交易信息明文,获得第二交易信息密文,然后将第二交易信息密文进行本地存储,具体是存储至私有账本。
下面将从数据处理的各个阶段对本申请实施例的方法进行详细介绍。
首先,参见图7所示的分布式数据管理系统初始化的流程示意图,该阶段可以包括如下步骤:
步骤1:分布式数据管理系统的目标数据管理装置周期性地访问区块链节点,获取群组列表、群组状态以及链上事件通知。
步骤2:目标数据管理装置周期性地访问本地存储中的私有账本,获取群组列表、群组状态。
步骤3:目标数据管理装置比较区块链节点中获取的群组列表、群组状态以及本地账本中获取的群组列表、群组状态。若一致,则返回步骤1、步骤2,若不一致,则执行步骤4。
步骤4:目标数据管理装置识别不一致原因,当原因为存在未创建群组或者其他数据管理装置创建超时,则更改链上状态。
步骤5:目标数据管理装置触发群组创建。
步骤6:目标数据管理装置执行链上事件通知。
具体地,目标数据管理装置触发群组创建时可以生成链上事件通知,用于向其他数据管理装置通知当前目标数据管理装置负责创建目标群组,目标数据管理装置可以基于该链上事件通知执行创建目标群组的操作。
在该阶段,分布式数据管理系统的数据管理系统给可以在启动时与区块链网络进行交互,访问区块链节点获取当前链中所存储的群组列表,群组状态及当前组织相关事件等信息,同时加载本地存储的私有账本中群组列表及群组状态,通过比较计算群组差异,如果链上和本地群组一致即完成初始化,如果不一致就识别当前不一致原因,看是否是其它数据管理装置创建群组超时,基于不同原因将创建任务抢占并更新到链上,同时触发群组创建流程。然后返回步骤1、步骤2继续检查群组。
需要说明的是,上述创建群组的过程也可以在进行隐私交易时按需创建,无需在初始化阶段创建全量的隐私交易群组。
然后,参见图8所示的群组创建的流程示意图,该阶段可以包括如下步骤:
步骤1:分布式数据管理系统的各数据管理装置在启动后查询链上组织信息,并同步群组信息。
步骤2:数据管理装置A基于组织信息创建群组列表,对比本地及链上群组列表,创建缺失群组group(组织A,组织B,组织C),并更新链上状态、创建时间、创建者。
步骤3:数据管理装置B、数据管理装置C对比检查本地群组及链上群组,确定group(组织A,组织B,组织C)创建任务由数据管理装置A执行,启动对该任务的监听,并为其准备密钥。
步骤4:CA节点分别签发数据管理装置A、数据管理装置B、数据管理装置C在group(组织A,组织B,组织C)中使用的临时公私钥对,数据管理装置A、数据管理装置B、数据管理装置C分别生成在group(组织A,组织B,组织C)中的链密钥。
步骤5:数据管理装置A将数据管理装置A的临时公钥上链,更新链上事务通知组织B、组织C上传其临时公钥。
步骤6:数据管理装置B、C监听链上事务,上传各自的临时公钥,并更新事务状态。
步骤7:数据管理装置A、数据管理装置B和数据管理装置C分别采用其他指定的交易参与方的公钥加密各自的链密钥,并用私钥签名,然后将链密钥的密文上链。
步骤8:数据管理装置A、数据管理装置B和数据管理装置C分别采用其他指定的交易参与方的公钥验证签名,并在验证通过后,利用各自的私钥解密得到其他指定的交易参与方的链密钥,然后将该链密钥加密保存。
图8是以创建group(组织A,组织B,组织C),并同步链密钥进行示例说明。当缺失的隐私交易群组是其他群组也可以采用类似方式创建群组,并在群组内同步链密钥。
接着,参见图9所示的隐私交易发起的流程示意图,该阶段包括如下步骤:
步骤1:区块链客户端向目标数据管理装置发送交易请求。
交易请求中包括组织A、组织B、组织C的标识,例如是组织A、组织B、组织C的组织名称。
步骤2:目标数据管理装置验证交易请求中携带的签名,以及交易请求指定的组织是否存在。若验证通过,则执行步骤3,若否,则拒绝交易请求。
从区块链客户端发起的交易中包括指定群组的范围及交易的内容,数据管理装置首先检查其签名,如果是非法请求就直接返回,如果是合法请求在校验其隐私交易的组织是否存在,不存在也返回。
步骤3:目标数据管理装置从链上查询交易请求指定组织所归属群组的群组状态。若群组状态为正常,执行步骤4、步骤5进行隐私交易同步,若群组状态为群组不存在、群组处于密钥变更或群组正在创建,触发群组创建或者处理。
群组不存在,或者处于密钥变更过程,或者正在创建,则返回交易请求至区块链客户端让其等待群组创建结束,并发起群组创建流程。
步骤4:目标数据管理装置将交易信息明文加密上链。
步骤5:目标数据管理装置将交易信息明文加密存储至私有账本。
步骤6:目标数据管理装置对隐私交易数量进行计数。当隐私交易数量达到预设数量,执行步骤7。
其中,预设数量可以根据经验值设置,例如预设数量可以设置为10。
步骤7:目标数据管理装置触发密钥更新。
其中,隐私交易同步的详细流程可以参见图10,图10以组织A和组织B之间进行隐私交易示例说明,具体包括如下步骤:
步骤1:组织A通过区块链客户端向数据管理装置A发送交易请求。
步骤2:数据管理装置A可以基于组织A在群组中的链密钥使用双棘轮算法生成消息密钥,利用消息密钥加密交易信息明文,并以私钥签名,然后以群组消息上链。
步骤3:数据管理装置B监听到群组中新消息由数据管理装置A发送,利用组织A在群组中的链密钥生成消息密钥,利用消息密钥解密交易信息密文获得交易信息明文。
步骤4:数据管理装置C监听到链上产生密文,但无法解密。
步骤5:数据管理装置A、数据管理装置B之间的隐私交易数量达到预设数量,触发密钥更新,以生成新的链密钥和公私钥对。
步骤6:数据管理装置A将其在群组中使用的、新的临时公钥上链,并更新链上事务通知群组中其他组织上传新的公钥。
步骤7:数据管理装置B监听链上事务,将其在群组中使用的、新的临时公钥上链,并更新链上事务。
步骤8:数据管理装置A获取组织B在群组中使用的、新的临时公钥,利用该临时公钥加密链密钥,并使用私钥签名,然后将密文上链。
步骤9:数据管理装置B获取组织A在群组中使用的、新的临时公钥,利用该临时公钥加密链密钥,并使用私钥签名,然后将密文上链。
步骤10:数据管理装置A、数据管理装置B使用对端的公钥验证签名,验证通过后,使用自身的私钥解密得到群组中对端的链密钥。
在该实施例中,数据管理装置可以基于区块链传递隐私数据,通过端到端加密的双棘轮算法,定期更新群组秘钥,达成群组交易前向安全能力。数据管理装置还可以基于配置中指定的密钥更新轮换次数来更新隐私交易的密钥。例如,密钥更新轮换次数可以最小指定为一次,达到一次一密的效果,如果达成更新密钥更新轮换次数后,群组成员生成临时公私钥和新的链密钥,再基于之前流程中协商过程同步给群组其他成员知晓。
接着,参见图11所示的隐私交易查询的流程示意图,该阶段包括如下步骤:
步骤1:区块链客户端发送交易请求至目标数据管理装置。
步骤2:目标数据管理装置校验交易请求中的签名。验证通过,则执行步骤3,验证不通过,则拒绝交易请求。
步骤3:目标数据管理装置从本地存储的私有账本查询交易信息密文。
在该实施例中,数据管理装置通过区块链客户端支持隐私交易查询能力。由于数据管理装置可以托管全部的临时密钥,密钥用于交易加密且对用户不可见,所以交易可以基于数据管理装置查询。用户发起隐私交易查询后,数据管理装置可以验证交易请求的签名是否为合法请求,不合法就直接返回,合法则从本地存储的私有账本中查询出结果返回客户。同时为了保证交易没有经过篡改,目标数据管理装置可以对比链上的哈希以及私有账本的哈希。如果私有账本中不存在,则可以从链上的区块链账本获取交易信息密文。
基于本申请实施例提供的数据处理方法,本申请实施例还提供了一种如前述的分布式数据管理系统100。下面结合附图对分布式数据管理系统100进行介绍。
参见图12所示的分布式数据管理系统100的结构示意图,分布式数据管理系统100包括多个数据管理装置10。多个数据管理装置10中的第一数据管理装置对应区块链网络的第一区块链节点,多个数据管理装置10中的第二数据管理装置对应区块链网络的第二区块链节点。
所述多个数据管理装置10中的目标数据管理装置,用于接收来自区块链客户端的交易请求,所述交易请求中包括交易参与方的标识;
所述目标数据管理装置,还用于根据所述交易请求,在所述区块链网络输入输出IO交易信息密文,所述交易信息密文采用对所述交易参与方之外的另一参与方不可见的密钥对交易信息明文加密得到,向所述区块链客户端返回交易结果。
在一些可能的实现方式中,所述区块链网络的区块链节点中包括区块链账本;
所述目标数据管理装置具体用于:
根据所述交易请求,在所述区块链账本IO交易信息密文。
在一些可能的实现方式中,所述目标数据管理装置挂载本地存储,所述本地存储中包括所述区块链网络的私有账本;
所述目标数据管理装置具体用于:
根据所述交易请求,在所述私有账本IO交易信息密文。
在一些可能的实现方式中,所述交易请求为存储请求,所述交易请求包括交易信息明文;
所述目标数据管理装置具体用于:
根据所述交易参与方中交易发起方在隐私交易群组中的链密钥,加密交易信息明文,获得第一交易信息密文,存储所述第一交易信息密文至所述区块链账本;
根据所述交易参与方中交易发起方的公钥或对称密钥加密交易信息明文,获得第二交易信息密文,存储所述第二交易信息密文至所述私有账本。
在一些可能的实现方式中,所述交易请求为查询请求;
所述目标数据管理装置具体用于:
根据所述交易请求,从所述私有账本或所述区块链账本读取所述交易信息密文;
所述方法还包括:
所述目标数据管理装置对所述交易信息密文进行解密,获得所述交易信息明文;
所述交易结果包括所述交易信息明文。
在一些可能的实现方式中,所述目标数据管理装置还用于:
在根据所述交易请求,在所述区块链网络输入输出IO交易信息密文之前,通过所述区块链网络协商得到所述交易参与方中交易发起方在隐私交易群组中的链密钥;
对所述交易参与方之外的另一参与方不可见的密钥包括所述链密钥。
在一些可能的实现方式中,所述目标数据管理装置还用于:
当密钥更新条件被触发时,通过双棘轮算法更新所述链密钥。
在一些可能的实现方式中,所述密钥更新条件包括:
基于所述链密钥的交易次数达到预设数量。
在一些可能的实现方式中,所述目标数据管理装置还用于:
在根据所述交易请求,在所述区块链网络输入输出IO交易信息密文之前,接收证书签发节点为所述交易参与方中交易发起方签发的公私钥对;
对所述交易参与方之外的另一参与方不可见的密钥包括所述公私钥对中的公钥。
在一些可能的实现方式中,所述目标数据管理装置挂载本地存储,所述本地存储中包括所述区块链网络的私有账本;
所述目标数据管理装置还用于:
从所述私有账本获取所述私有账本中存储数据的第一元信息,以及从所述区块链网络的区块链账本中获取所述私有账本中存储数据的第二元信息;
根据所述第一元信息和所述第二元信息进行故障检查,获得故障检查结果。
在一些可能的实现方式中,所述目标数据管理装置还用于:
当所述故障检查结果表征所述私有账本中存储数据被篡改、删除或者所述目标数据管理装置挂载的存储故障,根据所述区块链账本进行故障恢复。
其中,目标数据管理装置可以为多个数据管理装置10中的任意一个装置,例如可以是上述第一数据管理装置,或者是第二数据管理装置。下面对数据管理装置的结构进行介绍。如图12所示,数据管理装置10包括:
通信模块102,用于接收来自区块链客户端的交易请求,所述交易请求中包括交易参与方的标识;
管理模块104,用于根据所述交易请求,在所述区块链网络输入输出IO交易信息密文,所述交易信息密文采用对所述交易参与方之外的另一参与方不可见的密钥对交易信息明文加密得到;
所述通信模块102,还用于向所述区块链客户端返回交易结果。
需要说明的是,管理模块104用于实现图1或图2、图3所示的群组管理器、端到端加密组件、私有账本管理或计算校验功能。
上述通信模块102、管理模块104可以通过硬件模块实现或通过软件模块实现。
当通过软件实现时,通信模块102、管理模块104可以是运行在计算设备或计算设备集群上的应用程序或者应用程序模块。
当通过硬件实现时,通信模块102可以通过网络接口卡、收发器一类的收发模块实现。管理模块104可以是利用专用集成电路(application-specific integrated circuit,ASIC)实现、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic arraylogic,GAL)或其任意组合实现。
在一些可能的实现方式中,所述区块链网络的区块链节点中包括区块链账本;
所述管理模块104具体用于:
根据所述交易请求,在所述区块链账本IO交易信息密文。
在一些可能的实现方式中,所述数据管理装置挂载本地存储,所述本地存储中包括所述区块链网络的私有账本;
所述管理模块104具体用于:
根据所述交易请求,在所述私有账本IO交易信息密文。
在一些可能的实现方式中,所述交易请求为存储请求,所述交易请求包括交易信息明文;
所述管理模块104具体用于:
根据所述交易参与方中交易发起方在隐私交易群组中的链密钥,加密交易信息明文,获得第一交易信息密文,存储所述第一交易信息密文至所述区块链账本;
根据所述交易参与方中交易发起方的公钥或对称密钥加密交易信息明文,获得第二交易信息密文,存储所述第二交易信息密文至所述私有账本。
在一些可能的实现方式中,所述交易请求为查询请求;
所述管理模块104具体用于:
根据所述交易请求,从所述私有账本或所述区块链账本读取所述交易信息密文;
所述管理模块104还用于:
对所述交易信息密文进行解密,获得所述交易信息明文;
所述交易结果包括所述交易信息明文。
在一些可能的实现方式中,所述管理模块104还用于:
在根据所述交易请求,在所述区块链网络输入输出IO交易信息密文之前,通过所述区块链网络协商得到所述交易参与方中交易发起方在隐私交易群组中的链密钥;
对所述交易参与方之外的另一参与方不可见的密钥包括所述链密钥。
在一些可能的实现方式中,所述管理模块104还用于:
当密钥更新条件被触发时,通过双棘轮算法更新所述链密钥。
在一些可能的实现方式中,所述密钥更新条件包括:
基于所述链密钥的交易次数达到预设数量。
在一些可能的实现方式中,所述通信模块102还用于:
接收证书签发节点为所述交易参与方中交易发起方签发的公私钥对;
对所述交易参与方之外的另一参与方不可见的密钥包括所述公私钥对中的公钥。
在一些可能的实现方式中,所述数据管理装置10挂载本地存储,所述本地存储中包括所述区块链网络的私有账本;
所述通信模块102还用于:
从所述私有账本获取所述私有账本中存储数据的第一元信息,以及从所述区块链网络的区块链账本中获取所述私有账本中存储数据的第二元信息;
所述装置10还包括:
故障检查模块106,用于根据所述第一元信息和所述第二元信息进行故障检查,获得故障检查结果。
上述故障检查模块106可以通过硬件模块实现或通过软件模块实现。
当通过软件实现时,故障检查模块106可以是运行在计算设备或计算设备集群上的应用程序或者应用程序模块。
当通过硬件实现时,故障检查模块106可以是利用专用集成电路ASIC实现、或可编程逻辑器件PLD实现的设备等。其中,上述PLD可以是复杂程序逻辑器件CPLD、现场可编程门阵列FPGA、通用阵列逻辑GAL或其任意组合实现。
在一些可能的实现方式中,所述装置10还包括:
故障恢复模块108,用于当所述故障检查结果表征所述私有账本中存储数据被篡改、删除或者所述数据管理装置挂载的存储故障,根据所述区块链账本进行故障恢复。类似地,上述故障恢复模块108可以通过硬件模块实现或通过软件模块实现。
当通过软件实现时,故障恢复模块108可以是运行在计算设备或计算设备集群上的应用程序或者应用程序模块。
当通过硬件实现时,故障恢复模块108可以是利用专用集成电路ASIC实现、或可编程逻辑器件PLD实现的设备等。其中,上述PLD可以是复杂程序逻辑器件CPLD、现场可编程门阵列FPGA、通用阵列逻辑GAL或其任意组合实现。
本申请还提供一种计算设备1300。如图13所示,计算设备1300包括:总线1302、处理器1304、存储器1306和通信接口1308。处理器1304、存储器1306和通信接口1308之间通过总线1302通信。计算设备1300可以是中心云中的计算设备,如中心服务器,或者是边缘云中的计算设备,如边缘服务器。计算设备1300也可以是轻量级设备,如智能手机、智能穿戴设备等终端设备。应理解,本申请不限定计算设备1300中的处理器、存储器的个数。
总线1302可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线1304可包括在计算设备1300各个部件(例如,存储器1306、处理器1304、通信接口1308)之间传送信息的通路。
处理器1304可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器1306可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器1304还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。存储器1306中存储有可执行的程序代码,处理器1304执行该可执行的程序代码以实现前述数据处理方法。具体的,存储器1306上存有分布式数据管理系统100或数据管理装置10用于执行数据处理方法的指令。
通信接口1303使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备1300与其他设备或通信网络之间的通信。
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备1300。该计算设备1300可以是服务器,例如是中心服务器、边缘服务器。在一些实施例中,计算设备1300也可以是终端设备。
如图14所示,所述计算设备集群包括至少一个计算设备1300。计算设备集群中的一个或多个计算设备1300中的存储器1306中可以存有相同的分布式数据管理系统100用于执行数据处理方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备1300也可以用于执行分布式数据管理系统100用于执行数据处理方法的部分指令。换言之,一个或多个计算设备1300的组合可以共同执行分布式数据管理系统100用于执行数据处理方法的指令。
需要说明的是,计算设备集群中的不同的计算设备1300中的存储器1306可以存储不同的指令,用于执行分布式数据管理系统100的部分功能。
图15示出了一种可能的实现方式。如图15所示,两个计算设备1300A和1300B通过通信接口1308实现连接。计算设备1300A中的存储器上存有用于执行通信模块102、管理模块104的功能的指令。计算设备1300B中的存储器上存有用于故障检测模块106和故障恢复模块108的功能的指令。换言之,计算设备1300A和1300B的存储器1306共同存储了分布式数据管理系统100用于执行数据处理方法的指令。
图15所示的计算设备集群之间的连接方式可以是考虑到本申请提供的数据处理方法在进行故障检查时需要扫描区块链网络中区块链节点维护的分布式账本,在故障恢复时,需要读取区块链节点中存储的故障信息。因此,考虑将通信模块102、管理模块104实现的功能交由计算设备1300A执行,故障检查模块106和故障恢复模块108实现的功能由计算设备1300B执行。
应理解,图15中示出的计算设备1300A的功能也可以由多个计算设备1300完成。同样,计算设备1300B的功能也可以由多个计算设备1300完成。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图16示出了一种可能的实现方式。如图16所示,两个计算设备1300C和1300D之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。在这一类可能的实现方式中,计算设备1300C中的存储器1306中存有执行通信模块102、管理模块104的功能的指令。同时,计算设备1300D中的存储器1306中存有执行故障检查模块106和故障恢复模块108的功能的指令。
图16所示的计算设备集群之间的连接方式可以是考虑到本申请提供的数据处理方法需要扫描区块链网络中区块链节点维护的分布式账本,或者读取区块链节点中存储的故障信息,因此考虑将通信模块102、管理模块104实现的功能交由计算设备1300C执行,故障检查模块106和故障恢复模块108实现的功能由计算设备1300D执行。应理解,图16中示出的计算设备1300C的功能也可以由多个计算设备1300完成。同样,计算设备1300D的功能也可以由多个计算设备1300完成。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行上述应用于分布式数据管理系统100的数据处理方法。
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备或计算设备集群上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算设备(计算设备或计算设备集群)上运行时,使得至少一个计算设备执行上述数据处理方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
Claims (26)
1.一种数据处理方法,其特征在于,应用于分布式数据管理系统,所述分布式数据管理系统包括多个数据管理装置,所述多个数据管理装置中的第一数据管理装置对应区块链网络的第一区块链节点,所述多个数据管理装置中的第二数据管理装置对应区块链网络的第二区块链节点;
所述多个数据管理装置中的目标数据管理装置接收来自区块链客户端的交易请求,所述交易请求中包括交易参与方的标识;
所述目标数据管理装置根据所述交易请求,在所述区块链网络输入输出IO交易信息密文,所述交易信息密文采用对所述交易参与方之外的另一参与方不可见的密钥对交易信息明文加密得到;
所述目标数据管理装置向所述区块链客户端返回交易结果。
2.根据权利要求1所述的方法,其特征在于,所述区块链网络的区块链节点中包括区块链账本;
所述目标数据管理装置根据所述交易请求,在所述区块链网络输入输出IO交易信息密文,包括:
所述目标数据管理装置根据所述交易请求,在所述区块链账本IO交易信息密文。
3.根据权利要求1所述的方法,其特征在于,所述目标数据管理装置挂载本地存储,所述本地存储中包括所述区块链网络的私有账本;
所述目标数据管理装置根据所述交易请求,在所述区块链网络输入输出IO交易信息密文,包括:
所述目标数据管理装置根据所述交易请求,在所述私有账本IO交易信息密文。
4.根据权利要求3所述的方法,其特征在于,所述交易请求为存储请求,所述交易请求包括交易信息明文;
所述目标数据管理装置根据所述交易请求,在所述区块链网络输入输出IO交易信息密文,包括:
所述目标数据管理装置根据所述交易参与方中交易发起方在隐私交易群组中的链密钥,加密交易信息明文,获得第一交易信息密文,存储所述第一交易信息密文至所述区块链账本;
所述目标数据管理装置根据所述交易参与方中交易发起方的公钥或对称密钥加密交易信息明文,获得第二交易信息密文,存储所述第二交易信息密文至所述私有账本。
5.根据权利要求3所述的方法,其特征在于,所述交易请求为查询请求;
所述目标数据管理装置根据所述交易请求,在所述区块链网络输入输出IO交易信息密文,包括:
所述目标数据管理装置根据所述交易请求,从所述私有账本或所述区块链账本读取所述交易信息密文;
所述方法还包括:
所述目标数据管理装置对所述交易信息密文进行解密,获得所述交易信息明文;
所述交易结果包括所述交易信息明文。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述目标数据管理装置根据所述交易请求,在所述区块链网络输入输出IO交易信息密文之前,所述方法还包括:
通过所述区块链网络协商得到所述交易参与方中交易发起方在隐私交易群组中的链密钥;
对所述交易参与方之外的另一参与方不可见的密钥包括所述链密钥。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当密钥更新条件被触发时,通过双棘轮算法更新所述链密钥。
8.根据权利要求7所述的方法,其特征在于,所述密钥更新条件包括:
基于所述链密钥的交易次数达到预设数量。
9.根据权利要求1至5任一项所述的方法,其特征在于,所述目标数据管理装置根据所述交易请求,在所述区块链网络输入输出IO交易信息密文之前,所述方法还包括:
接收证书签发节点为所述交易参与方中交易发起方签发的公私钥对;
对所述交易参与方之外的另一参与方不可见的密钥包括所述公私钥对中的公钥。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述目标数据管理装置挂载本地存储,所述本地存储中包括所述区块链网络的私有账本;
所述方法还包括:
所述目标数据管理装置从所述私有账本获取所述私有账本中存储数据的第一元信息,以及从所述区块链网络的区块链账本中获取所述私有账本中存储数据的第二元信息;
根据所述第一元信息和所述第二元信息进行故障检查,获得故障检查结果。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
当所述故障检查结果表征所述私有账本中存储数据被篡改、删除或者所述目标数据管理装置挂载的存储故障,所述目标数据管理装置根据所述区块链账本进行故障恢复。
12.一种分布式数据管理系统,其特征在于,所述分布式数据管理系统包括多个数据管理装置,所述多个数据管理装置中的第一数据管理装置对应区块链网络的第一区块链节点,所述多个数据管理装置中的第二数据管理装置对应区块链网络的第二区块链节点;
所述多个数据管理装置中的目标数据管理装置,用于接收来自区块链客户端的交易请求,所述交易请求中包括交易参与方的标识;
所述目标数据管理装置,还用于根据所述交易请求,在所述区块链网络输入输出IO交易信息密文,所述交易信息密文采用对所述交易参与方之外的另一参与方不可见的密钥对交易信息明文加密得到,向所述区块链客户端返回交易结果。
13.根据权利要求12所述的系统,其特征在于,所述区块链网络的区块链节点中包括区块链账本;
所述目标数据管理装置具体用于:
根据所述交易请求,在所述区块链账本IO交易信息密文。
14.根据权利要求12所述的系统,其特征在于,所述目标数据管理装置挂载本地存储,所述本地存储中包括所述区块链网络的私有账本;
所述目标数据管理装置具体用于:
根据所述交易请求,在所述私有账本IO交易信息密文。
15.根据权利要求14所述的系统,其特征在于,所述交易请求为存储请求,所述交易请求包括交易信息明文;
所述目标数据管理装置具体用于:
根据所述交易参与方中交易发起方在隐私交易群组中的链密钥,加密交易信息明文,获得第一交易信息密文,存储所述第一交易信息密文至所述区块链账本;
根据所述交易参与方中交易发起方的公钥或对称密钥加密交易信息明文,获得第二交易信息密文,存储所述第二交易信息密文至所述私有账本。
16.根据权利要求14所述的系统,其特征在于,所述交易请求为查询请求;
所述目标数据管理装置具体用于:
根据所述交易请求,从所述私有账本或所述区块链账本读取所述交易信息密文;
所述方法还包括:
所述目标数据管理装置对所述交易信息密文进行解密,获得所述交易信息明文;
所述交易结果包括所述交易信息明文。
17.根据权利要求11至16任一项所述的系统,其特征在于,所述目标数据管理装置还用于:
在根据所述交易请求,在所述区块链网络输入输出IO交易信息密文之前,通过所述区块链网络协商得到所述交易参与方中交易发起方在隐私交易群组中的链密钥;
对所述交易参与方之外的另一参与方不可见的密钥包括所述链密钥。
18.根据权利要求17所述的系统,其特征在于,所述目标数据管理装置还用于:
当密钥更新条件被触发时,通过双棘轮算法更新所述链密钥。
19.根据权利要求18所述的系统,其特征在于,所述密钥更新条件包括:
基于所述链密钥的交易次数达到预设数量。
20.根据权利要求11至16任一项所述的系统,其特征在于,所述目标数据管理装置还用于:
在根据所述交易请求,在所述区块链网络输入输出IO交易信息密文之前,接收证书签发节点为所述交易参与方中交易发起方签发的公私钥对;
对所述交易参与方之外的另一参与方不可见的密钥包括所述公私钥对中的公钥。
21.根据权利要求11至20任一项所述的系统,其特征在于,所述目标数据管理装置挂载本地存储,所述本地存储中包括所述区块链网络的私有账本;
所述目标数据管理装置还用于:
从所述私有账本获取所述私有账本中存储数据的第一元信息,以及从所述区块链网络的区块链账本中获取所述私有账本中存储数据的第二元信息;
根据所述第一元信息和所述第二元信息进行故障检查,获得故障检查结果。
22.根据权利要求21所述的系统,其特征在于,所述目标数据管理装置还用于:
当所述故障检查结果表征所述私有账本中存储数据被篡改、删除或者所述目标数据管理装置挂载的存储故障,根据所述区块链账本进行故障恢复。
23.一种数据管理装置,其特征在于,所述数据管理装置对应区块链网络的区块链节点,所述数据管理装置包括:
通信模块,用于接收来自区块链客户端的交易请求,所述交易请求中包括交易参与方的标识;
管理模块,用于根据所述交易请求,在所述区块链网络输入输出IO交易信息密文,所述交易信息密文采用对所述交易参与方之外的另一参与方不可见的密钥对交易信息明文加密得到;
所述通信模块,还用于向所述区块链客户端返回交易结果。
24.一种计算设备集群,其特征在于,所述计算设备集群包括至少一台计算设备,所述至少一台计算设备包括至少一个处理器和至少一个存储器,所述至少一个存储器中存储有计算机可读指令;所述至少一个处理器执行所述计算机可读指令,以使得所述计算设备集群执行如权利要求1至11中任一项所述的方法。
25.一种计算机可读存储介质,其特征在于,包括计算机可读指令;所述计算机可读指令用于实现权利要求1至11任一项所述的方法。
26.一种计算机程序产品,其特征在于,包括计算机可读指令;所述计算机可读指令用于实现权利要求1至11任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211063836.7A CN117675216A (zh) | 2022-08-31 | 2022-08-31 | 一种数据处理方法及相关设备 |
PCT/CN2023/081446 WO2024045552A1 (zh) | 2022-08-31 | 2023-03-14 | 一种数据处理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211063836.7A CN117675216A (zh) | 2022-08-31 | 2022-08-31 | 一种数据处理方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117675216A true CN117675216A (zh) | 2024-03-08 |
Family
ID=90072073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211063836.7A Pending CN117675216A (zh) | 2022-08-31 | 2022-08-31 | 一种数据处理方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117675216A (zh) |
WO (1) | WO2024045552A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118094639A (zh) * | 2024-04-28 | 2024-05-28 | 北京中关村科金技术有限公司 | 基于人工智能的企业大数据挖掘方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118631588B (zh) * | 2024-08-09 | 2024-10-15 | 北京三友卓越科技有限公司 | 一种数字地球空间的访问控制方法、设备及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365489B (zh) * | 2017-11-15 | 2021-02-05 | 财付通支付科技有限公司 | 业务审计方法、装置及存储介质 |
CN109493020B (zh) * | 2018-11-08 | 2022-02-11 | 众安信息技术服务有限公司 | 基于区块链的安全交易方法和装置 |
CN110033266B (zh) * | 2019-02-19 | 2020-04-07 | 阿里巴巴集团控股有限公司 | 区块链中实现隐私保护的方法、节点和存储介质 |
CN110335043B (zh) * | 2019-07-03 | 2022-03-18 | 中国银行股份有限公司 | 一种基于区块链系统的交易隐私保护方法、设备以及系统 |
CN110827034B (zh) * | 2019-10-31 | 2021-10-22 | 支付宝(杭州)信息技术有限公司 | 用于发起区块链交易的方法及装置 |
-
2022
- 2022-08-31 CN CN202211063836.7A patent/CN117675216A/zh active Pending
-
2023
- 2023-03-14 WO PCT/CN2023/081446 patent/WO2024045552A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118094639A (zh) * | 2024-04-28 | 2024-05-28 | 北京中关村科金技术有限公司 | 基于人工智能的企业大数据挖掘方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2024045552A1 (zh) | 2024-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112491847B (zh) | 区块链一体机及其自动建链方法、装置 | |
US11196573B2 (en) | Secure de-centralized domain name system | |
Ullah et al. | Towards blockchain-based secure storage and trusted data sharing scheme for IoT environment | |
JP6547079B1 (ja) | 登録・認可方法、装置及びシステム | |
CN113742782B (zh) | 基于隐私保护的区块链访问权限控制方法和区块链系统 | |
CN111541724B (zh) | 区块链一体机及其节点自动加入方法、装置 | |
CN111541552B (zh) | 区块链一体机及其节点自动加入方法、装置 | |
CN109741068B (zh) | 网银跨行签约方法、装置及系统 | |
CN112751673B (zh) | 一种基于端边云协同的可监管数据隐私共享方法 | |
CN111740966B (zh) | 一种基于区块链网络的数据处理方法及相关设备 | |
CN111047324A (zh) | 用于更新区块链节点处的公钥集合的方法及装置 | |
US20230134458A1 (en) | Secure and trustworthy bridge for transferring assets across different networks with an updating pool of wardens | |
US11893577B2 (en) | Cryptographic key storage system and method | |
CN117675216A (zh) | 一种数据处理方法及相关设备 | |
CN114051031B (zh) | 基于分布式身份的加密通讯方法、系统、设备及存储介质 | |
CN115412568A (zh) | 分布式数据传输方法、装置及系统 | |
CN116561820B (zh) | 可信数据处理方法及相关装置 | |
CN110784318B (zh) | 群密钥更新方法、装置、电子设备、存储介质及通信系统 | |
Kim et al. | Data block management scheme based on secret sharing for HDFS | |
CN115914243B (zh) | 一种信息处理方法及装置、存储介质 | |
Jin et al. | BNRDT: when data transmission meets blockchain | |
Patil et al. | BlockCrate: A Blockchain-Based Asset Sharing and Management Solution | |
WO2024074207A1 (en) | Method and system for managing bootstrapping | |
CN117834151A (zh) | 基于区块链的数据隐私保护方法、装置及电子设备 | |
KR20240079841A (ko) | 데이터를 암호화하는 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |