CN113364763B - 可验证声明生成方法、装置、电子设备及存储介质 - Google Patents
可验证声明生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113364763B CN113364763B CN202110615810.8A CN202110615810A CN113364763B CN 113364763 B CN113364763 B CN 113364763B CN 202110615810 A CN202110615810 A CN 202110615810A CN 113364763 B CN113364763 B CN 113364763B
- Authority
- CN
- China
- Prior art keywords
- user
- verifiable
- issuer
- verification
- attribute information
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Abstract
本申请提供一种可验证声明生成方法、装置、电子设备及存储介质,涉及区块链技术领域。该方法可包括:发行者区块链接收用户的可验证声明申请请求,可验证声明申请请求用于请求为用户生成可验证声明;发行者区块链对可验证声明申请请求进行解析,得到用户的属性信息,并将属性信息写入本地预言机合约中;预言机服务根据本地预言机合约所写入的属性信息,获取用户的验证中间结果,验证中间结果包括:验证结果声明数据;发行者区块链从预言机服务获取用户的验证中间结果;发行者区块链根据用户的验证中间结果,生成用户的可验证声明。本方案可实现申请过程的全监督,避免了数据被篡改的可能,从而提高了生成的可验证声明的可靠性。
Description
技术领域
本申请涉及区块链技术领域,具体而言,涉及一种可验证声明生成方法、装置、电子设备及存储介质。
背景技术
数字身份信息,如DID(英文全称:Decentralized Identifiers,中文全称:分布式身份标识),是一种去中心化的可验证的数字标识符。DID可以标识个体的身份、组织的身份等,但由于DID中并没有个体、组织等的真实信息,如姓名、家庭住址等信息,因此用户通常将DID与可验证声明(英文全称:Verifiable Credential,简称VC)相结合,通过可验证声明来证明如年龄、学历、拥有的某些权限等信息。而如何生成有效的且值得信任的可验证声明成为研究重点。
现有技术中,均是链下中心化业务系统的发行者通过调用DID区块链中的数据验证用户的DID有效性,在验证通过后生成用户对应的可验证声明,并发行至用户。
但是,上述方法中,由于中心化业务系统的发行者缺乏监管,中心化业务系统的发行者生成的可验证声明容易被篡改,或者是存在随意生成可验证声明的问题,从而导致所生成的可验证声明的可靠性较差。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种可验证声明生成方法、装置、电子设备及存储介质,以便于解决现有技术中存在的发行者生成的可验证声明可靠性较差的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种可验证声明生成方法,应用于可验证声明生成系统,所述可验证声明生成系统包括:发行者区块链、预言机服务,所述预言机服务和所述发行者区块链之间通信;所述方法包括:
所述发行者区块链接收用户的可验证声明申请请求,所述可验证声明申请请求用于请求为所述用户生成可验证声明;
所述发行者区块链对所述可验证声明申请请求进行解析,得到所述用户的属性信息,并将所述属性信息写入本地预言机合约中,其中,所述属性信息包括:用户的身份标识、用户申请的凭证类型、以及所述凭证类型对应的请求参数;
所述预言机服务根据所述本地预言机合约所写入的属性信息,获取用户的验证中间结果,所述验证中间结果包括:验证结果声明数据;所述验证结果声明数据用于指示所述用户的身份标识以及所述凭证类型对应的请求参数是否有效;
所述发行者区块链从所述预言机服务获取所述用户的验证中间结果;
所述发行者区块链根据所述用户的验证中间结果,生成所述用户的可验证声明。
可选地,所述预言机服务根据所述本地预言机合约所写入的属性信息,获取用户的验证中间结果,包括:
所述预言机服务监听所述本地预言机合约,从所述预言机合约中获取所述用户的属性信息;
所述预言机服务根据所述用户的属性信息,获取所述用户的验证中间结果。
可选地,所述可验证声明生成系统还包括:中心化业务系统、分布式身份标识区块链;所述预言机服务和所述中心化业务系统之间通信,所述中心化业务系统和所述分布式身份标识区块链之间通信;
所述预言机服务根据所述用户的属性信息,获取所述用户的验证中间结果,包括:
所述预言机服务调用所述中心化业务系统,以触发所述中心化业务系统验证所述用户的属性信息,并接收所述中心化业务系统根据验证结果生成的用户的验证中间结果。
可选地,所述发行者区块链从所述预言机服务获取所述用户的验证中间结果,包括:
所述预言机服务将所述用户的验证中间结果发送至所述发行者区块链。
可选地,所述中心化业务系统验证所述用户的属性信息,包括:
所述中心化业务系统调用所述分布式身份标识区块链,以根据所述分布式身份标识区块链中存储的身份标识信息,验证所述用户的身份标识是否有效,并根据所述用户的身份标识获取用户公钥;
所述中心化业务系统根据所述用户申请的凭证类型,验证所述凭证类型对应的请求参数是否有效;
所述中心化业务系统根据所述用户公钥、所述用户的身份标识是否有效、以及所述请求参数是否有效,生成所述用户的验证中间结果。
可选地,所述发行者区块链根据所述用户的验证中间结果,生成所述用户的可验证声明,包括:
所述发行者区块链根据所述验证结果声明数据,生成所述用户的可验证声明;
所述发行者区块链采用所述用户的公钥,对所述用户的可验证声明进行加密处理。
可选地,所述属性信息还包括:用户的可验证声明请求标识;所述发行者区块链根据所述验证结果声明数据,生成所述用户的可验证声明,包括:
若所述验证结果声明数据指示所述用户的身份标识以及凭证类型对应的请求参数有效,则所述发行者区块链调用本地节点,根据所述用户的可验证声明请求标识,恢复所述用户的属性信息;
所述发行者区块链向所述用户的属性信息中添加申请请求时间、验证通过标识、以及计算存证,生成所述用户的可验证声明。
可选地,所述发行者区块链根据所述用户的验证中间结果,生成所述用户的可验证声明之后,所述方法还包括:
所述发行者区块链接收所述用户发起的查询请求,所述查询请求包括:用户的可验证声明请求标识;
所述发行者区块链根据所述查询请求,从所述发行者区块链中调取所述用户的可验证声明返回至所述用户。
可选地,所述可验证声明生成系统中还包括统计平台,所述统计平台与所述发行者区块链之间通信;所述方法还包括:
所述统计平台监听所述预言机合约,从所述预言机合约中统计各用户的可验证声明申请信息并进行公示;所述可验证声明申请信息包括如下至少一项:申请可验证声明成功的用户数量、生成可验证声明的数量、每日可验证声明的申请信息。
可选地,所述中心化业务系统调用所述分布式身份标识区块链,以根据所述分布式身份标识区块链中存储的身份标识信息,验证所述用户的身份标识是否有效之前,所述方法还包括:
所述分布式身份标识区块链接收所述用户的身份标识注册请求;
所述分布式身份标识区块链响应所述身份标识注册请求,将所述用户的身份标识进行存储。
可选地,所述预言机服务包括:预言机服务器或预言机区块链。
第二方面,本申请实施例还提供了一种可验证声明生成装置,应用于可验证声明生成系统,所述可验证声明生成系统包括:发行者区块链、预言机服务,所述预言机服务和所述发行者区块链之间通信;所述装置包括:接收模块、解析模块、获取模块、生成模块;
所述接收模块,用于所述发行者区块链接收用户的可验证声明申请请求,所述可验证声明申请请求用于请求为所述用户生成可验证声明;
所述解析模块,用于所述发行者区块链对所述可验证声明申请请求进行解析,得到所述用户的属性信息,并将所述属性信息写入本地预言机合约中,其中,所述属性信息包括:用户的身份标识、用户申请的凭证类型、以及所述凭证类型对应的请求参数;
所述获取模块,用于所述预言机服务根据所述本地预言机合约所写入的属性信息,获取用户的验证中间结果,所述验证中间结果包括:验证结果声明数据;所述验证结果声明数据用于指示所述用户的身份标识以及所述凭证类型对应的请求参数是否有效;
所述获取模块,用于所述发行者区块链从所述预言机服务获取所述用户的验证中间结果;
所述生成模块,用于所述发行者区块链根据所述用户的验证中间结果,生成所述用户的可验证声明。
可选地,所述获取模块,具体用于所述预言机服务监听所述本地预言机合约,从所述预言机合约中获取所述用户的属性信息;所述预言机服务根据所述用户的属性信息,获取所述用户的验证中间结果。
可选地,所述可验证声明生成系统还包括:中心化业务系统、分布式身份标识区块链;所述预言机服务和所述中心化业务系统之间通信,所述中心化业务系统和所述分布式身份标识区块链之间通信;
所述获取模块,具体用于所述预言机服务调用所述中心化业务系统,以触发所述中心化业务系统验证所述用户的属性信息,并接收所述中心化业务系统根据验证结果生成的用户的验证中间结果。
所述获取模块,具体用于所述预言机服务将所述用户的验证中间结果发送至所述发行者区块链。
所述获取模块,具体用于所述中心化业务系统调用所述分布式身份标识区块链,以根据所述分布式身份标识区块链中存储的身份标识信息,验证所述用户的身份标识是否有效,并根据所述用户的身份标识获取用户公钥;所述中心化业务系统根据所述用户申请的凭证类型,验证所述凭证类型对应的请求参数是否有效;所述中心化业务系统根据所述用户公钥、所述用户的身份标识是否有效、以及所述请求参数是否有效,生成所述用户的验证中间结果。
所述生成模块,具体用于所述发行者区块链根据所述验证结果声明数据,生成所述用户的可验证声明;所述发行者区块链采用所述用户的公钥,对所述用户的可验证声明进行加密处理。
可选地,所述属性信息还包括:用户的可验证声明请求标识;所述生成模块,具体用于若所述验证结果声明数据指示所述用户的身份标识以及凭证类型对应的请求参数有效,则所述发行者区块链调用本地节点,根据所述用户的可验证声明请求标识,恢复所述用户的属性信息;所述发行者区块链向所述用户的属性信息中添加申请请求时间、验证通过标识、以及计算存证,生成所述用户的可验证声明。
可选地,所述装置还包括:查询模块、返回模块;
所述查询模块,用于所述发行者区块链接收所述用户发起的查询请求,所述查询请求包括:用户的可验证声明请求标识;
所述返回模块,用于所述发行者区块链根据所述查询请求,从所述发行者区块链中调取所述用户的可验证声明返回至所述用户。
可选地,所述可验证声明生成系统中还包括统计平台,所述统计平台与所述发行者区块链之间通信;所述装置还包括:统计模块;
所述统计模块,用于所述统计平台监听所述预言机合约,从所述预言机合约中统计各用户的可验证声明申请信息并进行公示;所述可验证声明申请信息包括如下至少一项:申请可验证声明成功的用户数量、生成可验证声明的数量、每日可验证声明的申请信息。
可选地,所述装置还包括:注册模块;
所述注册模块,用于所述分布式身份标识区块链接收所述用户的身份标识注册请求;所述分布式身份标识区块链响应所述身份标识注册请求,将所述用户的身份标识进行存储。
可选地,所述预言机服务包括:预言机服务器或预言机区块链。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行时执行如第一方面中提供的方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面提供的方法的步骤。
本申请的有益效果是:
本申请提供一种可验证声明生成方法、装置、电子设备及存储介质,该方法可包括:发行者区块链接收用户的可验证声明申请请求,可验证声明申请请求用于请求为用户生成可验证声明;发行者区块链对可验证声明申请请求进行解析,得到用户的属性信息,并将属性信息写入本地预言机合约中,其中,属性信息包括:用户的身份标识、用户申请的凭证类型、以及凭证类型对应的请求参数;预言机服务根据本地预言机合约所写入的属性信息,获取用户的验证中间结果,验证中间结果包括:验证结果声明数据;验证结果声明数据用于指示用户的身份标识以及凭证类型对应的请求参数是否有效;发行者区块链从预言机服务获取用户的验证中间结果;发行者区块链根据用户的验证中间结果,生成用户的可验证声明。本方案中,用户通过向发行者区块链申请生成可验证声明,用户的申请请求相关信息可及时上链,而用户的验证中间结果同样会发送至发行者区块链上进行记录,从而使得用户的申请信息以及验证结果数据等申请可验证声明的全过程信息均被记录在链,被共同监督,可实现申请过程的全监督,避免了数据被篡改的可能,从而提高了生成的可验证声明的可靠性。
另外,通过预言机服务作为发行者区块链和链下中心化业务系统之间的通信桥梁,可有效解决区块链无法直接跟链下中心化业务系统进行通信的问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种可验证声明系统的架构示意图;
图2为本申请实施例提供的一种可验证声明生成系统的架构示意图;
图3为本申请实施例提供的可验证声明生成方法的流程示意图一;
图4为本申请实施例提供的可验证声明生成方法的流程示意图二;
图5为本申请实施例提供的可验证声明生成方法的流程示意图三;
图6为本申请实施例提供的可验证声明生成方法的流程示意图四;
图7为本申请实施例提供的可验证声明生成方法的流程示意图五;
图8为本申请实施例提供的可验证声明生成方法的流程示意图六;
图9为本申请实施例提供的可验证声明生成方法的流程示意图七;
图10为本申请实施例提供的一种可验证声明生成装置的示意图;
图11为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
首先,对本申请可能涉及的一些名词术语进行解释说明:
1、分布式数字身份:分布式身份不止是人,包括组织,甚至未来也包括物品。这些人或者组织、物品不简单依靠于原先中心化权威机构,无法被拿走或者删除,而且是终身携带的身份。
2、分布式身份标识(Decentralized Identifiers,DID):分布式身份标识是一种去中心化的可验证的数字标识符,具有分布式、自主可控、跨链复用等特点。实体可自主完成DID的注册、解析、更新或者撤销操作。DID具体解析为DID Document,DID Document包括DID的唯一标识码,公钥列表和公钥的详细信息(持有者、加密算法、密钥状态等),以及DID持有者的其他属性描述。
3、可验证声明:可验证声明(Verifiable Credential,VC)提供了一种规范来描述实体所具有的某些属性,实现基于证据的信任。DID持有者,可以通过可验证声明,向其他实体(个人、组织、具体事物等)证明自己的某些属性是可信的。同时,结合数字签名和零知识证明等密码学技术,可以使得声明更加安全可信,并进一步保障用户隐私不被侵犯。
4、可验证声明发行者:拥有用户数据并能开具VC的实体,如政府、银行、大学等机构和组织。
5、可验证声明持有者(用户):持有VC的实体。
6、可验证声明验证者:接受用户的VC并进行验证,由此可以提供给出示VC的用户某种类型的服务。
7、分布式身份标识区块链(标识符注册机构):维护DIDs的数据库,如某条区块链、分布式账本。
图1为本申请实施例提供的一种可验证声明系统的架构示意图;可验证声明系统可包括:可验证声明生成过程和可验证声明验证过程。本申请所提供的可验证声明生成方法对应于可验证声明系统中可验证声明生成的过程。如图1所示,可验证声明系统可包括:可验证声明发行者、可验证声明持有者(用户)、可验证声明验证者、标识符注册机构(分布式身份标识区块链)。其中,可验证声明发行者可以为拥有用户数据并能开具可验证声明(VC)的实体,如政府、银行、大学、医院、公安部分等机构和组织;可验证声明持有者可以是人、组织或物品;可验证声明验证者可以是提供服务的企业单位等。
可验证声明系统的工作流程大体可以如下:(1)用户在申请生成VC之前向标识符注册机构注册DID,并获取DID文档。(2)用户向VC发行者申请生成用户的VC。(3)VC发行者验证用户身份的有效性,并验证用户的DID是否注册是否有效,验证通过后,生成用户的VC,返回给用户,用户做好本地保存。(4)用户向可验证声明验证者申请业务操作时(例如,去购物网站购物),此时用户向可验证声明验证者提供VC进行验证。(5)可验证声明验证者在区块链上验证用户及发行者的DID的有效性。(6)验证通过后,可验证声明验证者再次验证用户的VC的签名信息,确定是否为发行者发行的VC。(7)用户的VC验证通过后,即可确定用户的有效性,用户即可执行对应的业务操作。
图2为本申请实施例提供的一种可验证声明生成系统的架构示意图;可选地,本申请所提供的可验证声明生成方法可应用于该可验证声明生成系统中,以实现上述用户向可验证声明发行者申请生成VC的过程。如图2所示,该可验证声明生成系统可包括:发行者区块链、预言机服务、中心化业务系统、分布式身份标识区块链、统计平台;预言机服务分别和发行者区块链、中心化业务系统之间通信;中心化业务系统与分布式身份标识区块链之间相互通信;统计平台与发行者区块链之间相互通信。
可验证声明的生成过程整体可如下:用户可向发行者区块链发起VC申请请求,发行者区块链记录申请请求,并将解析申请请求得到的用户数据写入区块链的预言机合约中,预言机服务监听预言机合约,从合约中获取用户数据,并调用链下的中心化业务系统验证用户数据,其中,中心化业务系统可通过调用分布式身份标识区块链中预先注册的用户信息,对用户数据进行验证,验证通过后,中心化业务系统将验证结果数据返回给预言机服务,预言机服务再将验证结果数据发送至发行者区块链,发行者区块链一方面可存储验证结果数据,另一方面可根据验证结果数据生成用户的VC,用户可通过发行者区块链查询获取生成的VC。统计平台可监听发行者区块链,并实时的统计不同用户的VC申请信息进行公示。
本申请通过发行者区块链进行VC的生成,可解决中心化发行者缺乏监督的问题,可做到VC生成的全流程记录,达到可信服务的目的;通过预言机服务可解决发行者区块链无法直接与链下中心化业务系统进行通信的问题。
图3为本申请实施例提供的可验证声明生成方法的流程示意图一;如图3所示,该方法可包括:
S301、发行者区块链接收用户的可验证声明申请请求,可验证声明申请请求用于请求为用户生成可验证声明。
可选地,用户可通过用户终端向发行者区块链中的任意链节点发送可验证申请申请请求,以请求为自己生成可验证声明(VC)。用户可以是个人、组织机构、或者是物品,发行者区块链可以是生成VC的发行者所应用的区块链,发行者可以是公安机构、银行、政府等权威机构。用户可通过向不同的发行者区块链申请生成不同类型的VC。
用户可将申请请求发送至发行者区块链节点上,输入参数可包括:用户DID(userDid)、可验证声明申请请求的标识(requestNumber)、凭证类型(vcType)、凭证类型对应的请求参数(requestParams)。
S302、发行者区块链对可验证声明申请请求进行解析,得到用户的属性信息,并将属性信息写入本地预言机合约中,其中,属性信息包括:用户的身份标识、用户申请的凭证类型、以及凭证类型对应的请求参数。
在一些实施例中,发行者区块链可将用户的申请请求记录在链上,同时,可解析申请请求,以获取用户的属性信息。其中,用户的身份标识也即上述所说的用户的DID;用户申请的凭证类型可以指用户本次所要申请的VC类型,例如:身份VC、学历VC、存款VC等;凭证类型对应的请求参数可以指凭证类型对应的用户信息,例如:凭证类型为身份VC,则凭证类型对应的请求参数可以为用户的身份信息,凭证类型为学历VC,则凭证类型对应的请求参数可以为用户的学位证书等。
可选地,发行者区块链可将解析获取的用户的属性信息写入预言机合约中。预言机是一个为链上提供可信数据的工具,它是链接区块链和现实世界的桥梁,它通过一种单向的数字代理,可以查找和验证真实世界的数据,并以加密的方式将信息提交给智能合约。预言机合约也即基于预言机所生成的合约,也就是一种把我们生活中的合约数字化,当满足一定条件后,可以由程序自动执行的技术。
可选地,上述所解析获取的用户的属性信息并不限于所列举的,还可包括:用户所发起的可验证声明申请请求的标识,也即请求的唯一编号等,以便于对用户的申请信息进行准确的记录。
可选地,预言机合约可根据验证声明申请请求的标识,保存用户请求的详情(到存证对象VCObj),但是这里的请求暂时没有VC结果。预言机合约发起oracle查询请求(oracle_query接口),拼接参数:用户DID userDid、可验证声明申请请求的标识requestNumber、凭证类型vcType、请求参数requestParams。只保存userDid,requestNumber,vcType,requestParams。oracle_query接口返回当前本次请求的预言机的标识cid,更新到本次请求的存证对象VCObj中,并将cid保存到待回调请求列表中(validIds)。
其中,预言机合约发起oracle查询请求(oracle_query接口)说明如下:
输入参数:数据源(写死url)、数据详情(用户申请请求的详情:用户DID userDid、可验证声明申请请求的标识requestNumber、凭证类型vcType、凭证类型对应的请求参数requestParams。)
操作步骤:
1、生成当前请求的预言机标识cid:_cid=sha3(msg.sender,reqc[msg.sender]);如通过用户的区块链地址、用户的申请请求的递增编号hash得到当前用户本次请求的预言机标识。
2、触发OracleLog事件,事件信息包括:用户的区块链地址、当前请求的预言机标识cid、数据源(写死url)、数据详情(用户请求的详情:用户DID userDid、请求唯一编号requestNumber、凭证类型vcType、请求参数requestParams。)。
3、返回上层cid。
S303、预言机服务根据本地预言机合约所写入的属性信息,获取用户的验证中间结果,验证中间结果包括:验证结果声明数据;验证结果声明数据用于指示用户的身份标识以及凭证类型对应的请求参数是否有效。
本实施例中预言机服务可以指预言机服务器,亦或者是预言机区块链,其用于监听预言机合约,以从预言机合约中获取数据,同时,其主要作为发行者区块链和链下中心化业务系统之间的桥梁,实现发行者区块链和链下中心化业务系统之间的数据通信。
在一些实施例中,预言机服务可根据预言机合约中写入的用户的属性信息,调用链下中心化业务系统对用户的属性信息进行验证,获取用户的验证中间结果。其中,验证结果声明数据可以是根据验证结果所组装的声明数据,用于表征用户可申请当前凭证类型的VC。
S304、发行者区块链从预言机服务获取用户的验证中间结果。
可选地,预言机服务再获取到用户的验证中间结果后,可将用户的验证中间结果发送至发行者区块链,同样的,发行者区块链可以将用户的验证中间结果记录在链上,以实现对数据的监督。
S305、发行者区块链根据用户的验证中间结果,生成用户的可验证声明。
可选地,当发行者区块链根据用户的验证中间结果确定对用户的各项信息验证为验证通过时,则可生成用户的可验证声明。
在一种可实现的方式中,发行者区块链可以基于用户的验证中间结果所包含的验证结果声明数据生成用户的可验证声明,具体的生成方式在下述具体实施例中会进行说明。而当用户的验证中间结果为验证失败时,则不生成用户的可验证声明。
综上,本实施例提供的可验证声明生成方法,包括:发行者区块链接收用户的可验证声明申请请求,可验证声明申请请求用于请求为用户生成可验证声明;发行者区块链对可验证声明申请请求进行解析,得到用户的属性信息,并将属性信息写入本地预言机合约中,其中,属性信息包括:用户的身份标识、用户申请的凭证类型、以及凭证类型对应的请求参数;预言机服务根据本地预言机合约所写入的属性信息,获取用户的验证中间结果,验证中间结果包括:验证结果声明数据;验证结果声明数据用于指示用户的身份标识以及凭证类型对应的请求参数是否有效;发行者区块链从预言机服务获取用户的验证中间结果;发行者区块链根据用户的验证中间结果,生成用户的可验证声明。本方案中,用户通过向发行者区块链申请生成可验证声明,用户的申请请求相关信息可及时上链,而用户的验证中间结果同样会发送至发行者区块链上进行记录,从而使得用户的申请信息以及验证结果数据等申请可验证声明的全过程信息均被记录在链,被共同监督,可实现申请过程的全监督,避免了数据被篡改的可能,从而提高了生成的可验证声明的可靠性。
图4为本申请实施例提供的可验证声明生成方法的流程示意图二;可选地,步骤S303中,预言机服务根据本地预言机合约所写入的属性信息,获取用户的验证中间结果,可以包括:
S401、预言机服务监听本地预言机合约,从预言机合约中获取用户的属性信息。
首先,在预言机合约与预言机服务启动之前,需要先对预言机合约和预言机服务进行初始化,可包括:管理员将预言机合约代码部署到发行者区块链,并记录预言机合约地址issuerOracleAddr。
确定预言机服务的账号地址列表(callbackAddressList),在初始化预言机合约的时候,将callbackAddressList写入到合约中。其目的在于:后续预言机服务向发行者区块链发送用户的验证中间结果时,确保只有指定的预言机服务可以将结果发送,防止误写。
可选地,预言机服务中可配置预言机合约地址issuerOracleAddr,监听当前预言机合约的请求事件,以获取用户的属性信息。其中,预言机合约的请求事件可以指发行者区块链获取到用户的申请请求,将用户的属性信息写入预言机合约中。
S402、预言机服务根据用户的属性信息,获取用户的验证中间结果。
可选地,预言机服务可根据监听获取的用户的属性信息,调用链下中心化业务系统对用户的属性信息进行验证,从而获取用户的验证中间结果。
可选地,步骤S402中,预言机服务根据用户的属性信息,获取用户的验证中间结果,可以包括:预言机服务调用中心化业务系统,以触发中心化业务系统验证用户的属性信息,并接收中心化业务系统根据验证结果生成的用户的验证中间结果。
在初始化中,预言机服务配置预言机合约地址issuerOracleAddr,并监听当前预言机合约的预言机请求事件OracleLog事件。
可选地,预言机服务可通过事件监听服务监听预言机合约的新的请求事件OracleLog,这里的监听方法为区块链通用的方法(通过指定区块链地址的log监听即可),不再解释。操作步骤可如下:
1、当预言机服务监听到OracleLog事件后,从预言机合约中恢复出用户的身份标识、请求的预言机的标识cid、数据源、数据详情。
2、解析数据详情,包括用户的身边标识DID(userDid)、可验证声明申请请求的标识requestNumber、凭证类型vcType、凭证类型对应的请求参数requestParams。
3、根据可验证声明申请请求的标识requestNumber、凭证类型vcType、凭证类型对应的请求参数requestParams,调用指定的链下中心化业务系统。
可选地,中心化业务系统可对用户的属性信息进行验证,根据验证结果生成用户的验证中间结果,并发送给预言机服务。
可选地,步骤S304中,发行者区块链从预言机服务获取用户的验证中间结果,可以包括:预言机服务将用户的验证中间结果发送至发行者区块链。
在一种可实现的方式中,预言机服务调用下面__callback方法,输入参数:本次请求的预言机标识cid,用户属性信息是否验证通过(ifvalid),验证结果声明数据(claim),用户的公钥(userPublicKey)。
可选地,预言机服务可通过回调函数将用户的验证中间结果发送至发行者区块链。
图5为本申请实施例提供的可验证声明生成方法的流程示意图三;可选地,步骤中心化业务系统验证用户的属性信息,可包括:
S501、中心化业务系统调用分布式身份标识区块链,以根据分布式身份标识区块链中存储的身份标识信息,验证用户的身份标识是否有效,并根据用户的身份标识获取用户公钥。
在一些实施例中,中心化业务系统可链下验证用户的身份标识是否有效、验证用户的身份标识是否有权限申请当前VC,并将用户的验证中间结果:验证结果声明数据claim返回给预言机服务。
中心化业务系统可调用DID区块链(分布式身份标识区块链)验证用户DID是否存在,用户DID是否有效,并根据用户的DID,从DID区块链中查询用户的公钥消息。其中,用户的公钥消息在用户之前向DID区块链注册保存的,是公开的,可根据用户的DID,从DID所指示的区块链地址中,获取用户的公钥信息。
S502、中心化业务系统根据用户申请的凭证类型,验证凭证类型对应的请求参数是否有效。
可选地,中心化业务系统还可判断用户当前申请的凭证类型(VC类型),所有的所需参数是否合理等业务判断,如用户申请身份VC,则验证用户的请求参数:身份证是否真实有效,如申请亚运会VC,则验证用户的请求参数:是否已经付款成功等各类业务的判断。
S503、中心化业务系统根据用户公钥、用户的身份标识是否有效、以及请求参数是否有效,生成用户的验证中间结果。
可选地,上述验证通过后,中心化业务系统可根据凭证类型,组装验证结果声明数据,并根据验证结果声明数据、用户公钥,生成用户的验证中间结果。
如下以身份VC的验证结果声明数据作为参考,证明用户是否实名、是否成年等信息:
可选地,预言机服务接收到中心化业务系统返回的验证中间结果后,也可做本地记录,并将验证中间结果写回到发行者区块链的预言机合约中。
图6为本申请实施例提供的可验证声明生成方法的流程示意图四;可选地,步骤S305中,发行者区块链根据用户的验证中间结果,生成用户的可验证声明,可以包括:
S601、发行者区块链根据验证结果声明数据,生成用户的可验证声明。
可选地,发行者区块链可调用本地节点ethcall,基于获取的用户的验证中间结果中的验证结果声明数据生成用户的VC。
S602、发行者区块链采用用户的公钥,对用户的可验证声明进行加密处理。
在一些实施例中,发行者区块链还可根据获取的用户的验证中间结果中的用户公钥,对所生成的用户的VC进行加密处理,以保证用户的VC的安全性。当然,实际应用中,并不限于通过用户的公钥进行加密,还可以采用用户的其他私有信息进行加密,本申请对此不作限制。
图7为本申请实施例提供的可验证声明生成方法的流程示意图五;可选地,用户的属性信息还可包括:用户的可验证声明请求标识;步骤S305中,发行者区块链根据验证结果声明数据,生成用户的可验证声明,可以包括:
S701、若验证结果声明数据指示用户的身份标识以及凭证类型对应的请求参数有效,则发行者区块链调用本地节点,根据用户的可验证声明请求标识,恢复用户的属性信息。
可选地,若用户的属性信息验证是有效的,则执行如下操作:
通过validIds-map恢复出可验证声明申请请求的标识requestNumber。并通过requestNumber恢复VC请求对象VCObj。
调用发行者区块链本地ethcall,申请加密VC(callback_applay_vc_ethca ll)。
S702、发行者区块链向用户的属性信息中添加申请请求时间、验证通过标识、以及计算存证,生成用户的可验证声明。
可选地,更新VC对象VCObj,验证结果声明数据(claim),是否验证通过(ifvalid),记录申请时间(applyTime)、加密VC详情(encodeVcDetail)、计算存证hash(depositHash通过用户身份标识DID、可验证声明申请请求的标识、VC详情、hash得到),调用的预言机账号地址(oracleAddr)。
在一些实施例中,若ifvalid验证是无效的,则更新VC对象VCObj:是否验证通过(ifvalid)、调用的预言机账号地址(oracleAddr)、计算存证ha sh(depositHash通过用户did、请求编号hash得到)。
删除validIds中的本次cid,防止反复调用。
至此本次用户从请求生成VC、预言机服务获取用户的验证中间结果、VC成功申请过程结束,全流程的所有相关数据永久入链,任何人都无法篡改。
图8为本申请实施例提供的可验证声明生成方法的流程示意图六;可选地,步骤S305中,发行者区块链根据用户的验证中间结果,生成用户的可验证声明之后,本申请的方法还可包括:
S801、发行者区块链接收用户发起的查询请求,查询请求包括:用户的可验证声明请求标识。
在一种可实现的方式中,用户在本地可不断地轮询可验证声明请求标识,以从发行者区块链中查询获取用户的VC,可通过VCMap对象VCObj中的请求详情获取到。
S802、发行者区块链根据查询请求,从发行者区块链中调取用户的可验证声明返回至用户。
可选地,发行者区块链可根据用户的可验证声明请求标识,从链上调取所生成的用户的VC返回给用户。
可选地,用户获取到加密的VC后,可采用用户的私钥对加密的VC进行解密得到真实的VC,用户可对自己的VC进行保存,以在后续进行业务操作时使用。
可选地,用户的公钥是保存在DID区块链上的是公开的,用户的私钥是用户本地自行保存的。同时公钥加密及私钥解密是DID的非对称加密算法的特性。公钥加密及私钥解密也是为了防止非本人误获取他人VC的情况。
可选地,本申请的方法还可包括:统计平台监听预言机合约,从预言机合约中统计各用户的可验证声明申请信息并进行公示;可验证声明申请信息包括如下至少一项:申请可验证声明成功的用户数量、生成可验证声明的数量、每日可验证声明的申请信息。
可选地,统计平台可通过发行者区块链中所存储的用户的VC申请相关信息,统计所有用户的VC申请情况。
操作步骤可如下:
1、统计平台监听发行者预言机合约地址issuerOracleAddr的所有回调请求(__callback方法),如何监听,区块链中比较通用,不做详细说明。
2、统计平台解析出所有的用户的VCObj的参数数据:
3、统计平台根据用户的身份标识,将用户的申请情况在联盟内公示,如:一共有多少用户成功申请VC、VC的总生成量、每日VC的申请情况等。
至此用户的全链路的VC申请过程,全部存证到发行者区块链,并达到公示及可信的效果。
图9为本申请实施例提供的可验证声明生成方法的流程示意图七;可选地,步骤S501中,中心化业务系统调用分布式身份标识区块链,以根据分布式身份标识区块链中存储的身份标识信息,验证用户的身份标识是否有效之前,本申请的方法还可包括:
S901、分布式身份标识区块链接收用户的身份标识注册请求。
可选地,用户可向分布式身份标识区块链发起身份标识注册请求,以将自身的身份标识记录在分布式身份标识区块链上,以便于后续中心化业务系统可调用分布式身份标识区块链中存储的用户的身份标识,对用户的身份进行验证。
S902、分布式身份标识区块链响应身份标识注册请求,将用户的身份标识进行存储。
可选地,分布式身份标识区块链响应身份标识注册请求,则会将用户的身份标识存储在链上,其中,各用户的身份标识在链上均是公开的。
综上所述,本实施例提供的可验证声明生成方法,包括:发行者区块链接收用户的可验证声明申请请求,可验证声明申请请求用于请求为用户生成可验证声明;发行者区块链对可验证声明申请请求进行解析,得到用户的属性信息,并将属性信息写入本地预言机合约中,其中,属性信息包括:用户的身份标识、用户申请的凭证类型、以及凭证类型对应的请求参数;预言机服务根据本地预言机合约所写入的属性信息,获取用户的验证中间结果,验证中间结果包括:验证结果声明数据;验证结果声明数据用于指示用户的身份标识以及凭证类型对应的请求参数是否有效;发行者区块链从预言机服务获取用户的验证中间结果;发行者区块链根据用户的验证中间结果,生成用户的可验证声明。本方案中,用户通过向发行者区块链申请生成可验证声明,用户的申请请求相关信息可及时上链,而用户的验证中间结果同样会发送至发行者区块链上进行记录,从而使得用户的申请信息以及验证结果数据等申请可验证声明的全过程信息均被记录在链,被共同监督,可实现申请过程的全监督,避免了数据被篡改的可能,从而提高了生成的可验证声明的可靠性。
另外,通过预言机服务作为发行者区块链和链下中心化业务系统之间的通信桥梁,可有效解决区块链无法直接跟链下中心化业务系统进行通信的问题。
下述对用以执行本申请所提供的可验证声明生成方法的装置、电子设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
图10为本申请实施例提供的一种可验证声明生成装置的示意图,该可验证声明生成装置实现的功能对应上述方法执行的步骤。如图10所示,该装置可包括:接收模块110、解析模块120、获取模块130、生成模块140;
接收模块110,用于发行者区块链接收用户的可验证声明申请请求,可验证声明申请请求用于请求为用户生成可验证声明;
解析模块120,用于发行者区块链对可验证声明申请请求进行解析,得到用户的属性信息,并将属性信息写入本地预言机合约中,其中,属性信息包括:用户的身份标识、用户申请的凭证类型、以及凭证类型对应的请求参数;
获取模块130,用于预言机服务根据本地预言机合约所写入的属性信息,获取用户的验证中间结果,验证中间结果包括:验证结果声明数据;验证结果声明数据用于指示用户的身份标识以及凭证类型对应的请求参数是否有效;
获取模块130,用于发行者区块链从预言机服务获取用户的验证中间结果;
生成模块140,用于发行者区块链根据用户的验证中间结果,生成用户的可验证声明。
可选地,获取模块130,具体用于预言机服务监听本地预言机合约,从预言机合约中获取用户的属性信息;预言机服务根据用户的属性信息,获取用户的验证中间结果。
可选地,可验证声明生成系统还包括:中心化业务系统、分布式身份标识区块链;预言机服务和中心化业务系统之间通信,中心化业务系统和分布式身份标识区块链之间通信;
获取模块130,具体用于预言机服务调用中心化业务系统,以触发中心化业务系统验证用户的属性信息,并接收中心化业务系统根据验证结果生成的用户的验证中间结果。
获取模块130,具体用于预言机服务将用户的验证中间结果发送至发行者区块链。
获取模块130,具体用于中心化业务系统调用分布式身份标识区块链,以根据分布式身份标识区块链中存储的身份标识信息,验证用户的身份标识是否有效,并根据用户的身份标识获取用户公钥;中心化业务系统根据用户申请的凭证类型,验证凭证类型对应的请求参数是否有效;中心化业务系统根据用户公钥、用户的身份标识是否有效、以及请求参数是否有效,生成用户的验证中间结果。
生成模块140,具体用于发行者区块链根据验证结果声明数据,生成用户的可验证声明;发行者区块链采用用户的公钥,对用户的可验证声明进行加密处理。
可选地,属性信息还包括:用户的可验证声明请求标识;生成模块140,具体用于若验证结果声明数据指示用户的身份标识以及凭证类型对应的请求参数有效,则发行者区块链调用本地节点,根据用户的可验证声明请求标识,恢复用户的属性信息;发行者区块链向用户的属性信息中添加申请请求时间、验证通过标识、以及计算存证,生成用户的可验证声明。
可选地,该装置还包括:查询模块、返回模块;
查询模块,用于发行者区块链接收用户发起的查询请求,查询请求包括:用户的可验证声明请求标识;
返回模块,用于发行者区块链根据查询请求,从发行者区块链中调取用户的可验证声明返回至用户。
可选地,可验证声明生成系统中还包括统计平台,统计平台与发行者区块链之间通信;该装置还包括:统计模块;
统计模块,用于统计平台监听预言机合约,从预言机合约中统计各用户的可验证声明申请信息并进行公示;可验证声明申请信息包括如下至少一项:申请可验证声明成功的用户数量、生成可验证声明的数量、每日可验证声明的申请信息。
可选地,该装置还包括:注册模块;
注册模块,用于分布式身份标识区块链接收用户的身份标识注册请求;分布式身份标识区块链响应身份标识注册请求,将用户的身份标识进行存储。
可选地,预言机服务包括:预言机服务器或预言机区块链。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
上述模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合线缆等,或其任意组合。无线连接可以包括通过LAN、WAN、蓝牙、ZigBee、或NFC等形式的连接,或其任意组合。两个或更多个模块可以组合为单个模块,并且任何一个模块可以分成两个或更多个单元。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。
需要说明的是,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(Digital Singnal Processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(System-on-a-chip,简称SOC)的形式实现。
图11为本申请实施例提供的一种电子设备的结构示意图,该终端可以是具备数据处理功能的计算设备。
该设备可包括:处理器801、存储器802。
存储器802用于存储程序,处理器801调用存储器802存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
其中,存储器802存储有程序代码,当程序代码被处理器801执行时,使得处理器801执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的方法中的各种步骤。
处理器801可以是通用处理器,例如中央处理器(CPU)、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器802作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器802还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
可选地,本申请还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (12)
1.一种可验证声明生成方法,其特征在于,应用于可验证声明生成系统,所述可验证声明生成系统包括:发行者区块链、预言机服务,所述预言机服务和所述发行者区块链之间通信;所述方法包括:
所述发行者区块链接收用户的可验证声明申请请求,所述可验证声明申请请求用于请求为所述用户生成可验证声明;
所述发行者区块链对所述可验证声明申请请求进行解析,得到所述用户的属性信息,并将所述属性信息写入本地预言机合约中,其中,所述属性信息包括:用户的身份标识、用户申请的凭证类型、以及所述凭证类型对应的请求参数;
所述预言机服务根据所述本地预言机合约所写入的属性信息,获取用户的验证中间结果,所述验证中间结果包括:验证结果声明数据;所述验证结果声明数据用于指示所述用户的身份标识以及所述凭证类型对应的请求参数是否有效;
所述发行者区块链从所述预言机服务获取所述用户的验证中间结果;
所述发行者区块链根据所述用户的验证中间结果,生成所述用户的可验证声明;
其中,所述预言机服务根据所述本地预言机合约所写入的属性信息,获取用户的验证中间结果,包括:
所述预言机服务监听所述本地预言机合约,从所述预言机合约中获取所述用户的属性信息;
所述预言机服务根据所述用户的属性信息,获取所述用户的验证中间结果;
所述可验证声明生成系统还包括:中心化业务系统、分布式身份标识区块链;所述预言机服务和所述中心化业务系统之间通信,所述中心化业务系统和所述分布式身份标识区块链之间通信;
所述预言机服务根据所述用户的属性信息,获取所述用户的验证中间结果,包括:
所述预言机服务调用所述中心化业务系统,以触发所述中心化业务系统验证所述用户的属性信息,并接收所述中心化业务系统根据验证结果生成的用户的验证中间结果。
2.根据权利要求1所述的方法,其特征在于,所述发行者区块链从所述预言机服务获取所述用户的验证中间结果,包括:
所述预言机服务将所述用户的验证中间结果发送至所述发行者区块链。
3.根据权利要求1所述的方法,其特征在于,所述中心化业务系统验证所述用户的属性信息,包括:
所述中心化业务系统调用所述分布式身份标识区块链,以根据所述分布式身份标识区块链中存储的身份标识信息,验证所述用户的身份标识是否有效,并根据所述用户的身份标识获取用户公钥;
所述中心化业务系统根据所述用户申请的凭证类型,验证所述凭证类型对应的请求参数是否有效;
所述中心化业务系统根据所述用户公钥、所述用户的身份标识是否有效、以及所述请求参数是否有效,生成所述用户的验证中间结果。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述发行者区块链根据所述用户的验证中间结果,生成所述用户的可验证声明,包括:
所述发行者区块链根据所述验证结果声明数据,生成所述用户的可验证声明;
所述发行者区块链采用所述用户的公钥,对所述用户的可验证声明进行加密处理。
5.根据权利要求4所述的方法,其特征在于,所述属性信息还包括:用户的可验证声明请求标识;所述发行者区块链根据所述验证结果声明数据,生成所述用户的可验证声明,包括:
若所述验证结果声明数据指示所述用户的身份标识以及凭证类型对应的请求参数有效,则所述发行者区块链调用本地节点,根据所述用户的可验证声明请求标识,恢复所述用户的属性信息;
所述发行者区块链向所述用户的属性信息中添加申请请求时间、验证通过标识、以及计算存证,生成所述用户的可验证声明。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述发行者区块链根据所述用户的验证中间结果,生成所述用户的可验证声明之后,所述方法还包括:
所述发行者区块链接收所述用户发起的查询请求,所述查询请求包括:用户的可验证声明请求标识;
所述发行者区块链根据所述查询请求,从所述发行者区块链中调取所述用户的可验证声明返回至所述用户。
7.根据权利要求1所述的方法,其特征在于,所述可验证声明生成系统中还包括统计平台,所述统计平台与所述发行者区块链之间通信;所述方法还包括:
所述统计平台监听所述预言机合约,从所述预言机合约中统计各用户的可验证声明申请信息并进行公示;所述可验证声明申请信息包括如下至少一项:申请可验证声明成功的用户数量、生成可验证声明的数量、每日可验证声明的申请信息。
8.根据权利要求3所述的方法,其特征在于,所述中心化业务系统调用所述分布式身份标识区块链,以根据所述分布式身份标识区块链中存储的身份标识信息,验证所述用户的身份标识是否有效之前,所述方法还包括:
所述分布式身份标识区块链接收所述用户的身份标识注册请求;
所述分布式身份标识区块链响应所述身份标识注册请求,将所述用户的身份标识进行存储。
9.根据权利要求1-3任一项所述的方法,其特征在于,所述预言机服务包括:预言机服务器或预言机区块链。
10.一种可验证声明生成装置,其特征在于,应用于可验证声明生成系统,所述可验证声明生成系统包括:发行者区块链、预言机服务,所述预言机服务和所述发行者区块链之间通信;所述装置包括:接收模块、解析模块、获取模块、生成模块;
所述接收模块,用于所述发行者区块链接收用户的可验证声明申请请求,所述可验证声明申请请求用于请求为所述用户生成可验证声明;
所述解析模块,用于所述发行者区块链对所述可验证声明申请请求进行解析,得到所述用户的属性信息,并将所述属性信息写入本地预言机合约中,其中,所述属性信息包括:用户的身份标识、用户申请的凭证类型、以及所述凭证类型对应的请求参数;
所述获取模块,用于所述预言机服务根据所述本地预言机合约所写入的属性信息,获取用户的验证中间结果,所述验证中间结果包括:验证结果声明数据;所述验证结果声明数据用于指示所述用户的身份标识以及所述凭证类型对应的请求参数是否有效;
所述获取模块,用于所述发行者区块链从所述预言机服务获取所述用户的验证中间结果;
所述生成模块,用于所述发行者区块链根据所述用户的验证中间结果,生成所述用户的可验证声明;
其中,所述获取模块,具体用于所述预言机服务监听所述本地预言机合约,从所述预言机合约中获取所述用户的属性信息;所述预言机服务根据所述用户的属性信息,获取所述用户的验证中间结果;
所述可验证声明生成系统还包括:中心化业务系统、分布式身份标识区块链;所述预言机服务和所述中心化业务系统之间通信,所述中心化业务系统和所述分布式身份标识区块链之间通信;
所述获取模块,具体用于所述预言机服务调用所述中心化业务系统,以触发所述中心化业务系统验证所述用户的属性信息,并接收所述中心化业务系统根据验证结果生成的用户的验证中间结果。
11.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行时执行如权利要求1至9任一项所述的方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至9任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110615810.8A CN113364763B (zh) | 2021-06-02 | 2021-06-02 | 可验证声明生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110615810.8A CN113364763B (zh) | 2021-06-02 | 2021-06-02 | 可验证声明生成方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113364763A CN113364763A (zh) | 2021-09-07 |
CN113364763B true CN113364763B (zh) | 2022-08-23 |
Family
ID=77531680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110615810.8A Active CN113364763B (zh) | 2021-06-02 | 2021-06-02 | 可验证声明生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113364763B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113807968B (zh) * | 2021-09-22 | 2024-02-23 | 网易(杭州)网络有限公司 | 区块链用户请求处理方法、装置、委托服务器及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112016105A (zh) * | 2020-08-17 | 2020-12-01 | 东北大学秦皇岛分校 | 基于分布式预言机和同态加密的链上链下数据共享方案 |
CN112580102A (zh) * | 2020-12-29 | 2021-03-30 | 郑州大学 | 基于区块链的多维度数字身份鉴别系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11196551B2 (en) * | 2018-06-27 | 2021-12-07 | International Business Machines Corporation | Automated task management on a blockchain based on predictive and analytical analysis |
US10819503B2 (en) * | 2018-07-03 | 2020-10-27 | International Business Machines Corporation | Strengthening non-repudiation of blockchain transactions |
US10756901B2 (en) * | 2019-08-01 | 2020-08-25 | Alibaba Group Holding Limited | Blockchain-based identity authentication method, apparatus, and device |
CN111090876B (zh) * | 2020-03-18 | 2020-07-17 | 支付宝(杭州)信息技术有限公司 | 调用合约的方法及装置 |
CN111770201B (zh) * | 2020-08-31 | 2020-12-04 | 支付宝(杭州)信息技术有限公司 | 一种数据验证方法、装置及设备 |
CN113468602A (zh) * | 2020-08-31 | 2021-10-01 | 支付宝(杭州)信息技术有限公司 | 一种数据检验方法、装置及设备 |
CN112235114B (zh) * | 2020-09-25 | 2023-09-19 | 西安纸贵互联网科技有限公司 | 基于区块链的业务处理系统 |
CN112801827A (zh) * | 2020-10-29 | 2021-05-14 | 西安纸贵互联网科技有限公司 | 一种基于区块链的知识产权管理系统 |
-
2021
- 2021-06-02 CN CN202110615810.8A patent/CN113364763B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112016105A (zh) * | 2020-08-17 | 2020-12-01 | 东北大学秦皇岛分校 | 基于分布式预言机和同态加密的链上链下数据共享方案 |
CN112580102A (zh) * | 2020-12-29 | 2021-03-30 | 郑州大学 | 基于区块链的多维度数字身份鉴别系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113364763A (zh) | 2021-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11636216B2 (en) | System and methods for tamper proof interaction recording and timestamping | |
CN113285954B (zh) | 可验证声明验证方法、系统、电子设备及存储介质 | |
US11057366B2 (en) | Federated identity management with decentralized computing platforms | |
CN109844783B (zh) | 不可变的密码保护的分类账支持的数据库 | |
CN109067801B (zh) | 一种身份认证方法、身份认证装置及计算机可读介质 | |
EP3701668B1 (en) | Methods for recording and sharing a digital identity of a user using distributed ledgers | |
CN108337239A (zh) | 电子设备的事件证明 | |
AU2017225928A1 (en) | Systems and methods for distributed data sharing with asynchronous third-party attestation | |
CN109495592A (zh) | 数据协同方法及电子设备 | |
EP3391587A1 (en) | System and methods for tamper proof interaction recording and timestamping | |
CN113468602A (zh) | 一种数据检验方法、装置及设备 | |
CN108022194A (zh) | 执法记录仪及其数据安全处理方法、服务器及系统 | |
WO2020000777A1 (zh) | 基于区块链获取个人征信方法、装置及计算机设备 | |
CN113301163B (zh) | 业务处理方法、系统、电子设备及存储介质 | |
CN113364763B (zh) | 可验证声明生成方法、装置、电子设备及存储介质 | |
CN109818965B (zh) | 个人身份验证装置及方法 | |
US11729159B2 (en) | System security infrastructure facilitating protecting against fraudulent use of individual identity credentials | |
CN113129017B (zh) | 一种信息共享方法、装置及设备 | |
CN114026823A (zh) | 用于处理匿名数据的计算机系统及其操作方法 | |
CN116112167B (zh) | 密钥管理系统、方法及装置 | |
Baldwin | Enhanced accountability for electronic processes | |
JP2022104875A (ja) | 否認可能な証明書 | |
CN114662124A (zh) | 区块链可信数据的处理方法与计算机可读存储介质 | |
CN114742649A (zh) | 交易数据处理方法、装置和服务器 | |
CN115048670A (zh) | 一种基于区块链的加密存证方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |