CN116488817A - 基于区块链的数据处理方法、装置、设备、介质及产品 - Google Patents

基于区块链的数据处理方法、装置、设备、介质及产品 Download PDF

Info

Publication number
CN116488817A
CN116488817A CN202210036846.5A CN202210036846A CN116488817A CN 116488817 A CN116488817 A CN 116488817A CN 202210036846 A CN202210036846 A CN 202210036846A CN 116488817 A CN116488817 A CN 116488817A
Authority
CN
China
Prior art keywords
data
target
verification
verified
target object
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
Application number
CN202210036846.5A
Other languages
English (en)
Inventor
陈自民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210036846.5A priority Critical patent/CN116488817A/zh
Publication of CN116488817A publication Critical patent/CN116488817A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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

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)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种基于区块链的数据处理方法、装置、设备、介质及产品,可以应用于区块链技术领域,该基于区块链的数据处理方法包括:获取目标对象的对象声明数据,对象声明数据包括目标对象的对象信息,对象信息包括M个目标数据;根据对象声明数据确定数据集合,数据集合中的N个目标数据是从M个目标数据中选择确定的;根据数据集合生成目标对象的对象验证数据;提交对象验证数据对应的验证表达数据,验证表达数据用于对目标对象进行对象验证。采用本申请实施例,可以选择性披露用于进行对象验证的对象信息,有利于在对象验证过程中保护对象的数据安全。

Description

