CN113779637B - 一种属性数据处理方法、装置、设备以及介质 - Google Patents
一种属性数据处理方法、装置、设备以及介质 Download PDFInfo
- Publication number
- CN113779637B CN113779637B CN202111329538.3A CN202111329538A CN113779637B CN 113779637 B CN113779637 B CN 113779637B CN 202111329538 A CN202111329538 A CN 202111329538A CN 113779637 B CN113779637 B CN 113779637B
- Authority
- CN
- China
- Prior art keywords
- service
- attribute data
- file
- hidden
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Abstract
本申请提供了一种属性数据处理方法、装置、设备以及介质,方法包括:第一业务节点从清分到的可隐藏业务声明文件中获取第一对象的N个业务属性数据以及辅助业务数据;在N个业务属性数据中确定隐藏属性数据和待分享的披露属性数据;根据隐藏属性数据以及隐藏属性数据的混淆值,确定分段属性哈希值;基于分段属性哈希值、披露属性数据的混淆值、披露属性数据在辅助业务数据的目标根哈希值所对应的索引路径中的索引值、以及目标根哈希值,生成隐藏业务表达文件,将隐藏业务表达文件写入区块链,以使第一对象所指定的第三对象对应的第三业务节点,对从区块链上清分到的隐藏业务表达文件进行验证。采用本申请,可以提升属性数据的安全性和隐私性。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种属性数据处理方法、装置、设备以及介质。
背景技术
目前,在区块链系统中,用户可以通过用户节点上所集成的去中心化身份识别小程序,向服务节点申请该用户的去中心化身份信息(Decentralized Identifier,DID,DID),这意味着当前用户所申请的DID是直接由该服务节点所签发的,与此同时,服务节点还会根据该用户所生成的DID生成可验证声明(Verifiable Claim,VC)文件,并需要进一步将该生成的VC文件存储在一个中心化的身份中心(即Identity Hub),这样,当用户从该中心化的身份中心拿到该VC文件之后,可以直接生成用于验证该用户身份的可验证表达(Verifiable Presentation,VP)文件,并将该VP文件一并存储在前述中心化的身份中心。
发明人在实践中发现,在该中心化的身份中心存储方案中,由于存储在中心化的身份中心的VC文件和VP文件均直接携带与用户身份相关的各个属性数据,一旦非法用户从前述中心化的身份中心中非法窃取到用于验证用户身份的VP文件和VP文件,则势必会导致VC文件和VP文件中的各个属性数据的泄露,进而降低了对这些属性数据进行存储的安全性和隐私性。
发明内容
本申请实施例提供一种属性数据处理方法、装置、设备以及介质,可以提升属性数据的安全性和隐私性。
本申请实施例一方面提供了一种属性数据处理方法,方法由第一业务节点执行,包括:
在第一业务节点从区块链上清分到由第二业务节点颁发的可隐藏业务声明文件时,从可隐藏业务声明文件中获取第一业务节点对应的第一对象的N个业务属性数据以及与N个业务属性数据相关联的辅助业务数据;N为大于1的正整数;
在N个业务属性数据中,将选取的用于表征第一对象的身份的业务属性数据作为隐藏属性数据,且将除隐藏属性数据之外的业务属性数据作为披露属性数据,确定披露属性数据在辅助业务数据的目标根哈希值所对应的索引路径中的索引值;
从辅助业务数据中确定隐藏属性数据对应的混淆值以及披露属性数据对应的混淆值,根据隐藏属性数据以及隐藏属性数据对应的混淆值,确定隐藏属性数据对应的分段属性哈希值;
基于隐藏属性数据对应的分段属性哈希值、披露属性数据对应的混淆值、索引值、以及目标根哈希值,生成可隐藏业务声明文件对应的隐藏业务表达文件,将隐藏业务表达文件写入区块链,以使第一对象所指定的第三对象对应的第三业务节点,对从区块链上清分到的隐藏业务表达文件进行验证。
本申请实施例一方面提供了一种属性数据处理装置,包括:
属性数据获取模块,用于在第一业务节点从区块链上清分到由第二业务节点颁发的可隐藏业务声明文件时,从可隐藏业务声明文件中获取第一业务节点对应的第一对象的N个业务属性数据以及与N个业务属性数据相关联的辅助业务数据;N为大于1的正整数;
属性数据选取模块,用于在N个业务属性数据中,将选取的用于表征第一对象的身份的业务属性数据作为隐藏属性数据,且将除隐藏属性数据之外的业务属性数据作为披露属性数据,确定披露属性数据在辅助业务数据的目标根哈希值所对应的索引路径中的索引值;
分段哈希确定模块,用于从辅助业务数据中确定隐藏属性数据对应的混淆值以及披露属性数据对应的混淆值,根据隐藏属性数据以及隐藏属性数据对应的混淆值,确定隐藏属性数据对应的分段属性哈希值;
表达文件生成模块,用于基于隐藏属性数据对应的分段属性哈希值、披露属性数据对应的混淆值、索引值、以及目标根哈希值,生成可隐藏业务声明文件对应的隐藏业务表达文件,将隐藏业务表达文件写入区块链,以使第一对象所指定的第三对象对应的第三业务节点,对从区块链上清分到的隐藏业务表达文件进行验证。
其中,装置还包括:
身份证明文件接收模块,用于接收第四对象所对应的第四业务节点为第一对象签发的可验证身份证明文件;可验证身份证明文件中携带第一对象的去中心化身份信息;
文件颁发请求发送模块,用于通过第一对象的去中心化身份信息向第二业务节点发送用于颁发可隐藏业务声明文件的文件颁发请求;文件颁发请求用于指示第二业务节点在通过第一对象的去中心化身份信息从区块链上获取到第一对象的去中心化身份签名文件时,对第一对象的去中心化身份签名文件进行签名验证,以得到用于表征第一对象的身份的对象身份信息;对象身份信息用于指示第二业务节点在确定第一对象的N个业务属性数据时,生成与N个业务属性数据相关联的辅助业务数据;
声明文件清分模块,用于基于第一业务节点的节点标识从区块链上清分到第二业务节点为第一对象颁发的可隐藏业务声明文件;可隐藏业务声明文件为第二业务节点通过第二对象的去中心化身份信息对N个业务属性数据和辅助业务数据进行签名后所得到的具备属性隐藏能力的可验证声明文件。
其中,声明文件清分模块包括:
第一上链结果接收单元,用于接收第二业务节点针对可隐藏业务声明文件返回的第一交易上链结果;第一交易上链结果是由第二业务节点在通过共识节点将可隐藏业务声明文件所对应的第一交易成功写入区块链时所生成的;第一交易中携带第一业务节点的节点标识;
清分功能激活单元,用于根据第一交易上链结果获取第一业务节点的节点标识,基于第一业务节点的节点标识激活第一业务节点的数据清分功能;
声明文件清分单元,用于通过第一业务节点的数据清分功能从区块链上获取第一交易,且从第一交易中清分到可隐藏业务声明文件;可隐藏业务声明文件是第二业务节点基于第一对象的可验证身份证明文件所颁发的。
其中,写入区块链的第一交易中携带由第二对象所指定的第一业务节点的节点标识,且第一业务节点的节点标识用于表征第一对象具备从第一交易中获取可隐藏业务声明文件的资格。
其中,在身份证明文件接收模块接收第四对象所对应的第四业务节点为第一对象签发的可验证身份证明文件时,装置还包括:
身份签名文件接收模块,用于接收第四业务节点返回的第一对象的去中心化身份签名文件;第一对象的去中心化身份签名文件是由第四业务节点通过第四对象的去中心化身份信息,对第一对象的去中心化身份文件进行签名处理后所得到的。
其中,第四对象的去中心化身份信息用于指示第四业务节点获取第四对象的私钥信息;在身份签名文件接收模块接收第四业务节点返回的去中心化身份签名文件之前,装置还包括:
身份文件获取模块,用于获取第一对象的去中心化身份文件;第一对象的去中心化身份文件中包含第一对象的对象身份信息;
文件注册请求发送模块,用于根据获取到的第一对象的去中心化身份文件,向第四对象对应的第四业务节点提交文件注册请求;文件注册请求用于指示第四业务节点在基于第一对象的对象身份信息成功验证第一对象的身份时,通过第四对象的私钥信息对第一对象的去中心化身份文件进行签名处理,且将签名处理后的第一对象的去中心化身份文件写入区块链;签名处理后的第一对象的去中心化身份文件为第一对象的去中心化身份签名文件。
其中,辅助业务数据包括N个业务属性数据中的每个业务属性数据对应的混淆值、目标根哈希值、目标根哈希值对应的根哈希签名以及用于对目标根哈希值进行签名的第二业务节点对应的第二对象的去中心化身份信息;其中,每个业务属性数据对应的混淆值均是第二业务节点根据与N个业务属性数据相关联的种子混淆值所派生得到的;每个业务属性数据对应的混淆值包括隐藏属性数据对应的混淆值和披露属性数据对应的混淆值;
表达文件生成模块包括:
表达文件生成单元,用于从辅助业务数据中获取根哈希签名以及第二对象的去中心化身份信息,将隐藏属性数据对应的分段属性哈希值、披露属性数据、披露属性数据对应的混淆值、索引值、目标根哈希值、根哈希签名以及第二对象的去中心化身份信息,作为辅助证明数据,基于辅助证明数据,生成可隐藏业务声明文件对应的隐藏业务表达文件;
待验证哈希确定单元,用于根据披露属性数据、披露属性数据对应的混淆值、以及隐藏属性数据对应的分段属性哈希值,确定与披露属性数据相关联的第一待验证根哈希值;
哈希比较单元,用于将第一待验证根哈希值和目标根哈希值进行哈希比较,得到第一哈希比较结果;
签名上链单元,用于若第一哈希比较结果指示第一待验证根哈希值与目标根哈希值相同,则在确定披露属性数据具备合法性时,通过第一对象的私钥信息对隐藏业务表达文件进行签名处理,将签名处理后的隐藏业务表达文件通过共识节点写入区块链。
其中,目标根哈希值是第二业务节点基于与N个业务属性数据相关联的分段哈希计算规则所确定的;
待验证哈希确定单元包括:
规则获取子单元,用于获取分段哈希计算规则中的加密处理规则和哈希处理规则;
加密哈希子单元,用于按照加密处理规则使用披露属性数据对应的混淆值对披露属性数据进行加密处理,得到披露属性数据对应的加密属性数据,根据哈希处理规则对加密属性数据进行哈希处理,得到披露属性数据对应的分段属性哈希值;
根哈希确定子单元,用于获取分段哈希计算规则中的根哈希确定规则,根据根哈希确定规则、披露属性数据对应的分段属性哈希值和隐藏属性数据对应的分段属性哈希值,确定与披露属性数据相关联的第一待验证根哈希值。
其中,签名上链单元,具体用于获取第三业务节点的节点标识,将签名处理后的隐藏业务表达文件作为隐藏业务表达签名文件;
签名上链单元,还具体用于基于第三业务节点的标识和隐藏业务表达签名文件,确定隐藏业务表达文件对应的第二交易;
签名上链单元,还具体用于将第二交易通过共识节点写入区块链。
其中,表达文件生成模块还包括:
第二上链结果接收单元,用于接收共识节点返回的第二交易上链结果;第二交易上链结果是由共识节点在将第二交易成功写入区块链时所生成的;第二交易中携带第三业务节点的节点标识,且第三业务节点的节点标识用于表征第三对象具备从第二交易中获取隐藏业务表达签名文件的资格;隐藏业务表达签名文件是由第一对象对隐藏业务表达文件进行签名处理后所得到的。
本申请实施例一方面提供了一种属性数据处理方法,方法由第二业务节点执行,包括:
在接收到第一对象通过第一业务节点提交的可验证身份证明文件时,从可验证身份证明文件中获取第一对象的去中心化身份信息,且通过第一对象的去中心化身份信息从区块链上获取第一对象的去中心化身份签名文件;
对第一对象的去中心化身份签名文件进行签名验证,且在签名验证成功时,得到用于表征第一对象的身份的对象身份信息;
在从对象身份信息中获取到第一对象的N个业务属性数据时,生成与N个业务属性数据相关联的辅助业务数据,基于N个业务属性数据和辅助业务数据,生成用于上链至区块链的可隐藏业务声明文件;N为大于1的正整数;
在将可隐藏业务声明文件所对应的第一交易成功写入区块链时,向第一业务节点返回第一交易上链结果;第一交易上链结果用于指示第一业务节点在基于第一交易中所指定的第一业务节点的节点标识,从区块链上清分到可隐藏业务声明文件时,从N个业务属性数据选取的用于表征第一对象的身份的业务属性数据作为隐藏属性数据,并将除隐藏属性数据之外的业务属性数据作为披露属性数据,并根据隐藏属性数据、披露属性数据以及辅助业务数据,生成用于写入区块链的可隐藏业务声明文件对应的隐藏业务表达文件,以使第一对象所指定的第三对象对应的第三业务节点,对从区块链上清分到的隐藏业务表达文件进行验证。
本申请实施例一方面提供了一种属性数据处理装置,包括:
身份证明文件接收模块,用于在接收到第一对象通过第一业务节点提交的可验证身份证明文件时,从可验证身份证明文件中获取第一对象的去中心化身份信息,且通过第一对象的去中心化身份信息从区块链上获取第一对象的去中心化身份签名文件;
身份签名文件验证模块,用于对第一对象的去中心化身份签名文件进行签名验证,且在签名验证成功时,得到用于表征第一对象的身份的对象身份信息;
声明文件生成模块,用于在从对象身份信息中获取到第一对象的N个业务属性数据时,生成与N个业务属性数据相关联的辅助业务数据,基于N个业务属性数据和辅助业务数据,生成用于上链至区块链的可隐藏业务声明文件;N为大于1的正整数;
声明文件上链模块,用于在将可隐藏业务声明文件所对应的第一交易成功写入区块链时,向第一业务节点返回第一交易上链结果;第一交易上链结果用于指示第一业务节点在基于第一交易中所指定的第一业务节点的节点标识,从区块链上清分到可隐藏业务声明文件时,从N个业务属性数据选取的用于表征第一对象的身份的业务属性数据作为隐藏属性数据,并将除隐藏属性数据之外的业务属性数据作为披露属性数据,并根据隐藏属性数据、披露属性数据以及辅助业务数据,生成用于写入区块链的可隐藏业务声明文件对应的隐藏业务表达文件,以使第一对象所指定的第三对象对应的第三业务节点,对从区块链上清分到的隐藏业务表达文件进行验证。
本申请实施例一方面提供了一种属性数据处理方法,方法由第三业务节点执行,包括:
在第三业务节点从区块链上清分到隐藏业务表达签名文件时,获取用于对隐藏业务表达签名文件进行签名的第一对象的去中心化身份信息;隐藏业务表达签名文件是第一对象对应的第一业务节点对隐藏业务表达文件进行签名处理后提交至区块链的,隐藏业务表达文件是第一业务节点根据隐藏属性数据、披露属性数据以及辅助业务数据所生成的;辅助业务数据是第一业务节点从区块链上清分到由第二业务节点颁发的可隐藏业务声明文件中所获取的,且可隐藏业务声明文件包含第一对象的N个业务属性数据;隐藏属性数据为第一业务节点从N个业务属性数据中所选取的用于表征第一对象的身份的业务属性数据,且披露属性数据为N个业务属性数据中除隐藏属性数据之外的业务属性数据;N为大于1的正整数;
通过第一对象的去中心化身份信息从区块链上获取第一对象的去中心化身份签名文件;第一对象的去中心化身份签名文件中携带的第一对象的公钥信息;
根据第一对象的公钥信息对隐藏业务表达签名文件进行签名验证,且在签名验证成功时,得到隐藏业务表达文件,且确定用于对隐藏业务表达文件进行签名的第二业务节点所对应的第二对象的去中心化身份信息;
根据第二对象的去中心化身份信息从区块链上获取第二对象的去中心化身份签名文件,在对第二对象的去中心化身份签名文件进行签名验证后,得到第二对象的去中心化身份文件,根据第二对象的去中心化身份文件中的第二对象的公钥信息,确定可隐藏业务声明文件的合法性,且通过具备合法性的可隐藏业务声明文件验证隐藏业务表达文件。
本申请实施例一方面提供了一种属性数据处理装置,包括:
隐藏签名文件清分模块,用于在第三业务节点从区块链上清分到隐藏业务表达签名文件时,获取用于对隐藏业务表达签名文件进行签名的第一对象的去中心化身份信息;隐藏业务表达签名文件是第一对象对应的第一业务节点对隐藏业务表达文件进行签名处理后提交至区块链的,隐藏业务表达文件是第一业务节点根据隐藏属性数据、披露属性数据以及辅助业务数据所生成的;辅助业务数据是第一业务节点从区块链上清分到由第二业务节点颁发的可隐藏业务声明文件中所获取的,且可隐藏业务声明文件包含第一对象的N个业务属性数据;隐藏属性数据为第一业务节点从N个业务属性数据中所选取的用于表征第一对象的身份的业务属性数据,且披露属性数据为N个业务属性数据中除隐藏属性数据之外的业务属性数据;N为大于1的正整数;
身份签名文件获取模块,用于通过第一对象的去中心化身份信息从区块链上获取第一对象的去中心化身份签名文件;第一对象的去中心化身份签名文件中携带的第一对象的公钥信息;
隐藏签名文件验证模块,用于根据第一对象的公钥信息对隐藏业务表达签名文件进行签名验证,且在签名验证成功时,得到隐藏业务表达文件,且确定用于对隐藏业务表达文件进行签名的第二业务节点所对应的第二对象的去中心化身份信息;
文件合法性确定模块,用于根据第二对象的去中心化身份信息从区块链上获取第二对象的去中心化身份签名文件,在对第二对象的去中心化身份签名文件进行签名验证后,得到第二对象的去中心化身份文件,根据第二对象的去中心化身份文件中的第二对象的公钥信息,确定可隐藏业务声明文件的合法性,且通过具备合法性的可隐藏业务声明文件验证隐藏业务表达文件。
其中,文件合法性确定模块包括:
第二签名文件获取单元,用于根据第二对象的去中心化身份信息从区块链上获取第二对象的去中心化身份签名文件,并获取用于对可信机构进行校验的可信身份列表;可信身份列表中包含一个或者多个可信机构的去中心化身份信息;
第二签名文件确定单元,用于若在可信身份列表查找到与第二对象所关联的目标可信机构的去中心化身份信息相同的可信机构的去中心化身份信息,则确定第二对象的去中心化身份签名文件是由目标可信机构所颁发的;
可信公钥确定单元,用于根据目标可信机构的去中心化身份信息,确定目标可信机构的公钥信息,通过目标可信机构的公钥信息对第二对象的去中心化身份签名文件进行签名验证,得到第二对象的去中心化身份文件;
隐藏文件验证单元,用于根据第二对象的去中心化身份文件中的第二对象的公钥信息,确定可隐藏业务声明文件的合法性,且通过具备合法性的可隐藏业务声明文件验证隐藏业务表达文件。
其中,隐藏业务表达文件的辅助证明数据中包括隐藏属性数据对应的分段属性哈希值、披露属性数据对应的混淆值、披露属性数据在目标根哈希值所对应的索引路径中的索引值;
隐藏文件验证单元,具体用于从具备合法性的可隐藏业务声明文件中获取辅助业务数据中的目标根哈希值;
隐藏文件验证单元,还具体用于从隐藏业务表达文件中获取辅助证明数据中的披露属性数据、披露属性数据对应的混淆值、以及隐藏属性数据对应的分段属性哈希值,根据披露属性数据、披露属性数据对应的混淆值、以及隐藏属性数据对应的分段属性哈希值,确定与披露属性数据相关联的第二待验证根哈希值;
隐藏文件验证单元,还具体用于将第二待验证根哈希值和目标根哈希值进行哈希比较,得到第二哈希比较结果;
隐藏文件验证单元,还具体用于若第二哈希比较结果指示第二待验证根哈希值与目标根哈希值相同,则在根据目标根哈希值和披露属性数据在目标根哈希值所对应的索引路径中的索引值,确定出隐藏属性数据的索引路径时,完成对隐藏业务表达文件的验证。
本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器与处理器相连,存储器用于存储计算机程序,处理器用于调用计算机程序,以使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序适于由处理器加载并执行,以使得具有处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
在本申请实施例所涉及的去中心化身份识别场景下,第一业务节点在通过可隐藏业务声明文件(即具备属性隐藏能力的可验证声明文件)生成隐藏业务表达文件(即具备属性隐藏能力的可验证表达文件)的过程中,可以对可隐藏业务声明文件(即具备属性隐藏能力的可验证声明文件)中的部分属性数据进行选择性地披露,进而可以通过生成的隐藏业务表达文件(即具备属性隐藏能力的可验证表达文件)实现这些属性数据的最小化披露,这样,可以从根源上确保N个业务属性数据中用于表征第一对象身份的其他属性数据的最大化隐藏,即本申请实施例通过采用区块链这样的去中心化的数据存储方式,可以确保由该第一对象所指定的第三对象对应的第三业务节点能够获取到该隐藏业务表达文件(即具备属性隐藏能力的可验证表达文件),以对该隐藏业务表达文件(即具备属性隐藏能力的可验证表达文件)进行验证。这样,不仅可以确保第一对象的某些属性数据的安全性,还可以在选择性披露某些属性数据的情况下,在最大程度上确保第一对象的某些属性数据的隐私性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链网络分层结构的示意图;
图2是本申请实施例提供的一种进行数据交互的场景示意图;
图3是本申请实施例提供的另一种进行数据交互的场景示意图;
图4是本申请实施例提供的一种属性数据处理方法的流程示意图;
图5是本申请实施例提供的一种第一业务节点与第四业务节点进行数据交互的流程示意图;
图6是本申请实施例提供的将隐藏业务表达文件写入区块链的流程示意图;
图7是本申请实施例提供的另一种属性数据处理方法的流程示意图;
图8是本申请实施例提供的一种分段哈希结构的场景示意图;
图9是本申请实施例提供的一种将可隐藏业务声明文件写入区块链的流程示意图;
图10是本申请实施例提供的又一种属性数据处理方法的流程示意图;
图11是本申请实施例提供的一种验证隐藏业务表达文件的流程意图;
图12是本申请实施例提供的一种属性数据处理装置的结构示意图;
图13是本申请实施例提供的另一种属性数据处理装置的结构示意图;
图14是本申请实施例提供的又一种属性数据处理装置的结构示意图;
图15是本申请实施例提供的一种计算机设备的结构示意图;
图16是本申请实施例提供的一种属性数据处理系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种区块链网络分层结构的示意图。本申请实施例中的区块链网络分层结构可以为图1所示的区块链网络1A,该区块链网络1A对应的分布式系统可以包含图1所示的业务网络、核心共识网络。
可选的,在一些实施例中,该区块链网络1A还可以包含用于对业务网络和核心共识网络进行网络隔离的路由代理网络。应当理解,该路由代理网络中的代理节点的节点数量可以为一个或者多个,在此不做限定。这里的代理节点可以是独立的一个物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供基础云计算服务的云服务器,在此不做限定。该代理节点可以将点对点(Peer To Peer,简称P2P)网络进行网络分层,以形成“业务网络—核心共识网络”这样的分层结构,进而能够提高区块链上数据的保密性和安全性。
其中,图1所示的业务网络(即见证网络)对应的区块链节点集群(即第一区块链节点集群)中可以包括一个或者多个区块链节点,这里将不对第一区块链节点集群中的节点数量进行限制。比如,第一区块链节点集群具体可以包括节点110a、节点110b、节点110c、…、节点110n。应当理解,本申请实施例可以将处于业务网络中的区块链节点统称为业务节点,该业务节点不需要参与记账和共识,主要用于执行某些业务,以生成相应业务所对应的业务交易。为了减少业务节点的存储空间的浪费,本申请实施例中的业务节点可以为轻量节点(Simplified Payment Verification,简称SPV),该里的轻量节点不需要存储完整的交易数据,而是能够从图1所示的核心共识网络中,获得区块头数据和部分授权可见的区块数据(例如,与轻量节点自身相关联的业务交易)。
其中,图1所示的核心共识网络对应的区块链节点集群(即第二区块链节点集群)中也可以包括一个或者多个区块链节点,这里将不对第二区块链节点集群中的节点数量进行限制。比如,第二区块链节点集群具体可以包括节点120a、节点120b、节点120c、…、节点120m。应当理解,本申请实施例可以将处于该核心共识网络中的区块链节点统称为共识节点(或者记账节点),这里的共识节点可以运行有区块链共识协议,以负责该区块链网络1A中的交易验证和区块共识。
应当理解,本申请实施例可以将业务节点以及共识节点可以统称为区块链网络1A中的区块链节点。可以理解的是,在上述分布式系统中,任何设备如服务器、终端等都可以加入而成为区块链节点,其中,每个区块链节点均可以包括硬件层、中间层、操作系统层和应用层。比如,位于该分布式系统中的区块链节点可以为接入至该区块链网络1A中的服务器,也可以为接入至该区块链网络1A中的用户终端,这里对区块链节点的具体形式不做限定。可以理解的是,图1所示的业务网络和核心共识网络可以处于不同的网络环境,例如,通常来说,业务节点部署在处于公网的业务网络中,而运行区块链共识协议的共识节点则部署在私有的核心共识网络中,二者可以按照相应的通信协议直接进行数据交互,也可以在引入路由代理网络的情况下,通过路由代理网络间接进行数据交互。
其中,可以理解的是,本申请实施例可以为接入该区块链网络1A的任意一个角色(例如,任意一个个人用户、任意一个企业、任意一个机构等实体对象)绑定一个区块链节点。如图1所示的节点110a、节点110b、节点110c、节点110d可以分别与需要接入区块链网络1A中的相应角色(即相应业务场景下的实体对象)之间存在一一对应关系。这里的业务场景可以包含但不限于去中心化身份认证系统下的医疗场景、政务场景、数据共享场景以及资质核查场景等。此时,相应业务场景下的业务具体可以包含医疗场景下的电子处方流转业务、政务场景下的电子证件颁发业务、数据共享互通场景下的应用数据共享业务以及资质核查场景下的学历核查等,这里将不对相应业务场景下的具体业务进行一一列举。
其中,可以理解的是,在去中心化身份认证系统的业务场景下,本申请实施例所涉及的第一对象(例如,用户A)可以通过由第四对象(即可信机构,例如:身份认证机构)所颁发的可验证身份证明文件(Verifiable Claims,VC文件),向第二对象申请可隐藏业务声明文件(即具有属性隐藏能力的另一VC文件),这样,第一对象(例如,用户A)在获取到该可隐藏业务声明文件时,可以在该可隐藏业务声明文件所包含的N个业务属性数据中选择性的披露(或者分享)与自己的身份相关联的某些业务属性数据,以根据选择性披露的这些业务属性数据,来生成该可隐藏业务声明文件对应的隐藏业务表达文件,这里的隐藏业务表达文件可以为具有属性隐藏能力的可验证表达文件(Verifiable Presentation,VP文件)。这样,该第一对象在根据上述业务场景将该隐藏业务表达文件写入上述区块链网络1A所对应的区块链的过程中,可以指定用于对该隐藏业务表达文件进行验证的第三对象,这样,该第三对象所对应的区块链节点则可以对该隐藏业务表达文件进行验证,并可以从根源上避免上述区块链网络1A中的其他区块链节点获取到隐藏业务表达文件,进而可以在最大程度上避免隐藏业务表达文件中所携带的用于表征用户身份的隐藏属性数据的泄露。由此可见,在第一对象在通过第一业务节点向第二对象对应的第二业务节点申请可隐藏业务声明文件的过程中,可以通过身份认证机构所颁发的可验证身份证明文件来证明自己的身份。
其中,为便于理解,本申请实施例可以将第一对象(例如,用户A)对应的区块链节点统称为第一业务节点,该第一业务节点可以为上述业务网络中的节点110a。同理,本申请实施例可以将第二对象对应的区块链节点统称为第二业务节点,该第二业务节点可以为上述业务网络中的节点110b。同理,本申请实施例可以将第三对象对应的区块链节点统称为第三业务节点,该第三业务节点可以为上述业务网络中的节点110c。以此类推,本申请实施例可以将第四对象对应的区块链节点统称为第四业务节点,该第四业务节点可以为上述业务网络中的节点110d。
比如,在上述医疗场景下,第一对象(例如,用户A)对应的区块链节点可以为第一业务节点,第二对象(例如,为该用户A下发医疗系统中的电子处方和电子检查结果的就诊医院,比如,医院B1)对应的区块链节点可以为第二业务节点,第三对象(例如,根据医院B1开具的电子处方下发药品的药房、通过医院A的电子检查结果对该用户A进行复诊的另一医院(比如,医院C1)、以及用于对该用户A的进行理赔的保险机构等)对应的区块链节点可以为第三业务节点。
具体的,在上述去中心化身份认证系统的医疗场景下,第一对象(例如,用户A)可以通过由身份认证机构所颁发的可验证身份证明文件(Verifiable Claims,VC文件),向第二对象(例如,医院B1)申请可隐藏业务声明文件,即该具有属性隐藏能力的VC文件是第二业务节点根据医疗系统中所记载的该用户A的电子处方和电子检查结果所生成的,这样,第一对象(例如,用户A)在获取到该可隐藏业务声明文件时,可以在该可隐藏业务声明文件所包含的N个业务属性数据中选择性的披露与自己的身份相关联的某些业务属性数据(例如,可以披露从该用户A的电子处方和电子检测结果中所拆分出的姓名,并隐藏从该电子处方中所拆分出的药品名称以及隐藏从该电子检查结果中所拆分出的体征诊断数据等),进而可以根据选择性披露的业务属性数据和选择性隐藏的其他业务属性数据,生成可隐藏业务声明文件对应的隐藏业务表达文件,以便于后续可以将在第一业务节点侧所生成的隐藏业务表达文件指定给第三对象(即前述药房、医院C1或者保险机构等)进行验证。这样,当药房验证通过之后,可以通知用户A前来领取处方中的药品。同理,当医院C验证通过之后,可以通知用户A前来进行复诊。以此类推,当保险机构验证通过之后,可以通知用户A前来进行理赔。应当理解,由该第一对象所指定的第三对象的对象数量可以为一个或者多个,这里将不对第三对象的对象数量进行限定。
又比如,比如,在上述政务场景下,第一对象(例如,用户A)对应的区块链节点可以为第一业务节点,第二对象(例如,为该用户A下发电子房产证的政务机构B2)对应的区块链节点可以为第二业务节点,第三对象(例如,为该用户A进行产权登记的政务机构C2等)对应的区块链节点可以为第三业务节点。
具体的,在上述去中心化身份认证系统的政务场景下,第一对象(例如,用户A)可以通过由身份认证机构所颁发的可验证身份证明文件(Verifiable Claims,VC文件),向第二对象(例如,政务机构)申请可隐藏业务声明文件,即该具有属性隐藏能力的VC文件是第二业务节点根据用户A所提交的可验证身份证明文件所颁发的电子房产证,这样,第一对象(例如,用户A)在获取到该可隐藏业务声明文件时,可以在该可隐藏业务声明文件所包含的N个业务属性数据中选择性的披露与自己的身份相关联的某些业务属性数据(例如,可以披露从该电子房产证中所拆分出的产权人姓名,并隐藏从该电子房产证中所拆分出的房产面积、房产位置等),进而可以根据选择性披露的业务属性数据和选择性隐藏的其他业务属性数据,生成可隐藏业务声明文件对应的隐藏业务表达文件,以便于后续可以将在第一业务节点侧所生成的隐藏业务表达文件指定给第三对象(即前述政务机构C2等)进行验证。当政务机构C2验证通过之后,可以通知用户A前来进行产权登记。
又比如,在上述数据共享互通场景下,第一对象(例如,用户A)对应的区块链节点可以为第一业务节点,第二对象(例如,用于对用户A所使用的第一应用中的应用数据进行数据共享的应用服务企业B3)对应的区块链节点可以为第二业务节点,第三对象(例如,该用户A所授权的能够共享前述应用数据的其他应用所对应的应用服务企业,比如,应用服务企业C3)对应的区块链节点可以为第三业务节点。
具体的,在上述去中心化身份认证系统的数据共享互通场景下,第一对象(例如,用户A)可以通过由身份认证机构所颁发的可验证身份证明文件(Verifiable Claims,VC文件),向第二对象(例如,应用服务企业B3)申请可隐藏业务声明文件,即该具有属性隐藏能力的VC文件是第二业务节点根据用户A通过可验证身份证明文件所访问应用的标识所颁发的应用访问证明文件,该应用访问证明文件是由第二业务节点根据该用户A授权查询到的应用访问记录所确定的,这样,第一对象(例如,用户A)在获取到该可隐藏业务声明文件时,可以在该可隐藏业务声明文件所包含的N个业务属性数据中选择性的披露(或者共享)与自己的身份相关联的某些业务属性数据(例如,可以披露从该应用访问记录中所拆分出的账户昵称,并隐藏从该应用访问记录中所拆分出的访问时长以及用户年龄等),进而可以根据选择性披露的业务属性数据和选择性隐藏的其他业务属性数据,生成可隐藏业务声明文件对应的隐藏业务表达文件,以便于后续可以将在第一业务节点侧所生成的隐藏业务表达文件指定给第三对象(即应用服务企业C3等)进行验证。当应用服务企业C3验证通过(比如,确定长时间通过该账户昵称访问应用服务企B3所对应的应用服务器的用户年龄大于18岁)之后,可以授权用户A在访问应用服务企业C3所对应的应用服务器时,将前述第一应用所对应的应用服务器B3所记录的用户A的业务属性数据共享给该应用服务器C3使用。
又比如,在上述资质核查场景下,第一对象(例如,用户A)对应的区块链节点可以为第一业务节点,第二对象(例如,学校B4)对应的区块链节点可以为第二业务节点,第三对象(例如,企业C4)对应的区块链节点可以为第三业务节点。
具体的,在上述去中心化身份认证系统的资质核查场景下,第一对象(例如,用户A)可以通过由身份认证机构所颁发的可验证身份证明文件(Verifiable Claims,VC文件),向第二对象(例如,学校B4)申请可隐藏业务声明文件,即该具有属性隐藏能力的VC文件是第二业务节点根据用户A所提交的可验证身份证明文件所颁发的电子学历证明,这样,第一对象(例如,用户A)在获取到该可隐藏业务声明文件时,可以在该可隐藏业务声明文件所包含的N个业务属性数据中选择性的披露与自己的身份相关联的某些业务属性数据(例如,可以披露从该电子学历证明中所拆分出的用户名称,并隐藏从该电子学历证明中所拆分出的用户年龄、用户性别以及就读学校等),进而可以根据选择性披露的业务属性数据和选择性隐藏的其他业务属性数据,生成可隐藏业务声明文件对应的隐藏业务表达文件,以便于后续可以将在第一业务节点侧所生成的隐藏业务表达文件指定给第三对象(例如,企业C4)进行学历资质的验证。当企业C4验证通过之后,可以通知用户A前来入职。
为便于理解,这里以上述业务场景为上述资质核查场景为例,以阐述第一对象通过第一业务节点与第二业务节点和第三业务节点之间进行数据交互的具体过程。进一步的,请参见图2,图2是本申请实施例提供的一种进行数据交互的场景示意图。其中,图2所示的用户终端21a可以为上述第一业务节点,该第一业务节点所对应的第一对象可以为图2所示的用户2a。
如图2所示,用户2a可以通过该用户终端21a接收由可信机构(例如,自己当前所在省市的身份认证机构)颁发的可验证身份证明文件,即一种用于证明该用户2a的身份的VC文件,此时,该用于证明该用户2a的身份的VC文件可以记为VC文件1,该VC文件1可以包含用于声明与该用户2a的身份相关联的姓名属性、性别属性、年龄属性、以及住址属性等的属性数据。此时,用户终端21a可以在执行图2所示的步骤S1之前,在该用户终端21a的终端显示界面上输出该可验证身份证明文件(即输出VC文件1),并可以在该用户终端21a的终端显示界面上以明文的形式显示由可信机构(例如,身份认证机构)所核实过的该用户2a的去中心化身份信息,这里的用户2a的去中心化身份信息可以为用户2a的DID(Decentralized ID,去中心化身份认证系统)信息。
其中,该用户终端21a可以包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等。这里的用户终端21a所对应的用户2a可以根据上述业务场景下的具体业务,选择性的披露(或者分享)与自己当前业务相关联的业务属性数据。
其中,可以理解的是,该用户2a(即第一对象)的DID信息并不是单一机构赋予的,而是该用户21a通过用户终端21a上所集成的去中心化应用的特定身份认证算法(即一种以用户为中心的去中心化算法,且可以将该身份认证算法预先注册到身份认证系统),对与自己身份相关的数据进行运算后而生成的,这意味着本申请实施例所涉及的第一对象的DID信息是完全由该用户2a自主控制的。应当理解,该用户终端21a在通过上述身份认证算法生成DID信息的同时,也会生成一对秘钥(即该第一对象的公钥信息和私钥信息),进而可以把与该第一对象的公钥信息具有绑定关系的DID信息添加到该用户21a的DID文件(即第一对象的去中心化身份文件),这意味着该第一对象的去中心化身份文件不仅可以包含该第一对象的公钥信息,还可以包含根据自己的身份相关的数据所生成的DID信息。此时,用户终端21a可以进一步通过可信机构(例如,上述身份认证机构)对用户21a的DID文件进行签名,以将签名后所得到的该用户21a的DID签名文件发布在区块链(例如,图2所示的区块链20e)上进行存储,而第一对象的私钥信息则由该用户21a自己保管。
其中,应当理解,这里的可信机构在将该用户21a的DID签名文件存入区块链时,还可以一并根据该第一对象的去中心化身份文件中的DID信息,为第一对象生成用于证明该第一对象身份的VC文件(即上述VC文件1)。
进一步的,如图2所示,当用户2a在用户终端21a的终端显示界面上确认提交包含自己DID信息的VC文件1时,可以执行步骤S1,以将该可验证身份证明文件发送给图2所示的区块链节点21b(这里的区块链节点21b可以为上述第二业务节点)。如图2所示,该区块链节点21b可以执行步骤S2,以根据该可验证身份证明文件中所携带的用户2a的DID信息,从区块链上查询到与该用户2a的DID信息相匹配的该用户21a的DID签名文件,进而可以执行步骤S3,以通过上述可信机构的公钥信息对该用户21a的DID签名文件的签名进行签名验证,以判断该用户21a的DID签名文件是否是由上述可信机构(比如,上述身份认证机构)所签发的,如果判断为是,则可以确认该用户2a的身份。这意味着此时该区块链节点21b可以得到用于表征该用户2a身份的对象身份信息,从而可以对该用户2a的对象身份信息进行属性拆分,以得到第一对象的N个业务属性数据(这里的N为大于1的正整数)。区块链节点21b可以根据分段哈希计算规则确定每个业务属性数据对应的混淆值,进而可以根据每个业务属性数据对应的混淆值和对应业务属性数据,确定每个业务属性数据的分段属性哈希值,以便于后续可以得到用于表征VC文件2中的VC秘密信息的辅助业务数据。比如,区块链节点21b还可以根据每个业务属性数据的分段属性哈希值,生成与每个业务属性数据的分段属性哈希值相关联的目标根哈希值,并可以将生成的目标根哈希值、每个业务属性数据对应的混淆值等统称为与这N个业务属性数据相关联的辅助业务数据。如图2所示,区块链节点21b可以通过这N个业务属性数据和辅助业务数据,生成可隐藏业务声明文件。这里的可隐藏业务声明文件为具备属性隐藏能力的另一VC文件,比如,VC文件2。
可选的,在一些实施例中,上述辅助业务数据中不仅可以包含目标根哈希值和每个业务属性数据对应的混淆值,还可以包含根哈希签名和第二对象的去中心化身份信息。这里的第二对象可以为能够证明该用户2a资质的对象(比如,上述能够证明该用户2a学历的学校,或者能够证明该用户2a技能的机构等)。具体的,应当理解,区块链节点21b在生成与每个业务属性数据的分段属性哈希值相关联的目标根哈希值时,还可以通过该区块链节点21b所对应的第二对象的私钥信息对该目标根哈希值进行签名,以得到该目标根哈希值对应的根哈希签名,还可以一并附上用于对该目标根哈希值进行签名的第二对象的DID信息(即第二对象的去中心化身份信息)。
如图2所示,区块链节点21b还可以执行步骤S4,以将该可隐藏业务声明文件(即上述VC文件2)所对应的交易(即图2所示的第一交易)通过图2所示的核心共识网络200a写入区块链(比如,图2所示的区块链20e)。如图2所示,该核心共识网络200a中可以包含能够参与共识的多个共识节点,这些共识节点具体可以包含图2所示的共识节点20a、共识节点20b、共识节点20c、…、共识节点20d。其中,可以理解的是,区块链节点21b在将第一交易写入区块链20e的过程中,可以指定该第一交易中的可隐藏业务声明文件对图2所示的用户2a可见,具体的,区块链节点21b可以在生成第一交易的过程中,将用户终端21a的节点标识(即第一业务节点的节点标识)添加到第一交易中,这样,当该区块链节点21b成功将该第一交易写入区块链20e之后,作为第一业务节点的用户终端21a则可以执行步骤S5,以从区块链(即图2所示的区块链20e)上清分到与自己相关的第一交易,以获取该第一交易中所携带的可隐藏业务声明文件(即上述VC文件2)。这意味着对于上述业务网络中的其他业务节点而言,则无法直接获取到与该用户2a的身份相关联的可隐藏业务声明文件(即上述VC文件2)。
应当理解,为确保可隐藏业务声明文件(即上述VC文件2)中所携带的能够表征该用户2a的身份的N个业务属性数据在最小化程度上被披露,本申请实施例提出可以对N个业务属性数据进行选择性披露,以确保用于表征该用户2a的身份的业务属性数据的隐私性和安全性。为便于理解,进一步的,请参见图3,图3是本申请实施例提供的另一种进行数据交互的场景示意图。如图3所示,用户终端21a在从核心共识网络200a的区块链(例如,上述图2所示的区块链20e)上清分到可隐藏业务声明文件(即上述VC文件2)时,可以进一步执行图3所示的步骤S6,即此时,该用户终端21a可以在可隐藏业务声明文件(即上述VC文件2)所包含的N个业务属性数据中,选择性披露部分业务属性数据,进而可以根据选择性披露的部分业务属性数据,确定辅助证明数据,进而可以根据确定的辅助证明数据,生成具有属性隐藏能力的隐藏业务表达文件(即上述具有属性隐藏能力的VP文件)。
如图3所示,用户2a还可以进一步通过用户终端21a可以执行步骤S7,以请求位于该核心共识网络200a中的共识节点将该隐藏业务表达文件所对应的第二交易写入到区块链。同理,在用户2a在得到该隐藏业务表达文件对应的第二交易的过程中,也可以指定用于对该用户2a的资质进行验证的第三对象,即该第二交易中携带图3所示的用户终端21c的节点标识。这里的第三对象可以为图3所示的用户2c,该用户2c可以为上述公司C4中的用户,这里的用户终端21c可以为上述第三业务节点。
进一步的,如图3所示,用户终端21c可以执行步骤S8,以从图3所示的核心共识网络200a的区块链上清分到隐藏业务表达文件(即上述具有属性隐藏能力的VP文件)。如图3所示,该用户终端21c可以将清分到的隐藏业务表达文件(即上述具有属性隐藏能力的VP文件)显示在该用户终端21c的终端显示界面上,进而可以对该终端显示界面上所显示的隐藏业务表达文件(即上述具有属性隐藏能力的VP文件)进行验证。
其中,为便于理解,如图3所示,该用户2c可以在该用户终端21c的终端显示界面上看到用户21a所选择性披露的部分业务属性数据(即图3所示的披露属性数据),还可以看到选择性隐藏的其他业务属性数据(即隐藏属性数据)对应的分段哈希值。应当理解,本申请实施例可以将隐藏业务表达文件中的批量属性数据和隐藏属性数据对应的分段哈希值,统称为上述辅助证明数据。
可选的,在一些实施例中,该辅助证明数据中还可以包含披露属性数据对应的混淆值、披露属性数据在上述目标根哈希值所对应的索引路径中的索引值、目标根哈希值、根哈希签名以及上述第二对象的去中心化身份信息。这意味着用户2c可以通过该用户终端21c中的辅助证明数据,对该隐藏业务表达文件(即上述具有属性隐藏能力的VP文件)进行验证。
其中,第一业务节点(例如,上述用户终端21a)获取可验证身份证明文件,并从区块链上清分到第二业务节点(例如,上述区块链节点21b)颁发的可隐藏业务声明文件、以及基于可隐藏业务声明文件生成隐藏业务表达文件的具体过程,可以参见图4至图11所对应的实施例。
进一步的,请参见图4,图4是本申请实施例提供的一种属性数据处理方法的流程示意图,如图4所示,方法可以由第一业务节点执行,比如,该第一业务节点可以为上述图1所示的区块链网络1A所包含的业务网络中的任意一个业务节点。方法具体可以包括以下步骤S101-步骤S104。
步骤S101,在第一业务节点从区块链上清分到由第二业务节点颁发的可隐藏业务声明文件时,从可隐藏业务声明文件中获取第一业务节点对应的第一对象的N个业务属性数据以及与N个业务属性数据相关联的辅助业务数据;N为大于1的正整数;
具体的,第一业务节点可以用于接收第二业务节点针对可隐藏业务声明文件返回的第一交易上链结果;这里的第一交易上链结果是由第二业务节点在通过共识节点将可隐藏业务声明文件所对应的第一交易成功写入区块链时所生成的;应当理解,第一业务节点在将第一交易写入区块链的过程中,为确保该第一交易中所携带的可隐藏业务声明文件对第一对象可见,可以在第一交易中指定第一对象所对应的第一业务节点的节点标识,这意味着这里的第一交易中不仅可以携带第一业务节点的节点标识,还会携带由该第二业务节点所颁发的可隐藏业务声明文件。进一步的,第一业务节点可以根据第一交易上链结果获取第一业务节点的节点标识,从而可以基于第一业务节点的节点标识激活第一业务节点的数据清分功能;进一步的,第一业务节点可以通过第一业务节点的数据清分功能从区块链上获取第一交易,且从第一交易中清分到可隐藏业务声明文件;应当理解,这里的可隐藏业务声明文件是第二业务节点基于第一对象的可验证身份证明文件所颁发的。
其中,写入区块链的第一交易中携带由第二对象所指定的第一业务节点的节点标识,且第一业务节点的节点标识用于表征第一对象具备从第一交易中获取可隐藏业务声明文件的资格。
可选的,应当理解,第一业务节点在执行上述步骤S101之前,该第一业务节点还可以用于接收第四对象所对应的第四业务节点为第一对象签发的可验证身份证明文件;其中,可验证身份证明文件中携带第一对象的去中心化身份信息;进一步的,第一业务节点可以通过第一对象的去中心化身份信息(即第一对象的DID信息)向第二业务节点发送用于颁发可隐藏业务声明文件的文件颁发请求;可以理解的是,这里的文件颁发请求可以用于指示第二业务节点在通过第一对象的去中心化身份信息(即第一对象的DID信息)从区块链上获取到第一对象的去中心化身份签名文件(即第一对象的DID签名文件)时,对第一对象的去中心化身份签名文件(即第一对象的DID签名文件)进行签名验证,以得到用于表征第一对象的身份的对象身份信息;对象身份信息用于指示第二业务节点在确定第一对象的N个业务属性数据时,生成与N个业务属性数据相关联的辅助业务数据;进一步的,第一业务节点可以基于自己的节点标识(即第一业务节点的节点标识)从区块链(例如,上述核心共识网络所维护的区块链20e)上清分到第二业务节点为第一对象颁发的可隐藏业务声明文件;可隐藏业务声明文件可以为第二业务节点通过第二对象的去中心化身份信息(即第二对象的DID信息)对N个业务属性数据和辅助业务数据进行签名后所得到的具备属性隐藏能力的可验证声明文件。
应当理解,本申请实施例可以通过第二对象的去中心化身份信息(即第二对象的DID信息)为第一对象所授权提交的第一对象的DID信息的某些属性做背书,以证明该第一对象的DID信息的某些属性的真实性。其中,可以理解的是,这里的可隐藏业务声明文件(例如,上述VC文件2)是第二业务节点基于第一对象的可验证身份证明文件(例如,上述VC文件1)所颁发的。其中,这里的可验证身份证明文件(例如,上述VC文件1)可以是上述第四对象所对应的第四业务节点(例如,可信机构,比如:上述身份认证机构)所签发的用于证明第一对象的身份的证明文件。
其中,应当理解,该第四业务节点在将用于证明该第一对象的身份的证明文件(即可验证身份证明文件,例如,上述VC文件1)返回给第一对象对应的第一业务节点的同时,还会一并将由第四业务节点所签发的第一对象的去中心化身份签名文件返回给该第一业务节点。其中,可以理解的是,这里的第一对象的去中心化身份签名文件是由第四业务节点通过第四对象的去中心化身份信息(例如,第四对象的DID信息),对第一对象的去中心化身份文件(即第一对象的DID文件)进行签名处理后所得到的。
其中,应当理解,由于这里的第四对象为一个可信机构,则该第四对象的去中心化身份信息(例如,第四对象的DID信息)可以是由与该第四对象相关联的上级可信机构根据自己的DID信息所对应的DID文件中的公钥信息所签发的;此时,该第四对象在成功对第一对象进行身份认证后,还可以通过上级可信机构为自己所签发的DID信息(即前述第四对象的DID信息),为该第一对象签发用于证明该第一对象身份的证明文件(即可验证身份证明文件,例如,上述VC文件1)。可以理解的是,这里的第四对象的上级可信机构的DID信息可以存储在验证方系统的可信身份列表中,这样,只要在验证方系统的可信身份列表中查询到第四对象的上级可信机构的DID信息,则可以确定第四对象的DID文件是根据上级可信机构的DID信息所创建的,即该第四对象的DID文件中所包含的用于签发上述第一对象的DID签名文件的第四对象的DID信息是可信的。比如,这里的第四对象可以为县身份认证机构,此时,该第四对象的上级可信机构可以为市身份认证机构等。
其中,可选的,应当理解,这里的第四对象的去中心化身份信息(例如,第四对象的DID信息)还可以与该第四对象的公钥信息之间存储绑定关系,这样,第四业务节点在获取到该第四对象的去中心化身份信息(例如,第四对象的DID信息)时,可以快速获取到为该第四业务节点所配置的第四对象的公钥信息所对应的私钥信息,进而可以通过该第四对象的私钥信息对第一对象的去中心化身份文件(即第一对象的DID文件)进行签名处理,以将签名处理后的第一对象的去中心化身份文件写入区块链;可以理解的是,这里的签名处理后的第一对象的去中心化身份文件即为前述第一对象的去中心化身份签名文件。这样,后续验证方可以通过区块链上所公开的该第四对象的公钥信息,来对该第一对象的去中心化身份文件进行签名验证。
为便于理解,进一步的,请参见图5,图5是本申请实施例提供的一种第一业务节点与第四业务节点进行数据交互的流程示意图。如图5所示的第一业务节点(例如,上述用户终端21a)所对应的对象可以为上述第一对象,该第一对象可以为上述用户2a,当用户2a在第一业务节点侧授权提交自己的去中心化身份文件时,该第一业务节点可以执行图5所示的步骤S21,以将第一对象的去中心化身份文件(即第一对象的DID文件)发送给图5所示的第四业务节点。
其中,可以理解的是,该第一对象发送的去中心化身份文件(即第一对象的DID文件)中可以包含第一对象的基本身份信息(即第一对象的对象身份信息)、与该第一对象的基本身份信息(即第一对象的对象身份信息)相关联的DID信息,以及该第一对象的公钥信息。
这样,第四业务节点在接收到该第一对象的去中心化身份文件时,可以执行步骤S22,以通过线下身份认证的方式或者线上身份认证的方式对该第一对象的身份进行验证。比如,若第四业务节点所对应的第四对象为上述可信机构(例如,身份认证机构)下的警务人员,则该警务人员可以采用线下身份认证的方式或者线上身份认证的方式对该第一对象的身份进行验证。
其中,可选的,可以理解的是,第一业务节点还可以根据前述第一对象的去中心化身份文件,生成用于向第四对象对应的第四业务节点提交文件注册请求,进而可以将该文件注册请求发送给图5所示的第四业务节点,此时,该文件注册请求中可以携带前述第一对象的去中心化身份文件;可以理解的是,这里的文件注册请求可以用于指示图5所示的第四业务节点进一步执行步骤S22,以基于该第一对象的对象身份信息对第一对象的身份进行身份认证。
其中,这里的线下身份认证是指第四对象(即警务人员)需要通知第一对象用自己的物理身份证来进行线下的身份比对,以确认该第一对象的身份的可靠性。比如,第四对象所对应的第四业务节点可以向第一对象发送线下身份认证通知,以使第一对象可以根据该线下身份认证通知所记载的内容,在规定的时间内使用自己的物理身份证件来进行人工比对,进而可以根据人工比对结果实现对该第一对象的身份验证。此时,第四业务节点可以使用第四对象的私钥信息对该第一对象所提交的去中心化身份文件(即第一对象的DID文件)进行签名,以得到该第一对象的去中心化身份签名文件(即第一对象的DID签名文件)。
可选的,为提高业务处理效率,本申请实施例也可以采用线上身份认证的方式来对该第一对象进行身份认证。比如,第一对象在通过第一业务节点提交自己的去中心化身份文件(即第一对象的DID文件)时,可以在第一业务节点的终端显示界面上弹出人脸扫描区域,以通过捕捉到的人脸进行人脸识别(比如,可以进行活体人脸识别),进而可以将人脸识别到的身份信息与该用户2a当前所提交的基本身份信息(即第一对象的对象身份信息)进行在线对比,以根据在线比对结果来在线验证该第一对象的身份。若在线比对结果指示人脸识别到的身份信息与该用户2a当前所提交的基本身份信息相匹配,则该第四业务节点可以确认完成对该第一对象的身份验证。此时,第四业务节点可以使用第四对象的私钥信息对该第一对象所提交的去中心化身份文件(即第一对象的DID文件)进行签名,以得到该第一对象的去中心化身份签名文件(即第一对象的DID签名文件)。
进一步的,如图5所示,第四业务节点可以执行步骤S23,以向图5所示的位于核心共识网络中的共识节点发送第一上链请求,该第一上链请求旨在请求图5所示的共识节点可以将由第四对象签名后的第一对象的去中心化身份文件(即前述步骤S23所得到的第一对象的去中心化身份签名文件)存储到区块链。如图5所示,第四业务节点可以执行步骤S24,以接收共识节点针对前述第一上链请求所返回的区块链存储结果。可以理解的是,这里的区块链存储结果可以用于表征核心共识网络中的共识节点已经成功将前述第一对象的去中心化身份签名文件存入区块链。此时,第四业务节点可以执行步骤S25,以将针对上述文件注册请求的身份注册结果返回给第一业务节点。其中,可以理解的是,本申请可以将对第一对象的去中心化身份文件进行签名所得到的第四对象的数字签名和第一对象的去中心化身份文件统称为第一对象的去中心化身份签名文件。
其中,可以理解的是,这里的身份注册结果可以包含由第四对象所签发的第一对象的区中心化身份签名文件,还可以包含由第四对象所签发的可验证身份证明文件。这样,第一业务节点在接收到由第四对象所对应的第四业务节点为第一对象签发的可验证身份证明文件时,还可以一并接收到由第四业务节点返回的第一对象的去中心化身份签名文件。
其中,可以理解的是,在上述资质核查场景下,这里的可隐藏业务声明文件(例如,上述VC文件2)可以是第二业务节点所签发的用于证明第一对象的资质的另一证明文件,比如,第一对象的学历证书、毕业证书或者技能证书等,这里将不对该可隐藏业务声明文件的文件类型进行限定。
可选的,在上述医疗场景下,这里的可隐藏业务声明文件(例如,上述VC文件2)可以是第二业务节点所签发的病历证明文件,该病历证明文件是由第二业务节点根据从医疗系统中所记载的该第一对象的电子处方和电子检查结果所生成的。
可选的,在上述政务场景下,这里的可隐藏业务声明文件(例如,上述VC文件2)可以是第二业务节点所签发的政务证明文件,比如,政务机构根据第一对象所提交的可验证身份证明文件为第一对象所签发的电子房产证等。
可选的,在上述数据共享互通场景下,这里的可隐藏业务声明文件(例如,上述VC文件2)可以是第二业务节点所签发的应用访问证明文件,该应用访问证明文件中携带第一对象访问第一应用时所授权记录到的与该第一对象相关联的应用访问记录,该第一对象可以在应用访问记录中,将记录到的某些业务属性数据进行选择性的披露,以将选择性披露的业务属性数据分享给第二应用使用。
比如,这里的第一应用和第二应用可以包括但不限于集成在上述车载终端中的地图或者车联网应用、集成在上述智能语音交互设备中的多媒体应用等。可以理解的是,若该第一应用为上述车载终端中的地图或者车联网应用,则这里的应用访问记录可以包含但不限于记录到的该第一对象的行程信息。可选的,若该第一应用为智能语音交互设备中的多媒体应用,则这里的应用访问记录可以包含但不限于记录到的该第一对象所播放的多媒体信息(例如,视频信息、音频信息等)。
为便于理解,这里以该方法所适用的业务场景为上述资质核查场景为例,以进一步执行下述步骤S102-步骤S104。
步骤S102,在N个业务属性数据中,将选取的用于表征第一对象的身份的业务属性数据作为隐藏属性数据,且将除隐藏属性数据之外的业务属性数据作为披露属性数据,确定披露属性数据在辅助业务数据的目标根哈希值所对应的索引路径中的索引值;
具体的,第一业务节点可以在用于表征第一对象的身份的N个业务属性数据中,对这N个业务属性数据中的部分业务属性数据进行选择性披露,进而可以对这N个业务属性数据中的剩余业务属性数据进行属性隐藏。应当理解,这里的N个业务属性数据是前述第二业务节点对获取到的第一对象的对象身份信息进行属性拆分之后所得到的。比如,第一业务节点可以将取的用于表征第一对象的身份的业务属性数据(例如,性别属性、住址属性、联系属性等)作为隐藏属性数据,且将除隐藏属性数据之外的业务属性数据(例如,年龄属性)作为披露属性数据。此时,第一业务节点可以根据前述第二业务节点通过分段哈希的方式所构建得到的与N个业务属性数据相关联的默克尔树,确定当前所披露的披露属性数据在默克尔树下的目标根哈希值所对应的索引路径中的索引值。可以理解的是,这里的披露属性数据所对应的索引值可以用于快速定位到该披露属性数据在N个业务属性数据中的位置,比如,该披露属性数据是这N个业务属性数据中的第几个业务属性数据。
其中,可以理解的是,对于第二业务节点所颁发的可隐藏业务声明文件而言,在上述业务场景为资质核查场景时,该可隐藏业务声明文件可以为用于证明该第一对象资质(例如,学历)的证明文件,此时,该可隐藏业务声明文件中可以包含第一对象所提交的第一对象的DID信息,还可以包含的与该第一对象的对象身份信息相关联的N个业务属性数据,这N个业务属性数据至少可以包含第一对象的学位属性、毕业院校属性、专业属性、性别属性、住址属性、联系属性和年龄属性。
步骤S103,从辅助业务数据中确定隐藏属性数据对应的混淆值以及披露属性数据对应的混淆值,根据隐藏属性数据以及隐藏属性数据对应的混淆值,确定隐藏属性数据对应的分段属性哈希值;
应当理解,这里的辅助业务数据可以包括N个业务属性数据中的每个业务属性数据对应的混淆值,所以,当第一业务节点在N个业务属性数据中确定好隐藏属性数据和披露属性数据时,可以对应的确定出隐藏属性数据对应的混淆值以及披露属性数据对应的混淆值。进一步的,第一业务节点可以根据计算这些隐藏属性数据对应的分段属性哈希值。比如,第一业务节点可以按照分段哈希的方式使用隐藏属性数据对应的混淆值对隐藏属性数据进行加密处理,进而可以将加密处理后的隐藏属性数据进行哈希计算,从而可以得到隐藏属性数据对应的分段属性哈希值,进而可以继续执行下述步骤S104。
步骤S104,基于隐藏属性数据对应的分段属性哈希值、披露属性数据对应的混淆值、索引值、以及目标根哈希值,生成可隐藏业务声明文件对应的隐藏业务表达文件,将隐藏业务表达文件写入区块链,以使第一对象所指定的第三对象对应的第三业务节点,对从区块链上清分到的隐藏业务表达文件进行验证。
具体的,可以理解的是,这里的辅助业务数据可以包括N个业务属性数据中的每个业务属性数据对应的混淆值、目标根哈希值、目标根哈希值对应的根哈希签名以及用于对目标根哈希值进行签名的第二业务节点对应的第二对象的去中心化身份信息;其中,每个业务属性数据对应的混淆值均是第二业务节点根据与N个业务属性数据相关联的种子混淆值所派生得到的;每个业务属性数据对应的混淆值包括隐藏属性数据对应的混淆值和披露属性数据对应的混淆值;这样,第一业务节点在从辅助业务数据中获取到根哈希签名以及第二对象的去中心化身份信息时,可以进一步将隐藏属性数据对应的分段属性哈希值、披露属性数据、披露属性数据对应的混淆值、索引值、目标根哈希值、根哈希签名以及第二对象的去中心化身份信息,作为辅助证明数据,进而可以基于辅助证明数据,生成可隐藏业务声明文件对应的隐藏业务表达文件。进一步的,第一业务节点可以通过哈希比较的方式,验证该隐藏业务表达文件中的披露属性数据的正确性和合法性。比如,第一业务节点可以首先根据披露属性数据、披露属性数据对应的混淆值、以及隐藏属性数据对应的分段属性哈希值,确定与披露属性数据相关联的第一待验证根哈希值;其次,第一业务节点可以将第一待验证根哈希值和目标根哈希值进行哈希比较,得到第一哈希比较结果;然后,若第一哈希比较结果指示第一待验证根哈希值与目标根哈希值相同,则第一业务节点可以确定披露属性数据具备合法性。此时,第一业务节点可以进一步在确定披露属性数据具备合法性时,通过第一对象的私钥信息对隐藏业务表达文件进行签名处理,进而可以将签名处理后的隐藏业务表达文件通过共识节点写入区块链。
为便于理解,进一步的,请参见图6,图6是本申请实施例提供的将隐藏业务表达文件写入区块链的流程示意图。如图6所示,第一业务节点可以执行步骤S31,以从区块链(即由部署在核心共识网络中的共识节点所维护的区块链,例如,上述区块链20e)上清分到第二业务节点所颁发的可隐藏业务声明文件,这里的可隐藏业务声明文件可以为上述具有属性隐藏能力的VC文件2。其中,第一业务节点从区块链上清分到该VC文件2的具体实现方式可以参见上述步骤S101的描述。进一步的,如图6所示,第一区块链节点可以执行步骤S32,以根据可隐藏业务声明文件(即上述具有属性隐藏能力的VC文件2)生成隐藏业务声明文件(即上述具有属性隐藏能力的VP文件),进而可以通过比较根哈希的方式验证该隐藏业务声明文件(即上述具有属性隐藏能力的VP文件)所披露的披露属性数据的正确性。
其中,可以理解的是,该可隐藏业务声明文件(即上述具有属性隐藏能力的VC文件2)是对第一对象可见的,所以,第一对象所对应的第一业务节点可以在获取到该VC文件2时,进一步从该VC文件2中获取以明文形式显示的N个业务属性数据,并可以从该VC文件2中获取与这N个业务属性数据相关联的VC秘密信息,本申请实施例可以将这里的VC秘密信息统称为上述辅助业务数据,且这里的辅助业务数据是前述第二业务节点按照分段哈希的方式,对这N业务属性数据进行分段加密处理和分段哈希处理所后得到的。比如,这里的辅助业务数据至少可以包含用于对每个业务属性数据进行加密处理的每个业务属性数据对应的混淆值、基于每个业务属性数据的分段哈希值所构建得到的默克尔树的根哈希值(即前述目标根哈希值)、对目标根哈希值进行签名所得到的目标根哈希值对应的根哈希签名以及用于对该目标根哈希值进行签名的第二业务节点对应的第二对象的去中心化身份信息。
其中,可以理解的是,这里的目标根哈希值是第二业务节点基于与N个业务属性数据相关联的分段哈希计算规则所确定的;所以,第一业务节点为验证在N个业务属性数据中所选择性披露的披露属性数据的正确性,也可以通过分段哈希计算规则确定与当前所霹雳的披露属性数据相关联的第一待验证根哈希值。
具体的,第一业务节点可以获取分段哈希计算规则中的加密处理规则和哈希处理规则,从而可以按照加密处理规则使用披露属性数据对应的混淆值对披露属性数据进行加密处理,得到披露属性数据对应的加密属性数据,并可以根据哈希处理规则对加密属性数据进行哈希处理,以得到披露属性数据对应的分段属性哈希值;进一步的,第一业务节点可以获取分段哈希计算规则中的根哈希确定规则,从而可以根据根哈希确定规则、披露属性数据对应的分段属性哈希值和隐藏属性数据对应的分段属性哈希值,确定与披露属性数据相关联的第一待验证根哈希值。
应当理解,若第一业务节点确定自己所计算得到的第一待验证根哈希值与前述第二业务节点所构建得到的默克尔树的根哈希值(即前述目标根哈希值)相同,则可以确定第一业务节点所选择性披露的部分属性数据(即前述披露属性数据)的正确性和合法性。此时,第一业务节点可以进一步执行图6所示的步骤S33,以通过该第一对象自身所保管的第一对象的私钥信息对当前生成的整个隐藏业务表达文件(即上述具有属性隐藏能力的VP文件)进行签名处理,以得到隐藏业务表达签名文件。如图6所示,第一业务节点可以进一步将签名处理后的隐藏业务表达文件(即隐藏业务表达签名文件)通过共识节点写入区块链。
如图6所示,第一业务节点在将签名处理后的隐藏业务表达文件(即隐藏业务表达签名文件)通过共识节点写入区块链的过程中,具体包含获取第三业务节点的节点标识,从而可以将签名处理后的隐藏业务表达文件作为隐藏业务表达签名文件;此时,第一业务节点可以基于第三业务节点的标识和隐藏业务表达签名文件,确定隐藏业务表达文件对应的第二交易,以将该第二交易通过共识节点写入区块链。应当理解,由于该第一业务节点所对应的第一对象在第二交易中指定了第三业务节点的标识,所以,该写入区块链的第二交易则相对于该第三业务节点所对应的第三对象而言,是可见的。这意味着第三业务节点的节点标识可以用于表征该第三对象具备从第二交易中获取隐藏业务表达签名文件的资格;需要注意的是,这里的隐藏业务表达签名文件是由第一对象对隐藏业务表达文件进行签名处理后所得到的,即该隐藏业务表达签名文件是第一业务节点通过第一对象的私钥信息对隐藏业务表达文件进行签名处理后所得到的。可以理解的是,本申请实施例可以将通过第一对象的私钥信息对隐藏业务表达文件进行签名所得到的第一对象的签名和隐藏业务表达文件统称为上述隐藏业务表达签名文件。这样,后续用于验证隐藏业务表达文件的验证方(比如,第三业务节点所对应的第三对象)在从区块链上清分到该隐藏业务表达签名文件时,可以对该隐藏业务表达签名文件进行签名验证,进而可以在签名验证成功的情况下,得到该隐藏业务表达文件(即前述具有属性隐藏能力的VP文件)。
如图6所示,第一业务节点还可以执行步骤S34,以接收共识节点返回的链上存储设置结果。可以理解的是,本申请实施例可以将共识节点将第二交易写入区块链(即写入共识节点的区块链账本)时所生成的链上存储设置节点统称为第二交易上链结果;这意味这里的第二交易上链结果是由共识节点在将第二交易成功写入区块链时所生成的。应当理解,写入第二交易的第三对象的数量可以为一个或者多个,即第一对象可以在第二交易中指定一个或者多个第三业务节点的节点标识,这里将不对第三对象的数量进行限定。同理,该第一对象还可以在第二交易中设置对这些第三对象的可见时长,即在该可见时长内,该第二交易对这些第三对象是可见的。
在本申请实施例中,第一业务节点在从区块链上清分到由第二业务节点颁发的可隐藏业务声明文件时,可以从可隐藏业务声明文件中获取第一业务节点对应的第一对象的N个业务属性数据以及与N个业务属性数据相关联的辅助业务数据;其中,N为大于1的正整数。应当理解,第一业务节点所对应的第一对象为用户时,该第一对象的N个业务属性数据可以用于表征该用户的身份。其中,应当理解,前述第二业务节点在为该用户颁发可隐藏业务声明文件的过程中,会将该用于表征该用户的身份的对象身份信息拆分为N个业务属性数据,进而可以使用分段哈希计算规则为这N个业务属性数据添加混淆值,以计算得到与这些业务属性数据相关联的目标根哈希值,从而可以得到与这N个业务属性数据相关联的辅助业务数据,这样,第二业务节点可以根据拆分得到的N个业务属性数据和计算所得到的辅助业务数据生成前述可隐藏业务声明文件。进一步的,为确保前述用于表征用户身份的某些业务属性数据的隐私性和安全性,第一业务节点可以在N个业务属性数据中,选择性披露某些业务属性数据。比如,第一业务节点可以在N个业务属性数据中,将选取的用于表征第一对象的身份的业务属性数据作为隐藏属性数据,且将除隐藏属性数据之外的业务属性数据作为披露属性数据,并可以确定披露属性数据在辅助业务数据的目标根哈希值所对应的索引路径中的索引值;这样,第一业务节点可以从辅助业务数据中确定隐藏属性数据对应的混淆值以及披露属性数据对应的混淆值,并可以根据隐藏属性数据以及隐藏属性数据对应的混淆值,确定隐藏属性数据对应的分段属性哈希值;进一步的,第一业务节点可以基于隐藏属性数据对应的分段属性哈希值、披露属性数据对应的混淆值、索引值、以及目标根哈希值,生成可隐藏业务声明文件对应的隐藏业务表达文件,以将隐藏业务表达文件写入区块链,以使第一对象所指定的第三对象对应的第三业务节点,对从区块链上清分到的隐藏业务表达文件进行验证。由此可见,在去中心化身份识别场景下,第一业务节点在通过可隐藏业务声明文件(即具备属性隐藏能力的可验证声明文件)生成隐藏业务表达文件的过程中,可以对可隐藏业务声明文件中的部分属性数据进行选择性地披露,进而可以通过生成的隐藏业务表达文件实现这些属性数据的最小化披露。此外,本申请实施例通过采用区块链这样的去中心化的数据存储方式,不仅可以确保第一对象的某些属性数据的安全性,还可以在选择性披露某些属性数据的情况下,在最大程度上确保第一对象的某些属性数据的隐私性。
进一步的,请参见图7,图7是本申请实施例提供的另一种属性数据处理方法的流程示意图。如图7所示,方法可以由第二业务节点执行,该第二业务节点可以为上述图1所示的区块链网络1A所包含的业务网络中的任意一个区块链节点。该方法具体包括以下步骤S201-步骤S204:
步骤S201,在接收到第一对象通过第一业务节点提交的可验证身份证明文件时,从可验证身份证明文件中获取第一对象的去中心化身份信息,且通过第一对象的去中心化身份信息从区块链上获取第一对象的去中心化身份签名文件;
可以理解的是,第二业务节点可以用于接收第一业务对象提交的可验证身份证明文件,该可验证身份证明文件中可以携带第一对象所授权提交的第一对象的去中心化身份信息。可以理解的是,这里的可验证身份证明文件可以是由上述第四对象为第一对象所签发的用于证明该第一对象的身份的证明文件,比如,该可验证身份证明文件可以为上述VC文件1。
可选的,在一些其它实现方式中,该第二业务节点可以接收由第一业务节点通过第一对象的去中心化身份信息所发送的文件颁发请求,进而可以基于该文件颁发请求中所携带的第一对象的去中心化身份信息从区块链上获取到第一对象的去中心化身份签名文件。可以理解的是,这里的第一对象的去中心化身份签名文件是上述第四业务节点在对第一对象进行身份验证后,对第一对象的去中心化身份文件进行签名处理后所得到的。同理,第四业务节点将第一对象的去中心化身份签名文件写入区块链的具体实现方式,可以参见上述图4所对应实施例中对第四业务节点侧的描述,这里将不再继续进行赘述。
步骤S202,对第一对象的去中心化身份签名文件进行签名验证,且在签名验证成功时,得到用于表征第一对象的身份的对象身份信息;
可以理解的是,这里之所以需要对该第一对象的去中心化身份签名文件进行签名验证,是为了判断当前所获取到的第一对象的去中心化身份签名文件是否是由上述第四对象(例如,身份认证机构)所签发的。如果验证成功,则可以确定该第一对象的去中心化身份签名文件中所携带的第四对象的签名的合法性,进而可以得到该第一对象的去中心化身份签名文件中所携带的第一对象的去中心化身份文件(即上述第一对象的DID文件)。此时,第二业务节点可以从该第一对象的去中心化身份文件(即上述第一对象的DID文件)中获取用于表征第一对象的身份的对象身份信息。应当理解,这里的第一对象的身份的对象身份信息属于由身份认证机构在身份验证通过后所确定的具备合法性的第一对象的基础身份信息。
步骤S203,在从对象身份信息中获取到第一对象的N个业务属性数据时,生成与N个业务属性数据相关联的辅助业务数据,基于N个业务属性数据和辅助业务数据,生成用于上链至区块链的可隐藏业务声明文件;N为大于1的正整数;
为便于理解,进一步的,请参见图8,图8是本申请实施例提供的一种分段哈希结构的场景示意图,如图8所示,第二业务节点可以按照分段哈希方式对N个业务属性数据进行分段哈希计算。如图8所示,第二业务节点从第一对象的对象身份信息中所拆分得到的N个业务属性数据,具体可以包含业务属性数据82a、业务属性数据82b、业务属性数据82c、…、业务属性数据82n。如图8的种子混淆值可以用于为N个业务属性数据中的每个业务属性数据派生出一个混淆值,比如,为业务属性数据82a派生的混淆值可以为图8所示的混淆值81a;为业务属性数据82b派生的混淆值可以为图8所示的混淆值81b;为业务属性数据82a派生的混淆值可以为图8所示的混淆值81a;以此类推,为业务属性数据82n派生的混淆值可以为图8所示的混淆值81n。应当理解,这里的分段哈希方式所对应的分段哈希计算规则可以包括加密处理规则、哈希处理规则以及根哈希确定规则。
其中,加密处理规则可以用于通过每个业务属性数据对应的混淆值分别对对应业务属性数据进行加密处理,以得到加密处理后的每个业务属性数据。其中,哈希处理规则可以用于对加密处理后的每个业务属性数据进行哈希处理,以得到每个业务属性数据对应的分段哈希值。
比如,如图8所示,第二业务节点可以按照加密处理规则通过混淆值81a对业务属性数据82a进行加密处理,以计算得到加密处理后的业务属性数据82a,并可以按照哈希处理规则对该加密处理后的业务属性数据82a进行哈希处理,以得到该业务属性数据82a对应的分段哈希值(即图8所示的分段哈希值83a)。同理,第二业务节点可以按照加密处理规则通过混淆值81b对业务属性数据82b进行加密处理,以计算得到加密处理后的业务属性数据82b,并可以按照哈希处理规则对该加密处理后的业务属性数据82b进行哈希处理,以得到该业务属性数据82b对应的分段哈希值(即图8所示的分段哈希值83b)。以此类推,第二业务节点可以通过前述加密处理规则、哈希处理规则,得到业务属性数据82c的分段哈希值(即图8所示的分段哈希值83c)、…、业务属性数据82n的分段哈希值(即图8所示的分段哈希值83n)。
进一步的,第二业务节点可以按照根哈希确定规则,将每个业务属性数据对应的分段哈希值作为一个叶子节点,以构建得到与每个业务属性数据对应的分段哈希值相关联的默克尔树,该默克尔树的根节点即为图8所示的目标根哈希值。此时,第二业务节点可以通过第二对象的私钥信息对该目标根哈希值进行签名处理,以得到该目标根哈希值对应的哈希根签名,与此同时,第二业务节点可以在对该目标根哈希值进行签名处理时,附带上该第二对象的去中心化身份信息。
可以理解的是,本申请实施例可以将每个业务属性数据对应的混淆值(例如,图8所示的混淆值81a、混淆值81b、混淆值81c、…、混淆值81n)、目标根哈希值、目标根哈希值对应的根哈希签名以及第二对象的去中心化身份信息统称为上述辅助业务数据。此时,第二业务节点可以基于N个业务属性数据和辅助业务数据,生成用于上链至区块链的可隐藏业务声明文件。
步骤S204,在将可隐藏业务声明文件所对应的第一交易成功写入区块链时,向第一业务节点返回第一交易上链结果;
其中,第一交易上链结果用于指示第一业务节点在基于第一交易中所指定的第一业务节点的节点标识,从区块链上清分到可隐藏业务声明文件时,从N个业务属性数据选取的用于表征第一对象的身份的业务属性数据作为隐藏属性数据,并将除隐藏属性数据之外的业务属性数据作为披露属性数据,并根据隐藏属性数据、披露属性数据以及辅助业务数据,生成用于写入区块链的可隐藏业务声明文件对应的隐藏业务表达文件,以使第一对象所指定的第三对象对应的第三业务节点,对从区块链上清分到的隐藏业务表达文件进行验证。
其中,第一业务节点从区块链上清分到可隐藏业务声明文件,并基于可隐藏业务声明文件生成隐藏业务表达文件的具体过程,可以参见上述图4所对应实施例中对第一业务节点的描述,这里将不再继续进行赘述。
为便于理解,进一步的,请参见图9,图9是本申请实施例提供的一种将可隐藏业务声明文件写入区块链的流程示意图。如图9所示,第二业务节点在执行步骤S41时,可以用于接收第一业务节点所提交的携带第一对象的去中心化身份信息的可验证身份证明文件。其中,第一业务节点获取可验证身份证明文件的具体实现方式,可以参见上述图4所对应实施例中获取第一对象的可验证身份证明文件的具体过程的描述,这里将不再继续进行赘述。
进一步的,第二业务节点可以执行步骤S42,以通过第一对象的去中化身份信息,从图9所示的共识节点所在的核心共识网络中查询区块链上所存储的第一对象的去中心化身份签名文件,以便于后续可以执行步骤S43,即第二业务节点可以接收共识节点所返回的区块链查询结果,进而可以在执行步骤S44时,对区块链查询结果中所携带的第一对象的去中心化身份签名文件进行签名验证(比如,可以验证该第一对象的DID签名文件是否是上述第四对象所签发的),进而可以在签名验证成功时,确定该第一对象的身份。其中,第二业务节点对该第一对象的去中心化身份签名文件进行签名验证的具体实现方式,可以参见上述步骤S202的描述,这里将不再继续进行赘述。进一步的,如图9所示,第二业务节点可以执行步骤S45,以基于分段哈希的方式确定与N个业务属性数据相关联的辅助业务数据,进而可以生成隐藏业务声明文件(即上述具有属性隐藏能力的VC文件2)。其中,第二业务节点生成隐藏业务声明文件的具体实现方式,可以参见上述步骤S203,这里将不再继续进行赘述。如图9所示,区块链节点可以执行步骤S46,以请求图9所示的共识节点将该可隐藏业务声明文件存储至区块链,且可以在存储该可隐藏业务声明文件的过程中,设置该可隐藏业务声明文件对第一对象可见,进而可以执行步骤S47,以将存储该可隐藏业务声明文件对应的设置结果返回给第一业务节点。应当理解,这里的设置结果可以为上述第一业务节点所接收到的第一交易上链结果,这里将不再继续进行赘述。应当理解,该第二业务节点所生成隐藏业务声明文件默认对第二对象可见。
由此可见,在本申请实施例中,第二业务节点可以根据第一对象的DID信息,得到该第一对象的DID文件,进而可以通过该第二对象的DID信息对该第一对象的DID文件中的某些属性(即上述N个业务属性数据)进行背书而形成用于描述这些业务属性数据的描述性声明文件(即可隐藏业务声明文件),该描述性声明文件中携带有第二对象的签名和第二对象的DID信息,以便于后续能够帮助用于对隐藏业务表达文件进行验证的验证方(例如,上述第三对象),证明在该第二业务节点侧所生成的可隐藏业务声明文件中的这些业务属性数据的合法性和可靠性。此外,可以理解的是,第二业务节点通过将用于表征第一对象身份的对象身份信息进行属性拆分,可以帮助第一业务节点在生成隐藏业务表达文件的过程中,实现用户隐私数据的最小化披露,从而可以最大程度的保护用户隐私数据。
进一步的,请参见图10,图10是本申请实施例提供的又一种属性数据处理方法的流程示意图。如图10所示,方法可以由第三业务节点执行,该第三业务节点可以为上述图1所示的区块链网络1A所包含的业务网络中的任意一个区块链节点。该方法具体包括以下步骤S301-步骤S304:
步骤S301,在第三业务节点从区块链上清分到隐藏业务表达签名文件时,获取用于对隐藏业务表达签名文件进行签名的第一对象的去中心化身份信息;
其中,隐藏业务表达签名文件是第一对象对应的第一业务节点对隐藏业务表达文件进行签名处理后提交至区块链的,隐藏业务表达文件是第一业务节点根据隐藏属性数据、披露属性数据以及辅助业务数据所生成的;辅助业务数据是第一业务节点从区块链上清分到由第二业务节点颁发的可隐藏业务声明文件中所获取的,且可隐藏业务声明文件包含第一对象的N个业务属性数据;隐藏属性数据为第一业务节点从N个业务属性数据中所选取的用于表征第一对象的身份的业务属性数据,且披露属性数据为N个业务属性数据中除隐藏属性数据之外的业务属性数据;N为大于1的正整数;
步骤S302,通过第一对象的去中心化身份信息从区块链上获取第一对象的去中心化身份签名文件;
其中,第一对象的去中心化身份签名文件中携带的第一对象的公钥信息;
步骤S303,根据第一对象的公钥信息对隐藏业务表达签名文件进行签名验证,且在签名验证成功时,得到隐藏业务表达文件,且确定用于对隐藏业务表达文件进行签名的第二业务节点所对应的第二对象的去中心化身份信息;
步骤S304,根据第二对象的去中心化身份信息从区块链上获取第二对象的去中心化身份签名文件,在对第二对象的去中心化身份签名文件进行签名验证后,得到第二对象的去中心化身份文件,根据第二对象的去中心化身份文件中的第二对象的公钥信息,确定可隐藏业务声明文件的合法性,且通过具备合法性的可隐藏业务声明文件验证隐藏业务表达文件。
具体的,第三业务节点可以根据第二对象的去中心化身份信息从区块链上获取第二对象的去中心化身份签名文件,并获取用于对可信机构进行校验的可信身份列表;可信身份列表中包含一个或者多个可信机构的去中心化身份信息;进一步的,若在可信身份列表查找到与第二对象所关联的目标可信机构的去中心化身份信息相同的可信机构的去中心化身份信息,则第三业务节点可以确定第二对象的去中心化身份签名文件是由目标可信机构所颁发的;进一步的,第三业务节点可以根据目标可信机构的去中心化身份信息,确定目标可信机构的公钥信息,通过目标可信机构的公钥信息对第二对象的去中心化身份签名文件进行签名验证,得到第二对象的去中心化身份文件;进一步的,第三业务节点可以根据第二对象的去中心化身份文件中的第二对象的公钥信息,确定可隐藏业务声明文件的合法性,且通过具备合法性的可隐藏业务声明文件验证隐藏业务表达文件。
为便于理解,进一步的,请参见图11,图11是本申请实施例提供的一种验证隐藏业务表达文件的流程意图。如图11所示的第三业务节点可以从执行步骤S51,以从图9所示的共识节点所维护的区块链上清分到上述隐藏业务表达签名文件。可以理解的是,这里的隐藏业务表达签名文件包含隐藏业务表达文件和由第一对象对隐藏业务表达文件进行签名所得到的第一对象的签名。所以,如图9所示,第三业务节点可以执行步骤S52,以基于该第一对象的签名快速得到该第一对象的去中心化身份信息(即上述第一对象的DID信息),进而可以从区块链上读取与该第一对象的DID信息相匹配的第一对象的去中心化身份签名文件。应当理解,该第一对象的去中心化身份签名文件包含有第一对象的去中心化签名文件(即该第一对象的DID文件),且该第一对象的DID文件携带第一对象的公钥信息。此时,第三业务节点可以执行步骤S53,以通过该第一对象的公钥信息,对上述第一对象的签名进行签名验证,进而可以在签名验证成功时,确定前述隐藏业务表达文件(即上述具有属性隐藏能力的VP文件)是由第一对象提交的。
进一步的,如图11所示,第三业务节点可以执行步骤S54,以从隐藏业务表达文件(即上述具有属性隐藏能力的VP文件)中读取第二对象的去中心化身份信息,进而可以从共识节点所维护的区块链上获取第二对象的去中心化身份签名文件,以判断该第二对象的去中心化身份签名文件(即第二对象的DID签名文件)是否是由该第三业务节点所存储的可信身份列表中的可信机构所签发的。进一步的,第三业务节点可以执行步骤S54,以通过可信身份列表中的该可信机构的DID信息对该第二对象的去中心化身份签名文件进行签名验证。可以理解的是,用于对可信机构进行校验的可信身份列表中可以包含一个或者多个可信机构的去中心化身份信息。
为便于理解,这里以第二对象为上述学校为例,则该学校的DID签名文件是由该学校的上级可信机构(例如,教育部)通过自己的DID信息所签发的,应当理解,该学校的上级可信机构的DID信息存储在第三业务节点所维护的可信身份列表中。由此可见,第三业务节点在对该第二对象的去中心化身份签名文件(即第二对象的DID签名文件)进行签名验证的过程中,需要验证第二对象的DID签名文件是否是由第二对象的上级可信机构所签发的,还需要验证该第二对象的上级可信机构的DID信息是否存在于可信身份列表中。应当理解,若第二对象的上级可信机构的DID信息存在于可信身份列表中,则可以完成对第二对象的去中心化身份签名文件的签名验证,可以得到第二对象的去中心化身份文件(即第二对象的DID文件),进而可以确保该第二对象的DID文件中所携带的第二对象的公钥信息的可信性。
进一步的,如图11所示,第三业务节点可以执行步骤S56,以通过第二对象的公钥信息验证可隐藏业务声明文件确定是由第二对象颁发的,进而可以对第二对象所签名的目标根哈希值进行验证。进一步的,第三业务节点可以获取该可隐藏业务声明文件所携带的辅助业务数据中的目标根哈希值,进而可以执行步骤S57,以通过根哈希比对的方式验证由第二对象所签名的目标根哈希值是否与该第三业务节点所计算得到的第二待验证根哈希值相同,如果相同,则说明该隐藏业务表达文件中所携带的可隐藏业务声明文件的目标根哈希值并没有被篡改,进而可以确定可隐藏业务声明文件的合法性。其中,可以理解的是,这里的第二待验证根哈希值的计算方式,可以参见上述对第一待验证根哈希值的计算过程,这里将不再继续进行赘述。
进一步的,第三业务节点执行步骤S57,以验证隐藏业务表达文件中的隐藏属性数据的路径。具体的,第三业务节点可以在根据目标根哈希值和披露属性数据在目标根哈希值所对应的索引路径中的索引值,确定出隐藏属性数据的索引路径时,执行步骤S59,以完成对隐藏业务表达文件的验证。
由此可见,在本申请实施例中,第一对象所对应的第一业务节点在生成隐藏业务表达文件时,可以指定用于对该隐藏业务表达文件进行验证的一个或者多个第三对象对该隐藏业务表达文件进行验证。这样,第三对象在获取到该隐藏业务表达文件,并对该隐藏业务表达文件进行验证的过程中,至少需要进行5次签名验证。比如,需要验证上述具有属性隐藏能力的VP文件(即隐藏业务表达文件)是否是第一对象提交的。又比如,需要对第二对象签名的目标根哈希值进行验证,以判断该目标根哈希值是否被篡改。又比如,需要验证第三业务节点自己所计算得到的第二待验证根哈希值和第二对象签名的目标根哈希值是否相同。又比如,需要验证包含该目标根哈希值的可隐藏业务声明文件(即上述VC文件2)是否是由第二对象的去中心化身份信息所签发的,还需要验证第二对象的去中心化身份签名文件是否是由第二对象的上级可信机构所签发的。这样,通过上述多次签名验证,可以从根源上确保第一对象所提交的隐藏业务表达文件的可信性。
进一步的,请参见图12,图12是本申请实施例提供的一种属性数据处理装置的结构示意图。如图12所示,属性数据处理装置1可应用于上述业务网络中任意一个区块链节点,例如,属性数据处理装置1可应用于上述图1所对应实施例中的节点110a。应当理解,该属性数据处理装置1可以是运行于区块链节点(比如,前述节点110a)中的一个计算机程序(包括程序代码),例如该属性数据处理装置1可以为一个应用软件;可以理解的是,该属性数据处理装置1可以用于执行本申请实施例提供的方法中的相应步骤。如图12所示,属性数据处理装置1可以包括:属性数据获取模块11,属性数据选取模块12,分段哈希确定模块13和表达文件生成模块14。可选的,属性数据处理装置1还可以包括:身份证明文件接收模块15,文件颁发请求发送模块16,声明文件清分模块17,身份签名文件接收模块18,身份文件获取模块19,文件注册请求发送模块20。
属性数据获取模块11,用于在第一业务节点从区块链上清分到由第二业务节点颁发的可隐藏业务声明文件时,从可隐藏业务声明文件中获取第一业务节点对应的第一对象的N个业务属性数据以及与N个业务属性数据相关联的辅助业务数据;N为大于1的正整数;
属性数据选取模块12,用于在N个业务属性数据中,将选取的用于表征第一对象的身份的业务属性数据作为隐藏属性数据,且将除隐藏属性数据之外的业务属性数据作为披露属性数据,确定披露属性数据在辅助业务数据的目标根哈希值所对应的索引路径中的索引值;
分段哈希确定模块13,用于从辅助业务数据中确定隐藏属性数据对应的混淆值以及披露属性数据对应的混淆值,根据隐藏属性数据以及隐藏属性数据对应的混淆值,确定隐藏属性数据对应的分段属性哈希值;
表达文件生成模块14,用于基于隐藏属性数据对应的分段属性哈希值、披露属性数据对应的混淆值、索引值、以及目标根哈希值,生成可隐藏业务声明文件对应的隐藏业务表达文件,将隐藏业务表达文件写入区块链,以使第一对象所指定的第三对象对应的第三业务节点,对从区块链上清分到的隐藏业务表达文件进行验证。
其中,辅助业务数据包括N个业务属性数据中的每个业务属性数据对应的混淆值、目标根哈希值、目标根哈希值对应的根哈希签名以及用于对目标根哈希值进行签名的第二业务节点对应的第二对象的去中心化身份信息;其中,每个业务属性数据对应的混淆值均是第二业务节点根据与N个业务属性数据相关联的种子混淆值所派生得到的;每个业务属性数据对应的混淆值包括隐藏属性数据对应的混淆值和披露属性数据对应的混淆值;
表达文件生成模块14包括:表达文件生成单元141,待验证哈希确定单元142,哈希比较单元143,签名上链单元144和第二上链结果接收单元145;
表达文件生成单元141,用于从辅助业务数据中获取根哈希签名以及第二对象的去中心化身份信息,将隐藏属性数据对应的分段属性哈希值、披露属性数据、披露属性数据对应的混淆值、索引值、目标根哈希值、根哈希签名以及第二对象的去中心化身份信息,作为辅助证明数据,基于辅助证明数据,生成可隐藏业务声明文件对应的隐藏业务表达文件;
待验证哈希确定单元142,用于根据披露属性数据、披露属性数据对应的混淆值、以及隐藏属性数据对应的分段属性哈希值,确定与披露属性数据相关联的第一待验证根哈希值;
其中,目标根哈希值是第二业务节点基于与N个业务属性数据相关联的分段哈希计算规则所确定的;
待验证哈希确定单元142包括:规则获取子单元1421,加密哈希子单元1422和根哈希确定子单元1423;
规则获取子单元1421,用于获取分段哈希计算规则中的加密处理规则和哈希处理规则;
加密哈希子单元1422,用于按照加密处理规则使用披露属性数据对应的混淆值对披露属性数据进行加密处理,得到披露属性数据对应的加密属性数据,根据哈希处理规则对加密属性数据进行哈希处理,得到披露属性数据对应的分段属性哈希值;
根哈希确定子单元1423,用于获取分段哈希计算规则中的根哈希确定规则,根据根哈希确定规则、披露属性数据对应的分段属性哈希值和隐藏属性数据对应的分段属性哈希值,确定与披露属性数据相关联的第一待验证根哈希值。
其中,规则获取子单元1421,加密哈希子单元1422和根哈希确定子单元1423的具体实现方式,可以参见上述图4所对应实施例中对第一待验证根哈希值的描述,这里将不再继续进行赘述。
哈希比较单元143,用于将第一待验证根哈希值和目标根哈希值进行哈希比较,得到第一哈希比较结果;
签名上链单元144,用于若第一哈希比较结果指示第一待验证根哈希值与目标根哈希值相同,则在确定披露属性数据具备合法性时,通过第一对象的私钥信息对隐藏业务表达文件进行签名处理,将签名处理后的隐藏业务表达文件通过共识节点写入区块链。
其中,签名上链单元144,具体用于获取第三业务节点的节点标识,将签名处理后的隐藏业务表达文件作为隐藏业务表达签名文件;
签名上链单元144,还具体用于基于第三业务节点的标识和隐藏业务表达签名文件,确定隐藏业务表达文件对应的第二交易;
签名上链单元144,还具体用于将第二交易通过共识节点写入区块链。
可选的,第二上链结果接收单元145,用于接收共识节点返回的第二交易上链结果;第二交易上链结果是由共识节点在将第二交易成功写入区块链时所生成的;第二交易中携带第三业务节点的节点标识,且第三业务节点的节点标识用于表征第三对象具备从第二交易中获取隐藏业务表达签名文件的资格;隐藏业务表达签名文件是由第一对象对隐藏业务表达文件进行签名处理后所得到的。
其中,表达文件生成单元141,待验证哈希确定单元142,哈希比较单元143,签名上链单元144,第二上链结果接收单元145的具体实现方式,可以参见上述图4所对应实施例中对步骤S104的描述,这里将不再继续进行赘述。
可选的,身份证明文件接收模块15,用于接收第四对象所对应的第四业务节点为第一对象签发的可验证身份证明文件;可验证身份证明文件中携带第一对象的去中心化身份信息;
文件颁发请求发送模块16,用于通过第一对象的去中心化身份信息向第二业务节点发送用于颁发可隐藏业务声明文件的文件颁发请求;文件颁发请求用于指示第二业务节点在通过第一对象的去中心化身份信息从区块链上获取到第一对象的去中心化身份签名文件时,对第一对象的去中心化身份签名文件进行签名验证,以得到用于表征第一对象的身份的对象身份信息;对象身份信息用于指示第二业务节点在确定第一对象的N个业务属性数据时,生成与N个业务属性数据相关联的辅助业务数据;
声明文件清分模块17,用于基于第一业务节点的节点标识从区块链上清分到第二业务节点为第一对象颁发的可隐藏业务声明文件;可隐藏业务声明文件为第二业务节点通过第二对象的去中心化身份信息对N个业务属性数据和辅助业务数据进行签名后所得到的具备属性隐藏能力的可验证声明文件。
其中,声明文件清分模块17包括:第一上链结果接收单元171,清分功能激活单元172和声明文件清分单元173;
第一上链结果接收单元171,用于接收第二业务节点针对可隐藏业务声明文件返回的第一交易上链结果;第一交易上链结果是由第二业务节点在通过共识节点将可隐藏业务声明文件所对应的第一交易成功写入区块链时所生成的;第一交易中携带第一业务节点的节点标识;
清分功能激活单元172,用于根据第一交易上链结果获取第一业务节点的节点标识,基于第一业务节点的节点标识激活第一业务节点的数据清分功能;
声明文件清分单元173,用于通过第一业务节点的数据清分功能从区块链上获取第一交易,且从第一交易中清分到可隐藏业务声明文件;可隐藏业务声明文件是第二业务节点基于第一对象的可验证身份证明文件所颁发的。
其中,写入区块链的第一交易中携带由第二对象所指定的第一业务节点的节点标识,且第一业务节点的节点标识用于表征第一对象具备从第一交易中获取可隐藏业务声明文件的资格。
其中,第一上链结果接收单元171,清分功能激活单元172和声明文件清分单元173的具体实现方式,可以参见上述图4所对应实施例对第一业务节点清分可隐藏业务声明文件的具体过程的描述,这里将不再继续进行赘述。
可选的,其中,在身份证明文件接收模块15接收第四对象所对应的第四业务节点为第一对象签发的可验证身份证明文件时,身份签名文件接收模块18,用于接收第四业务节点返回的第一对象的去中心化身份签名文件;第一对象的去中心化身份签名文件是由第四业务节点通过第四对象的去中心化身份信息,对第一对象的去中心化身份文件进行签名处理后所得到的。
可选的,其中,第四对象的去中心化身份信息用于指示第四业务节点获取第四对象的私钥信息;在身份签名文件接收模块18接收第四业务节点返回的去中心化身份签名文件之前,身份文件获取模块19,用于获取第一对象的去中心化身份文件;第一对象的去中心化身份文件中包含第一对象的对象身份信息;
文件注册请求发送模块20,用于根据获取到的第一对象的去中心化身份文件,向第四对象对应的第四业务节点提交文件注册请求;文件注册请求用于指示第四业务节点在基于第一对象的对象身份信息成功验证第一对象的身份时,通过第四对象的私钥信息对第一对象的去中心化身份文件进行签名处理,且将签名处理后的第一对象的去中心化身份文件写入区块链;签名处理后的第一对象的去中心化身份文件为第一对象的去中心化身份签名文件。
其中,属性数据获取模块11,属性数据选取模块12,分段哈希确定模块13,表达文件生成模块14,身份证明文件接收模块15,文件颁发请求发送模块16,声明文件清分模块17,身份签名文件接收模块18,身份文件获取模块19,文件注册请求发送模块20的具体实现方式,可以参见上述图4所对应实施例中对步骤S101-步骤S104的描述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步的,请参见图13,图13是本申请实施例提供的另一种属性数据处理装置的结构示意图。如图13所示,属性数据处理装置2可应用于上述业务网络中任意一个区块链节点,例如,属性数据处理装置2可应用于上述图1所对应实施例中的节点110b。应当理解,该属性数据处理装置2可以是运行于区块链节点(比如,前述节点110b)中的一个计算机程序(包括程序代码),例如该属性数据处理装置2可以为一个应用软件;可以理解的是,该属性数据处理装置2可以用于执行本申请实施例提供的方法中的相应步骤。如图13所示,属性数据处理装置2可以包括:身份证明文件接收模块21,身份签名文件验证模块22,声明文件生成模块23和声明文件上链模块24;
身份证明文件接收模块21,用于在接收到第一对象通过第一业务节点提交的可验证身份证明文件时,从可验证身份证明文件中获取第一对象的去中心化身份信息,且通过第一对象的去中心化身份信息从区块链上获取第一对象的去中心化身份签名文件;
身份签名文件验证模块22,用于对第一对象的去中心化身份签名文件进行签名验证,且在签名验证成功时,得到用于表征第一对象的身份的对象身份信息;
声明文件生成模块23,用于在从对象身份信息中获取到第一对象的N个业务属性数据时,生成与N个业务属性数据相关联的辅助业务数据,基于N个业务属性数据和辅助业务数据,生成用于上链至区块链的可隐藏业务声明文件;N为大于1的正整数;
声明文件上链模块24,用于在将可隐藏业务声明文件所对应的第一交易成功写入区块链时,向第一业务节点返回第一交易上链结果;第一交易上链结果用于指示第一业务节点在基于第一交易中所指定的第一业务节点的节点标识,从区块链上清分到可隐藏业务声明文件时,从N个业务属性数据选取的用于表征第一对象的身份的业务属性数据作为隐藏属性数据,并将除隐藏属性数据之外的业务属性数据作为披露属性数据,并根据隐藏属性数据、披露属性数据以及辅助业务数据,生成用于写入区块链的可隐藏业务声明文件对应的隐藏业务表达文件,以使第一对象所指定的第三对象对应的第三业务节点,对从区块链上清分到的隐藏业务表达文件进行验证。
其中,身份证明文件接收模块21,身份签名文件验证模块22,声明文件生成模块23和声明文件上链模块24的具体实现方式,可以参见上述图7所对应实施例中对步骤S201-步骤S204的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步的,请参见图14,图14是本申请实施例提供的又一种属性数据处理装置的结构示意图。如图14所示,属性数据处理装置3可应用于上述业务网络中任意一个区块链节点,例如,属性数据处理装置3可应用于上述图1所对应实施例中的节点110c。应当理解,该属性数据处理装置3可以是运行于区块链节点(比如,前述节点110c)中的一个计算机程序(包括程序代码),例如该属性数据处理装置3可以为一个应用软件;可以理解的是,该属性数据处理装置3可以用于执行本申请实施例提供的方法中的相应步骤。如图14所示,属性数据处理装置3可以包括:隐藏签名文件清分模块31,身份签名文件获取模块32,隐藏签名文件验证模块33,文件合法性确定模块34;
隐藏签名文件清分模块31,用于在第三业务节点从区块链上清分到隐藏业务表达签名文件时,获取用于对隐藏业务表达签名文件进行签名的第一对象的去中心化身份信息;隐藏业务表达签名文件是第一对象对应的第一业务节点对隐藏业务表达文件进行签名处理后提交至区块链的,隐藏业务表达文件是第一业务节点根据隐藏属性数据、披露属性数据以及辅助业务数据所生成的;辅助业务数据是第一业务节点从区块链上清分到由第二业务节点颁发的可隐藏业务声明文件中所获取的,且可隐藏业务声明文件包含第一对象的N个业务属性数据;隐藏属性数据为第一业务节点从N个业务属性数据中所选取的用于表征第一对象的身份的业务属性数据,且披露属性数据为N个业务属性数据中除隐藏属性数据之外的业务属性数据;N为大于1的正整数;
身份签名文件获取模块32,用于通过第一对象的去中心化身份信息从区块链上获取第一对象的去中心化身份签名文件;第一对象的去中心化身份签名文件中携带的第一对象的公钥信息;
隐藏签名文件验证模块33,用于根据第一对象的公钥信息对隐藏业务表达签名文件进行签名验证,且在签名验证成功时,得到隐藏业务表达文件,且确定用于对隐藏业务表达文件进行签名的第二业务节点所对应的第二对象的去中心化身份信息;
文件合法性确定模块34,用于根据第二对象的去中心化身份信息从区块链上获取第二对象的去中心化身份签名文件,在对第二对象的去中心化身份签名文件进行签名验证后,得到第二对象的去中心化身份文件,根据第二对象的去中心化身份文件中的第二对象的公钥信息,确定可隐藏业务声明文件的合法性,且通过具备合法性的可隐藏业务声明文件验证隐藏业务表达文件。
其中,文件合法性确定模块34包括:第二签名文件获取单元341,第二签名文件确定单元342,可信公钥确定单元342,隐藏文件验证单元344;
第二签名文件获取单341,用于根据第二对象的去中心化身份信息从区块链上获取第二对象的去中心化身份签名文件,并获取用于对可信机构进行校验的可信身份列表;可信身份列表中包含一个或者多个可信机构的去中心化身份信息;
第二签名文件确定单元342,用于若在可信身份列表查找到与第二对象所关联的目标可信机构的去中心化身份信息相同的可信机构的去中心化身份信息,则确定第二对象的去中心化身份签名文件是由目标可信机构所颁发的;
可信公钥确定单元343,用于根据目标可信机构的去中心化身份信息,确定目标可信机构的公钥信息,通过目标可信机构的公钥信息对第二对象的去中心化身份签名文件进行签名验证,得到第二对象的去中心化身份文件;
隐藏文件验证单元344,用于根据第二对象的去中心化身份文件中的第二对象的公钥信息,确定可隐藏业务声明文件的合法性,且通过具备合法性的可隐藏业务声明文件验证隐藏业务表达文件。
其中,隐藏业务表达文件的辅助证明数据中包括隐藏属性数据对应的分段属性哈希值、披露属性数据对应的混淆值、披露属性数据在目标根哈希值所对应的索引路径中的索引值;
隐藏文件验证单元344,具体用于从具备合法性的可隐藏业务声明文件中获取辅助业务数据中的目标根哈希值;
隐藏文件验证单元344,还具体用于从隐藏业务表达文件中获取辅助证明数据中的披露属性数据、披露属性数据对应的混淆值、以及隐藏属性数据对应的分段属性哈希值,根据披露属性数据、披露属性数据对应的混淆值、以及隐藏属性数据对应的分段属性哈希值,确定与披露属性数据相关联的第二待验证根哈希值;
隐藏文件验证单元344,还具体用于将第二待验证根哈希值和目标根哈希值进行哈希比较,得到第二哈希比较结果;
隐藏文件验证单元344,还具体用于若第二哈希比较结果指示第二待验证根哈希值与目标根哈希值相同,则在根据目标根哈希值和披露属性数据在目标根哈希值所对应的索引路径中的索引值,确定出隐藏属性数据的索引路径时,完成对隐藏业务表达文件的验证。
其中,第二签名文件获取单元341,第二签名文件确定单元342,可信公钥确定单元342,隐藏文件验证单元344的具体实现方式,可以参见上述图10所对应实施例对步骤S304的描述,这里将不再继续进行赘述。
其中,隐藏签名文件清分模块31,身份签名文件获取模块32,隐藏签名文件验证模块33,文件合法性确定模块34的具体实现方式,可以参见上述图10所对应实施例中对步骤S301-步骤S304的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图15,图15是本申请实施例提供的一种计算机设备的结构示意图。如图15所示,计算机设备1000可以应用于上述图1对应实施例中的区块链节点,计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,应当理解,在一些可选实施例中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选的,用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图15所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
该计算机设备1000中的网络接口1004还可以提供网络通讯功能。在图15所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现前文图4、图7或者图10所对应实施例中对属性数据处理方法的描述,也可执行前文图12、图13或者图14所对应实施例中对属性数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的属性数据处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图4、图7或者图10所对应实施例中对属性数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图4、图7或图10所对应实施例中对属性数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
进一步的,请参见图16,图16是本申请实施例提供的一种属性数据处理系统的结构示意图。该属性数据处理4可以包含属性数据处理装置400a和属性数据处理装置400b以及属性数据处理装置400c。其中,属性数据处理装置400a可以为上述图12所对应实施例中的属性数据处理装置1,可以理解的是,该属性数据处理装置400a可以集成在上述图4所对应实施例中的第一业务节点上,因此,这里将不再进行赘述。其中,属性数据处理装置400b可以为上述图13所对应实施例中的属性数据处理装置2,可以理解的是,该属性数据处理装置400b可以集成在上述图7所对应实施例中的第二业务节点上,因此,这里将不再进行赘述。其中,属性数据处理装置400c可以为上述图14所对应实施例中的属性数据处理装置3,可以理解的是,该属性数据处理装置400c可以集成在上述图10所对应实施例中的第三业务节点上,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的数据处理系统实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (19)
1.一种属性数据处理方法,其特征在于,所述方法由第一业务节点执行,包括:
在所述第一业务节点从区块链上清分到由第二业务节点颁发的可隐藏业务声明文件时,从所述可隐藏业务声明文件中获取所述第一业务节点对应的第一对象的N个业务属性数据以及与所述N个业务属性数据相关联的辅助业务数据;N为大于1的正整数;在所述区块链上的所述可隐藏业务声明文件所在的第一交易指定对所述第一对象可见;所述可隐藏业务声明文件为所述第二业务节点根据所述第一对象提交的可验证身份证明文件为所述第一对象所颁发的具有属性隐藏能力的可验证声明文件,且所述可验证身份证明文件为第四业务节点所签发的用于证明所述第一对象的身份的可验证声明文件;所述可验证身份证明文件中携带所述第一业务节点生成的所述第一对象的去中心化身份信息;所述第一对象的去中心化身份信息用于指示所述第二业务节点在从所述区块链上获取到所述第一对象的去中心化身份签名文件时,对所述第一对象的去中心化身份签名文件进行签名验证;所述第一对象的去中心化身份签名文件是所述第四业务节点对所述第一对象所提交的所述第一对象的去中心化身份文件进行签名后上传至所述区块链的;所述辅助业务数据中包含所述N个业务属性数据中的每个业务属性数据对应的混淆值、和根据所述每个业务属性数据的分段属性哈希值所生成的目标根哈希值;所述每个业务属性数据的分段属性哈希值是根据所述每个业务属性数据和对应业务属性数据对应的混淆值所确定的;
在所述N个业务属性数据中,将选取的用于表征所述第一对象的身份的业务属性数据作为隐藏属性数据,且将除所述隐藏属性数据之外的业务属性数据作为披露属性数据,确定所述披露属性数据在所述目标根哈希值所对应的索引路径中的索引值;
从所述辅助业务数据中确定所述隐藏属性数据对应的混淆值以及所述披露属性数据对应的混淆值,根据所述隐藏属性数据以及所述隐藏属性数据对应的混淆值,确定所述隐藏属性数据对应的分段属性哈希值;
基于所述隐藏属性数据对应的分段属性哈希值、所述披露属性数据对应的混淆值、所述索引值、以及所述目标根哈希值,生成所述可隐藏业务声明文件对应的隐藏业务表达文件,将所述隐藏业务表达文件写入所述区块链,以使所述第一对象所指定的第三对象对应的第三业务节点,对从所述区块链上清分到的所述隐藏业务表达文件进行验证;在所述区块链上的所述隐藏业务表达文件所在的第二交易指定对所述第三对象可见。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收第四对象所对应的第四业务节点为所述第一对象签发的可验证身份证明文件;所述可验证身份证明文件中携带所述第一对象的去中心化身份信息;
通过所述第一对象的去中心化身份信息向所述第二业务节点发送用于颁发所述可隐藏业务声明文件的文件颁发请求;所述文件颁发请求用于指示所述第二业务节点在通过所述第一对象的去中心化身份信息从所述区块链上获取到所述第一对象的去中心化身份签名文件时,对所述第一对象的去中心化身份签名文件进行签名验证,以得到用于表征所述第一对象的身份的对象身份信息;所述对象身份信息用于指示所述第二业务节点在确定所述第一对象的N个业务属性数据时,生成与所述N个业务属性数据相关联的辅助业务数据;
基于所述第一业务节点的节点标识从所述区块链上清分到所述第二业务节点为所述第一对象颁发的所述可隐藏业务声明文件;所述可隐藏业务声明文件为所述第二业务节点通过第二对象的去中心化身份信息对所述N个业务属性数据和所述辅助业务数据进行签名后所得到的具备属性隐藏能力的可验证声明文件。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一业务节点的节点标识从所述区块链上清分到所述第二业务节点为所述第一对象颁发的所述可隐藏业务声明文件,包括:
接收所述第二业务节点针对所述可隐藏业务声明文件返回的第一交易上链结果;所述第一交易上链结果是由所述第二业务节点在通过共识节点将所述可隐藏业务声明文件所对应的第一交易成功写入所述区块链时所生成的;所述第一交易中携带所述第一业务节点的节点标识;
根据所述第一交易上链结果获取所述第一业务节点的节点标识,基于所述第一业务节点的节点标识激活所述第一业务节点的数据清分功能;
通过所述第一业务节点的数据清分功能从所述区块链上获取所述第一交易,且从所述第一交易中清分到所述可隐藏业务声明文件;所述可隐藏业务声明文件是所述第二业务节点基于所述第一对象的可验证身份证明文件所颁发的。
4.根据权利要求3所述的方法,其特征在于,写入所述区块链的所述第一交易中携带由所述第二对象所指定的所述第一业务节点的节点标识,且所述第一业务节点的节点标识用于表征所述第一对象具备从所述第一交易中获取所述可隐藏业务声明文件的资格。
5.根据权利要求2所述的方法,其特征在于,在所述接收第四对象所对应的第四业务节点为所述第一对象签发的可验证身份证明文件时,所述方法还包括:
接收所述第四业务节点返回的所述第一对象的去中心化身份签名文件;所述第一对象的去中心化身份签名文件是由所述第四业务节点通过所述第四对象的去中心化身份信息,对所述第一对象的去中心化身份文件进行签名处理后所得到的。
6.根据权利要求5所述的方法,其特征在于,所述第四对象的去中心化身份信息用于指示所述第四业务节点获取所述第四对象的私钥信息;在所述接收所述第四业务节点返回的去中心化身份签名文件之前,所述方法还包括:
获取所述第一对象的去中心化身份文件;所述第一对象的去中心化身份文件中包含所述第一对象的对象身份信息;
根据获取到的所述第一对象的去中心化身份文件,向所述第四对象对应的所述第四业务节点提交文件注册请求;所述文件注册请求用于指示所述第四业务节点在基于所述第一对象的对象身份信息成功验证所述第一对象的身份时,通过所述第四对象的私钥信息对所述第一对象的去中心化身份文件进行签名处理,且将签名处理后的第一对象的去中心化身份文件写入所述区块链;所述签名处理后的第一对象的去中心化身份文件为所述第一对象的去中心化身份签名文件。
7.根据权利要求1所述的方法,其特征在于,所述辅助业务数据包括所述N个业务属性数据中的每个业务属性数据对应的混淆值、所述目标根哈希值、所述目标根哈希值对应的根哈希签名以及用于对所述目标根哈希值进行签名的所述第二业务节点对应的第二对象的去中心化身份信息;其中,所述每个业务属性数据对应的混淆值均是所述第二业务节点根据与所述N个业务属性数据相关联的种子混淆值所派生得到的;所述每个业务属性数据对应的混淆值包括所述隐藏属性数据对应的混淆值和所述披露属性数据对应的混淆值;
所述基于所述隐藏属性数据对应的分段属性哈希值、所述披露属性数据对应的混淆值、所述索引值、以及所述目标根哈希值,生成所述可隐藏业务声明文件对应的隐藏业务表达文件,将所述隐藏业务表达文件写入所述区块链,包括:
从所述辅助业务数据中获取所述根哈希签名以及所述第二对象的去中心化身份信息,将所述隐藏属性数据对应的分段属性哈希值、所述披露属性数据、所述披露属性数据对应的混淆值、所述索引值、所述目标根哈希值、所述根哈希签名以及所述第二对象的去中心化身份信息,作为辅助证明数据,基于所述辅助证明数据,生成所述可隐藏业务声明文件对应的隐藏业务表达文件;
根据所述披露属性数据、所述披露属性数据对应的混淆值、以及所述隐藏属性数据对应的分段属性哈希值,确定与所述披露属性数据相关联的第一待验证根哈希值;
将所述第一待验证根哈希值和所述目标根哈希值进行哈希比较,得到第一哈希比较结果;
若所述第一哈希比较结果指示所述第一待验证根哈希值与所述目标根哈希值相同,则在确定所述披露属性数据具备合法性时,通过所述第一对象的私钥信息对所述隐藏业务表达文件进行签名处理,将签名处理后的隐藏业务表达文件通过共识节点写入所述区块链。
8.根据权利要求7所述的方法,其特征在于,所述目标根哈希值是所述第二业务节点基于与所述N个业务属性数据相关联的分段哈希计算规则所确定的;
所述披露属性数据、所述披露属性数据对应的混淆值、以及所述隐藏属性数据对应的分段属性哈希值,确定与所述披露属性数据相关联的第一待验证根哈希值,包括:
获取所述分段哈希计算规则中的加密处理规则和哈希处理规则;
按照所述加密处理规则使用所述披露属性数据对应的混淆值对所述披露属性数据进行加密处理,得到所述披露属性数据对应的加密属性数据,根据所述哈希处理规则对所述加密属性数据进行哈希处理,得到所述披露属性数据对应的分段属性哈希值;
获取所述分段哈希计算规则中的根哈希确定规则,根据所述根哈希确定规则、所述披露属性数据对应的分段属性哈希值和所述隐藏属性数据对应的分段属性哈希值,确定与所述披露属性数据相关联的第一待验证根哈希值。
9.根据权利要求7所述的方法,其特征在于,所述将签名处理后的隐藏业务表达文件通过共识节点写入所述区块链,包括:
获取所述第三业务节点的节点标识,将所述签名处理后的隐藏业务表达文件作为隐藏业务表达签名文件;
基于所述第三业务节点的标识和所述隐藏业务表达签名文件,确定所述隐藏业务表达文件对应的第二交易;
将所述第二交易通过共识节点写入所述区块链。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
接收所述共识节点返回的第二交易上链结果;所述第二交易上链结果是由所述共识节点在将所述第二交易成功写入所述区块链时所生成的;所述第二交易中携带所述第三业务节点的节点标识,且所述第三业务节点的节点标识用于表征第三对象具备从所述第二交易中获取所述隐藏业务表达签名文件的资格;所述隐藏业务表达签名文件是由所述第一对象对所述隐藏业务表达文件进行签名处理后所得到的。
11.一种属性数据处理方法,其特征在于,所述方法由第二业务节点执行,包括:
在接收到第一对象通过第一业务节点提交的可验证身份证明文件时,从所述可验证身份证明文件中获取所述第一对象的去中心化身份信息,且通过所述第一对象的去中心化身份信息从区块链上获取所述第一对象的去中心化身份签名文件;所述可验证身份证明文件为第四业务节点所签发的用于证明所述第一对象的身份的可验证声明文件;所述可验证身份证明文件中携带所述第一业务节点生成的所述第一对象的去中心化身份信息;所述第一对象的去中心化身份签名文件是所述第四业务节点对所述第一对象所提交的所述第一对象的去中心化身份文件进行签名后上传至所述区块链的;
对所述第一对象的去中心化身份签名文件进行签名验证,且在签名验证成功时,得到用于表征所述第一对象的身份的对象身份信息;
在从所述对象身份信息中获取到所述第一对象的N个业务属性数据时,生成与所述N个业务属性数据相关联的辅助业务数据,基于所述N个业务属性数据和所述辅助业务数据,生成用于上链至所述区块链的可隐藏业务声明文件;N为大于1的正整数;在所述区块链上的所述可隐藏业务声明文件所在的第一交易指定对所述第一对象可见;所述辅助业务数据中包含所述N个业务属性数据中的每个业务属性数据对应的混淆值、和根据所述每个业务属性数据的分段属性哈希值所生成的目标根哈希值;所述每个业务属性数据的分段属性哈希值是根据所述每个业务属性数据和对应业务属性数据对应的混淆值所确定的;所述可隐藏业务声明文件为具有属性隐藏能力的可验证声明文件;
在将所述可隐藏业务声明文件所对应的第一交易成功写入所述区块链时,向所述第一业务节点返回第一交易上链结果;所述第一交易上链结果用于指示所述第一业务节点在基于所述第一交易中所指定的所述第一业务节点的节点标识,从所述区块链上清分到所述可隐藏业务声明文件时,从所述N个业务属性数据选取的用于表征所述第一对象的身份的业务属性数据作为隐藏属性数据,并将除所述隐藏属性数据之外的业务属性数据作为披露属性数据,并根据所述隐藏属性数据、所述披露属性数据以及所述辅助业务数据,生成用于写入所述区块链的所述可隐藏业务声明文件对应的隐藏业务表达文件,以使所述第一对象所指定的第三对象对应的第三业务节点,对从所述区块链上清分到的所述隐藏业务表达文件进行验证;在所述区块链上的所述隐藏业务表达文件所在的第二交易指定对所述第三对象可见。
12.一种属性数据处理方法,其特征在于,所述方法由第三业务节点执行,包括:
在所述第三业务节点从区块链上清分到隐藏业务表达签名文件时,获取用于对隐藏业务表达签名文件进行签名的第一对象的去中心化身份信息;在所述区块链上的所述隐藏业务表达文件所在的第二交易指定对所述第三业务节点对应的第三对象可见;所述隐藏业务表达签名文件是所述第一对象对应的第一业务节点对隐藏业务表达文件进行签名处理后提交至所述区块链的,所述隐藏业务表达文件是所述第一业务节点根据隐藏属性数据、披露属性数据以及辅助业务数据所生成的;所述辅助业务数据是所述第一业务节点从所述区块链上清分到由第二业务节点颁发的可隐藏业务声明文件中所获取的,且所述可隐藏业务声明文件包含所述第一对象的N个业务属性数据;所述隐藏属性数据为所述第一业务节点从所述N个业务属性数据中所选取的用于表征所述第一对象的身份的业务属性数据,且所述披露属性数据为所述N个业务属性数据中除所述隐藏属性数据之外的业务属性数据;N为大于1的正整数;在所述区块链上的所述可隐藏业务声明文件所在的第一交易指定对所述第一对象可见;所述可隐藏业务声明文件为所述第二业务节点根据所述第一对象提交的可验证身份证明文件为所述第一对象所颁发的具有属性隐藏能力的可验证声明文件,且所述可验证身份证明文件为第四业务节点所签发的用于证明所述第一对象的身份的可验证声明文件;所述可验证身份证明文件中携带所述第一业务节点生成的所述第一对象的去中心化身份信息;所述辅助业务数据中包含所述N个业务属性数据中的每个业务属性数据对应的混淆值、和根据所述每个业务属性数据的分段属性哈希值所生成的目标根哈希值;所述每个业务属性数据的分段属性哈希值是根据所述每个业务属性数据和对应业务属性数据对应的混淆值所确定的;
通过所述第一对象的去中心化身份信息从所述区块链上获取所述第一对象的去中心化身份签名文件;所述第一对象的去中心化身份签名文件中携带的所述第一对象的公钥信息;所述第一对象的去中心化身份签名文件是所述第四业务节点对所述第一对象所提交的所述第一对象的去中心化身份文件进行签名后上传至所述区块链的;
根据所述第一对象的公钥信息对所述隐藏业务表达签名文件进行签名验证,且在签名验证成功时,得到所述隐藏业务表达文件,且确定用于对所述隐藏业务表达文件进行签名的所述第二业务节点所对应的第二对象的去中心化身份信息;
根据所述第二对象的去中心化身份信息从所述区块链上获取所述第二对象的去中心化身份签名文件,在对所述第二对象的去中心化身份签名文件进行签名验证后,得到所述第二对象的去中心化身份文件,根据所述第二对象的去中心化身份文件中的所述第二对象的公钥信息,确定所述可隐藏业务声明文件的合法性,且通过具备合法性的可隐藏业务声明文件验证所述隐藏业务表达文件。
13.根据权利要求12所述的方法,其特征在于,所述根据所述第二对象的去中心化身份信息从所述区块链上获取所述第二对象的去中心化身份签名文件,在对所述第二对象的去中心化身份签名文件进行签名验证后,得到所述第二对象的去中心化身份文件,根据所述第二对象的去中心化身份文件中的所述第二对象的公钥信息,确定所述可隐藏业务声明文件的合法性,且通过具备合法性的可隐藏业务声明文件验证所述隐藏业务表达文件,包括:
根据所述第二对象的去中心化身份信息从所述区块链上获取所述第二对象的去中心化身份签名文件,并获取用于对可信机构进行校验的可信身份列表;所述可信身份列表中包含一个或者多个可信机构的去中心化身份信息;
若在所述可信身份列表查找到与所述第二对象所关联的目标可信机构的去中心化身份信息相同的可信机构的去中心化身份信息,则确定所述第二对象的去中心化身份签名文件是由所述目标可信机构所颁发的;
根据所述目标可信机构的去中心化身份信息,确定所述目标可信机构的公钥信息,通过所述目标可信机构的公钥信息对所述第二对象的去中心化身份签名文件进行签名验证,得到所述第二对象的去中心化身份文件;
根据所述第二对象的去中心化身份文件中的所述第二对象的公钥信息,确定所述可隐藏业务声明文件的合法性,且通过具备合法性的可隐藏业务声明文件验证所述隐藏业务表达文件。
14.根据权利要求13所述的方法,其特征在于,所述隐藏业务表达文件的辅助证明数据中包括所述隐藏属性数据对应的分段属性哈希值、所述披露属性数据对应的混淆值、所述披露属性数据在所述目标根哈希值所对应的索引路径中的索引值;
所述通过具备合法性的可隐藏业务声明文件验证所述隐藏业务表达文件,包括:
从具备合法性的可隐藏业务声明文件中获取所述辅助业务数据中的目标根哈希值;
从所述隐藏业务表达文件中获取所述辅助证明数据中的所述披露属性数据、所述披露属性数据对应的混淆值、以及所述隐藏属性数据对应的分段属性哈希值,根据所述披露属性数据、所述披露属性数据对应的混淆值、以及所述隐藏属性数据对应的分段属性哈希值,确定与所述披露属性数据相关联的第二待验证根哈希值;
将所述第二待验证根哈希值和所述目标根哈希值进行哈希比较,得到第二哈希比较结果;
若所述第二哈希比较结果指示所述第二待验证根哈希值与所述目标根哈希值相同,则在根据所述目标根哈希值和所述披露属性数据在所述目标根哈希值所对应的索引路径中的索引值,确定出所述隐藏属性数据的索引路径时,完成对所述隐藏业务表达文件的验证。
15.一种属性数据处理装置,其特征在于,包括:
属性数据获取模块,用于在第一业务节点从区块链上清分到由第二业务节点颁发的可隐藏业务声明文件时,从所述可隐藏业务声明文件中获取所述第一业务节点对应的第一对象的N个业务属性数据以及与所述N个业务属性数据相关联的辅助业务数据;N为大于1的正整数;在所述区块链上的所述可隐藏业务声明文件所在的第一交易指定对所述第一对象可见;所述可隐藏业务声明文件为所述第二业务节点根据所述第一对象提交的可验证身份证明文件为所述第一对象所颁发的具有属性隐藏能力的可验证声明文件,且所述可验证身份证明文件为第四业务节点所签发的用于证明所述第一对象的身份的可验证声明文件;所述可验证身份证明文件中携带所述第一业务节点生成的所述第一对象的去中心化身份信息;所述第一对象的去中心化身份信息用于指示所述第二业务节点在从所述区块链上获取到所述第一对象的去中心化身份签名文件时,对所述第一对象的去中心化身份签名文件进行签名验证;所述第一对象的去中心化身份签名文件是所述第四业务节点对所述第一对象所提交的所述第一对象的去中心化身份文件进行签名后上传至所述区块链的;所述辅助业务数据中包含所述N个业务属性数据中的每个业务属性数据对应的混淆值、和根据所述每个业务属性数据的分段属性哈希值所生成的目标根哈希值;所述每个业务属性数据的分段属性哈希值是根据所述每个业务属性数据和对应业务属性数据对应的混淆值所确定的;
属性数据选取模块,用于在所述N个业务属性数据中,将选取的用于表征所述第一对象的身份的业务属性数据作为隐藏属性数据,且将除所述隐藏属性数据之外的业务属性数据作为披露属性数据,确定所述披露属性数据在所述目标根哈希值所对应的索引路径中的索引值;
分段哈希确定模块,用于从所述辅助业务数据中确定所述隐藏属性数据对应的混淆值以及所述披露属性数据对应的混淆值,根据所述隐藏属性数据以及所述隐藏属性数据对应的混淆值,确定所述隐藏属性数据对应的分段属性哈希值;
表达文件生成模块,用于基于所述隐藏属性数据对应的分段属性哈希值、所述披露属性数据对应的混淆值、所述索引值、以及所述目标根哈希值,生成所述可隐藏业务声明文件对应的隐藏业务表达文件,将所述隐藏业务表达文件写入所述区块链,以使所述第一对象所指定的第三对象对应的第三业务节点,对从所述区块链上清分到的所述隐藏业务表达文件进行验证;在所述区块链上的所述隐藏业务表达文件所在的第二交易指定对所述第三对象可见。
16.一种属性数据处理装置,其特征在于,包括:
身份证明文件接收模块,用于在接收到第一对象通过第一业务节点提交的可验证身份证明文件时,从所述可验证身份证明文件中获取所述第一对象的去中心化身份信息,且通过所述第一对象的去中心化身份信息从区块链上获取所述第一对象的去中心化身份签名文件;所述可验证身份证明文件为第四业务节点所签发的用于证明所述第一对象的身份的可验证声明文件;所述可验证身份证明文件中携带所述第一业务节点生成的所述第一对象的去中心化身份信息;所述第一对象的去中心化身份签名文件是所述第四业务节点对所述第一对象所提交的所述第一对象的去中心化身份文件进行签名后上传至所述区块链的;
身份签名文件验证模块,用于对所述第一对象的去中心化身份签名文件进行签名验证,且在签名验证成功时,得到用于表征所述第一对象的身份的对象身份信息;
声明文件生成模块,用于在从所述对象身份信息中获取到所述第一对象的N个业务属性数据时,生成与所述N个业务属性数据相关联的辅助业务数据,基于所述N个业务属性数据和所述辅助业务数据,生成用于上链至所述区块链的可隐藏业务声明文件;N为大于1的正整数;在所述区块链上的所述可隐藏业务声明文件所在的第一交易指定对所述第一对象可见;所述辅助业务数据中包含所述N个业务属性数据中的每个业务属性数据对应的混淆值、和根据所述每个业务属性数据的分段属性哈希值所生成的目标根哈希值;所述每个业务属性数据的分段属性哈希值是根据所述每个业务属性数据和对应业务属性数据对应的混淆值所确定的;所述可隐藏业务声明文件为具有属性隐藏能力的可验证声明文件;
声明文件上链模块,用于在将所述可隐藏业务声明文件所对应的第一交易成功写入所述区块链时,向所述第一业务节点返回第一交易上链结果;所述第一交易上链结果用于指示所述第一业务节点在基于所述第一交易中所指定的所述第一业务节点的节点标识,从所述区块链上清分到所述可隐藏业务声明文件时,从所述N个业务属性数据选取的用于表征所述第一对象的身份的业务属性数据作为隐藏属性数据,并将除所述隐藏属性数据之外的业务属性数据作为披露属性数据,并根据所述隐藏属性数据、所述披露属性数据以及所述辅助业务数据,生成用于写入所述区块链的所述可隐藏业务声明文件对应的隐藏业务表达文件,以使所述第一对象所指定的第三对象对应的第三业务节点,对从所述区块链上清分到的所述隐藏业务表达文件进行验证;在所述区块链上的所述隐藏业务表达文件所在的第二交易指定对所述第三对象可见。
17.一种属性数据处理装置,其特征在于,包括:
隐藏签名文件清分模块,用于在第三业务节点从区块链上清分到隐藏业务表达签名文件时,获取用于对隐藏业务表达签名文件进行签名的第一对象的去中心化身份信息;在所述区块链上的所述隐藏业务表达文件所在的第二交易指定对所述第三业务节点对应的第三对象可见;所述隐藏业务表达签名文件是所述第一对象对应的第一业务节点对隐藏业务表达文件进行签名处理后提交至所述区块链的,所述隐藏业务表达文件是所述第一业务节点根据隐藏属性数据、披露属性数据以及辅助业务数据所生成的;所述辅助业务数据是所述第一业务节点从所述区块链上清分到由第二业务节点颁发的可隐藏业务声明文件中所获取的,且所述可隐藏业务声明文件包含所述第一对象的N个业务属性数据;所述隐藏属性数据为所述第一业务节点从所述N个业务属性数据中所选取的用于表征所述第一对象的身份的业务属性数据,且所述披露属性数据为所述N个业务属性数据中除所述隐藏属性数据之外的业务属性数据;N为大于1的正整数;在所述区块链上的所述可隐藏业务声明文件所在的第一交易指定对所述第一对象可见;所述可隐藏业务声明文件为所述第二业务节点根据所述第一对象提交的可验证身份证明文件为所述第一对象所颁发的具有属性隐藏能力的可验证声明文件,且所述可验证身份证明文件为第四业务节点所签发的用于证明所述第一对象的身份的可验证声明文件;所述可验证身份证明文件中携带所述第一业务节点生成的所述第一对象的去中心化身份信息;所述辅助业务数据中包含所述N个业务属性数据中的每个业务属性数据对应的混淆值、和根据所述每个业务属性数据的分段属性哈希值所生成的目标根哈希值;所述每个业务属性数据的分段属性哈希值是根据所述每个业务属性数据和对应业务属性数据对应的混淆值所确定的;
身份签名文件获取模块,用于通过所述第一对象的去中心化身份信息从所述区块链上获取所述第一对象的去中心化身份签名文件;所述第一对象的去中心化身份签名文件中携带的所述第一对象的公钥信息;所述第一对象的去中心化身份签名文件是所述第四业务节点对所述第一对象所提交的所述第一对象的去中心化身份文件进行签名后上传至所述区块链的;
隐藏签名文件验证模块,用于根据所述第一对象的公钥信息对所述隐藏业务表达签名文件进行签名验证,且在签名验证成功时,得到所述隐藏业务表达文件,且确定用于对所述隐藏业务表达文件进行签名的所述第二业务节点所对应的第二对象的去中心化身份信息;
文件合法性确定模块,用于根据所述第二对象的去中心化身份信息从所述区块链上获取所述第二对象的去中心化身份签名文件,在对所述第二对象的去中心化身份签名文件进行签名验证后,得到所述第二对象的去中心化身份文件,根据所述第二对象的去中心化身份文件中的所述第二对象的公钥信息,确定所述可隐藏业务声明文件的合法性,且通过具备合法性的可隐藏业务声明文件验证所述隐藏业务表达文件。
18.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与所述存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-14任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-14任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111329538.3A CN113779637B (zh) | 2021-11-10 | 2021-11-10 | 一种属性数据处理方法、装置、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111329538.3A CN113779637B (zh) | 2021-11-10 | 2021-11-10 | 一种属性数据处理方法、装置、设备以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113779637A CN113779637A (zh) | 2021-12-10 |
CN113779637B true CN113779637B (zh) | 2022-02-22 |
Family
ID=78873788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111329538.3A Active CN113779637B (zh) | 2021-11-10 | 2021-11-10 | 一种属性数据处理方法、装置、设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113779637B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115964755B (zh) * | 2023-03-09 | 2023-05-26 | 北京百度网讯科技有限公司 | 数据授权及验证方法、装置、设备和存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11233641B2 (en) * | 2018-07-31 | 2022-01-25 | Hewlett Packard Enterprise Development Lp | Systems and methods for using distributed attestation to verify claim of attestation holder |
CN110795501A (zh) * | 2019-10-11 | 2020-02-14 | 支付宝(杭州)信息技术有限公司 | 基于区块链的可验证声明的创建方法、装置、设备及系统 |
CN111008228A (zh) * | 2020-03-09 | 2020-04-14 | 支付宝(杭州)信息技术有限公司 | 区块链中账户隐私信息的查询方法及装置 |
US20210288974A1 (en) * | 2020-03-16 | 2021-09-16 | Microsoft Technology Licensing, Llc. | Access token for a verifiable claim |
CN111090876B (zh) * | 2020-03-18 | 2020-07-17 | 支付宝(杭州)信息技术有限公司 | 调用合约的方法及装置 |
CN111190974B (zh) * | 2020-04-10 | 2021-01-26 | 支付宝(杭州)信息技术有限公司 | 可验证声明的转发、获取方法、装置及设备 |
CN112115205B (zh) * | 2020-11-23 | 2021-02-02 | 腾讯科技(深圳)有限公司 | 基于数字证书认证的跨链信任方法、装置、设备以及介质 |
CN112738253B (zh) * | 2020-12-30 | 2023-04-25 | 北京百度网讯科技有限公司 | 基于区块链的数据处理方法、装置、设备及存储介质 |
CN113014392B (zh) * | 2021-02-19 | 2022-04-08 | 湖南大学 | 基于区块链的数字证书管理方法及系统、设备、存储介质 |
CN113407996A (zh) * | 2021-06-28 | 2021-09-17 | 湖南大学 | 一种分布式账本自主可控的隐私保护系统及其集群架构 |
-
2021
- 2021-11-10 CN CN202111329538.3A patent/CN113779637B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113779637A (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111295869B (zh) | 用于认证去中心化标识的系统和方法 | |
AU2019203848B2 (en) | Methods and devices for protecting sensitive data of transaction activity based on smart contract in blockchain | |
US11757643B2 (en) | System and method for authenticating user identity | |
US11165579B2 (en) | Decentralized data authentication | |
AU2017100968A4 (en) | System for issuance, verification and use of digital identities on a public or private ledger. | |
KR102088218B1 (ko) | 블록체인 네트워크를 기반으로 한 온라인 시험 관리 시스템 및 방법 | |
CN110516474A (zh) | 区块链网络中的用户信息处理方法、装置、电子设备及存储介质 | |
Ali et al. | Blockchain and the future of the internet: A comprehensive review | |
CN106992988A (zh) | 一种跨域匿名资源共享平台及其实现方法 | |
CN109858911A (zh) | 资质验证方法、装置、系统、设备和可读存储介质 | |
CN114666168A (zh) | 去中心化身份凭证验证方法、装置,以及,电子设备 | |
CN108540447A (zh) | 一种基于区块链的证书验证方法及系统 | |
CN113779637B (zh) | 一种属性数据处理方法、装置、设备以及介质 | |
WO2023017580A1 (ja) | アバター認証システム、アバター認証方法 | |
US20230188353A1 (en) | Multi-issuer anonymous credentials for permissioned blockchains | |
Xiong et al. | BDIM: A Blockchain-Based Decentralized Identity Management Scheme for Large Scale Internet of Things | |
CN113489669B (zh) | 一种用户数据保护的方法及装置 | |
CN117280346A (zh) | 用于生成、提供和转发基于与用户相关的电子文件的可信电子数据集或证书的方法和装置 | |
Balamurugan et al. | A Blockchain Based Certificate Authentication System | |
CN116112167B (zh) | 密钥管理系统、方法及装置 | |
CN114826609B (zh) | 基于区块链的电子证书管理方法、装置、系统及存储介质 | |
CN117061089B (zh) | 一种投票管理方法、装置、设备及存储介质 | |
Kjørberg | An Overview of Blockchain-Based Identity Management Systems. | |
Gao et al. | A digital diploma verification and sharing scheme based on blockchain | |
US20220393892A1 (en) | Composite Cryptographic Systems with Variable Configuration Parameters and Memory Bound Functions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |