CN113395281B - 可验证声明的验证方法、装置和电子设备 - Google Patents

可验证声明的验证方法、装置和电子设备 Download PDF

Info

Publication number
CN113395281B
CN113395281B CN202110658117.9A CN202110658117A CN113395281B CN 113395281 B CN113395281 B CN 113395281B CN 202110658117 A CN202110658117 A CN 202110658117A CN 113395281 B CN113395281 B CN 113395281B
Authority
CN
China
Prior art keywords
driver
target
document
verified
statement
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
Application number
CN202110658117.9A
Other languages
English (en)
Other versions
CN113395281A (zh
Inventor
邓泰生
顾费勇
曹崇瑞
李刚锐
常鸿飞
张皓旭
陈冰宇
崔阳
冯超
刘静媛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202110658117.9A priority Critical patent/CN113395281B/zh
Publication of CN113395281A publication Critical patent/CN113395281A/zh
Application granted granted Critical
Publication of CN113395281B publication Critical patent/CN113395281B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种可验证声明的验证方法、装置和电子设备,包括:获取待验证声明中目标DID对应的第一DID方法;从DID方法与驱动程序的对应关系中,确定第一DID方法对应的第一驱动程序;通过第一驱动程序,从包含有第一DID方法的第一区块链网络中读取目标DID的DID文档数据,基于DID文档数据得到目标DID的DID文档;基于DID文档验证待验证声明。该方式通过DID方法与驱动程序的对应关系,可查找到不同DID方法对应的驱动程序,然后通过该驱动程序从包含该DID方法的区块链中读取DID文档数据,来验证可验证声明,使得该方式能够验证使用不同DID方法签发的可验证声明,同时,该方式具有较高的通用性。

Description

可验证声明的验证方法、装置和电子设备
技术领域
本发明涉及区块链技术领域,尤其是涉及一种可验证声明的验证方法、装置和电子设备。
背景技术
W3C(World Wide Web Consortium,万维网联盟)提供DID(DecentralizedIdentifiers,分布式身份标识)方法规范,各个组织可以根据DID方法规范向W3C注册各自的DID方法,该DID方法定义了实现者如何实现本规范所描述的特性,DID方法通常与特定的可验证声明相关联。
相关技术中,DID应用均是基于特定的DID方法实现的,使得在一个DID应用内,无法识别和验证出特定的DID方法之外的DID方法签发的VC(Verifiable Credentials,可验证声明)。
发明内容
本发明的目的在于提供一种可验证声明的验证方法、装置和电子设备,以验证使用不同DID方法签发的可验证声明,避免因使用不同DID方法而无法验证可验证声明的现象。
第一方面,本发明提供了一种可验证声明的验证方法,该方法包括:获取待验证声明中目标DID对应的第一DID方法;从预设的DID方法与驱动程序的对应关系中,确定第一DID方法对应的第一驱动程序;其中,该第一驱动程序用于:与包含有第一DID方法的第一区块链网络建立连接;通过第一驱动程序,从第一区块链网络中读取目标DID的DID文档数据,基于该DID文档数据得到目标DID的DID文档;基于DID文档验证待验证声明。
在可选的实施方式中,上述DID方法与驱动程序的对应关系中包括:多种DID方法以及每种DID方法对应的驱动程序;上述从预设的DID方法与驱动程序的对应关系中,确定第一DID方法对应的第一驱动程序的步骤,包括:从DID方法与驱动程序的对应关系中,查找第一DID方法对应的驱动程序,将查找到的驱动程序确定为第一驱动程序。
在可选的实施方式中,上述DID方法与驱动程序的对应关系中包含有多个驱动程序;每个驱动程序用于:与包含有驱动程序对应的DID方法的区块链网络建立连接;上述通过第一驱动程序,从第一区块链网络中读取目标DID的DID文档数据,基于DID文档数据得到目标DID的DID文档的步骤,包括:通过第一驱动程序,从与第一驱动程序连接的第一区块链网络中,读取目标DID的DID文档数据;根据读取到的DID文档数据还原出目标DID的DID文档。
在可选的实施方式中,上述通过第一驱动程序,从与第一驱动程序连接的第一区块链网络中,读取目标DID的DID文档数据的步骤,包括:通过第一驱动程序,调用第一DID方法对应的智能合约或者预设调用方法,从第一区块链网络中读取目标DID的DID文档数据。
在可选的实施方式中,上述基于DID文档验证待验证声明的步骤,包括:使用DID文档中的密码算法和公钥验证待验证声明。
在可选的实施方式中,上述DID文档包括用户的DID文档和颁发者的DID文档;上述使用DID文档中的密码算法和公钥验证待验证声明的步骤,包括:使用用户的DID文档中的密码算法和公钥验证待验证声明是否属于用户;使用颁发者的DID文档中的密码算法和公钥验证待验证声明是否是伪造的。
在可选的实施方式中,上述获取待验证声明中目标DID对应的第一DID方法的步骤,包括:通过预设的DID解析器,从待验证声明中解析出目标DID;通过DID解析器,从目标DID中提取出目标DID对应的第一DID方法。
第二方面,本发明提供了一种可验证声明的验证装置,该装置包括:DID方法获取模块,用于获取待验证声明中目标DID对应的第一DID方法;驱动确定模块,用于从预设的DID方法与驱动程序的对应关系中,确定第一DID方法对应的第一驱动程序;其中,该第一驱动程序用于:与包含有第一DID方法的第一区块链网络建立连接;数据读取模块,用于通过第一驱动程序,从第一区块链网络中读取目标DID的DID文档数据,基于DID文档数据得到目标DID的DID文档;声明验证模块,用于基于DID文档验证待验证声明。
第三方面,本发明提供了一种电子设备,该电子设备包括处理器和存储器,该存储器存储有能够被处理器执行的机器可执行指令,该处理器执行机器可执行指令以实现前述实施方式任一项所述的可验证声明的验证方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现前述实施方式任一项所述的可验证声明的验证方法。
本发明实施例带来了以下有益效果:
本发明提供的一种可验证声明的验证方法、装置和电子设备,首先获取待验证声明中目标DID对应的第一DID方法;进而从预设的DID方法与驱动程序的对应关系中,确定第一DID方法对应的第一驱动程序;再通过该第一驱动程序,从包含有第一DID方法的第一区块链网络中读取目标DID的DID文档数据,基于该DID文档数据得到目标DID的DID文档;然后基于DID文档验证待验证声明。该方式通过DID方法与驱动程序的对应关系,可查找到不同DID方法对应的驱动程序,然后通过该驱动程序从包含该DID方法的区块链中读取DID文档数据,来验证可验证声明,使得该方式能够验证使用不同DID方法签发的可验证声明,同时,该方式具有较高的通用性。
本发明的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本发明的上述技术即可得知。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种可验证声明的验证方法的流程图;
图2为本发明实施例提供的另一种可验证声明的验证方法的流程图;
图3为本发明实施例提供的另一种可验证声明的验证方法的流程图;
图4为本发明实施例提供的一种验证方法的整体架构流程图;
图5为本发明实施例提供的一种可验证声明的验证方法的结构示意图;
图6为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
W3C可以提供DID方法规范,各个组织能够根据DID方法规范向W3C注册各自的DID方法,该DID方法定义了实现者如何实现本规范所描述的特性,该DID方法通常与特定的可验证声明VC相关联,DID方法在自己的规范中定义,以支持同一DID方法的不同实现之间的互操作性。分布式身份标识DID通常是一种去中心化的可验证的数字标识符,具有分布式、自主可控、跨链复用等特点;实体可自主完成DID的注册、解析、更新或者撤销等操作。DID具体可以解析为DID文档,该DID文档包括DID的唯一标识码、公钥列表和公钥的详细信息(持有者、加密算法、密钥状态等),以及DID持有者的其他属性描述。上述可验证声明提供了一种规范来描述实体所具有的某些属性,实现基于证据的信任;DID持有者可以通过可验证声明,向其他实体(个人、组织、具体事物等)证明自己的某些属性是可信的;同时,结合数字签名和零知识证明等密码学技术,可以使得声明更加安全可信,并进一步保障用户隐私不被侵犯。
目前各个组织已向W3C注册的DID方法有几十种,同时,不同用户可以使用不同的DID方法生成不同的DID场景。相关技术中,DID应用均是基于特定的DID方法实现的,使得在一个DID应用内,无法识别和验证出特定的DID方法之外的DID方法签发的VC。
在实际应用中,基于特定DID方法的应用无法解析和验证其他DID方法签发的VC,主要由于以下几个方面的原因造成:
1、DID方法基于的底层区块链不同,有的DID方法基于ETH(Ethereum,以太坊),有的DID方法基于的是BTC(Bitcoin,比特币)。
2、不同的DID方法均基于同一区块链网络实现,但是调用DID的方式不同。例如,两种DID方法都是基于以太坊实现的,但是DID的调用方式不同,具体来说就是调用的智能合约不同。
3、不同的DID方法使用的密码学算法不同,即验证可验证声明的密码算法不同。
基于上述描述,本发明实施例提供了一种可验证声明的验证方法、装置和电子设备,该技术可以应用于不同DID方法的VC验证场景中。为便于对本实施例进行理解,首先对本发明实施例所公开的一种可验证声明的验证方法进行详细介绍,如图1所示,该方法包括如下具体步骤:
步骤S102,获取待验证声明中目标DID对应的第一DID方法。
上述待验证声明可以是验证者通过终端设备(该终端设备可以是手机、平板电脑,也可以是计算机等)发送的可验证声明VC,该待验证声明中通常包含有声明ID(Identity,身份标识)、声明所属类型和签发声明的DID等信息;其中,待验证声明中包含的签发声明的DID相当于上述目标DID,该签发声明的DID中包含有DID遵循的DID规范(也即是DID方法)和该DID方法对应的特定字符串。例如,获取到的目标DID为:did:future:0xd6f4d1215c52ee7e7975ac946a0e094040aa5eeb,那么did:future表示DID方法,0xd6f4d1215c52ee7e7975ac946a0e094040aa5eeb表示特定字符串。
在具体实现时,可以从待验证声明中解析出目标DID,并从目标DID中解析出该目标DID所包含的DID方法,将解析出的DID方法确定为第一DID方法。
步骤S104,从预设的DID方法与驱动程序的对应关系中,确定第一DID方法对应的第一驱动程序;其中,该第一驱动程序用于:与包含有第一DID方法的第一区块链网络建立连接。
上述DID方法与驱动程序的对应关系是研发人员预先设置好的,该DID方法与驱动程序的对应关系中包括:多种DID方法以及每种DID方法对应的驱动程序。一般情况下,DID方法与驱动程序的对应关系中的每个DID方法唯一对应有一个驱动程序,也即是存在一一对应的关系。具体地,上述DID方法与驱动程序的对应关系中所包含的DID方法的种类和数量可以根据研发需求设定,而且该对应关系中的DID方法和驱动程序可根据需求进行动态扩展。上述多种DID方法可以是各个组织根据DID方法规范向W3C注册的DID方法中的任意多种。
在实际应用中,某一驱动程序可以与包含有该驱动程序对应的DID方法的区块链网络进行连接,以从该区块链网络中获取想要的数据。其中,包含有该驱动程序对应的DID方法的区块链网络,也即是实现该驱动程序对应的DID方法的区块链网络(也可以理解为该驱动程序对应的DID方法是基于该区块链网络实现的)。
在具体实现时,根据第一DID方法,可以在DID方法与驱动程序的对应关系中查找到该第一DID方法对应的驱动程序,查找到的驱动程序也即是第一驱动程序,该第一驱动程序可以与包含有第一DID方法的第一区块链建立连接。
步骤S106,通过第一驱动程序,从第一区块链网络中读取目标DID的DID文档数据,基于该DID文档数据得到目标DID的DID文档。
上述DID文档通常用于描述公钥、身份验证协议和服务端点,它是引导与标识实体的密码可验证交互所必需的。通常,一个DID对应一个DID文档,如表1所示,DID文档中包括如下DID文档数据:
表1
Figure BDA0003112684310000081
在具体实现时,上述第一驱动程序可以从第一区块链网络中读取目标DID的DID文档数据,并根据读取到的DID文档数据,还原出目标DID对应的完整的DID文档。具体地,DID文档数据可能存储在第一区块链网络的不同区块中,此时,第一驱动程序需要多次从第一区块链网络中读取DID文档数据,以拼装出完整的DID文档。
步骤S108,基于上述DID文档验证待验证声明。
在具体实现时,可根据DID文档中的密码算法和公钥验证待验证声明。
本发明实施例提供的一种可验证声明的验证方法,首先获取待验证声明中目标DID对应的第一DID方法;进而从预设的DID方法与驱动程序的对应关系中,确定第一DID方法对应的第一驱动程序;再通过该第一驱动程序,从包含有第一DID方法的第一区块链网络中读取目标DID的DID文档数据,基于该DID文档数据得到目标DID的DID文档;然后基于DID文档验证待验证声明。该方式通过DID方法与驱动程序的对应关系,可查找到不同的DID方法对应的驱动程序,然后通过该驱动程序从包含该DID方法的区块链中读取DID文档数据,来验证可验证声明,使得该方式能够验证使用不同DID方法签发的可验证声明,同时,该方式具有较高的通用性。
本发明实施例还提供了另一种可验证声明的验证方法,该方法在上述实施例方法的基础上实现;该方法重点描述响应于从预设的DID方法与驱动程序的对应关系中,确定第一DID方法对应的第一驱动程序的具体过程(通过下述步骤S204实现),以及通过第一驱动程序,从第一区块链网络中读取目标DID的DID文档数据,基于该DID文档数据得到目标DID的DID文档的具体过程(通过下述步骤S206-S208实现);如图2所示,该方法包括如下具体步骤:
步骤S202,获取待验证声明中目标DID对应的第一DID方法。
步骤S204,从DID方法与驱动程序的对应关系中,查找第一DID方法对应的驱动程序,将查找到的驱动程序确定为第一驱动程序。
上述DID方法与驱动程序的对应关系中包括:多种DID方法以及每种DID方法对应的驱动程序;同时,该DID方法与驱动程序的对应关系中包含有多个驱动程序;每个驱动程序用于:与包含有该驱动程序对应的DID方法的区块链网络建立连接;也可以理解为某一驱动程序可以与包含有该驱动程序对应的DID方法的区块链网络建立连接。在具体实现时,需要在本地部署不同DID方法的区块链节点,以使驱动程序通过部署的区块链节点与该区块链节点对应的区块链网络建立连接,也可以理解为某一DID方法对应的驱动程序,通过该DID方法的区块链节点与包含有该DID方法的区块链网络建立连接。
上述部署的区块链节点包括但不限于BTC测试网节点、ETH节点和联盟链节点;其中,部署BTC测试网节点可接入比特币测试网(也可以理解可以从比特币测试网中获取数据)、部署ETH节点可接入以太坊区块链网络、部署联盟链节点可接入对应的联盟网络。同时,本地部署的区块链节点可以根据研发需求进行动态扩展。
步骤S206,通过上述第一驱动程序,从与该第一驱动程序连接的第一区块链网络中,读取目标DID的DID文档数据。
在具体实现时,第一驱动程序可以调用第一DID方法对应的智能合约或者预设调用方法,以从第一区块链网络中读取目标DID的DID文档数据。通常,不同的DID方法对应不同的智能合约,而且不同的驱动程序可调用的智能合约是根据其对应的DID方法确定的,通常不可随意调用。在一些实施例中,驱动程序与智能合约或者预设调用方法的对应关系是提前设置好的。
步骤S208,根据读取到的DID文档数据还原出目标DID的DID文档。
在具体实现时,第一驱动程序可以根据DID文档所包含的字段,从第一区块链网络中,依次读取每个字段对应的DID文档数据,然后根据读取到的DID文档数据还原出DID文档。
步骤S210,基于上述DID文档验证待验证声明。
上述可验证声明的验证方法,首先获取待验证声明中目标DID对应的第一DID方法;进而从DID方法与驱动程序的对应关系中,查找第一DID方法对应的驱动程序,将查找到的驱动程序确定为第一驱动程序;再通过第一驱动程序,从与该第一驱动程序连接的第一区块链网络中,读取目标DID的DID文档数据,并根据读取到的DID文档数据还原出目标DID的DID文档;然后基于该DID文档验证待验证声明。该方式通过实现兼容不同DID方法对应的区块链网络、兼容不同的DID调用方式来获取不同DID方法对应的DID文档,然后通过获取到的DID文档来实现对不同DID方法的可验证声明的验证。该方式能够验证使用不同DID方法签发的可验证声明,在当前已经注册的DID方法有几十种的背景下,该方式能带来极大的便利,打破了因使用不同DID方法而无法进行可验证声明的验证的壁垒。
本发明实施例还提供了另一种可验证声明的验证方法,该方法在上述实施例方法的基础上实现;该方法重点描述获取待验证声明中目标DID对应的第一DID方法的具体过程(通过下述步骤S302-S304实现),以及基于DID文档验证待验证声明的具体过程(通过下述步骤S306实现);如图3所示,该方法包括如下具体步骤:
步骤S302,通过预设的DID解析器,从待验证声明中解析出目标DID。
在具体实现时,上述目标DID包括颁发者的DID和所声明用户的DID,通过DID解析器可以从待验证声明中解析出颁发者的DID和所声明用户的DID。如下代码为待验证声明的样例,从该待验证声明中可以解析出颁发者的DID为:did:future:0x8a78cce8e643794bc55ef34bf80976ae521d3396;所声明用户的DID为:did:future:0xd6f4d1215c52ee7e7975ac946a0e094040aa5eeb。
例如,待验证声明的样例,如下:
Figure BDA0003112684310000111
Figure BDA0003112684310000121
步骤S304,通过DID解析器,从目标DID中提取出目标DID对应的第一DID方法。
通过DID解析器还可以从颁发者的DID中解析出DID方法,以及从所声明用户的DID中解析出DID方法。例如,上述待验证声明的样例中,DID解析器可以从颁发者的DID中解析出DID方法为did:future,从所声明用户的DID中解析出DID方法也为:did:future。
步骤S306,从预设的DID方法与驱动程序的对应关系中,确定第一DID方法对应的第一驱动程序;该第一驱动程序用于:与包含有第一DID方法的第一区块链网络建立连接。
步骤S308,通过第一驱动程序,从第一区块链网络中读取目标DID的DID文档数据,基于该DID文档数据得到目标DID的DID文档。
步骤S310,使用上述DID文档中的密码算法和公钥验证待验证声明。
在具体实现时,由于DID文档包括用户的DID文档和颁发者的DID文档;上述步骤S310可以通过下述步骤10-11实现:
步骤10,使用用户的DID文档中的密码算法和公钥验证待验证声明是否属于用户。
在具体实现时,上述步骤10的具体验证流程为:
a.验证者使用用户的DID公钥和对应的密码学算法加密一个随机数,得到加密数据,并将加密数据发送给用户。
b.用户收到上述加密数据后,使用DID对应的私钥进行解密,得到随机数并返回给验证者。
c.验证者比较返回的随机数与发出的加密数据中的随机数是否一致,如果一致,验证通过,表示该DID属于该用户。反之,则表示该DID不属于该用户。
步骤11,使用颁发者的DID文档中的密码算法和公钥验证待验证声明是否是伪造的。
在具体实现时,上述步骤11的具体验证流程包括下述两种:
方式一,从待验证声明中取出签名数据段,使用颁发者的DID公钥和对应的密码学算法解密数据,如果解密出来的数据与声明的明文内容一致,则说明验证通过;否则,验证不通过,也即是确定待验证声明是伪造的。
方式二,一般为了减少签名的数据,会是使用声明的明文内容序列化之后,进行Hash计算得到一个声明Hash,颁发者对声明的Hash使用私钥进行签名。验证方法为:使用颁发者DID公钥和对应的密码学算法解密数据,得到签名中的声明Hash,再对声明的明文进行序列化,并进行Hash运算,计算得到声明Hash。再比较两个Hash,如果一致,则验证通过;否则,验证不通过,也即是确定待验证声明是伪造的。
在实际应用中,执行上述步骤S302-S310的电子设备中设置有DID解析器和驱动层;该驱动层中包含有多个驱动程序,以及每个驱动程序可调用的智能合约和连接的区块链节点;每个驱动程序调用智能合约或者预设的调用方法,通过与其连接的区块链节点与区块链网络建立连接。如图4所示为本发明实施例提供的一种验证方法的整体架构流程图,假设DID解析器从接收到的待验证声明中读取到的颁发者的DID为:did:future:0x8a78cce8e643794bc55ef34bf80976ae521d3396;所声明用户的DID为:did:future:0xd6f4d1215c52ee7e7975ac946a0e094040aa5eeb,那么读取到的颁发者的DID和所声明用户的DID对应的DID方法均为did:future。
图4中的did:future、did:uport、did:domhe和did:btcr表示不同的DID方法,该DID方法可以根据研发需求进行扩展;图4中与did:future对应的FutureDriverLink表示DID方法did:future对应驱动程序;与did:uport对应的Uport Driver Link表示DID方法did:uport对应驱动程序;与did:domhe对应的Dom Driver Link表示DID方法did:domhe对应驱动程序;与did:btcr对应的Btcr Driver Link表示DID方法did:btcr对应驱动程序。
图4所示的驱动层中包含有方法层和节点层,该方法层中包含有每个驱动程序可调用的智能合约(例如,FutureContract、UportContract或者DomContract)或者调用方法(例如,BtcrMethod);节点层中包含有本地部署的多个区块链节点,该区块链节点用于接入区块链网络;其中,图4中的Neteasenode、ETHnode、BTCnode表示不同区块链网络下的区块链节点。方法层中的每一个智能合约或者调用方法都可调用节点层中的至少一个区块链节点,并通过该区块链节点与对应的区块链网络连接。图4中的Neteaseblockchain、ETH、BTC表示不同的区块链网络。
上述可验证声明的验证方法,首先通过预设的DID解析器,从待验证声明中解析出目标DID,并从目标DID中提取出目标DID对应的第一DID方法;进而从预设的DID方法与驱动程序的对应关系中,确定第一DID方法对应的第一驱动程序;然后通过第一驱动程序,从第一区块链网络中读取目标DID的DID文档数据,基于该DID文档数据得到目标DID的DID文档;使用该DID文档中的密码算法和公钥验证待验证声明。该方式通过DID方法与驱动程序的对应关系,可查找到不同DID方法对应的驱动程序,然后通过该驱动程序从包含该DID方法的区块链中读取DID文档数据,来验证可验证声明,从而该方式能够验证使用不同DID方法签发的可验证声明,同时,在当前已经注册的DID方法有几十种的背景下,该方式能带来极大的便利,打破了因使用不同DID方法而无法进行可验证声明的验证的壁垒。
对应于上述方法实施例,本发明实施例还提供了一种可验证声明的验证装置,如图5所示,该装置包括:
DID方法获取模块50,用于获取待验证声明中目标DID对应的第一DID方法。
驱动确定模块51,用于从预设的DID方法与驱动程序的对应关系中,确定第一DID方法对应的第一驱动程序;其中,该第一驱动程序用于:与包含有第一DID方法的第一区块链网络建立连接。
数据读取模块52,用于通过第一驱动程序,从第一区块链网络中读取目标DID的DID文档数据,基于该DID文档数据得到目标DID的DID文档。
声明验证模块53,用于基于上述DID文档验证待验证声明。
上述可验证声明的验证装置,首先获取待验证声明中目标DID对应的第一DID方法;进而从预设的DID方法与驱动程序的对应关系中,确定第一DID方法对应的第一驱动程序;再通过该第一驱动程序,从包含有第一DID方法的第一区块链网络中读取目标DID的DID文档数据,基于该DID文档数据得到目标DID的DID文档;然后基于DID文档验证待验证声明。该方式通过DID方法与驱动程序的对应关系,可查找到不同DID方法对应的驱动程序,然后通过该驱动程序从包含该DID方法的区块链中读取DID文档数据,来验证可验证声明,使得该方式能够验证使用不同DID方法签发的可验证声明,同时,该方式具有较高的通用性。
具体地,上述DID方法与驱动程序的对应关系中包括:多种DID方法以及每种DID方法对应的驱动程序;上述驱动确定模块41,还用于:从DID方法与驱动程序的对应关系中,查找第一DID方法对应的驱动程序,将查找到的驱动程序确定为第一驱动程序。
进一步地,上述DID方法与驱动程序的对应关系中包含有多个驱动程序;每个驱动程序用于:与包含有驱动程序对应的DID方法的区块链网络建立连接;上述数据读取模块52,用于:通过第一驱动程序,从与第一驱动程序连接的第一区块链网络中,读取目标DID的DID文档数据;根据读取到的DID文档数据还原出目标DID的DID文档。
在具体实现时,上述数据读取模块52,还用于:通过第一驱动程序,调用第一DID方法对应的智能合约或者预设调用方法,从第一区块链网络中读取目标DID的DID文档数据。
进一步地,上述声明验证模块53,用于:使用DID文档中的密码算法和公钥验证待验证声明。
在具体实现时,上述DID文档包括用户的DID文档和颁发者的DID文档;上述声明验证模块53,还用于:使用用户的DID文档中的密码算法和公钥验证待验证声明是否属于用户;使用颁发者的DID文档中的密码算法和公钥验证待验证声明是否是伪造的。
进一步地,上述DID方法获取模块50,用于:通过预设的DID解析器,从待验证声明中解析出目标DID;通过该DID解析器,从目标DID中提取出目标DID对应的第一DID方法。
本发明实施例所提供的可验证声明的验证装置,其实现原理及产生的技术效果和前述可验证声明的验证方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本发明实施例还提供了一种电子设备,如图6所示,该电子设备包括处理器101和存储器100,该存储器100存储有能够被处理器101执行的机器可执行指令,该处理器101执行机器可执行指令以实现上述可验证声明的验证方法。
进一步地,图6所示的电子设备还包括总线102和通信接口103,处理器101、通信接口103和存储器100通过总线102连接。
其中,存储器100可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该***网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器100,处理器101读取存储器100中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述可验证声明的验证方法,具体实现可参见方法实施例,在此不再赘述。
本发明实施例所提供的可验证声明的验证方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种可验证声明的验证方法,其特征在于,所述方法包括:
获取待验证声明中目标DID对应的第一DID方法;其中,所述待验证声明的DID中包含有所述目标DID遵循的第一DID方法和所述第一DID方法对应的特定字符串;
从预设的DID方法与驱动程序的对应关系中,确定所述第一DID方法对应的第一驱动程序;其中,所述第一驱动程序用于:与包含有所述第一DID方法的第一区块链网络建立连接;所述驱动程序与所述DID方法一一对应;
通过所述第一驱动程序,从所述第一区块链网络中读取所述目标DID的DID文档数据,基于所述DID文档数据得到所述目标DID的DID文档;
基于所述DID文档验证所述待验证声明。
2.根据权利要求1所述的方法,其特征在于,所述DID方法与驱动程序的对应关系中包括:多种DID方法以及每种DID方法对应的驱动程序;
所述从预设的DID方法与驱动程序的对应关系中,确定所述第一DID方法对应的第一驱动程序的步骤,包括:
从所述DID方法与驱动程序的对应关系中,查找所述第一DID方法对应的驱动程序,将查找到的驱动程序确定为所述第一驱动程序。
3.根据权利要求1所述的方法,其特征在于,所述DID方法与驱动程序的对应关系中包含有多个驱动程序;每个所述驱动程序用于:与包含有所述驱动程序对应的DID方法的区块链网络建立连接;
所述通过所述第一驱动程序,从所述第一区块链网络中读取所述目标DID的DID文档数据,基于所述DID文档数据得到所述目标DID的DID文档的步骤,包括:
通过所述第一驱动程序,从与所述第一驱动程序连接的所述第一区块链网络中,读取所述目标DID的DID文档数据;
根据读取到的所述DID文档数据还原出所述目标DID的DID文档。
4.根据权利要求3所述的方法,其特征在于,所述通过所述第一驱动程序,从与所述第一驱动程序连接的所述第一区块链网络中,读取所述目标DID的DID文档数据的步骤,包括:
通过所述第一驱动程序,调用所述第一DID方法对应的智能合约或者预设调用方法,从所述第一区块链网络中读取所述目标DID的DID文档数据。
5.根据权利要求1所述的方法,其特征在于,所述基于所述DID文档验证所述待验证声明的步骤,包括:
使用所述DID文档中的密码算法和公钥验证所述待验证声明。
6.根据权利要求5所述的方法,其特征在于,所述DID文档包括用户的DID文档和颁发者的DID文档;
所述使用所述DID文档中的密码算法和公钥验证所述待验证声明的步骤,包括:
使用所述用户的DID文档中的密码算法和公钥验证所述待验证声明是否属于所述用户;
使用所述颁发者的DID文档中的密码算法和公钥验证所述待验证声明是否是伪造的。
7.根据权利要求1所述的方法,其特征在于,所述获取待验证声明中目标DID对应的第一DID方法的步骤,包括:
通过预设的DID解析器,从所述待验证声明中解析出所述目标DID;
通过所述DID解析器,从所述目标DID中提取出所述目标DID对应的第一DID方法。
8.一种可验证声明的验证装置,其特征在于,所述装置包括:
DID方法获取模块,用于获取待验证声明中目标DID对应的第一DID方法;其中,所述待验证声明的DID中包含有所述目标DID遵循的第一DID方法和所述第一DID方法对应的特定字符串;
驱动确定模块,用于从预设的DID方法与驱动程序的对应关系中,确定所述第一DID方法对应的第一驱动程序;其中,所述第一驱动程序用于:与包含有所述第一DID方法的第一区块链网络建立连接;所述驱动程序与所述DID方法一一对应;
数据读取模块,用于通过所述第一驱动程序,从所述第一区块链网络中读取所述目标DID的DID文档数据,基于所述DID文档数据得到所述目标DID的DID文档;
声明验证模块,用于基于所述DID文档验证所述待验证声明。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1至7任一项所述的可验证声明的验证方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,所述计算机可执行指令促使所述处理器实现权利要求1至7任一项所述的可验证声明的验证方法。
CN202110658117.9A 2021-06-11 2021-06-11 可验证声明的验证方法、装置和电子设备 Active CN113395281B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110658117.9A CN113395281B (zh) 2021-06-11 2021-06-11 可验证声明的验证方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110658117.9A CN113395281B (zh) 2021-06-11 2021-06-11 可验证声明的验证方法、装置和电子设备

Publications (2)

Publication Number Publication Date
CN113395281A CN113395281A (zh) 2021-09-14
CN113395281B true CN113395281B (zh) 2022-11-01

Family

ID=77620856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110658117.9A Active CN113395281B (zh) 2021-06-11 2021-06-11 可验证声明的验证方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN113395281B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023121536A (ja) * 2022-02-21 2023-08-31 富士通株式会社 検証プログラム、検証方法、および情報処理装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109493082A (zh) * 2018-09-25 2019-03-19 西安纸贵互联网科技有限公司 一种农产品区块链溯源方法及装置
CN111095327A (zh) * 2019-07-02 2020-05-01 阿里巴巴集团控股有限公司 用于验证可验证声明的***和方法
CN111193597A (zh) * 2020-04-10 2020-05-22 支付宝(杭州)信息技术有限公司 一种可验证声明的传输方法、装置、设备及***
CN111190974A (zh) * 2020-04-10 2020-05-22 支付宝(杭州)信息技术有限公司 可验证声明的转发、获取方法、装置及设备
CN111884805A (zh) * 2020-06-24 2020-11-03 易联众信息技术股份有限公司 基于区块链及分布式身份的数据托管方法及***
CN112199714A (zh) * 2020-12-04 2021-01-08 支付宝(杭州)信息技术有限公司 基于区块链的隐私保护方法、装置及电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10903996B2 (en) * 2018-01-22 2021-01-26 Microsoft Technology Licensing, Llc Persona selection using trust scoring
US11245524B2 (en) * 2019-06-18 2022-02-08 Microsoft Technologly Licensing, LLC Binding of decentralized identifiers to verified claims
WO2020257472A1 (en) * 2019-06-18 2020-12-24 Transmute Industries, Inc. Systems and methods for a decentralized data authentication platform
EP3688930B1 (en) * 2019-07-02 2021-10-20 Advanced New Technologies Co., Ltd. System and method for issuing verifiable claims
CN110795501A (zh) * 2019-10-11 2020-02-14 支付宝(杭州)信息技术有限公司 基于区块链的可验证声明的创建方法、装置、设备及***
CN110768968B (zh) * 2019-10-11 2022-08-19 支付宝(杭州)信息技术有限公司 基于可验证声明的授权方法、装置、设备及***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109493082A (zh) * 2018-09-25 2019-03-19 西安纸贵互联网科技有限公司 一种农产品区块链溯源方法及装置
CN111095327A (zh) * 2019-07-02 2020-05-01 阿里巴巴集团控股有限公司 用于验证可验证声明的***和方法
CN111193597A (zh) * 2020-04-10 2020-05-22 支付宝(杭州)信息技术有限公司 一种可验证声明的传输方法、装置、设备及***
CN111190974A (zh) * 2020-04-10 2020-05-22 支付宝(杭州)信息技术有限公司 可验证声明的转发、获取方法、装置及设备
CN111884805A (zh) * 2020-06-24 2020-11-03 易联众信息技术股份有限公司 基于区块链及分布式身份的数据托管方法及***
CN112199714A (zh) * 2020-12-04 2021-01-08 支付宝(杭州)信息技术有限公司 基于区块链的隐私保护方法、装置及电子设备

Also Published As

Publication number Publication date
CN113395281A (zh) 2021-09-14

Similar Documents

Publication Publication Date Title
CN111212095B (zh) 一种身份信息的认证方法、服务器、客户端及***
CN107493273B (zh) 身份认证方法、***及计算机可读存储介质
CN107770182B (zh) 家庭网关的数据存储方法及家庭网关
CN107770159B (zh) 车辆事故数据记录方法及相关装置、可读存储介质
CN111182525B (zh) 一种存储数据的方法和装置
CN111428269B (zh) 数据访问方法、装置和终端设备
CN102271042A (zh) 数字证书认证方法、***、USB Key设备和服务器
CN111669402B (zh) 加密通信方法、装置、设备及存储介质
KR20120053929A (ko) 전자서명키 이중 암호화를 이용한 전자서명 대행 시스템과 웹 저장소에 저장을 특징으로 하는 그 방법
CN111800426A (zh) 应用程序中原生代码接口的访问方法、装置、设备及介质
CN108418679B (zh) 一种多数据中心下处理密钥的方法、装置及电子设备
CN111817859A (zh) 基于零知识证明的数据共享方法、装置、设备及存储介质
CN113395281B (zh) 可验证声明的验证方法、装置和电子设备
CN112671796B (zh) Google Driver云服务的认证获取方法、装置、设备及存储介质
CN114239072A (zh) 区块链节点管理方法及区块链网络
CN112398861B (zh) web组态化***中敏感数据的加密***及方法
CN111148213B (zh) 5g用户终端的注册方法、用户终端设备及介质
CN111132149B (zh) 5g用户终端的注册方法、用户终端设备及介质
CN110830264B (zh) 业务数据验证方法、服务器、客户端及可读存储介质
CN115208669B (zh) 一种基于区块链技术的分布式身份认证方法及***
CN111371555A (zh) 一种签名认证方法及***
CN112865981B (zh) 一种令牌获取、验证方法及装置
US20230006835A1 (en) Cross-blockchain identity and key management
CN114117388A (zh) 设备注册方法、设备注册装置、电子设备以及存储介质
CN110598426B (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