基于区块链的数据处理方法、装置、设备、介质及产品
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于区块链的数据处理方法、装置、设备、介质及产品。
背景技术
随着区块链技术的快速发展,区块链网络中的对象验证方式逐步由中心化演变为去中心化,在DID(Decentralized ID,去中心化对象)验证系统中,每个对象可以作为自己对象信息的Holder(持有者),通过VC(Verifiable Claims,可验证声明)数据自行管理对象信息。在DID验证系统的DID验证过程中,Holder可以根据VC数据生成VP(VerifiablePresentation,可验证表达)数据,Verifier(验证者)可以通过VP数据进行对象验证;在上述DID验证过程中,VC数据和VP数据中均包含对象的对象信息,对象信息被暴露在DID验证过程中,这样不利于在对象验证过程中保护对象的数据安全。
发明内容
本申请实施例提供了一种基于区块链的数据处理方法、装置、设备、介质及产品,可以选择性地披露用于进行对象验证的对象信息,有利于在对象验证过程中保护对象的数据安全。
一方面,本申请实施例提供了一种基于区块链的数据处理方法,该基于区块链的数据处理方法包括:
获取目标对象的对象声明数据,对象声明数据包括目标对象的对象信息,对象信息包括M个目标数据,M为大于1的整数;根据对象声明数据确定数据集合,数据集合中包括对象数据对,每个对象数据对包括一个目标数据和一个目标数据的验证数据,数据集合中的N个目标数据是从M个目标数据中选择确定的,N为小于或等于M的正整数;根据数据集合生成目标对象的对象验证数据,对象验证数据中包括对象数据对;提交对象验证数据对应的验证表达数据,验证表达数据包括待验证对象数据对;其中,在进行验证的过程中,若根据待验证对象数据对中的目标数据和目标数据的验证数据得到与目标对象对应的根哈希匹配的验证哈希,则确定对目标对象验证通过。
本申请实施例中,可以获取目标对象的对象声明数据(也可以称为VC数据),对象声明数据中可以包括目标对象的对象信息,对象信息中可以包括M个目标数据;然后,可以根据对象声明数据确定数据集合,根据数据集合生成目标对象的对象验证数据(也可以称为VP数据),并提交对象验证数据对应的验证表达数据;其中,验证表达数据可以用于对目标对象进行对象验证,数据集合中的N个目标数据可以是从M个目标数据中选择确定的;也就是说,可以从目标对象的对象信息中选择需要验证的对象信息生成用于进行对象验证的验证表达数据,而其他未被选择的对象信息则不会披露在验证表达数据中,即可以选择性地披露用于进行对象验证的对象信息,这样有利于在对象验证过程中保护对象的数据安全。
另一方面,本申请实施例提供了另一种基于区块链的数据处理方法,该基于区块链的数据处理方法包括:
获取持有节点提交的验证表达数据;验证表达数据与持有节点生成的对象验证数据对应,验证表达数据包括待验证对象数据对;根据待验证对象数据对中的目标数据和目标数据的验证数据,确定待验证对象数据对的验证哈希;若待验证对象数据对的验证哈希与目标对象对应的根哈希匹配,则确定对目标对象验证通过;其中,对象验证数据是根据数据集合生成的,数据集合是根据目标对象的对象声明数据中包括的目标对象的对象信息确定的,对象信息包括M个目标数据;数据集合中包括对象数据对,每个对象数据对包括一个目标数据和一个目标数据的验证数据,数据集合中的N个目标数据是从M个目标数据中选择确定的,M为大于1的整数,N为小于或等于M的正整数。
本申请实施例中,可以获取持有节点提交的验证表达数据,验证表达数据与持有节点生成的对象验证数据(也可以称为VP数据)对应,对象验证数据可以是根据数据集合生成的,数据集合可以是根据目标对象的对象声明数据(也可以称为VC数据)确定的,数据集合中可以包括对象数据对,每个对象数据对可以包括一个目标数据和一个目标数据的验证数据,数据集合中的N个目标数据可以是从对象声明数据中包括的M个目标数据中选择确定的;然后验证表达数据中可以包括待验证对象数据对,可以根据待验证对象数据对中的目标数据和目标数据的验证数据对目标对象进行对象验证;可见,用于进行对象验证的验证表达数据中披露了从目标对象的对象信息中选择的需要验证的对象信息,而其他未被选择的对象信息则不会披露在验证表达数据中,这样可以选择性地披露用于进行对象验证的对象信息,这样有利于在对象验证过程中保护对象的数据安全。
相应地,本申请实施例提供一种基于区块链的数据处理装置,该基于区块链的数据处理装置包括:
获取单元,用于获取目标对象的对象声明数据,对象声明数据包括目标对象的对象信息,对象信息包括M个目标数据,M为大于1的整数;根据对象声明数据确定数据集合,数据集合中包括对象数据对,每个对象数据对包括一个目标数据和一个目标数据的验证数据,数据集合中的N个目标数据是从M个目标数据中选择确定的,N为小于或等于M的正整数;
处理单元,用于根据数据集合生成目标对象的对象验证数据,对象验证数据中包括对象数据对;提交对象验证数据对应的验证表达数据,验证表达数据包括待验证对象数据对;其中,在进行对象验证的过程中,若根据待验证对象数据对中的目标数据和目标数据的验证数据得到与目标对象对应的根哈希匹配的验证哈希,则确定对目标对象验证通过。
在一种实现方式中,对象数据对的数量为N个,N个对象数据对中的第i个对象数据对包括第i个目标数据和第i个目标数据的验证数据;第i个目标数据的验证数据包括:在目标对象的默克尔树中为第i个目标数据分配的混淆数据、以及在目标对象的默克尔树中确定的第i个目标数据对应的验证信息;目标对象的默克尔树是根据M个目标数据确定的,i为小于或等于N的正整数;其中,混淆数据用于结合第i个目标数据计算第i个目标数据对应的数据哈希;第i个目标数据对应的验证信息用于结合第i个目标数据对应的数据哈希计算第i个对象数据对的验证哈希。
在一种实现方式中,对象验证数据中还包括:目标对象对应的根哈希和目标对象对应的根签名;目标对象对应的根哈希是在目标对象的默克尔树中确定的,目标对象对应的根签名是采用生成对象声明数据的发行节点的私钥对目标对象对应的根哈希进行加密得到的,目标对象对应的根签名用于对目标对象对应的根哈希进行验证;在采用目标对象对应的根签名对目标对象对应的根哈希验证通过后,目标对象对应的根哈希用于对对象验证数据中的对象数据对的验证哈希进行验证。
在一种实现方式中,对象数据对的数量为N个;处理单元,用于根据对象声明数据确定数据集合时,具体用于执行如下步骤:
接收验证节点发送的对象验证请求,对象验证请求中携带请求验证的对象数据类型;按照对象数据类型的指示,从M个目标数据中选择与对象数据类型相匹配的N个目标数据;获取N个目标数据中每个目标数据的验证数据;根据N个目标数据和每个目标数据的验证数据,确定N个对象数据对。
在一种实现方式中,对象数据对的数量为N个,数据集合包括N个对象数据对;处理单元,用于根据对象声明数据确定数据集合时,具体用于执行如下步骤:
显示对象信息选择界面,对象信息选择界面中显示有M个目标数据;响应于在对象信息选择界面中对M个目标数据的选择操作,确定选择操作所选中的N个目标数据;获取N个目标数据中每个目标数据的验证数据;根据N个目标数据和每个目标数据的验证数据,确定N个对象数据对。
在一种实现方式中,处理单元,还用于执行如下步骤:
向发行节点发送对象声明获取请求,对象声明获取请求中携带目标对象的对象标识和目标对象的对象信息;其中,对象声明获取请求用于触发发行节点基于目标对象的对象标识获取目标对象的对象文档进行验证,并在对目标对象的对象文档验证通过后,根据目标对象的对象信息生成目标对象的对象声明数据,并输出对象声明数据。
在一种实现方式中,处理单元,用于提交对象验证数据对应的验证表达数据时,具体用于执行如下步骤:
将验证表达数据上传至区块链中,以及在区块链中将验证节点设置为验证表达数据的可见节点,验证表达数据的可见节点是指允许从区块链中获取验证表达数据的节点。
相应地,本申请实施例提供另一种基于区块链的数据处理装置,该基于区块链的数据处理装置包括:
获取单元,用于获取持有节点提交的验证表达数据;验证表达数据与持有节点生成的对象验证数据对应,验证表达数据包括待验证对象数据对;
处理单元,用于根据待验证对象数据对中的目标数据和目标数据的验证数据,确定待验证对象数据对的验证哈希;若待验证对象数据对的验证哈希与目标对象对应的根哈希匹配,则确定对目标对象验证通过;
其中,对象验证数据是根据数据集合生成的,数据集合是根据目标对象的对象声明数据中包括的目标对象的对象信息确定的,对象信息包括M个目标数据;数据集合中包括对象数据对,每个对象数据对包括一个目标数据和一个目标数据的验证数据,数据集合中的N个目标数据是从M个目标数据中选择确定的,M为大于1的整数,N为小于或等于M的正整数;
在一种实现方式中,待验证对象数据对的数量为N个,验证表达数据包括N个待验证对象数据对;验证表达数据中还包括:目标对象对应的根哈希以及目标对象对应的根签名;目标对象对应的根签名是采用生成对象声明数据的发行节点的私钥对目标对象对应的根哈希进行加密得到的;处理单元,还用于执行如下步骤:
采用发行节点的公钥对目标对象对应的根签名进行解密,得到目标对象对应的解密哈希;若目标对象对应的解密哈希与目标对象对应的根哈希相匹配,则确定对目标对象对应的根哈希验证通过;其中,在对目标对象对应的根哈希验证通过后,待验证对象数据对的验证哈希与目标对象对应的根哈希匹配是指:N个待验证对象数据对的验证哈希均与目标对象对应的根哈希匹配。
在一种实现方式中,处理单元,用于采用发行节点的公钥对目标对象对应的根签名进行解密,得到目标对象对应的解密哈希之前,还用于执行如下步骤:
获取持有节点生成的第一签名信息、发行节点生成的第二签名信息和目标对象的对象文档,第一签名信息是采用目标对象的私钥对验证表达数据进行加密得到的,第二签名信息是采用发行节点的私钥对对象声明数据进行加密得到的,目标对象的对象文档中包含目标对象的公钥;若采用目标对象的公钥对第一签名信息验证通过,则获取发行节点的对象文档;发行节点的对象文档中包括发行节点的公钥;若确定发行节点的对象文档是根据可信列表中的可信标识签发的,则根据发行节点的公钥对第二签名信息进行验证;若对第二签名信息验证通过,则触发执行采用发行节点的公钥对目标对象对应的根签名进行解密,得到目标对象对应的解密哈希的步骤。
在一种实现方式中,待验证对象数据对的数量为N个,验证表达数据包括N个待验证对象数据对;目标对象对应的根哈希被上传至区块链中进行存储;处理单元,还用于执行如下步骤:
从区块链中获取目标对象对应的根哈希;其中,待验证对象数据对的验证哈希与目标对象对应的根哈希匹配是指:N个待验证对象数据对的验证哈希均与目标对象对应的根哈希匹配。
在一种实现方式中,待验证对象数据对的数量为N个,验证表达数据包括N个待验证对象数据对;N个待验证对象数据对中的第i个待验证对象数据对包括第i个目标数据和第i个目标数据的验证数据,i为小于或等于N的正整数;第i个目标数据的验证数据包括:在目标对象的默克尔树中为第i个目标数据分配的混淆数据、以及在目标对象的默克尔树中确定的第i个目标数据对应的验证信息;目标对象的默克尔树是根据M个目标数据确定的;处理单元,用于根据第i个目标数据和第i个目标数据的验证数据,确定第i个待验证对象数据对的验证哈希的时,具体用于执行如下步骤:
将混淆数据与第i个目标数据进行拼接处理,得到拼接数据;对拼接数据进行哈希计算,得到第i个目标数据对应的数据哈希;根据第i个目标数据对应的数据哈希和第i个目标数据对应的验证信息,计算第i个待验证对象数据对的验证哈希。
相应地,本申请实施例提供一种计算机设备,该计算机设备包括处理器和计算机可读存储介质;其中,处理器适于实现计算机程序,计算机可读存储介质存储有计算机程序,计算机程序适于由处理器加载并执行上述的基于区块链的数据处理方法。
相应地,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被计算机设备的处理器读取并执行时,使得计算机设备执行上述的基于区块链的数据处理方法。
相应地,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的基于区块链的数据处理方法。
本申请实施例中,可以根据选择性披露的对象信息生成对象验证数据,然后可以根据对象验证数据对应的验证表达数据中选择性披露的对象信息进行对象验证,未被选择的对象信息在对象验证过程中是隐藏的,这样有利于在对象验证过程中保护对象的数据安全。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术对象来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链的结构示意图;
图2是本申请实施例提供的一种默克尔树的结构示意图;
图3是本申请实施例提供的一种区块链网络的架构示意图;
图4是本申请实施例提供的另一种默克尔树的结构示意图;
图5a是本申请实施例提供的一种混淆数据的派生过程的示意图;
图5b是本申请实施例提供的另一种混淆数据的派生过程的示意图;
图5c是本申请实施例提供的另一种混淆数据的派生过程的示意图;
图6是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图7a是本申请实施例提供的一种对象文档的签发过程的流程示意图;
图7b是本申请实施例提供的一种对象声明数据的生成过程的流程示意图;
图7c是本申请实施例提供的一种对象信息选择界面的示意图;
图7d是本申请实施例提供的一种对象验证数据的生成过程的流程示意图;
图8是本申请实施例提供的另一种基于区块链的数据处理方法的流程示意图;
图9是本申请实施例提供的一种对象验证过程的流程示意图;
图10是本申请实施例提供的一种基于区块链的数据处理场景的场景示意图;
图11是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图12是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术对象在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更清楚地理解本申请实施例提供的技术方案,在此先对本申请实施例涉及的关键术语进行介绍:
(1)区块链。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的区块,每一个区块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。如图1所示,区块链由多个区块组成,创始块中包括区块头和区块体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
(2)DID验证系统。DID验证系统与PKI(Public Key Infrastructure,公钥基础设施)验证系统是相对存在的两个概念。PKI验证系统是一种中心化的对象验证系统,PKI验证系统可以对系统中的各个对象进行中心化管控;具体来说,PKI验证系统可以由可信的第三方权威对象(例如CA(Certificate Authority,证书颁发对象))对PKI验证系统中的各个对象的对象信息进行管控。而DID验证系统是一种去中心化的对象验证系统,DID验证系统对系统中的各个对象进行去中心化管控;具体来说,DID验证系统中的每个对象的对象信息不是由可信的第三方权威对象管控,而是由每个对象自主管控。
DID验证系统可以为DID验证系统中的每个对象分配DID标识数据,DID标识数据中可以包括DID标识和该DID标识关联的DID文档(DIDDocument)。任一个对象的DID标识可以在DID验证系统中唯一标识该对象,任一个对象的DID文档可以是该对象在DID验证系统中的标识说明文档,任一个对象的DID文档中可以包括但不限于该对象的DID标识、该对象的公钥、该对象的DID文档的签发者的DID标识、以及签发者的签名信息。需要说明的是,DID验证系统中还可以维护一个可信列表,可信列表中可以包括DID验证系统可信的DID标识,这些可信的DID标识的拥有者可以为DID验证系统中的对象签发DID文档,即可信列表中的可信的DID标识的拥有者可以作为DID文档的签发者,由可信的签发者签发的DID文档在DID验证系统中被认为是可信的。
另外,DID验证系统中可以包括三类重要的对象,分别是Issuer(发行者)、Holder(持有者)和Verifier(验证者)。下面分别对这三类对象进行介绍:①Issuer是VC数据的发行者,DID验证系统中的对象可以向Issuer请求生成VC数据,Issuer可以根据该对象的对象信息生成该对象的VC数据。②Holder是VC数据的持有者,DID验证系统中的对象向Issuer请求生成VC数据后,可以获取生成的VC数据,该对象便成为VC数据的持有者;Holder还可以根据VC数据生成VP数据。③Verifier是VP数据的验证者,Verifier可以获取Holder生成的VP数据,并对VP数据进行验证,以对生成VP数据的Holder进行对象验证。需要说明的是,DID验证系统可以理解为是一个区块链网络,Holder和Verifier所使用的节点通常被部署为区块链网络中的SPV(Simplified Payment Verification,简单支付验证)节点,SPV节点也可以称为轻节点,可以从区块链中同步全部的区块头和其可见的交易数据;基于上述SPV节点的相关概念,Issuer除了将VC数据上传至区块链外,还可以在区块链上设置该VC数据对于该VC数据的Holder可见,这样在数据清分时,Holder可以从区块链上获取该Holder可见的VC数据,所谓的数据清分是指SPV节点从区块链中同步区块头和其可见的交易数据的过程;类似地,Holder除了将某对象的VP数据上传至区块链外,还可以在区块链上设置该VP数据对于该VP数据的Verifier可见,这样在数据清分时,Verifier可以从区块链上获取该Verifier可见的VP数据。
(3)VC数据。Holder的VC数据是Issuer给Holder的对象信息进行背书形成的文件,Holder的VC数据可以用于声明Holder的对象信息。通常情况下,VC数据中可以包括但不限于:发行相关数据、声明数据、证明数据等等;其中,发行相关数据可以包括但不限于:VC数据的发行时间、VC数据的唯一标识、Issuer的信息等等;声明数据中可以包括但不限于:Holder的DID标识、Holder的对象信息等等;VC数据中的证明数据可以用于对VC数据进行验证,可以包括但不限于:Issuer的公钥、Issuer对声明数据进行加密得到的签名(例如Issuer采用Issuer的私钥对声明数据进行加密得到的签名)。
(4)VP数据。VP数据是指Holder对VC数据进行加密得到的文件(例如Holder采用Holder的私钥对VC数据进行加密得到的文件),VP数据可以用于对Holder进行对象验证。通常情况下,VP数据可以包括但不限于:VC数据和证明数据;其中,VP数据中的证明数据可以用于对VP数据进行验证,可以包括但不限于:Holder的公钥、Holder对VC数据进行加密得到的签名(例如Holder采用Holder的私钥对VC数据进行加密得到的签名)。
(5)MerkleTree(默克尔树)。MerkleTree是一种基于哈希算法的树状数据结构,MerkleTree可以是M叉树,M可以为大于或等于2的整数,MerkleTree常见的结构是二叉树。下面以图2所示的MerkleTree为例进行介绍,N0、N1、N2和N3是MerkleTree的四个叶子节点,D0、D1、D2和D3分别是四个叶子节点的基础数据;N0节点对应的节点值可以是采用哈希算法(Hash)对D0进行哈希计算得到的哈希值,N1节点对应的节点值可以是采用哈希算法对D1进行哈希计算得到的哈希值,同理可以计算得到N2节点对应的节点值和N3对应的节点值;N4和N5是默克尔树的中间节点,N4节点对应的节点值可以是采用哈希算法对N0+N1进行哈希计算得到的哈希值,N5节点对应的节点值可以是采用哈希算法对N2+N3进行哈希计算得到的哈希值,N0+N1表示将N0和N1进行拼接;Root表示默克尔树的根节点,Root节点对应的节点值可以是采用哈希算法对N4+N5进行哈希计算得到的哈希值,可以称之为默克尔树的根哈希。
MerkleTree中的数据验证过程可参见如下描述:当需要对MerkleTree的基础数据进行验证时,可以获取待验证的基础数据、在MerkleTree中确定的该基础数据对应的索引数据、在MerkleTree中确定的该基础数据对应的验证路径以及MerkleTree的根哈希;然后可以根据待验证的基础数据、该基础数据对应的索引数据、以及该基础数据对应的验证路径计算出该基础数据对应的验证哈希;若该基础数据对应的验证哈希与MerkleTree的根哈希匹配(即该基础数据对应的验证哈希与MerkleTree的根哈希相同),则可以认为对该基础数据验证通过。举例来说,若需要对图2中的基础数据D1进行验证,则可以获取在MerkleTree中确定的D1对应的索引数据1(例如从左至右D0、D1、D2和D3的索引数据分别是0、1、2和3)、在MerkleTree中确定的D1对应的验证路径[N0,N5]、以及Root节点对应的节点值(即MerkleTree的根哈希),然后,若根据D1、D1对应的索引数据1、D1对应的验证路径[N0,N5]计算得到的D1对应的验证哈希与Root节点对应的节点值相同,则可以确定对D1验证通过。其中,哈希算法可以包括但不限于:MD(Message-Digest Algorithm,信息摘要算法)4、MD5、SHA(Secure Hash Algorithm,安全散列算法)1、SHA256、SHA512算法等等,本申请实施例对此不作限定。
基于上述关键术语的相关描述,本申请实施例提出一种基于区块链的数据处理方案,该基于区块链的数据处理方案对现有的DID验证过程进行改进,改进后的DID验证过程可参见如下描述:首先,DID验证系统中的目标对象的对象信息可以包括多个目标数据,Issuer在根据目标对象的对象信息生成目标对象的VC数据的过程中,可以根据目标对象的对象信息生成目标对象的MerkleTree,并基于生成的MerkleTree和目标对象的对象信息生成目标对象的VC数据。其次,基于目标对象的VC数据,Holder(此处的Holder即目标对象)可以从目标对象的VC数据包含的对象信息中选择用于对目标对象进行对象验证的目标数据,并根据选择的目标数据和在目标对象的MerkleTree中确定的该选择的目标数据的验证数据(例如可以是上述提及的验证路径、MerkleTree的根哈希等)生成VP数据。然后,Verifier可以基于VP数据中包含的选择的目标数据以及选择的目标数据的验证数据对目标对象进行对象验证。不难看出,在改进后的DID验证过程中,VP数据中披露的是需要验证的目标数据,不需要验证的目标数据对于VP数据是隐藏的,这样可以选择性地披露用于进行DID验证的对象信息,有利于在DID验证过程中保护对象的数据安全,提高DID验证过程的安全性。
本申请实施例提供的基于区块链的数据处理方案可以由图3所示的区块链网络30实现,该区块链网络30中至少可以包括发行节点301、持有节点302以及验证节点303,发行节点301、持有节点302以及验证节点303之间可以通过有线通信的方式建立直接地通信连接,或者可以通过无线通信的方式建立间接地通信连接。需要说明的是,本申请实施例中不对发行节点301、持有节点302以及验证节点303的数量进行限定,图3所示的区块链网络30包括一个发行节点301、一个持有节点302以及一个验证节点303仅用于示例,在实际的DID验证场景中,区块链网络30中可以包括一个或多个发行节点301、一个或多个持有节点302以及一个或多个验证节点303。
区块链网络30中的任一个节点可以是终端或服务器;其中,本申请实施例提及的终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等,但并不局限于此;本申请实施例提及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDeliveryNetwork,内容分发网络)、以及大数据等基础云计算服务的云服务器,本申请实施例对此不进行限定。下面分别对区块链网络30中的发行节点301、持有节点302以及验证节点303进行介绍:
(1)发行节点301。发行节点301为Issuer在区块链网络30中所使用的节点,发行节点301在根据Holder的对象信息生成该Holder的VC数据的过程中,可以根据Holder的对象信息生成Holder的MerkleTree,然后可以根据Holder的MerkleTree和Holder的对象信息生成VC数据。发行节点301根据Holder的对象信息生成Holder的MerkleTree的过程可参见图4所示的MerkleTree:由前述内容可知,Holder的对象信息中可以包括Holder的多个目标数据,发行节点301可以基于随机种子(salt)派生出多个混淆数据,然后可以为每个目标数据分配不同的混淆数据,以及可以将每个目标数据和对应的混淆数据进行拼接,形成MerkleTree的基础数据,然后可以逐层进行哈希计算,最终得到默克尔树的根哈希。相比于传统的VC数据而言,改进后的DID验证方式中的VC数据的声明数据中除包含Holder的DID标识和对象信息等内容外,可以新增以下至少一项内容:在Holder的MerkleTree中为每个目标数据分配的混淆数据、默克尔树的根哈希、默克尔树的根签名、以及Issuer的DID标识数据(例如Issuer的DID标识、Issuer的公钥等等);其中,默克尔树的根签名可以是发行节点301对默克尔树的根哈希进行加密得到的(例如可以是发行节点301采用Issuer的私钥对默克尔树的根哈希进行加密得到的)。发行节点301生成Holder的VC数据后,可以将VC数据上传至区块链中,并在区块链中将持有节点302(即Holder在区块链网络30中所使用的节点)设置为VC数据的可见节点;发行节点301还可以将目标对象的默克尔树的根哈希和目标对象的默克尔树的根签名上传至区块链中,以保证默克尔树的根哈希和默克尔树的根签名不可被篡改。
(2)持有节点302。持有节点302为Holder在区块链网络30中所使用的节点,持有节点302可以从区块链中获取Holder的VC数据,以及可以从VC数据包含的Holder的对象信息中选择需要验证的目标数据,并在Holder的MerkleTree中确定需要验证的目标数据的验证数据,然后可以根据需要验证的目标数据和需要验证的目标数据的验证数据生成VP数据。其中,需要验证的目标数据的验证数据中可以包括以下至少一项:在Holder的MerkleTree中为需要验证的目标数据分配的混淆数据、在Holder的MerkleTree中确定的需要验证的目标数据对应的索引数据、以及在Holder的MerkleTree中确定的需要验证的目标数据对应的验证路径等等。也就是说,与传统的VP数据相比,传统的VP数据中披露了VC数据包含的全部目标数据,而改进后的DID验证方式中的VP数据中披露了选择的需要验证的目标数据、以及需要验证的目标数据的验证数据。以图4所示的MerkleTree为例,若选择的需要验证的目标数据为目标数据2,则改进后的VP数据中可以包括但不限于:目标数据2、混淆数据2、索引数据2、验证路径[N0,N5];其中,验证路径[N0,N5]具体可以是指N0节点对应的节点至和N5节点对应的节点值。持有节点302生成Holder的VP数据后,可以将VP数据上传至区块链中,并在区块链中将验证节点303(即Verifier在区块链网络30中所使用的节点)设置为秘密VP数据的可见节点。
(3)验证节点303。验证节点303为Verifier在区块链网络30中所使用的节点,验证节点303从区块链中获取Holder的VP数据后,可以基于VP数据中需要验证的目标数据的验证数据,对需要验证的目标数据进行验证;验证过程具体可参见如下描述:验证节点303可以根据需要验证的目标数据、需要验证的目标数据对应的混淆数据、需要验证的目标数据对应的索引数据、以及需要验证的目标数据对应的验证路径计算默克尔树的验证哈希,然后可以将该默克尔树的验证哈希与Holder的默克尔树的真实根哈希进行比较,若该默克尔树的验证哈希与默克尔树的真实根哈希相同,则可以确定对需要验证的目标数据验证通过,即对Holder验证通过。
在此需要重点说明的是,本申请实施例中采用混淆数据对目标数据进行拼接,是为了避免产生目标数据的碰撞泄露。目标数据的碰撞泄露可以理解为:虽然VP数据中披露的是选择的需要验证的目标数据,未披露不需要验证的目标数据,但是VP数据中可能会披露不需要验证的目标数据对应的哈希,以图4所示的MerkleTree为例,若需要验证的目标数据为目标数据2,则目标数据2对应的验证路径[N0,N5]中披露了目标数据1对应的哈希(即N0节点对应的节点值);在此情况下,若不采用混淆数据对目标数据1进行拼接,则可以穷举可能的目标数据1并计算穷举的目标数据1对应的哈希,在某个穷举的目标数据1对应的哈希与N0产生碰撞(即相同)时,会造成目标数据1的泄露;因此本申请实施例中采用混淆数据对目标数据进行拼接,可以避免产生目标数据的碰撞泄露,从而有效隐藏对象验证过程中未披露的目标数据。
另外,MerkleTree中各个目标数据对应的混淆数据各不相同,各个目标数据对应的混淆数据可以是基于同一个随机种子派生出来的,或者也可以是基于不同的随机种子派生出来的,派生过程具体可以是采用哈希算法进行哈希计算的过程。本申请实施例提及的混淆数据的派生方式可以包括图5a-图5c所示的派生方式中的任一种:如图5a所示,各个目标数据对应的混淆数据可以是基于同一个随机种子进行深度派生得到的,混淆数据1是采用哈希算法对随机种子进行哈希计算得到的,混淆数据2是采用哈希算法对混淆数据1进行哈希计算得到的,以此类推可以计算得到所有的混淆数据,该基于同一个随机种子进行深度派生的混淆数据派生方式中采用的哈希算法可以是相同的哈希算法,也可以是不同的哈希算法,图5a所示的派生方式采用的是相同的哈希算法,本申请实施例对此不进行限定。如图5b所示,各个目标数据对应的混淆数据可以是基于同一个随机种子进行广度派生得到的,混淆数据1是采用哈希算法1对随机种子进行哈希计算得到的,混淆数据2是采用哈希算法2对随机种子进行哈希计算得到的,以此类推可以计算得到所有的混淆数据,该基于同一个随机种子进行广度派生的混淆数据派生方式中采用的哈希算法互不相同。如图5c所示,各个目标数据对应的混淆数据可以是基于不同的随机种子进行派生得到的,混淆数据1是采用哈希算法对随机种子1进行哈希计算得到的,混淆数据2是采用哈希算法对随机种子2进行哈希计算得到的,以此类推可以计算得到所有的混淆数据,该基于不同的随机种子进行派生的混淆数据派生方式中采用的随机种子互不相同,采用的哈希算法可以是相同的哈希算法。
本申请实施例中,可以在根据VC数据生成VP数据的过程中,选择性披露需要验证的目标数据,将不需要验证的目标数据进行隐藏,有利于对基于VP数据进行对象验证的过程中保护对象的数据安全,使得对象验证过程更加安全可靠。可以理解的是,本申请实施例描述的区块链网络30是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术对象可知,随着区块链网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。另外,在本申请后续的具体实施方式中,涉及到对象的对象信息等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得对象许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面结合附图对本申请实施例提供的基于区块链的数据处理方案进行更为详细的介绍:
本申请实施例提出一种基于区块链的数据处理方法,该基于区块链的数据处理方法主要介绍根据VC数据生成VP数据的流程,该基于区块链的数据处理方法可以由持有节点执行,本申请实施例提及的持有节点是指目标对象在区块链网络中使用的节点。如图6所示,该基于区块链的数据处理方法可以包括以下步骤S601-步骤S604:
S601,获取目标对象的对象声明信息。
目标对象的对象声明信息(即前文所提及的VC数据)中可以包括目标对象的对象信息,目标对象的对象信息中可以包括目标对象的多个目标数据;其中,目标数据是指目标对象的表征数据。
在持有节点获取目标对象的对象声明信息之前,目标对象的对象声明信息可以是在对目标对象的DID标识数据进行确认后由发行节点(即Issuer在区块链网络中所使用的节点)根据目标对象的对象信息生成的,下面结合图7a和图7b进行描述:
如图7a所示,证明节点是可信的对象文档签发者在区块链网络中所使用的节点,也就是说,前文提及的可信列表中包含证明节点对应的DID标识;(1)持有节点可以向证明节点发送目标对象的对象文档(即DID文档),目标对象的对象文档中可以包括目标对象的对象标识(即DID标识)、目标对象的公钥、以及目标对象的签名信息,目标对象的签名信息可以是持有节点采用目标对象的私钥对目标对象的对象标识和目标对象的公钥加密得到的,也就是说,此时目标对象的对象文档的签发者为目标对象本身,这样的对象文档是不可信的,因此需要将目标对象的对象文档发送至证明节点由可信的证明节点进行签发。(2)证明节点接收到目标对象的对象文档之后,可以对目标对象的对象文档进行验证;其中,证明节点对目标对象的对象文档进行验证可以包括以下至少一种:证明节点可以采用目标对象的公钥对目标对象的签名信息进行验证,证明节点可以对目标对象的对象标识进行验证(例如验证目标对象的对象标识是否唯一存在,是否存在造假)等等;若证明节点对目标对象的对象文档验证通过,可以对目标对象的对象文档进行签名,得到签名后的目标对象的对象文档;证明节点对目标对象的对象文档进行签名可以包括:证明节点可以在目标文档的对象文档中添加证明节点对应的DID标识和证明节点的签名信息,得到签名后的目标对象的对象文档;证明节点的签名信息可以是采用证明节点的私钥对目标对象的对象标识和目标对象的公钥进行加密得到的。(3)证明节点可以将签名后的目标对象的对象文档上传至区块链中进行存储。(4)证明节点可以接收区块链返回的存储结果。(5)证明节点可以向持有节点返回文档签名通知,文档签名通知用于通知持有节点已对目标对象的对象文档进行签名并上传至区块链中存储。通过图7a所示的流程,目标对象的对象文档由可信的证明节点进行签名后上传至区块链中进行存储,这样可以使得区块链中存储的签名后的目标对象的对象文档是安全可信的。
如图7b所示:(1)持有节点可以向发行节点发送对象声明获取请求,对象声明获取请求中可以携带目标对象的对象标识和目标对象的对象信息。(2)发行节点可以基于目标对象的对象标识从区块链中获取目标对象的对象文档(此处的目标对象的对象文档具体可以是指签名后的目标对象的对象文档)。(3)区块链向发行节点返回签名后的目标对象的对象文档。(4)发行节点可以对签名后的目标对象的对象文档进行验证;其中,发行节点对签名后的目标对象的对象文档进行验证可以包括:发行节点采用证明节点的公钥对证明节点的签名信息进行验证。(5)若对签名后的目标对象的对象文档验证通过,则发行节点可以根据目标对象的对象信息生成目标对象的对象声明数据。其中,发行节点根据目标对象的对象信息生成目标对象的对象声明数据的过程可以包括:首先,发行节点可以根据目标对象的对象信息生成目标对象的默克尔树(具体可参见上述图4所示实施例中描述的默克尔树的生成过程);其次,发行节点可以采用发行节点的私钥对默克尔树的根哈希进行加密,得到默克尔树的根签名;然后,发行节点可以根据目标对象的对象信息、在目标对象的默克尔树中为对象信息中的每个目标数据分配的混淆数据、目标对象的默克尔树的根哈希、目标对象的默克尔树的根签名、以及发行节点的DID标识、发行节点的公钥,生成目标对象的对象声明数据。(6)发行节点可以输出目标对象的对象声明数据;其中,发行节点输出目标对象的对象声明数据可以理解为:发行节点将目标对象的对象声明数据上传至区块链中进行存储,并在区块链中将持有节点设置为目标对象的对象声明数据的可见节点;目标对象的对象声明数据的可见节点是指:允许从区块链中获取目标对象的对象声明数据的节点。发行节点除将目标对象的对象声明数据上传至区块链外,还可以将目标对象的默克尔树的根哈希和目标对象的默克尔树的根签名上传至区块链中,以保证目标对象的默克尔树的根哈希和目标对象的默克尔树的根签名不会被篡改。(7)发行节点还可以向持有节点发行对象声明通知,对象声明通知用于通知已将生成的目标对象的对象声明数据并上传至区块链中。通过图7b所示的流程,发行节点在对目标对象的DID标识数据进行确认后,可以根据目标对象的对象信息生成目标对象的对象声明数据,这样可以在确认目标对象为合法对象后再为其生成对象声明数据,提高安全性;并且通过生成目标对象的默克尔树,可以使得目标对象的对象声明数据具备隐藏对象信息的能力。
需要说明的是,本申请实施例提及的将数据上传至区块链中进行存储可以是指将数据发送至区块链网络中的全节点,由全节点将数据上传至区块链中进行存储,由全节点设置数据的可见状态;例如在图7b所示实施例中,若发行节点为全节点,则将目标对象的对象声明数据上传至区块链中进行存储可以是指:由发行节点将目标对象的对象声明数据上传至区块链中进行存储,并由发行节点在区块链中设置目标对象的对象声明数据的可见状态;若发行节点为轻节点,则将目标对象的对象声明数据上传至区块链中进行存储可以是指:发行节点将目标对象的对象数据发送至全节点,由全节点将目标对象的对象声明数据上传至区块链中进行存储,并由全节点在区块链中设置目标对象的对象声明数据的可见状态。其中,全节点是指区块链网络中拥有完整的区块链的节点,全节点需要占用内存同步所有的区块链数据,能够独立校验区块链上的所有交易并实时更新数据,主要负责区块链的交易的广播和验证。另外,图7b所示实施例中将目标对象的对象声明数据上传至区块链,并在区块链中设置目标对象的对象声明数据仅用于示例,在实际应用场景中,发行节点还可以直接将目标对象的对象声明数据发送至持有节点,也就是说,持有节点可以从区块链中获取目标对象的对象声明数据,或者持有节点可以接收发行节点发送的目标对象的对象声明数据。
S602,根据对象声明数据确定数据集合。
在获取到目标对象的对象声明数据之后,持有节点可以根据目标对象的对象声明数据确定数据集合。为了便于理解本申请实施例中根据目标对象的对象声明数据确定数据集合的过程,可以将目标对象的对象信息中包括的目标数据的数量表示为M个,即目标对象的对象信息中可以包括M个目标数据,M为大于1的整数。
根据目标对象的对象声明数据确定的数据集合中可以包括N个对象数据对,N个对象数据对的每个对象数据对中可以包括一个目标数据和一个目标数据的验证数据,数据集合中包括的N个目标数据可以是从M个目标数据中选择确定的,N为小于或等于M的正整数。其中,N个目标数据可以是按照验证节点发送的对象验证请求所指示的对象数据类型从M个目标数据中选择确定的,或者N个目标数据可以是响应于对M个目标数据的选择操作从M个目标数据中选择确定的,下面分别对这两种情况进行介绍:
(1)N个目标数据可以是按照验证节点发送的对象验证请求所指示的对象数据类型从M个目标数据中选择确定的。具体来说,持有节点可以接收验证节点(即Verifier在区块链网络中所使用的节点)发送的对象验证请求,对象验证请求中可以携带请求验证的对象数据类型;持有节点可以按照对象数据类型的指示,从M个目标数据中选择与对象数据类型相匹配的N个目标数据;然后,持有节点可以获取N个目标数据中每个目标数据的验证数据,并根据N个目标数据和每个目标数据的验证数据,确定N个对象数据对,即确定数据集合。举例来说,对象验证请求中携带的对象数据类型为基本信息类型,则从目标对象的对象信息中选择与基本信息类型匹配的目标数据。又如,对象验证请求中携带的对象数据类型为求职信息类型,则从目标对象的对象信息中选择与求职信息类型匹配的目标数据。通过这种方式,可以按需选择披露于对象验证数据中的目标数据,未选择的目标数据对于对象验证数据是隐藏的。
(2)N个目标数据可以是响应于对M个目标数据的选择操作从M个目标数据中选择确定的。具体来说,持有节点可以显示对象信息选择界面,对象信息选择界面中可以显示有M个目标数据;持有节点可以响应于在对象信息选择界面中对M个目标数据的选择操作,确定选择操作所选中的N个目标数据;然后,持有节点可以获取N个目标数据中每个目标数据的验证数据,并根据N个目标数据和每个目标数据的验证数据,确定N个对象数据对,即确定数据集合。示例性的对象信息选择界面如图7c所示,对象信息选择界面显示的目标对象的对象信息包括的目标数据为目标数据1-目标数据8,选择操作所选中的目标数据为目标数据1-目标数据4。通过这种方式,可以自主选择选择披露于对象验证数据中的目标数据,未选择的目标数据对于对象验证数据是隐藏的。
以上内容对从M个目标数据中选择确定N个目标数据的两种方式进行介绍,下面重点介绍目标数据的验证数据,N个目标数据中每个目标数据的验证数据可以是不同或相同的,分别如下描述:
(1)N个目标数据中每个目标数据的验证数据可以是不同的,也就是说,N个目标数据中每个目标数据各自对应不同的验证数据。在此以N个对象数据对中的第i个对象数据对中的目标数据的验证数据为例进行说明,N个对象数据对中除第i个对象数据对外的其他对象数据对中的目标数据的验证数据均可参见第i个对象数据对中的目标数据的验证数据。第i个对象数据对中可以包括第i个目标数据和第i个目标数据的验证数据,第i个目标数据的验证数据中可以包括以下至少一种:在目标对象的默克尔树中为第i个目标数据分配的混淆数据、在目标对象的默克尔树中确定的第i个目标数据对应的索引数据、以及在目标对象的默克尔树中确定的第i个目标数据对应的验证信息(即验证路径);目标对象的默克尔树是可以根据M个目标数据确定的,i为小于或等于N的正整数。其中,第i个目标数据对应的混淆数据可以用于结合第i个目标数据计算第i个目标数据对应的数据哈希;第i个目标数据对应的验证信息用于结合第i个目标数据对应的数据哈希计算第i个对象数据对的验证哈希。以图4所示的默克尔树为例,从4个目标数据中选择确定的目标数据为目标数据2和目标数据4;目标数据2的验证数据中可以包括:混淆数据2、目标数据2对应的索引数据、目标数据2对应的验证路径[N0,N5];目标数据4的验证数据中可以包括:混淆数据4、目标数据4对应的索引数据、目标数据4对应的验证路径[N2,N4]。
(2)N个目标数据中每个目标数据的验证数据可以是相同的,也就是说,N个目标数据可以对应同一个验证数据。该同一个验证数据可以包括以下至少一种:在目标对象的默克尔树中为N个目标数据各自分配的混淆数据、在目标对象的默克尔树中确定的N个目标数据各自对应的索引数据、在目标对象的默克尔树中确定的N个目标数据对应的共同验证信息(即共同验证路径),也就是说,N个目标数据对应的验证路径可以是同一条。其中,N个目标数据各自分配的混淆数据、N个目标数据各自对应的索引数据、N个目标数据对应的共同验证信息可以用于计算N个对象数据对共同的验证哈希。以图4所示的默克尔树为例,从4个目标数据中选择的目标数据为目标数据2和目标数据4;目标数据2和目标数据4共同的验证数据中可以包括:混淆数据2、混淆数据4、目标数据2对应的索引数据、目标数据4对应的索引数据、以及共同验证路径[N0,N2]。
S603,根据数据集合生成对象验证数据。
在根据对象声明数据确定数据集合之后,持有节点可以根据数据集合生成对象验证数据。根据数据集合生成对象验证数据可以包括以下两种中的任一种:①直接根据数据集合生成对象验证数据,对象验证数据中可以包括数据集合,即对象验证数据中可以包括对象数据对(即N个对象数据对)。②根据数据集合、目标对象对应的根哈希(即前文中所提及的目标对象的默克尔树的根哈希)以及目标对象对应的根签名(即前文中所提及的目标对象的默克尔树的根签名)生成对象验证数据,对象验证数据中可以包括:数据集合、目标对象对应的根哈希以及目标对象对应的根签名,即对象验证数据中可以包括:对象数据对(即N个对象数据对)、目标对象对应的根哈希以及目标对象对应的根签名。
其中,目标对象对应的根哈希是在目标对象的默克尔树中确定的,目标对象对应的根签名可以是采用生成对象声明数据的发行节点的私钥对目标对象对应的根哈希进行加密得到的。目标对象对应的根签名可以用于对目标对象对应的根哈希进行验证;在采用目标对象对应的根签名对目标对象对应的根哈希验证通过后,目标对象对应的根哈希可以用于对数据集合中包括的对象数据对的验证哈希进行验证。
S604,提交对象验证数据对应的验证表达数据,验证表达数据包括待验证对象数据对,在进行对象验证的过程中,若根据待验证对象数据对中的目标数据和目标数据的验证数据得到与目标对象对应的根哈希匹配的验证哈希,则确定对目标对象验证通过。
在根据数据集合生成对象验证数据之后,持有节点可以提交对象验证数据对应的验证表达数据。可以理解的是,生成的对象验证数据中包含的目标数据存在被篡改的可能,因此生成的对象验证数据与提交的对象验证数据可能存在不相同的情况,为了便于表达这种不相同的情况,在此将提交的对象验证数据表示为对象验证数据对应的验证表达数据;也就是说,若生成的对象验证数据未被篡改,即生成的对象验证数据与提交的对象验证数据为同一个数据,则验证表达数据就是对象验证数据;若生成的对象验证数据被篡改,即生成的对象验证数据与提交的对象验证数据为不同的数据,则验证表达数据是篡改后的对象验证数据。
其中,提交对象验证数据对应的验证表达数据可以包括以下任一种:将验证表达数据上传至区块链中,以及在区块链中将验证节点设置为验证表达数据的可见节点,验证表达数据的可见节点是指允许从区块链中获取验证表达数据的节点,也就是说,验证节点可以从区块链中获取其可见的验证表达数据;或者,将验证表达数据发送至验证节点,也就是说,验证节点可以接收持有及诶单发送的验证表达数据。验证表达数据可以包括待验证对象数据对,待验证对象数据对与对象数据对对应,在基于验证表达数据对目标对象进行对象验证的过程中,若根据待验证对象数据对中的目标数据和目标数据的验证数据得到与目标对象对应的根哈希匹配的验证哈希,则可以确定对目标对象验证通过。
本申请实施例中步骤S601至步骤S604所描述的根据目标对象的对象声明数据生成目标对象的对象验证数据的过程可总结为图7d所示的流程图:(1)持有节点可以向区块链请求获取目标对象的对象声明数据(或者,持有节点可以接收发行节点发送的目标对象的对象声明数据)。(2)区块链向持有节点返回目标对象的对象声明数据。(3)持有节点可以从目标对象的对象声明数据中包含的多个目标数据中选择确定需要验证的目标数据(即N个目标数据),并根据需要验证的目标数据、在目标对象的默克尔树中为需要验证的目标数据分配的混淆数据、在目标对象的默克尔树中确定的需要验证的目标数据对应的索引数据、以及在目标对象的默克尔树中确定的需要验证的目标数据对应的验证路径,生成目标对象的对象验证数据。(4)持有节点可以将对象验证数据对应的验证表达数据上传至区块链中,并在区块链中将验证节点设置为验证表达数据的可见节点(或者,持有节点可以将对象验证数据对应的验证表达数据发送至验证节点)。(5)区块链向持有节点返回上传成功通知,上传成功通知用于通知已成功存储验证表达数据、以及已成功设置验证表达数据的可见状态。
本申请实施例中,目标对象的默克尔树通过混淆数据目标数据进行混淆拼接,可以基于目标对象的默克尔树生成具备对象信息隐藏功能的目标对象的对象声明数据,以及可以基于目标对象的默克尔树生成具备对象信息隐藏功能的目标对象的对象验证数据,从而可以披露需要验证的目标数据,隐藏不需要验证的目标数据,能够做到对象信息的最小化披露,对象数据安全的最大化保护。
本申请实施例提出一种基于区块链的数据处理方法,该基于区块链的数据处理方法主要介绍基于VP数据的对象验证流程,该基于区块链的数据处理方法可以由验证节点执行,本申请实施例提及的验证节点是指Verifier在区块链网络中使用的节点。如图8所示,该基于区块链的数据处理方法可以包括以下步骤S801-步骤S803:
S801,获取持有节点提交的验证表达数据,验证表达数据中包括待验证对象数据对。
验证节点可以从区块链中获取持有节点提交至区块链中的验证表达数据,或者,验证节点可以接收持有节点发送的验证表达数据。其中,验证表达数据与持有节点生成的对象验证数据对应,对象验证数据可以是根据数据集合生成的,数据集合可以是根据目标对象的对象声明数据中包括的目标对象的对象信息确定的,对象信息可以包括M个目标数据;数据集合中可以包括对象数据对,每个对象数据对可以包括一个目标数据和一个目标数据的验证数据,数据集合中的N个目标数据可以是从M个目标数据中选择确定的,M为大于1的整数,N为小于或等于M的正整数。
S802,根据待验证对象数据对中的目标数据和目标数据的验证数据,确定待验证对象数据对的验证哈希。
在获取到持有节点提交的验证表达数据之后,验证节点可以根据验证表达数据中包含的待验证对象数据对中的目标数据和目标数据的验证数据,确定待验证对象数据对的验证哈希。由前述内容可知,对象验证数据中可以包括N个对象数据对,则验证表达数据中包含的待验证对象数据对的数量可以为N个,即验证表达数据中可以包括N个待验证对象数据对,N个待验证对象数据对中的每个待验证对象数据对可以包括一个目标数据和一个目标数据的验证数据。
对于N个待验证对象数据对中的每个目标数据的验证数据不同的情况而言,根据待验证对象数据对中的目标数据和目标数据的验证数据,确定待验证对象数据对的验证哈希,可以包括:根据N个待验证对象数据对中每个对象数据对中的目标数据和目标数据的验证数据,确定N个待验证数据对的验证哈希。为了便于理解验证哈希的计算过程,在此以N个待验证对象数据对中的第i个待验证对象数据对的验证哈希的计算过程为例进行介绍,N个待验证对象数据对中除第i个待验证对象数据对外的其他待验证对象数据对的验证哈希的计算过程,均可参见第i个待验证对象数据对的验证哈希的计算过程,i为小于或等于N的正整数;第i个待验证对象数据对包括第i个目标数据和第i个目标数据的验证数据,第i个目标数据的验证数据中可以包括以下至少一项:在目标对象的默克尔树中为第i个目标数据分配的混淆数据、以及在目标对象的默克尔树中确定的第i个目标数据对应的验证信息(即验证路径);目标对象的默克尔树是根据M个目标数据确定的。根据第i个目标数据和第i个目标数据的验证数据,确定第i个待验证对象数据对的验证哈希的过程,可以包括:将混淆数据与第i个目标数据进行拼接处理,得到拼接数据;对拼接数据进行哈希计算,得到第i个目标数据对应的数据哈希;根据第i个目标数据对应的数据哈希和第i个目标数据对应的验证信息,计算第i个对象数据对的验证哈希。其中,根据第i个目标数据对应的数据哈希和第i个目标数据对应的验证信息,计算第i个对象数据对的验证哈希的过程可以包括:根据第i个目标数据对应的数据哈希、第i个目标数据对应的索引数据和第i个目标数据对应的验证信息,计算第i个对象数据对的验证哈希。
对于N个待验证对象数据对中的每个目标数据的验证数据相同的情况而言,即N个待验证对象数据对对应同一个验证数据,根据待验证对象数据对中的目标数据和目标数据的验证数据,确定待验证对象数据对的验证哈希,可以包括:根据N个待验证对象数据对中的N个目标数据和同一个验证数据,确定N个待验证对象数据对共同的验证哈希。其中,同一个验证数据中可以包括以下至少一项:在目标对象的默克尔树中为N个目标数据各自分配的混淆数据、在目标对象的默克尔树中确定的N个目标数据各自对应的索引数据、在目标对象的默克尔树中确定的N个目标数据对应的共同验证信息(即共同验证路径)。根据N个待验证对象数据对中的N个目标数据和同一个验证数据,确定N个待验证对象数据对共同的验证哈希的过程可以包括:将为N个目标数据各自分配的混淆数据与对应目标数据进行拼接,得到N个拼接数据;对N个拼接数据分别进行哈希计算,得到N个数据哈希,根据N个数据哈希和共同验证信息,计算N个待验证对象数据对共同的验证哈希。其中,根据N个数据哈希和共同验证信息,计算N个待验证对象数据对共同的验证哈希的过程可以包括:根据N个数据哈希、N个目标数据各自对应的索引数据、以及共同验证路径,计算N个待验证对象数据对共同的验证哈希。
S803,若待验证对象数据对的验证哈希与目标对象对应的根哈希匹配,则确定对目标对象验证通过。
在根据待验证对象数据对中的目标数据和目标数据的验证数据,确定待验证对象数据对的验证哈希之后,验证节点可以将待验证对象数据对的验证哈希与目标对象对应的根哈希进行匹配检查,若待验证对象数据对的验证哈希与目标对象对应的根哈希匹配,则验证节点可以确定对目标对象验证通过。其中,目标对象对应的根哈希是指目标对象的默克尔树的根哈希,目标对象对应的根哈希可以包含于验证表达数据中,或者目标对象对应的根哈希可以被上传至区块链中进行存储。
当目标对象对应的根哈希可以包含于验证表达数据时,验证表达数据中还可以包含目标对象对应的根签名,目标对象对应的根签名可以是采用生成目标对象的对象声明数据的发行节点的私钥对目标对象对应的根哈希进行加密得到的;在此情况中下,可以采用发行节点的公钥对目标对象对应的根签名进行解密,得到目标对象对应的解密哈希,若目标对象对应的解密哈希与目标对象对应的根哈希匹配,则可以确定对目标对象对应的根哈希验证通过;在对目标对象对应的根哈希验证通过后,可以将待验证对象数据对的验证哈希与目标对象对应的根哈希进行匹配检查,通过采用目标对象对应的根签名对目标对象对应的根哈希进行验证,可以确保用于进行对象验证的目标对象对应的根哈希是可靠的。或者,当目标对象对应的根哈希被上传至区块链中进行存储时,可以从区块链中获取目标对象对应的根哈希,可以将待验证对象数据对的验证哈希与目标对象对应的根哈希进行匹配检查,存储在区块链中的目标对象对应的根哈希是不可被篡改的,这样可以确保用于进行对象验证的目标对象对应的根哈希是可靠的。
对于N个待验证对象数据对中的每个目标数据的验证数据不同的情况而言,将待验证对象数据对的验证哈希与目标对象对应的根哈希进行匹配检查是指:将N个待验证对象数据对的验证哈希分别与目标对象对应的根哈希进行匹配检查;待验证对象数据对的验证哈希与目标对象对应的根哈希匹配是指:N个待验证对象数据对的验证哈希均与目标对象对应的根哈希匹配。而对于N个待验证对象数据对中的每个目标数据的验证数据相同的情况而言,将待验证对象数据对的验证哈希与目标对象对应的根哈希进行匹配检查是指:将N个待验证对象数据对共同的验证哈希与目标对象对应的根哈希进行匹配检查;待验证对象数据对的验证哈希与目标对象对应的根哈希匹配是指:N个待验证对象数据对共同的验证哈希与目标对象对应的根哈希匹配。
另外,在采用发行节点的公钥对目标对象对应的根签名进行解密,得到目标对象对应的解密哈希之前,验证节点还可以获取持有节点生成的第一签名信息、发行节点生成的第二签名信息和目标对象的对象文档,目标对象的对象文档中可以包含目标对象的公钥,第一签名信息可以是采用目标对象的私钥对验证表达数据进行加密得到的,第二签名信息可以是采用发行节点的私钥对对象声明数据进行加密得到的,目标对象的对象文档中包含目标对象的公钥;更具体地,第一签名信息、第二签名信息和目标对象的对象文档(此处具体可以是指签名后的目标对象的对象文档)可以是验证节点从区块链中获取的,第一签名信息可以是持有节点上传至区块链中的,第二签名信息可以是发行节点上传至区块链中的,目标对象的对象文档可以是证明节点上传至区块链中的。其次,验证节点可以采用目标对象的公钥对第一签名信息进行验证,若采用目标对象的公钥对第一签名信息对第一签名信息验证通过,则验证节点可以获取发行节点的对象文档,发行节点的对象文档中可以包括发行节点的公钥。然后,若验证节点确定发行节点的对象文档是根据可信列表中的可信标识所签发的,即确定发行节点的对象文档的签发者是可信的,则验证节点可以根据发行节点的公钥对第二签名信息进行验证;若对第二签名信息验证通过,则验证节点可以采用发行节点的公钥对目标对象对应的根签名进行解密,得到用于验证目标对象对应的根哈希的目标对象对应的解密哈希。需要说明的是,验证节点可以采用发行节点的公钥对第二签名信息进行验证,但是不能获取到目标对象的对象声明数据。
类似地,从区块链中获取目标对象对应的根哈希进行对象验证之前,验证节点还可以获取持有节点生成的第一签名信息、发行节点生成的第二签名信息和目标对象的对象文档,目标对象的对象文档中可以包含目标对象的公钥,第一签名信息可以是采用目标对象的私钥对验证表达数据进行加密得到的,第二签名信息可以是采用发行节点的私钥对对象声明数据进行加密得到的,目标对象的对象文档中包含目标对象的公钥。其次,验证节点可以采用目标对象的公钥对第一签名信息进行验证,若采用目标对象的公钥对第一签名信息对第一签名信息验证通过,则验证节点可以获取发行节点的对象文档。然后,若验证节点确定发行节点的对象文档是根据可信列表中的可信标识所签发的,即确定发行节点的对象文档的签发者是可信的,则验证节点可以从区块链中获取用于进行对象验证的目标对象对应的根哈希。
对于验证表达数据中除包含N个待验证数据对外,还包括目标对象对应的根哈希和目标对象对应的根签名的情况,验证节点进行对象验证的完整流程可参见图9:(1)验证节点从区块链中获取持有节点提交的验证表达数据。(2)验证节点从区块链中获取目标对象的对象文档,目标对象的对象文档中包含目标对象的公钥。(3)验证节点采用目标对象的公钥对验证表达数据的签名信息(即上述第一签名信息)进行验证。(4)若对验证表达数据的签名信息验证通过,则验证节点从区块链中获取发行节点的对象文档,发行节点的对象文档中包括发行节点的公钥。(5)验证节点确定发行节点的对象文档是根据可信列表中的可信标识所签发的。(6)验证节点采用发行节点的公钥对对象声明数据的签名信息(即上述第二签名信息)进行验证。(7)若对对象声明数据的签名信息验证通过,则验证节点可以采用发行节点的公钥对验证表达数据中的目标对象对应的根哈希进行验证。(8)若对目标对象对应的根哈希验证通过,则验证节点可以根据验证表达数据包括的待验证对象数据对中的目标数据和目标数据的验证数据,确定待验证对象数据对的验证哈希。(9)若待验证对象数据对的验证哈希与目标对象对应的根哈希匹配,则确定对目标对象验证通过。
本申请实施例中,通过判断根据验证表达数据包含的待验证对象数据对中的目标数据和目标数据的验证数据确定的待验证对象数据对的验证哈希,与目标对象对应的根哈希(即默克尔树的真实根哈希)是否匹配,可以确定验证表达数据中选择披露的目标数据是否被篡改,从而可以验证选择披露的目标数据的正确性,而未选择的目标数据对于验证表达数据是隐藏的,有利于在对象验证过程中保护对象的数据安全。另外,在对验证表达数据中选择披露的目标数据验证之前,还可以对验证表达数据的签名信息、对象声明数据的签名信息、发行节点的对象文档进行验证,这样可以进一步确定对象验证结果的可靠性。
基于上述方法实施例的描述,下面结合图10对本申请实施例使用的基于区块链的数据处理场景介绍:
(1)求职对象可以向DID验证系统中的可信对象提交求职对象的对象文档,可信对象在对求职对象的对象文档验证通过后,可以对求职对象的对象文档进行签名,并将签名后的求职对象的对象文档上传至区块链中,签名后的求职对象的对象文档在DID验证系统中是可信的。
(2)求职对象向学校提交求职对象的对象标识和求职对象的对象信息,请求学校根据求职对象的对象信息生成具备隐藏功能的VC数据。学校可以根据求职对象的对象标识从区块链中获取签名后的求职对象的对象文档,学校在对签名后的求职对象的对象文档验证通过后,可以根据求职对象的对象信息生成具备隐藏功能的VC数据,并将具备隐藏功能的VC数据上传至区块链中,并在区块链中设置具备隐藏功能的VC数据对于求职对象可见。
(3)求职对象可以从区块链中获取具备隐藏功能的VC数据,然后可以根据求职需求,从具备隐藏功能的VC数据选择求职需要的目标数据,并根据求职需要的目标数据生成具备隐藏功能的VP数据。求职对象可以将具备隐藏功能的VP数据上传至区块链中,并在区块链中设置具备隐藏功能的VP数据对于求职对象的求职单位可见。
(4)求职对象的求职单位中的招聘对象可以从区块链中获取具备隐藏功能的VP数据,求职单位可以验证具备隐藏功能的VP数据是否为求职对象提交的,验证学校的DID文档是否为可信对象签发的,验证具备隐藏功能的VC数据是否为学校生成的,验证具备隐藏功能的VP数据中的根哈希是否正确,验证具备隐藏功能的VP数据中的求职需要的目标数据的正确,在上述5次验证均通过后,求职单位可以确定对求职对象验证通过,可以通知求职对象入职。
通过上述场景可见,在求职对象进行求职的过程中,求职对象可以选择性披露求职需要验证的目标数据,隐藏求职不需要验证的目标数据,招聘对象可以对求职需要验证的目标数据的正确性进行验证,从而可以在对求职需要验证的目标数据的正确性进行验证的同时,保护对象的数据安全。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
请参见图11,图11是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图,该基于区块链的数据处理装置可以设置于本申请实施例提供的计算机设备中。
在一个实施例中,该基于区块链的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),该计算机设备可以是前述所提及的持有节点,该基于区块链的数据处理装置可以用于执行图6所示的方法实施例中的相应步骤。请参见图11,该基于区块链的数据处理装置可以包括如下单元:
获取单元1101,用于获取目标对象的对象声明数据,对象声明数据包括目标对象的对象信息,对象信息包括M个目标数据,M为大于1的整数;根据对象声明数据确定数据集合,数据集合中包括对象数据对,每个对象数据对包括一个目标数据和一个目标数据的验证数据,数据集合中的N个目标数据是从M个目标数据中选择确定的,N为小于或等于M的正整数;
处理单元1102,用于根据数据集合生成目标对象的对象验证数据,对象验证数据中包括对象数据对;提交对象验证数据对应的验证表达数据,验证表达数据包括待验证对象数据对;其中,在进行验证的过程中,若根据待验证对象数据对中的目标数据和目标数据的验证数据得到与目标对象对应的根哈希匹配的验证哈希,则确定对目标对象验证通过。
在一种实现方式中,对象数据对的数量为N个,N个对象数据对中的第i个对象数据对包括第i个目标数据和第i个目标数据的验证数据;第i个目标数据的验证数据包括:在目标对象的默克尔树中为第i个目标数据分配的混淆数据、以及在目标对象的默克尔树中确定的第i个目标数据对应的验证信息;目标对象的默克尔树是根据M个目标数据确定的,i为小于或等于N的正整数;其中,混淆数据用于结合第i个目标数据计算第i个目标数据对应的数据哈希;第i个目标数据对应的验证信息用于结合第i个目标数据对应的数据哈希计算第i个对象数据对的验证哈希。
在一种实现方式中,对象验证数据中还包括:目标对象对应的根哈希和目标对象对应的根签名;目标对象对应的根哈希是在目标对象的默克尔树中确定的,目标对象对应的根签名是采用生成对象声明数据的发行节点的私钥对目标对象对应的根哈希进行加密得到的,目标对象对应的根签名用于对目标对象对应的根哈希进行验证;在采用目标对象对应的根签名对目标对象对应的根哈希验证通过后,目标对象对应的根哈希用于对对象验证数据中的对象数据对的验证哈希进行验证。
在一种实现方式中,对象数据对的数量为N个;处理单元1102,用于根据对象声明数据确定数据集合时,具体用于执行如下步骤:
接收验证节点发送的对象验证请求,对象验证请求中携带请求验证的对象数据类型;按照对象数据类型的指示,从M个目标数据中选择与对象数据类型相匹配的N个目标数据;获取N个目标数据中每个目标数据的验证数据;根据N个目标数据和每个目标数据的验证数据,确定N个对象数据对。
在一种实现方式中,对象数据对的数量为N个,数据集合包括N个对象数据对;处理单元1102,用于根据对象声明数据确定数据集合时,具体用于执行如下步骤:
显示对象信息选择界面,对象信息选择界面中显示有M个目标数据;响应于在对象信息选择界面中对M个目标数据的选择操作,确定选择操作所选中的N个目标数据;获取N个目标数据中每个目标数据的验证数据;根据N个目标数据和每个目标数据的验证数据,确定N个对象数据对。
在一种实现方式中,处理单元1102,还用于执行如下步骤:
向发行节点发送对象声明获取请求,对象声明获取请求中携带目标对象的对象标识和目标对象的对象信息;其中,对象声明获取请求用于触发发行节点基于目标对象的对象标识获取目标对象的对象文档进行验证,并在对目标对象的对象文档验证通过后,根据目标对象的对象信息生成目标对象的对象声明数据,并输出对象声明数据。
在一种实现方式中,处理单元1102,用于提交对象验证数据对应的验证表达数据时,具体用于执行如下步骤:
将验证表达数据上传至区块链中,以及在区块链中将验证节点设置为验证表达数据的可见节点,验证表达数据的可见节点是指允许从区块链中获取验证表达数据的节点。
在另一个实施例中,该基于区块链的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),该计算机设备可以是前述所提及的验证节点,该基于区块链的数据处理装置可以用于执行图8所示的方法实施例中的相应步骤。请参见图11,该基于区块链的数据处理装置可以包括如下单元:
获取单元1101,用于获取持有节点提交的验证表达数据;验证表达数据与持有节点生成的对象验证数据对应,验证表达数据包括待验证对象数据对;
处理单元1102,用于根据待验证对象数据对中的目标数据和目标数据的验证数据,确定待验证对象数据对的验证哈希;若待验证对象数据对的验证哈希与目标对象对应的根哈希匹配,则确定对目标对象验证通过;
其中,对象验证数据是根据数据集合生成的,数据集合是根据目标对象的对象声明数据中包括的目标对象的对象信息确定的,对象信息包括M个目标数据;数据集合中包括对象数据对,每个对象数据对包括一个目标数据和一个目标数据的验证数据,数据集合中的N个目标数据是从M个目标数据中选择确定的,M为大于1的整数,N为小于或等于M的正整数;
在一种实现方式中,待验证对象数据对的数量为N个,验证表达数据包括N个待验证对象数据对;验证表达数据中还包括:目标对象对应的根哈希以及目标对象对应的根签名;目标对象对应的根签名是采用生成对象声明数据的发行节点的私钥对目标对象对应的根哈希进行加密得到的;处理单元1102,还用于执行如下步骤:
采用发行节点的公钥对目标对象对应的根签名进行解密,得到目标对象对应的解密哈希;若目标对象对应的解密哈希与目标对象对应的根哈希相匹配,则确定对目标对象对应的根哈希验证通过;其中,在对目标对象对应的根哈希验证通过后,待验证对象数据对的验证哈希与目标对象对应的根哈希匹配是指:N个待验证对象数据对的验证哈希均与目标对象对应的根哈希匹配。
在一种实现方式中,处理单元1102,用于采用发行节点的公钥对目标对象对应的根签名进行解密,得到目标对象对应的解密哈希之前,还用于执行如下步骤:
获取持有节点生成的第一签名信息、发行节点生成的第二签名信息和目标对象的对象文档,第一签名信息是采用目标对象的私钥对验证表达数据进行加密得到的,第二签名信息是采用发行节点的私钥对对象声明数据进行加密得到的,目标对象的对象文档中包含目标对象的公钥;若采用目标对象的公钥对第一签名信息验证通过,则获取发行节点的对象文档;发行节点的对象文档中包括发行节点的公钥;若确定发行节点的对象文档是根据可信列表中的可信标识签发的,则根据发行节点的公钥对第二签名信息进行验证;若对第二签名信息验证通过,则触发执行采用发行节点的公钥对目标对象对应的根签名进行解密,得到目标对象对应的解密哈希的步骤。
在一种实现方式中,待验证对象数据对的数量为N个,验证表达数据包括N个待验证对象数据对;目标对象对应的根哈希被上传至区块链中进行存储;处理单元1102,还用于执行如下步骤:
从区块链中获取目标对象对应的根哈希;其中,待验证对象数据对的验证哈希与目标对象对应的根哈希匹配是指:N个待验证对象数据对的验证哈希均与目标对象对应的根哈希匹配。
在一种实现方式中,待验证对象数据对的数量为N个,验证表达数据包括N个待验证对象数据对;N个待验证对象数据对中的第i个待验证对象数据对包括第i个目标数据和第i个目标数据的验证数据,i为小于或等于N的正整数;第i个目标数据的验证数据包括:在目标对象的默克尔树中为第i个目标数据分配的混淆数据、以及在目标对象的默克尔树中确定的第i个目标数据对应的验证信息;目标对象的默克尔树是根据M个目标数据确定的;处理单元1102,用于根据第i个目标数据和第i个目标数据的验证数据,确定第i个待验证对象数据对的验证哈希的时,具体用于执行如下步骤:
将混淆数据与第i个目标数据进行拼接处理,得到拼接数据;对拼接数据进行哈希计算,得到第i个目标数据对应的数据哈希;根据第i个目标数据对应的数据哈希和第i个目标数据对应的验证信息,计算第i个待验证对象数据对的验证哈希。
根据本申请的另一个实施例,图11所示的基于区块链的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于区块链的数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图6或图8所示的相应方法所涉及的各步骤的计算机程序(包括程序代码)来构造如图11中所示的基于区块链的数据处理装置,以及来实现本申请实施例的基于区块链的数据处理方法。计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
本申请实施例中,可以根据选择性披露的对象信息生成对象验证数据,然后可以根据对象验证数据对应的验证表达数据中选择性披露的对象信息进行对象验证,未被选择的对象信息在对象验证过程中是隐藏的,这样有利于在对象验证过程中保护对象的数据安全。
基于上述方法以及装置实施例,本申请实施例提供了一种计算机设备,请参见图12,图12是本申请实施例提供的一种计算机设备的结构示意图。图12所示的计算机设备至少包括处理器1201、输入接口1202、输出接口1203以及计算机可读存储介质1204。其中,处理器1201、输入接口1202、输出接口1203以及计算机可读存储介质1204可通过总线或其他方式连接。
输入接口1202可以用于获取目标对象的对象声明数据,获取持有节点提交的验证表达数据等等;输出接口1203可以用于提交验证表达数据、输出对象声明数据等等。
计算机可读存储介质1204可以存储在计算机设备的存储器中,计算机可读存储介质1204用于存储计算机程序,计算机程序包括计算机指令,处理器1201用于执行计算机可读存储介质1204存储的程序指令。处理器1201(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条计算机指令,具体适于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。
本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或多条的计算机指令,这些计算机指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(Non-VolatileMemory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机可读存储介质。
在一个实施例中,计算机设备可以是前述提及的持有节点,可由处理器1201加载并执行计算机可读存储介质1204中存放的一条或多条计算机指令,以实现上述有关图6所示的基于区块链的数据处理方法的相应步骤。具体实现中,计算机可读存储介质1204中的计算机指令由处理器1201加载并执行如下步骤:
获取目标对象的对象声明数据,对象声明数据包括目标对象的对象信息,对象信息包括M个目标数据,M为大于1的整数;根据对象声明数据确定数据集合,数据集合中包括对象数据对,每个对象数据对包括一个目标数据和一个目标数据的验证数据,数据集合中的N个目标数据是从M个目标数据中选择确定的,N为小于或等于M的正整数;
根据数据集合生成目标对象的对象验证数据,对象验证数据中包括对象数据对;提交对象验证数据对应的验证表达数据,验证表达数据包括待验证对象数据对;其中,在进行验证的过程中,若根据待验证对象数据对中的目标数据和目标数据的验证数据得到与目标对象对应的根哈希匹配的验证哈希,则确定对目标对象验证通过。
在一种实现方式中,对象数据对的数量为N个,N个对象数据对中的第i个对象数据对包括第i个目标数据和第i个目标数据的验证数据;第i个目标数据的验证数据包括:在目标对象的默克尔树中为第i个目标数据分配的混淆数据、以及在目标对象的默克尔树中确定的第i个目标数据对应的验证信息;目标对象的默克尔树是根据M个目标数据确定的,i为小于或等于N的正整数;其中,混淆数据用于结合第i个目标数据计算第i个目标数据对应的数据哈希;第i个目标数据对应的验证信息用于结合第i个目标数据对应的数据哈希计算第i个对象数据对的验证哈希。
在一种实现方式中,对象验证数据中还包括:目标对象对应的根哈希和目标对象对应的根签名;目标对象对应的根哈希是在目标对象的默克尔树中确定的,目标对象对应的根签名是采用生成对象声明数据的发行节点的私钥对目标对象对应的根哈希进行加密得到的,目标对象对应的根签名用于对目标对象对应的根哈希进行验证;在采用目标对象对应的根签名对目标对象对应的根哈希验证通过后,目标对象对应的根哈希用于对对象验证数据中的对象数据对的验证哈希进行验证。
在一种实现方式中,对象数据对的数量为N个;计算机可读存储介质1204中的计算机指令由处理器1201加载并执行根据对象声明数据确定数据集合时,具体用于执行如下步骤:
接收验证节点发送的对象验证请求,对象验证请求中携带请求验证的对象数据类型;按照对象数据类型的指示,从M个目标数据中选择与对象数据类型相匹配的N个目标数据;获取N个目标数据中每个目标数据的验证数据;根据N个目标数据和每个目标数据的验证数据,确定N个对象数据对。
在一种实现方式中,对象数据对的数量为N个,数据集合包括N个对象数据对;计算机可读存储介质1204中的计算机指令由处理器1201加载并执行根据对象声明数据确定数据集合时,具体用于执行如下步骤:
显示对象信息选择界面,对象信息选择界面中显示有M个目标数据;响应于在对象信息选择界面中对M个目标数据的选择操作,确定选择操作所选中的N个目标数据;获取N个目标数据中每个目标数据的验证数据;根据N个目标数据和每个目标数据的验证数据,确定N个对象数据对。
在一种实现方式中,计算机可读存储介质1204中的计算机指令由处理器1201加载并还用于执行如下步骤:
向发行节点发送对象声明获取请求,对象声明获取请求中携带目标对象的对象标识和目标对象的对象信息;其中,对象声明获取请求用于触发发行节点基于目标对象的对象标识获取目标对象的对象文档进行验证,并在对目标对象的对象文档验证通过后,根据目标对象的对象信息生成目标对象的对象声明数据,并输出对象声明数据。
在一种实现方式中,计算机可读存储介质1204中的计算机指令由处理器1201加载并执行提交对象验证数据对应的验证表达数据时,具体用于执行如下步骤:
将验证表达数据上传至区块链中,以及在区块链中将验证节点设置为验证表达数据的可见节点,验证表达数据的可见节点是指允许从区块链中获取验证表达数据的节点。
在一个实施例中,计算机设备可以是前述提及的验证节点,可由处理器1201加载并执行计算机可读存储介质1204中存放的一条或多条计算机指令,以实现上述有关图8所示的基于区块链的数据处理方法的相应步骤。具体实现中,计算机可读存储介质1204中的计算机指令由处理器1201加载并执行如下步骤:
获取持有节点提交的验证表达数据;验证表达数据与持有节点生成的对象验证数据对应,验证表达数据包括待验证对象数据对;
根据待验证对象数据对中的目标数据和目标数据的验证数据,确定待验证对象数据对的验证哈希;若待验证对象数据对的验证哈希与目标对象对应的根哈希匹配,则确定对目标对象验证通过;
其中,对象验证数据是根据数据集合生成的,数据集合是根据目标对象的对象声明数据中包括的目标对象的对象信息确定的,对象信息包括M个目标数据;数据集合中包括对象数据对,每个对象数据对包括一个目标数据和一个目标数据的验证数据,数据集合中的N个目标数据是从M个目标数据中选择确定的,M为大于1的整数,N为小于或等于M的正整数;
在一种实现方式中,待验证对象数据对的数量为N个,验证表达数据包括N个待验证对象数据对;验证表达数据中还包括:目标对象对应的根哈希以及目标对象对应的根签名;目标对象对应的根签名是采用生成对象声明数据的发行节点的私钥对目标对象对应的根哈希进行加密得到的;计算机可读存储介质1204中的计算机指令由处理器1201加载并还用于执行如下步骤:
采用发行节点的公钥对目标对象对应的根签名进行解密,得到目标对象对应的解密哈希;若目标对象对应的解密哈希与目标对象对应的根哈希相匹配,则确定对目标对象对应的根哈希验证通过;其中,在对目标对象对应的根哈希验证通过后,待验证对象数据对的验证哈希与目标对象对应的根哈希匹配是指:N个待验证对象数据对的验证哈希均与目标对象对应的根哈希匹配。
在一种实现方式中,计算机可读存储介质1204中的计算机指令由处理器1201加载并执行采用发行节点的公钥对目标对象对应的根签名进行解密,得到目标对象对应的解密哈希之前,还用于执行如下步骤:
获取持有节点生成的第一签名信息、发行节点生成的第二签名信息和目标对象的对象文档,第一签名信息是采用目标对象的私钥对验证表达数据进行加密得到的,第二签名信息是采用发行节点的私钥对对象声明数据进行加密得到的,目标对象的对象文档中包含目标对象的公钥;若采用目标对象的公钥对第一签名信息验证通过,则获取发行节点的对象文档;发行节点的对象文档中包括发行节点的公钥;若确定发行节点的对象文档是根据可信列表中的可信标识签发的,则根据发行节点的公钥对第二签名信息进行验证;若对第二签名信息验证通过,则触发执行采用发行节点的公钥对目标对象对应的根签名进行解密,得到目标对象对应的解密哈希的步骤。
在一种实现方式中,待验证对象数据对的数量为N个,验证表达数据包括N个待验证对象数据对;目标对象对应的根哈希被上传至区块链中进行存储;计算机可读存储介质1204中的计算机指令由处理器1201加载并还用于执行如下步骤:
从区块链中获取目标对象对应的根哈希;其中,待验证对象数据对的验证哈希与目标对象对应的根哈希匹配是指:N个待验证对象数据对的验证哈希均与目标对象对应的根哈希匹配。
在一种实现方式中,待验证对象数据对的数量为N个,验证表达数据包括N个待验证对象数据对;N个待验证对象数据对中的第i个待验证对象数据对包括第i个目标数据和第i个目标数据的验证数据,i为小于或等于N的正整数;第i个目标数据的验证数据包括:在目标对象的默克尔树中为第i个目标数据分配的混淆数据、以及在目标对象的默克尔树中确定的第i个目标数据对应的验证信息;目标对象的默克尔树是根据M个目标数据确定的;计算机可读存储介质1204中的计算机指令由处理器1201加载并执行根据第i个目标数据和第i个目标数据的验证数据,确定第i个待验证对象数据对的验证哈希的时,具体用于执行如下步骤:
将混淆数据与第i个目标数据进行拼接处理,得到拼接数据;对拼接数据进行哈希计算,得到第i个目标数据对应的数据哈希;根据第i个目标数据对应的数据哈希和第i个目标数据对应的验证信息,计算第i个待验证对象数据对的验证哈希。
本申请实施例中,可以根据选择性披露的对象信息生成对象验证数据,然后可以根据对象验证数据对应的验证表达数据中选择性披露的对象信息进行对象验证,未被选择的对象信息在对象验证过程中是隐藏的,这样有利于在对象验证过程中保护对象的数据安全。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选方式中提供的基于区块链的数据处理方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术对象在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (17)

1.一种基于区块链的数据处理方法,其特征在于,所述方法包括:
获取目标对象的对象声明数据,所述对象声明数据包括所述目标对象的对象信息,所述对象信息包括M个目标数据,M为大于1的整数;
根据所述对象声明数据确定数据集合,所述数据集合中包括对象数据对,每个对象数据对包括一个目标数据和一个目标数据的验证数据,所述数据集合中的N个目标数据是从所述M个目标数据中选择确定的,N为小于或等于M的正整数;
根据所述数据集合生成所述目标对象的对象验证数据,所述对象验证数据中包括所述对象数据对;
提交所述对象验证数据对应的验证表达数据,所述验证表达数据包括待验证对象数据对;其中,在进行对象验证的过程中,若根据所述待验证对象数据对中的目标数据和目标数据的验证数据得到与所述目标对象对应的根哈希匹配的验证哈希,则确定对所述目标对象验证通过。
2.如权利要求1所述的方法,其特征在于,所述对象数据对的数量为N个,N个对象数据对中的第i个对象数据对包括第i个目标数据和第i个目标数据的验证数据;
所述第i个目标数据的验证数据包括:在所述目标对象的默克尔树中为所述第i个目标数据分配的混淆数据、以及在所述目标对象的默克尔树中确定的所述第i个目标数据对应的验证信息;
所述目标对象的默克尔树是根据所述M个目标数据确定的,i为小于或等于N的正整数;
其中,所述混淆数据用于结合所述第i个目标数据计算所述第i个目标数据对应的数据哈希;所述第i个目标数据对应的验证信息用于结合所述第i个目标数据对应的数据哈希计算所述第i个对象数据对的验证哈希。
3.如权利要求2所述的方法,其特征在于,所述对象验证数据中还包括:所述目标对象对应的根哈希和所述目标对象对应的根签名;
所述目标对象对应的根哈希是在所述目标对象的默克尔树中确定的,所述目标对象对应的根签名是采用生成所述对象声明数据的发行节点的私钥对所述目标对象对应的根哈希进行加密得到的,所述目标对象对应的根签名用于对所述目标对象对应的根哈希进行验证;
在采用所述目标对象对应的根签名对所述目标对象对应的根哈希验证通过后,所述目标对象对应的根哈希用于对所述对象验证数据中的对象数据对的验证哈希进行验证。
4.如权利要求1-3任一项所述的方法,其特征在于,所述对象数据对的数量为N个,所述数据集合包括N个对象数据对;所述根据所述对象声明数据确定数据集合,包括:
接收验证节点发送的对象验证请求,所述对象验证请求中携带请求验证的对象数据类型;
按照所述对象数据类型的指示,从所述M个目标数据中选择与所述对象数据类型相匹配的所述N个目标数据;
获取所述N个目标数据中每个目标数据的验证数据;
根据所述N个目标数据和每个目标数据的验证数据,确定所述N个对象数据对。
5.如权利要求1-3任一项所述的方法,其特征在于,所述对象数据对的数量为N个,所述数据集合包括N个对象数据对;所述根据所述对象声明数据确定数据集合,包括:
显示对象信息选择界面,所述对象信息选择界面中显示有所述M个目标数据;
响应于在所述对象信息选择界面中对所述M个目标数据的选择操作,确定所述选择操作所选中的所述N个目标数据;
获取所述N个目标数据中每个目标数据的验证数据;
根据所述N个目标数据和每个目标数据的验证数据,确定所述N个对象数据对。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
向发行节点发送对象声明获取请求,所述对象声明获取请求中携带所述目标对象的对象标识和所述目标对象的对象信息;
其中,所述对象声明获取请求用于触发所述发行节点基于所述目标对象的对象标识获取所述目标对象的对象文档进行验证,并在对所述目标对象的对象文档验证通过后,根据所述目标对象的对象信息生成所述目标对象的对象声明数据,并输出所述对象声明数据。
7.如权利要求1所述的方法,其特征在于,所述提交所述对象验证数据对应的验证表达数据,包括:
将所述验证表达数据上传至区块链中,以及在所述区块链中将验证节点设置为所述验证表达数据的可见节点,所述验证表达数据的可见节点是指允许从所述区块链中获取所述验证表达数据的节点。
8.一种基于区块链的数据处理方法,其特征在于,所述方法包括:
获取持有节点提交的验证表达数据;所述验证表达数据与所述持有节点生成的对象验证数据对应,所述验证表达数据包括待验证对象数据对;
根据所述待验证对象数据对中的目标数据和目标数据的验证数据,确定所述待验证对象数据对的验证哈希;
若所述待验证对象数据对的验证哈希与目标对象对应的根哈希匹配,则确定对所述目标对象验证通过;
其中,所述对象验证数据是根据数据集合生成的,所述数据集合是根据所述目标对象的对象声明数据中包括的所述目标对象的对象信息确定的,所述对象信息包括M个目标数据;所述数据集合中包括对象数据对,每个对象数据对包括一个目标数据和一个目标数据的验证数据,所述数据集合中的N个目标数据是从所述M个目标数据中选择确定的,M为大于1的整数,N为小于或等于M的正整数。
9.如权利要求8所述的方法,其特征在于,所述待验证对象数据对的数量为N个,所述验证表达数据包括N个待验证对象数据对;所述验证表达数据中还包括:所述目标对象对应的根哈希以及所述目标对象对应的根签名;所述目标对象对应的根签名是采用生成所述对象声明数据的发行节点的私钥对所述目标对象对应的根哈希进行加密得到的;所述方法还包括:
采用所述发行节点的公钥对所述目标对象对应的根签名进行解密,得到所述目标对象对应的解密哈希;
若所述目标对象对应的解密哈希与所述目标对象对应的根哈希相匹配,则确定对所述目标对象对应的根哈希验证通过;
其中,在对所述目标对象对应的根哈希验证通过后,所述待验证对象数据对的验证哈希与所述目标对象对应的根哈希匹配是指:所述N个待验证对象数据对的验证哈希均与所述目标对象对应的根哈希匹配。
10.如权利要求9所述的方法,其特征在于,所述采用所述发行节点的公钥对所述目标对象对应的根签名进行解密,得到所述目标对象对应的解密哈希之前,所述方法还包括:
获取所述持有节点生成的第一签名信息、所述发行节点生成的第二签名信息和所述目标对象的对象文档,所述第一签名信息是采用所述目标对象的私钥对所述验证表达数据进行加密得到的,所述第二签名信息是采用所述发行节点的私钥对所述对象声明数据进行加密得到的,所述目标对象的对象文档中包含所述目标对象的公钥;
若采用所述目标对象的公钥对所述第一签名信息验证通过,则获取所述发行节点的对象文档;所述发行节点的对象文档中包括所述发行节点的公钥;
若确定所述发行节点的对象文档是根据可信列表中的可信标识签发的,则根据所述发行节点的公钥对所述第二签名信息进行验证;
若对所述第二签名信息验证通过,则触发执行所述采用所述发行节点的公钥对所述目标对象对应的根签名进行解密,得到所述目标对象对应的解密哈希的步骤。
11.如权利要求8所述的方法,其特征在于,所述待验证对象数据对的数量为N个,所述验证表达数据包括N个待验证对象数据对;所述目标对象对应的根哈希被上传至区块链中进行存储;所述方法还包括:
从所述区块链中获取所述目标对象对应的根哈希;
其中,所述待验证对象数据对的验证哈希与所述目标对象对应的根哈希匹配是指:所述N个待验证对象数据对的验证哈希均与所述目标对象对应的根哈希匹配。
12.如权利要求8-11任一项所述的方法,其特征在于,所述待验证对象数据对的数量为N个,所述验证表达数据包括N个待验证对象数据对;所述N个待验证对象数据对中的第i个待验证对象数据对包括第i个目标数据和第i个目标数据的验证数据,i为小于或等于N的正整数;所述第i个目标数据的验证数据包括:在所述目标对象的默克尔树中为所述第i个目标数据分配的混淆数据、以及在所述目标对象的默克尔树中确定的所述第i个目标数据对应的验证信息;所述目标对象的默克尔树是根据所述M个目标数据确定的;
根据所述第i个目标数据和所述第i个目标数据的验证数据,确定所述第i个待验证对象数据对的验证哈希的过程,包括:
将所述混淆数据与所述第i个目标数据进行拼接处理,得到拼接数据;
对所述拼接数据进行哈希计算,得到所述第i个目标数据对应的数据哈希;
根据所述第i个目标数据对应的数据哈希和所述第i个目标数据对应的验证信息,计算所述第i个待验证对象数据对的验证哈希。
13.一种基于区块链的数据处理装置,其特征在于,所述装置包括:
获取单元,用于获取目标对象的对象声明数据,所述对象声明数据包括所述目标对象的对象信息,所述对象信息包括M个目标数据,M为大于1的整数;
处理单元,用于根据所述对象声明数据确定数据集合,所述数据集合中包括对象数据对,每个对象数据对包括一个目标数据和一个目标数据的验证数据,所述数据集合中的N个目标数据是从所述M个目标数据中选择确定的,N为小于或等于M的正整数;
所述处理单元,还用于根据所述数据集合生成所述目标对象的对象验证数据,所述对象验证数据中包括所述对象数据对;
所述处理单元,还用于提交所述对象验证数据对应的验证表达数据,所述验证表达数据包括待验证对象数据对;其中,在进行对象验证的过程中,若根据所述待验证对象数据对中的目标数据和目标数据的验证数据得到与所述目标对象对应的根哈希匹配的验证哈希,则确定对所述目标对象验证通过。
14.一种基于区块链的数据处理装置,其特征在于,所述装置包括:
获取单元,用于获取持有节点提交的验证表达数据;所述验证表达数据与所述持有节点生成的对象验证数据对应,所述验证表达数据包括待验证对象数据对;
处理单元,用于根据所述待验证对象数据对中的目标数据和目标数据的验证数据,确定所述待验证对象数据对的验证哈希;
所述处理单元,还用于若所述待验证对象数据对的验证哈希与目标对象对应的根哈希匹配,则确定对所述目标对象验证通过;
其中,所述对象验证数据是根据数据集合生成的,所述数据集合是根据所述目标对象的对象声明数据中包括的所述目标对象的对象信息确定的,所述对象信息包括M个目标数据;所述数据集合中包括对象数据对,每个对象数据对包括一个目标数据和一个目标数据的验证数据,所述数据集合中的N个目标数据是从所述M个目标数据中选择确定的,M为大于1的整数,N为小于或等于M的正整数。
15.一种计算机设备,其特征在于,所述计算机设备包括:
处理器,适于实现计算机程序;
计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1-7任一项所述的基于区块链的数据处理方法,或者如权利要求8-12任一项所述的基于区块链的数据处理方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由处理器加载并执行如权利要求1-7任一项所述的基于区块链的数据处理方法,或者如权利要求8-12任一项所述的基于区块链的数据处理方法。
17.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令被处理器执行时实现如权利要求1-7任一项所述的基于区块链的数据处理方法,或者如权利要求8-12任一项所述的基于区块链的数据处理方法。
CN202210036846.5A 2022-01-13 2022-01-13 基于区块链的数据处理方法、装置、设备、介质及产品 Pending CN116488817A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210036846.5A CN116488817A (zh) 2022-01-13 2022-01-13 基于区块链的数据处理方法、装置、设备、介质及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210036846.5A CN116488817A (zh) 2022-01-13 2022-01-13 基于区块链的数据处理方法、装置、设备、介质及产品

Publications (1)

Publication Number Publication Date
CN116488817A true CN116488817A (zh) 2023-07-25

Family

ID=87216422

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210036846.5A Pending CN116488817A (zh) 2022-01-13 2022-01-13 基于区块链的数据处理方法、装置、设备、介质及产品

Country Status (1)

Country Link
CN (1) CN116488817A (zh)

Similar Documents

Publication Publication Date Title
AU2019203848B2 (en) Methods and devices for protecting sensitive data of transaction activity based on smart contract in blockchain
CN109067801B (zh) 一种身份认证方法、身份认证装置及计算机可读介质
CN110046996B (zh) 数据处理方法和装置
CN111914027B (zh) 一种区块链交易关键字可搜索加密方法及系统
CN107770159B (zh) 车辆事故数据记录方法及相关装置、可读存储介质
CN107742212B (zh) 基于区块链的资产验证方法、装置及系统
CN110677376B (zh) 认证方法、相关设备和系统及计算机可读存储介质
WO2020038137A1 (zh) 二维码生成方法、数据处理方法、装置及服务器
CN112165382B (zh) 软件授权方法、装置、授权服务端及终端设备
CN110597836B (zh) 基于区块链网络的信息查询请求响应方法及装置
CN109858911A (zh) 资质验证方法、装置、系统、设备和可读存储介质
CN111522809A (zh) 数据处理方法、系统及设备
CN111461799B (zh) 数据处理方法、装置、计算机设备及介质
CN110598433A (zh) 基于区块链的防伪信息处理方法、装置
CN110716724B (zh) 基于fpga实现隐私区块链的方法及装置
CN111079190A (zh) 区块链供应链交易隐藏动态监管系统及方法
CN116506134B (zh) 数字证书管理方法、装置、设备、系统及可读存储介质
CN115705601A (zh) 数据处理方法、装置、计算机设备及存储介质
CN115426106B (zh) 一种身份认证方法、装置、系统、电子设备及存储介质
CN114124515B (zh) 标书传输方法、密钥管理方法、用户验证方法及对应装置
CN113779637B (zh) 一种属性数据处理方法、装置、设备以及介质
CN113139209B (zh) 一种基于原子性签名的可验证凭据实现方法和系统
CN114444125A (zh) 一种数字身份管理方法及装置
CN116488817A (zh) 基于区块链的数据处理方法、装置、设备、介质及产品
CN113051622A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40088003

Country of ref document: HK