一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

发布可验证成对声明的制作方法

2022-09-15 05:45:35 来源:中国专利 TAG:

发布可验证成对声明


背景技术:

1.目前使用的大多数证明身份的文档或记录是由诸如政府、学校、雇主或其他服务中心或监管组织等中心化组织发布的。这些组织通常在中心化身份管理系统中维护每个成员的身份。中心化身份管理系统是一个用于组织来管理发布的身份、其认证、授权、角色和特权的中心化信息系统。中心化身份管理系统被认为是安全的,因为它们经常使用专业维护的硬件和软件。通常,身份发布组织设置针对组织中注册人员的条款和要求。最后,当一方需要验证另一方的身份时,验证方往往需要通过中心化身份管理系统来获取验证和/或认证其他方身份的信息。
2.去中心化标识符(did)是一种新型的标识符,其独立于任何中心化注册表、身份提供者或证明机构。分布式账本技术(诸如区块链)为使用完全去中心化标识符提供了机会。分布式账本技术使用全球分布式账本以可验证方式记录两方或多方之间的事务。一旦事务被记录,分布式账本的部分中的数据就不能在不更改分布式账本的所有后续部分的情况下追溯地更改,这提供了相当安全的平台。在这样的去中心化环境中,did的每个所有者通常都可以使用他/她的did来控制他/她自己的数据。did所有者经由did管理模块访问存储在与did相关联的个人存储中的数据,该did管理模块是移动应用、个人计算机、浏览器等。
3.本文中要求保护的主题不限于解决任何缺点或仅在诸如上述环境的环境中操作的实施例。相反,提供该背景仅是为了说明在其中实践本文中描述的一些实施例的一个示例性技术领域。


技术实现要素:

4.提供本“发明内容”是为了以简化形式介绍概念的选择,这将在下面的详细描述中进一步描述。本“发明内容”并非旨在确定所要求保护的主题的关键特征或基本特征,也不旨在用作确定所要求保护的主题的范围的帮助。
5.如参考图6和图7更详细解释的,声明是关于主题的陈述。成对声明是只能由一个或多个特定验证者访问的声明。如参考图7所解释的,可验证成对声明将附加信息添加到成对声明702以使得验证者能够信任成对声明。
6.现有技术允许用户生成多个成对did,每个成对did被用户用来与另一方通信。成对did机制可以保护用户的隐私,因为每个did仅用于与另一实体进行通信。因此,用户身份的隐私得以保留,因为只有另一方从did获取用户身份。但是,当用户第一次与新实体通信时,需要生成新的did。随着时间的推移,会生成越来越多的did,并且为每个用户管理多个did是很繁重的。此外,通常允许将现有可验证声明(使用用户密钥加密的关于主题的陈述)呈现给多个验证实体。呈现相同可验证声明的验证实体的数目越多,用户隐私暴露的风险就越高,因为用于加密可验证声明的用户密钥更有可能被破坏。
7.本文中描述的原理旨在通过允许用户使用同一did与多个其他方进行通信,但向其他方呈现成对可验证声明来解决上述问题中的至少一些问题。由于每个成对可验证声明仅呈现给另一方,因此保护了用户的隐私。同时,用户可以重复使用同一did与多个其他方
通信,而无需为每一其他方生成新的did。这样,管理大量did的负担就减轻了。
8.本文中公开的实施例涉及发布可验证成对声明,该声明与主题实体相关联并且由一个或多个预定的验证实体可验证。如参考图6和图7更详细解释的,声明是关于主题的陈述。成对声明是只能由一个或多个特定验证者访问的声明。如参考图7所解释的,可验证成对声明将附加信息添加到成对声明702以使得验证者能够信任成对声明。主题实体与第一标识符相关联。实施例在声明发布者的计算系统(以下也称为“声明发布者”)中实现。首先,声明发布者接收发布与主题实体相关联并且由一个或多个预定的验证实体可验证的可验证声明的请求。该请求至少包括使用特定类型的密码学的加密部分。然后,声明发布者基于使用特定类型的密码学解密加密部分来验证主题实体与可验证声明的主题相关联。响应于验证主题实体与可验证声明的主题相关联,声明发布者的计算系统被配置为发布可验证声明以仅由预定的一个或多个实体或定义的实体列表可验证。
9.在一些实施例中,施加用于访问可验证声明的条件。当请求实体请求访问可验证声明时,声明发布者确定条件是否被满足。声明发布者向主题实体通知条件是否被满足的确定。响应于确定条件被满足,声明发布者向主题实体发送可验证声明,并且使得主题实体将可验证声明传递给请求实体。备选地,声明发布者直接向请求实体发送可验证声明。
10.该条件包括验证请求实体的身份是预定的一个或多个验证实体中的一个验证实体。一个或多个验证实体中的至少一个验证实体与去中心化标识符(did)相关联。请求实体的身份的验证包括验证请求实体是did的持有者。
11.备选地或另外地,条件包括接收一定量的数字资产。数字资产包括可验证数字资产。可验证数字资产被广义地定义为具有值和/或只能经由计算机网络消费有限次数的对象。
12.备选地或另外地,条件包括可验证声明被允许被访问的预定次数。该条件还包括允许可验证声明被访问的到期时间。
13.当要验证可验证声明时允许施加条件是有利的。现有的去中心化标识符被用户和声明发布者用来控制声明的发布。然而,一旦声明被发布,用户和/或声明发布者就无法控制对声明的访问。对本文中描述的可验证声明的访问的施加条件允许可验证声明的所有者(或主题)和声明发布者在声明发布之后进一步控制可验证声明的访问。
14.此外,在一些实施例中,可验证声明由一个或多个密钥加密以允许可验证声明经由计算机网络安全地传输。在一些实施例中,一个或多个密钥包括一个或多个验证实体的公钥,使得加密的可验证声明只能由一个或多个验证实体的私钥解密。备选地或另外地,一个或多个密钥包括主题实体的密钥,使得加密的可验证声明只有在主题实体的许可下才能被解密。备选地或另外地,一个或多个密钥包括声明发布者的密钥。
15.在一些实施例中,声明发布者向主题实体发送加密的可验证声明,并且使得主题实体将可验证声明传递给验证实体。备选地,声明发布者直接向一个或多个验证实体中的至少一个验证实体发送加密的可验证声明,并且使得验证实体在访问所接收的加密的可验证声明之前向主题实体请求许可。
16.在一些实施例中,当声明发布者从请求实体接收到访问加密的可验证声明的请求时,声明发布者确定条件是否被满足。响应于确定条件被满足,声明发布者使得请求实体接收一个或多个密钥。一个或多个密钥中的至少一个密钥被发送给主题实体,并且使得主题
实体解密加密的可验证声明,并且向请求实体发送解密的可验证声明,或者使得主题实体将至少一个密钥传递给请求实体。备选地,直接向请求实体发送至少一个密钥。
17.在一些实施例中,施加用于发布可验证声明的条件。当用于发布可验证声明的请求被接收到时,声明发布者确定条件是否被满足。用于发布可验证声明的条件包括验证发布可验证声明的请求是由主题实体生成的。主题实体与去中心化标识符(did)相关联。验证发布可验证声明的请求是由主题实体生成的,包括验证请求实体是did的持有者。
18.响应于验证用于发布可验证声明的请求是由主题实体生成的,声明发布者然后生成所请求的可验证声明,并且使得可验证声明被存储在与did相关联的身份中心。身份中心是did的持有者控制下的属性的存储,包括密钥和元数据。然后,身份中心被使得向一个或多个验证实体中的至少一个验证实体发送可验证声明。
19.在一些实施例中,发布可验证声明的请求不一定由主题实体生成。例如,发布可验证声明的请求由验证实体生成。在这种情况下,声明发布者可以施加条件,该条件要求主题实体给予发布所请求的可验证声明的许可。
20.此外,在一些实施例中,用于发布可验证声明的条件还包括接收一定量的数字资产。与用于访问可验证声明的条件类似,该一定量的数字资产是经由匿名数字资产产生的,包括但不限于经由分布式账本控制的加密货币。数字资产可以是任何可验证数字资产。
21.附加特征和优点将在随后的描述中阐明,并且部分地从描述中很清楚,或者通过本文中的教导的实践而获知。本发明的特征和优点通过所附权利要求中特别指出的工具和组合来实现和获取。本发明的特征将通过以下描述和所附权利要求变得更加明显,或者通过下文阐述的本发明的实践而获知。
附图说明
22.为了描述能够获取上述和其他优点和特征的方式,将通过参考附图中所示的具体实施例来对上文简要描述的主题进行更具体的描述。理解这些附图仅描绘了典型实施例并且因此不应当被视为限制范围,将通过使用附图以附加的具体性和细节来描述和解释实施例,在附图中:
23.图1示出了在其中采用本文中描述的原理的示例计算系统;
24.图2示出了用于创建去中心化标识或标识符(did)的示例环境;
25.图3示出了用于各种did管理操作和服务的示例环境;
26.图4示出了示例去中心化个人存储或身份中心;
27.图5示出了在其中实现本文中描述的原理的示例环境;
28.图6示出了示例成对声明;
29.图7示出了示例可验证成对声明;
30.图8示出了示例可验证成对呈现;
31.图9a-图9c示出了在声明发布者、与did相关联的did管理模块、验证者、分布式账本与身份中心之间发生的示例通信模式;
32.图10示出了用于发布可验证成对声明的示例方法的流程图;
33.图11示出了用于发布可验证声明的示例方法的流程图,该可验证声明被构造为仅由第二实体可验证;以及
34.图12示出了用于施加用于访问可验证成对声明的条件的示例方法的流程图。
具体实施方式
35.本文中公开的实施例涉及发布与主题实体相关联并且由一个或多个预定的验证实体可验证的可验证成对声明。主题实体与第一标识符相关联。实施例在声明发布者的计算系统(以下也称为“声明发布者”)中实现。首先,声明发布者接收发布与主题实体相关联并且由一个或多个预定的验证实体可验证的可验证声明的请求。该请求至少包括使用特定类型的密码学的加密部分。然后,声明发布者基于使用特定类型的密码学(例如,私钥对和公钥对)解密加密部分来验证主题实体与可验证声明的主题相关联。散列或令牌也可以用于验证请求实体。响应于验证主题实体与可验证声明的主题相关联,声明发布者的计算系统被配置为发布可验证声明以仅由预定的一个或多个实体或定义的实体列表验证。
36.在一些实施例中,施加用于访问可验证声明的条件。当请求实体请求访问可验证声明时,声明发布者确定条件是否被满足。声明发布者向主题实体通知条件是否被满足的确定。响应于确定条件被满足,声明发布者向主题实体发送可验证声明,并且使得主题实体将可验证声明传递给请求实体。备选地,声明发布者直接向请求实体发送可验证声明。
37.该条件包括验证请求实体的身份是预定的一个或多个验证实体中的一个验证实体。一个或多个验证实体中的至少一个验证实体与去中心化标识符(did)相关联。请求实体的身份的验证包括验证请求实体是did的持有者。
38.备选地或另外地,条件包括接收一定量的数字资产。数字资产包括可验证数字资产。可验证数字资产被广义地定义为具有值和/或只能被消费有限次数的对象。数字资产由任何实体产生,或被要求由一个或多个特定实体产生,诸如主题实体和/或一个或多个验证实体。
39.备选地或另外地,条件包括可验证声明被允许被访问的预定次数。该条件还包括允许可验证声明被访问的到期时间。
40.此外,可验证声明由一个或多个密钥加密。在一些实施例中,一个或多个密钥包括一个或多个验证实体的公钥,使得加密的可验证声明只能由一个或多个验证实体的私钥解密。备选地或另外地,一个或多个密钥包括主题实体的密钥,使得加密的可验证声明只有在主题实体的许可下才能被解密。备选地或另外地,一个或多个密钥包括声明发布者的密钥。
41.声明发布者向主题实体发送加密的可验证声明,并且使得主题实体将可验证声明传递给验证实体。备选地,声明发布者直接向一个或多个验证实体中的至少一个验证实体发送加密的可验证声明,并且使得验证实体在访问所接收的加密可验证声明之前向主题实体请求许可。
42.在一些实施例中,当声明发布者从请求实体接收到访问加密的可验证声明的请求时,声明发布者确定条件是否被满足。响应于确定条件被满足,声明发布者使得请求实体接收一个或多个密钥。一个或多个密钥中的至少一个密钥被发送给主题实体,并且使得主题实体解密加密的可验证声明,并且向请求实体发送解密的可验证声明,或者使得主题实体将至少一个密钥传递给请求实体。备选地,直接向请求实体发送至少一个密钥。
43.在一些实施例中,施加用于发布可验证声明的条件。当用于发布可验证声明的请求被接收到时,声明发布者确定条件是否被满足。用于发布可验证声明的条件包括验证发
布可验证声明的请求是由主题实体生成的。主题实体与去中心化标识符(did)相关联。验证发布可验证声明的请求是由主题实体生成的,包括验证请求实体是did的持有者。
44.响应于验证发布可验证声明的请求是由主题实体生成的,声明发布者然后生成所请求的可验证声明,并且使得可验证声明被存储在与did相关联的身份中心。身份中心是did的持有者控制下的属性的存储,包括密钥和元数据。然后,身份中心被使得向一个或多个验证实体中的至少一个验证实体发送可验证声明。
45.在一些实施例中,发布可验证声明的请求不一定由主题实体生成。例如,发布可验证声明的请求由验证实体生成。在这种情况下,声明发布者施加条件,即,主题实体给予发布所请求的可验证声明的许可。
46.此外,在一些实施例中,用于发布可验证声明的条件还包括接收一定量的数字资产。与用于访问可验证声明的条件类似,该一定量的数字资产是经由匿名数字资产产生的,包括但不限于经由分布式账本控制的加密货币。数字资产也是任何可验证数字资产。数字资产由任何实体产生,或被要求由一个或多个特定实体产生,诸如主题实体和/或一个或多个验证实体。
47.因为本文中描述的原理是在计算系统的上下文中执行的,所以将结合图1描述计算系统的一些介绍性讨论。然后,这个描述将返回到结合剩余附图的did平台的原理。
48.计算系统现在越来越多地采用多种形式。例如,计算系统可以是手持设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统、数据中心、或甚至传统上不被认为是计算系统的设备,诸如可穿戴设备(例如,眼镜)。在本说明书和权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),其包括至少一个物理和有形处理器、以及能够在其上具有由处理器执行的计算机可执行指令的物理和有形存储器。存储器采用任何形式,并且取决于计算系统的性质和形式。计算系统分布在网络环境之上并且包括多个组成计算系统。
49.如图1所示,在其最基本的配置中,计算系统100通常包括至少一个硬件处理单元102和存储器104。处理单元102包括通用处理器并且还包括现场可编程门阵列(fpga)、专用集成电路(asic)或任何其他专用电路。存储器104是物理系统存储器,它是易失性、非易失性或这两者的某种组合。术语“存储器”在本文中也用于指代非易失性大容量存储器,诸如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储能力也是分布式的。
50.计算系统100在其上还具有通常被称为“可执行组件”的多个结构。例如,计算系统100的存储器104被示出为包括可执行组件106。术语“可执行组件”是结构的名称,该结构被计算领域的本领域普通技术人员很好地理解为可以是软件、硬件或其组合的结构。例如,当以软件实现时,本领域普通技术人员将理解,可执行组件的结构包括在计算系统上执行的软件对象、例程、方法等,而不管这样的可执行组件是否存在于计算系统的堆中,或者可执行组件是否存在于计算机可读存储介质上。
51.在这种情况下,本领域普通技术人员将认识到,可执行组件的结构存在于计算机可读介质上,使得在由计算系统的一个或多个处理器(例如,由处理器线程)解释时,使得计算系统执行功能。这样的结构是处理器直接在计算机上可读取的(就像如果可执行组件是二进制文件的情况一样)。备选地,该结构被构造为可解释和/或编译(无论是在单个阶段还是在多个阶段中),以便生成处理器直接可解释的这样的二进制文件。当使用术语“可执行
组件”时,对可执行组件的示例结构的这种理解完全在计算领域的普通技术人员的理解范围内。
52.术语“可执行组件”也被普通技术人员很好地理解为包括诸如硬编码或硬连线逻辑门等结构,其以硬件(诸如在现场可编程门阵列(fpga)、专用集成电路(asic)或任何其他专用电路内)排他性地或接近排他性地实现。因此,术语“可执行组件”是计算领域的普通技术人员很好地理解的结构的术语,无论以软件、硬件或组合实现。在本说明书中,还使用术语“组件”、“代理”、“管理器”、“服务”、“引擎”、“模块”、“虚拟机”等。如在本说明书和案例中使用的,这些术语(无论是否带有修改条款)也旨在与术语“可执行组件”同义,并且因此也具有计算领域的普通技术人员很好地理解的结构。
53.在下面的描述中,参考由一个或多个计算系统执行的动作来描述实施例。如果这样的动作以软件实现,则(执行该动作的相关计算系统的)一个或多个处理器响应于已执行构成可执行组件的计算机可执行指令而指导计算系统的操作。例如,这样的计算机可执行指令体现在形成计算机程序产品的一个或多个计算机可读介质上。这样的操作的一个示例涉及数据的操纵。如果这样的动作以硬件(诸如在fpga或asic内)排他性地或接近排他性地实现,则计算机可执行指令是硬编码或硬连线逻辑门。计算机可执行指令(和被操纵的数据)存储在计算系统100的存储器104中。计算系统100还包含允许计算系统100通过例如网络110与其他计算系统通信的通信信道108。
54.虽然并非所有计算系统都需要用户界面,但在一些实施例中,计算系统100包括用于与用户交互的用户界面系统112。用户界面系统112包括输出机制112a以及输入机制112b。本文中描述的原理不限于精确的输出机制112a或输入机制112b,因为这样的情况将取决于设备的性质。然而,输出机制112a可以包括例如扬声器、显示器、触觉输出、全息图等。输入机制112b的示例可以包括例如麦克风、触摸屏、全息图、相机、键盘、鼠标或其他指示器输入、任何类型的传感器等。
55.本文中描述的实施例包括或利用包括计算机硬件的专用或通用计算系统,例如一个或多个处理器和系统存储器,如下面更详细讨论的。本文中描述的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是由通用或专用计算系统可以访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本发明的实施例可以包括至少两种截然不同的计算机可读介质:存储介质和传输介质。
56.计算机可读存储介质包括ram、rom、eeprom、cd-rom或其他光盘存储、磁盘存储或其他磁存储设备、或者可以用于以计算机可执行指令或数据结构的形式存储期望的程序代码并且可以由通用或专用计算系统访问的任何其他物理和有形存储介质。
[0057]“网络”被定义为能够在计算系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算系统时,计算系统适当地将连接视为传输介质。传输介质可以包括可以用于以计算机可执行指令或数据结构的形式携带期望的程序代码装置并且可以由通用或专用计算系统访问的网络和/或数据链路。上述各项的组合也应当被包括在计算机可读介质的范围内。
[0058]
此外,在到达各种计算系统组件时,计算机可执行指令或数据结构形式的程序代码装置可以自动地从传输介质传输到存储介质(或反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以缓存在网络接口模块(例如,“nic”)内的ram中,并且然后最终传输到计算系统ram和/或计算系统处的不易失性存储介质。因此,应当理解,存储介质可以被包括在也(或甚至主要)利用传输介质的计算系统组件中。
[0059]
例如,计算机可执行指令包括当在处理器处执行时使得通用计算系统、专用计算系统或专用处理设备执行特定功能或功能组的指令和数据。备选地或另外地,计算机可执行指令将计算系统配置为执行特定功能或功能组。例如,计算机可执行指令是二进制文件或甚至在由处理器直接执行之前经过一些转换(例如,编译)的指令,例如诸如汇编语言等中间格式指令,甚至源代码。
[0060]
尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,在所附权利要求中定义的主题不一定限于上述描述的特征或动作。相反,所描述的特征和动作被公开作为实现权利要求的示例形式。
[0061]
本领域技术人员将理解,本发明在具有多种类型的计算系统配置的网络计算环境中实践,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器或可编程的消费电子产品、网络pc、小型计算机、大型计算机、移动电话、pda、寻呼机、路由器、交换机、数据中心、可穿戴设备(诸如眼镜)等。在一些情况下,本发明还可以在分布式系统环境中实践,其中通过网络(通过硬连线数据链路、无线数据链路或通过硬连线和无线数据链路的组合)链接的本地和远程计算系统都执行任务。在分布式系统环境中,程序模块位于本地和远程存储器存储设备中。
[0062]
本领域技术人员还将理解,本发明在云计算环境中实践。云计算环境是分布式的,但这不是必需的。当是分布式时,云计算环境在一个组织内国际分布和/或具有跨多个组织而拥有的组件。在本说明书和所附权利要求书中,“云计算”被定义为用于启用对可配置计算资源(例如,网络、服务器、存储装置、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于在正确部署时可以从这样的模型中获取的其他众多优势中的任何一个。
[0063]
其余附图可以讨论对应于先前描述的计算系统100的各种计算系统。其余附图的计算系统包括实现本文中公开的各种实施例的各种组件或功能块,如将解释的。各种组件或功能块在本地计算系统上实现,或者在分布式计算系统上实现,该分布式计算系统包括驻留在云中的元件或实现云计算的方面。各种组件或功能块实现为软件、硬件或软件和硬件的组合。其余图中的计算系统包括比图中所示的组件更多或更少的组件,并且某些组件根据情况进行组合。尽管未必示出,但是计算系统的各种组件根据需要访问和/或利用处理器和存储器,诸如处理器102和存储器104,以执行它们的各种功能。
[0064]
将不针对图2给出关于去中心化标识(did)及其创建和驻留的环境的一些介绍性讨论。如图2所示,did所有者201拥有或控制did 205,该did 205表示did所有者201的身份。did所有者201使用创建和注册服务来注册did,这将在下面更详细地解释。
[0065]
did所有者201是可以从did中受益的任何实体。例如,did所有者201是人或人的组织。这样的组织可能包括公司、部门、政府、机构、或任何其他组织或组织组。每个个人都可以具有did,而每个人所属的(多个)组织也可以具有did。
[0066]
did所有者201备选地是机器、系统或设备、或者(多个)机器、(多个)设备和/或(多个)系统的集合。在其他实施例中,did所有者201是机器、系统或设备的子部分。例如,设备可以是印刷电路板,其中该电路板的子部分是电路板的个体组件。在这样的实施例中,机器或设备具有did并且每个子部分也具有did。did所有者也可以是软件组件,诸如上面关于图1描述的可执行组件106。复杂的可执行组件106的示例可以是人工智能。人工智能也拥有did。
[0067]
因此,did所有者201是能够创建did 205或至少具有为其创建并且与其相关联的did 205的任何合理实体、人类或非人类。尽管did所有者201被示出为具有单个did 205,但这不一定是这种情况,因为情况允许时存在与did所有者201相关联的任何数目的did。
[0068]
如上所述,did所有者201创建并且注册did 205。did 205是与did所有者201相关联的任何标识符。优选地,该标识符对于该did所有者201是唯一的,至少在did预期将被使用的范围内。作为示例,标识符是本地唯一标识符,并且对于预期在全球范围内操作的身份系统而言,可能更希望是全球唯一标识符。在一些实施例中,did205是统一资源标识符(uri)(诸如统一资源定位符(url))或将did所有者201与参与与did所有者201的可信任交互的机制相关联的其他指针。
[0069]
did 205是“去中心化的”,因为它不需要中心化的第三方管理系统来生成、管理或使用。因此,did 205仍处于did所有者201的控制下。这不同于基于中心化机构的信任的传统中心化id,并且中心化机构仍处于公司目录服务、凭证机构、域名注册机构或其他中心化机构的控制下(本文中统称为“中心化机构”)。因此,did 205是在did所有者201的控制下并且独立于任何中心化机构的任何标识符。
[0070]
在一些实施例中,did 205的结构与用户名或某种其他人类可理解术语一样简单。然而,在其他实施例中,did 205优选地是数字和字母的随机串以用于增加安全性。在一个实施例中,did 205是一串128个字母和数字。因此,本文中公开的实施例不依赖于did 205的任何具体实现。在一个非常简单的示例中,did 205被示出为“123abc”。
[0071]
同样,如图2所示,did所有者201对与did 20相关联的私钥206和公钥207对具有控制权。因为did 205独立于任何中心化机构,所以私钥206应当在任何时候都完全在did所有者201的控制下。也就是说,私钥和公钥应当以去中心化方式生成,以确保它们仍然在did所有者201的控制下。
[0072]
如以下将更详细描述的,私钥206和公钥207对是在由did所有者201控制的设备上生成的。私钥206和公钥207对不应当在由任何中心化机构控制的服务器上生成,因为这使得私钥206和公钥207对不会始终完全在did所有者201的控制下。尽管图2和本说明书描述了私钥对和公钥对,但也应当注意,也可以根据情况允许使用其他类型的合理密码信息和/或机制。
[0073]
图2还示出了与did 205相关联的did文档210。如下面将更详细解释的,did文档210是在创建did 205时生成的。在其最简单的形式中,did文档210描述了如何使用did 205。因此,did文档210包括对did 205的参考,did 205是由did文档210描述的did。在一些实施例中,did文档210是根据由分布式账本220指定的方法实现的,分布式账本220将用于存储did 205的表示,这将在下面更详细地解释。因此,did文档210根据具体的分布式账本具有不同的方法。
[0074]
did文档210还包括由did所有者201创建的公钥207或某种其他等效密码信息。公钥207被did所有者201授予许可的第三方实体使用,以访问did所有者201拥有的信息和数据。公钥207也可以通过验证did所有者201事实上拥有或控制did 205来使用。
[0075]
did文档210还包括认证信息211。认证信息211指定一种或多种机制,通过该机制,did所有者201能够证明did所有者201拥有did 205。换言之,机制信息211的认证示出了did 205(以及因此其did所有者201)与did文档210之间的绑定的证明。在一个实施例中,认证信息211指定公钥207用于签名操作以证明did 205的所有权。备选地或另外地,认证信息211指定公钥207用于生物识别操作以证明did 205的所有权。因此,认证信息211包括任何数目的机制,通过该机制,did所有者201能够证明did所有者201拥有did205。
[0076]
did文档210还包括授权信息212。授权信息212允许did所有者201授权第三方实体修改did文档210或文档的某些部分的权利,而不赋予第三方证明did 205的所有权的权利。例如,授权信息212允许第三方使用任何指定的更新机制来更新did文档210中的一个或多个字段的任何指定集合。备选地,授权信息允许第三方将did所有者201对did 205的使用限制在指定的时间段内。这在did所有者201是未成年孩子并且第三方是孩子的父母或监护人时很有用。授权信息212允许父母或监护人限制did 201的使用,直到孩子不再是未成年人为止。
[0077]
授权信息212还指定第三方将需要遵循以证明他们被授权修改did文档210的一个或多个机制。在一些实施例中,该机制类似于先前关于认证信息211所讨论的那些机制。
[0078]
did文档210还包括一个或多个服务端点213。服务端点包括服务代表did所有者201进行操作的网络地址。特定服务的示例包括发现服务、社交网络、文件存储服务(诸如身份服务器或中心)、以及可验证声明存储库服务。因此,服务端点213用作代表did所有者201进行操作的服务的指针。这些指针被did所有者201或第三方实体用来访问代表did所有者201进行操作的服务。下面将更详细地解释服务端点213的具体示例。
[0079]
id文档210还包括身份信息214。身份信息214包括个人可标识信息,诸如did所有者201的姓名、地址、职业、家庭成员、年龄、爱好、兴趣等。因此,did文档210中列出的身份信息214表示did所有者201用于不同目的的不同角色。例如,角色是伪匿名的,例如,did所有者201在将他或她标识为在博客上发表文章的作者时在did文档中包括笔名;角色是完全匿名的,例如,did所有者201只想公开他或她的职位或其他背景数据(例如,学校教师、联邦调查局特工、21岁以上的成年人等),但不想公开他或她在did文档中的姓名;并且角色特定于作为个人的did所有者201,例如,did所有者201包括将他或她标识为特定慈善组织的志愿者、特定公司的雇员、特定奖项的获奖者等的信息。
[0080]
did文档210还包括凭证信息215,凭证信息215在本文中也被称为证明。凭证信息215是与did所有者201的背景相关联的任何信息。例如,凭证信息215是(但不限于)资格、成就、政府id、政府权利(诸如护照或驾驶执照)、数字资产提供者或银行账户、大学学位或其他教育历史、就业状况和历史、或有关did所有者201的背景的任何其他信息。
[0081]
did文档210还包括各种其他信息216。在一些实施例中,其他信息216包括指定did文档210何时被创建和/或何时被最后修改的元数据。在其他实施例中,其他信息216包括did文档210的完整性的密码证明。在其他实施例中,其他信息216包括由实现did文档的特定方法指定或由did所有者201期望的附加信息。
[0082]
图2还示出了分布式账本或区块链220。分布式账本220是任何去中心化的分布式网络,包括彼此通信的各种计算系统。例如,分布式账本220包括第一分布式计算系统230、第二分布式计算系统240、第三分布式计算系统250、以及如由省略号260所示的任何数目的附加分布式计算系统。分布式账本或区块链220根据分布式账本的任何已知标准或方法操作。与分布式账本或区块链220相对应的传统分布式账本的示例包括但不限于比特币[btc]、以太坊和莱特币。
[0083]
在did 205的上下文中,分布式账本或区块链220用于存储指向did文档210的did 205的表示。在一些实施例中,did文档210存储在实际分布式账本上。备选地,在其他实施例中,did文档210存储在与分布式账本或区块链220相关联的数据存储(未示出)中。
[0084]
如上所述,did 205的表示存储在分布式账本或区块链220的每个分布式计算系统上。例如,在图2中,这示出为did散列231、did散列241和did散列251在理想情况下是同一did的相同副本。did散列231、did散列241和did散列251因此指向did文档210的位置。分布式账本或区块链220还存储其他did的很多其他表示,如附图标记232、233、234、242、243、244、252、253和254所示。
[0085]
在一个实施例中,当did用户201创建did 205和相关联的did文档210时,did散列231、did散列241和did散列251被写入分布式账本或区块链220。分布式账本或区块链220因此记录did 205现在存在。由于分布式账本或区块链220是去中心化的,did 205不受did所有者201之外的任何其他实体的控制。除了指向did文档210的指针,did散列231、did散列241和did散列251包括指定did 205何时创建的记录或时间戳。在以后对did文档210进行修改时,这也记录在did散列231、did散列241和did散列251中。did散列231、did散列241和did散列251还包括公钥207的副本使得did 205加密绑定到did文档210。
[0086]
已经参考图2描述了did以及它们一般如何操作,现在将解释did的特定实施例。转向图3,现在将解释用于执行各种did生命周期管理操作和服务的环境300。应当理解,为了便于解释,图3的环境根据需要参考来自图2的元素。
[0087]
如图3所示,环境300包括did所有者21拥有或以其他方式在其控制下的各种设备和计算系统。这些包括用户设备301。在一些情况下,用户设备301是诸如智能手机等移动设备、诸如膝上型计算机等计算设备、或诸如汽车或具有计算能力的电器等任何设备。设备301包括在设备上操作的网络浏览器302和操作该设备的操作系统303。更广泛地说,虚线304表示所有这些设备都由did所有者201拥有或以其他方式在其控制下。
[0088]
环境300还包括did生命周期管理模块320。有时,did生命周期管理模块320也被称为钱包(wallet)或代理。应当注意,在操作中,did生命周期管理模块320驻留在用户设备301、网络浏览器302和操作系统303中的一个或多个上并且由其执行,如线301a、302a和303a所示。因此,为了便于说明,did生命周期管理模块320被示出为是分开的。
[0089]
如图3所示,did生命周期管理模块320包括did创建模块330。did创建模块330由did所有者201使用以创建did 205或任何数目的附加did,诸如did 331。在一个实施例中,did创建模块包括或以其他方式访问引导did所有者201创建did 205的用户界面(ui)元素335。did创建模块330具有一个或多个驱动程序,该驱动程序被配置为与诸如分布式账本220等特定分布式账本一起工作,使得did 205符合该分布式账本的底层方法。
[0090]
现在将描述具体实施例。例如,ui 335通过用于用户输入用户名或某种其他人类
可识别名称的提示。该名称用作将生成的did 205的显示名称。如前所述,did 205是一长串随机数字和字母,并且因此具有用于显示名称的人类可设备名称是有利的。did创建模块330然后生成did 205。在具有ui 335的实施例中,did 205示出在身份列表中并且与人类可设备名称相关联。
[0091]
did创建模块还包括密钥生成模块350。密钥生成模块生成先前描述的私钥206对和公钥207对。did创建模块330然后使用did 205以及私钥对和公钥对来生成did文档210。
[0092]
在操作中,did创建模块330访问注册器310,该注册器310被配置为将记录与did 205相关的事务的特定分布式账本。did创建模块330使用注册器310来以前述方式将did散列231、did散列241和did散列251记录在分布式账本中并且以前述方式存储did文档210。这个过程使用散列生成中的公钥207。
[0093]
在一些实施例中,did生命周期管理模块320包括所有权模块340。所有权模块340提供确保did所有者201知道did所有者201单独控制did 205的机制。以这种方式,did生命周期管理模块320的提供者能够确保提供者不控制did 205,而只是提供管理服务。
[0094]
如前所述,密钥生成模块350生成私钥206对和公钥207对,然后,公钥207被记录在did文档210中。因此,公钥207由与did所有者201和希望向did所有者201提供服务的所有第三方相关联的所有设备使用。因此,当did所有者201希望将新设备与did 205相关联时,did所有者201在新设备上执行did创建模块330。did创建模块330然后使用注册器310来更新did文档210以反映新设备现在与did 205相关联,并且这将反映在分布式账本220上的已更新事务中,如前所述。
[0095]
然而,在一些实施例中,有利的是,针对每个设备301都有一个由did所有者201拥有的公钥,因为这允许did所有者201用特定设备公钥签名而不必访问通用公钥。换言之,由于did所有者201将在不同时间使用不同设备(例如,在一个时刻使用移动电话,然后在另一时刻使用膝上型计算机),具有与每个设备相关联的密钥以在使用密钥签名时提供效率是有利的。因此,在这样的实施例中,当附加设备执行did创建模块330时,密钥生成模块生成附加公钥208和209。这些附加公钥与私钥206相关联,或者在某些情况下与新私钥配对。
[0096]
在附加公钥208和209与不同设备相关联的那些实施例中,附加公钥208和209在did文档210中被记录为与那些设备相关联。这在图3中示出。应当理解,除了图3中所示的信息之外,did文档210还包括先前关于图2描述的信息。如果did文档210在设备特定公钥生成之前存在,则did文档210将由创建模块330经由注册器310更新,并且这将反映在分布式账本220上的已更新事务中。
[0097]
在一些实施例中,did所有者201可以将设备与公钥或甚至与did 205的关联保密。因此,did创建模块330使得这样的数据被秘密地示出在did文档210中。
[0098]
如迄今为止所描述的,did 205已经与在did所有者201控制下的所有设备相关联,即使当设备具有它们自己的公钥时也是如此。然而,在一些实施例中,对于在did所有者201的控制下的每个设备或设备的某个子集来说,每个具有它们自己的did是有用的。因此,在一些实施例中,did创建模块330为每个设备生成附加did,例如did 331。然后,创建模块将为每个设备生成私钥和公钥对以及did文档,并且以前述方式将它们记录在分布式账本220上。这样的实施例对于改变所有权的设备是有利的,因为可以通过在did文档中授予新的所有者授权权限并且从旧的所有者撤销这样的权限来将特定设备did与设备的新所有者相关
联。
[0099]
如所提到的,为了确保私钥完全在did所有者201的控制下,在由执行did管理模块320的did所有者201拥有或控制的用户设备301、浏览器302或操作系统303上创建私钥。以这种方式,第三方获取对私钥206的控制权的可能性很小,尤其是did生命周期管理模块320的提供者。然而,存储私钥206的设备可能会被did所有者201丢失,这导致did所有者201失去对did 205的访问。因此,在一些实施例中,ui 335包括允许did所有者201将私钥206导出到在did所有者201控制下的关闭设备安全数据库305的选项。在一些实施例中,私钥206存储为由did所有者201扫描的qr码。
[0100]
在其他实施例中,did生命周期管理模块320包括用于恢复丢失的私钥206的恢复模块360。在操作中,恢复模块360允许did所有者201在创建did 205的时间选择一个或多个恢复机制365,恢复机制365稍后用于恢复丢失的私钥。在具有ui 335的那些实施例中,ui 335允许did所有者201提供当恢复机制被实现时一个或多个恢复机制365将需要的所需信息。然后恢复模块在与did 205相关联的任何设备上运行。
[0101]
did生命周期管理模块320还包括用于从did 205撤销或切断设备的撤销模块370。在操作中,撤销模块使用ui元素335,ui元素335允许did所有者201指示希望移除设备以使其不与did 205相关联。在一个实施例中,撤销模块访问did文档210并且使得对设备的所有引用从did文档中被移除。备选地,设备的公钥被移除。did文档210中的这种变化然后被反映为分布式账本220上的已更新事务,如前所述。
[0102]
图4示出了在其中使用诸如did 205等did的环境400的实施例。具体地,环境400将用于描述与一个或多个去中心化个人存储或身份中心相关的did 205的使用。身份中心是属性的存储,包括在did的持有者控制下的密钥和元数据。应当注意,图4包括对首先关于图2或图3讨论并且因此为了便于解释而使用相同附图标记的元素的引用。
[0103]
在一个实施例中,身份中心410是同一身份中心的多个实例。这由线410a表示。因此,各种身份中心410包括相同的数据和服务中的至少一些。因此,如果对身份中心410中的一个进行任何改变,则该改变反映在剩余的身份中心中。例如,第一身份中心411和第二身份中心412在云存储中实现,并且因此能够保存大量数据。因此,一整套数据存储在这些身份中心中。然而,身份中心412和413具有较少的存储器空间。因此,在这些身份中心中,包括存储在第一身份中心和第二身份中心中的数据的描述符。备选地,包括对其他身份中心中的数据所做的改变的记录。因此,身份中心410中的一个中的改变或者在其他身份中心中被完全复制,或者该数据的至少记录或描述符被记录在其他身份中心中。
[0104]
因为身份中心是同一身份中心的多个实例,所以将仅提供第一身份中心411的完整描述,因为该描述也适用于身份中心412-415。如图所示,身份中心411包括数据存储420。数据存储420用于存储与did所有者201相关联的任何类型的数据。在一个实施例中,数据是与特定协议相对应的特定类型的数据的集合422。例如,在一些情况下,集合422是与医疗数据的特定协议相对应的医疗记录数据。在一些其他情况下,集合422是任何其他类型的数据。
[0105]
在一个实施例中,所存储的数据具有与所存储的数据相关联的不同的认证和隐私设置421。例如,数据的第一子集具有设置421,设置421允许数据被公开地公开,但不包括对did所有者201的任何认证。这种类型的数据用于相对不重要的数据,例如配色方案等。数据
的第二子集具有设置421,设置421允许数据被公开对公开,并且包括对did所有者201的认证。数据的第三子集具有设置421,设置421使用与did所有者201相关联的私钥206和公钥207对(或某种其他密钥对)加密数据子集。这种类型的数据将要求一方有权访问公钥207或某种其他相关公钥以便解密数据。该过程还包括对did所有者201的认证。数据的第四子集具有将这个数据限于第三方子集的设置421。这要求使用与第三方子集相关联的公钥来解密数据。例如,did所有者201使得设置421指定只有与did所有者201的朋友相关联的公钥才能解密该数据。
[0106]
在一些实施例中,身份中心411具有允许did所有者201为诸如第三方401和402等第三方访问身份中心设置特定授权或许可的许可模块430。例如,did所有者201向他或她的配偶提供对所有数据420的访问许可。备选地,did所有者201允许访问他或她的医生以获取任何医疗记录。应当理解,did所有者201允许任何数目的第三方访问数据420的子集。这将在后面更详细地解释。
[0107]
身份中心411还具有消息传递模块440。在操作中,消息传递模块允许身份中心接收消息,诸如来自诸如第三方401和402等各方的访问身份中心的数据和服务的请求。此外,消息传递模块440允许身份中心411响应于来自第三方的消息并且还与did解析器450通信。这将在后面更详细地解释。省略号416表示身份中心411在情况允许时具有附加服务。
[0108]
在一个实施例中,did所有者201希望以前述方式向已经与did205相关联的身份中心411认证新设备301。因此,did所有者201利用与新用户设备301相关联的did管理模块320向身份中心411发送认定新用户设备与did所有者201的did 205相关联的消息。
[0109]
然而,身份中心411最初并未将新设备识别为由did所有者201拥有。因此,身份中心411使用消息传递模块440来联系did解析器450。发送给did解析器450的消息包括did 205。
[0110]
did解析器450是被配置为在操作中搜索分布式账本220以获取与did相关联的did文档的服务、应用或模块。因此,在该实施例中,did解析器450使用did 205搜索分布式账本220,这导致did解析器450找到did文档210。然后,did文档210被提供给身份中心411。
[0111]
如前所述,did文档210包括与新用户设备301相关联的公钥208或209。为了验证新用户设备由did所有者201拥有,身份中心411使用消息传递模块440向新用户设备301提供密码质询。该密码质询将被构造为使得只有有权访问私钥206的设备将能够成功地回答质询。
[0112]
在该实施例中,由于新用户设备由did所有者201拥有并且因此可以访问私钥206,因此质询被成功回答。身份中心411然后在许可430中记录新用户设备301能够访问身份中心411以及身份中心210的其余部分的数据和服务。
[0113]
应当注意,在身份中心411可以被访问之前,在不需要did所有者201将任何用户名、密码等提供给身份中心411的提供者(即,第一云存储提供者)的情况下,认证新的用户设备301的这个过程就可以被执行。相反,访问是基于did 205、did文档210以及相关的公钥和私钥以去中心化方式确定的。由于这些始终处于did所有者201的控制下,身份中心411的提供者没有参与,并且因此不知道事务或did所有者201的任何个人信息。
[0114]
在另一示例实施例中,did所有者201将did 205提供给第三方实体401,使得第三方能够访问存储在身份中心411上的数据或服务。例如,did所有者201是一个人,他在希望
允许也是人类的第三方401访问他或她的研究数据的科学会议上。因此,did所有者201将did205提供给第三方401。
[0115]
一旦第三方401可以访问did 205,他或她就访问did解析器450以访问did文档210。如前所述,did文档210包括端点213,端点213是指向身份中心411的地址或指针。然后第三方401使用该地址或指针访问身份中心411。
[0116]
第三方401向消息传递模块440发送消息,以请求访问研究数据的许可。消息传递模块440然后向did所有者201发送消息,以询问是否应当给予第三方401访问研究数据的权限。因为did所有者希望提供对该数据的访问,所以did所有者201允许第三方401许可并且该许可以被记录在许可430中。
[0117]
消息传递模块440然后向第三方401发送消息,以通知第三方他或她能够访问研究数据。身份中心411和第三方401然后直接通信使得第三方能够访问数据。应当注意,在很多情况下,与身份中心411通信的实际上是与第三方401相关联的身份中心。然而,进行通信的是第三方401的设备。
[0118]
有利地,上述过程允许身份中心411和第三方401通信和共享数据,而无需第三方以常规方式访问身份中心411。相反,通信是使用did 205和did文档210以去中心化方式提供的。这有利地允许did所有者完全控制该过程。
[0119]
如上所述,身份中心411托管在云服务中。服务提供商可以访问存储在每个用户的身份中心411中的数据。此外,服务提供商还可以访问did所有者的某些活动。例如,did所有者与其共享他/她的数据的实体存储在身份中心411中。作为另一示例,用户具有多个did并且在多个did之间共享数据,备选地,用户使用不同did管理模块访问相同数据。基于数据共享活动,身份中心411的服务提供者将不同did的关系关联起来,并且找出两个did相关或属于同一所有者。因此,用户的隐私受到损害。
[0120]
本文中描述的原理将通过加密存储在身份中心411中的个人数据来解决did所有者的这些潜在隐私问题。身份中心411不存储或访问加密/解密密钥,因此did所有者不能只能对其他did所有者或用户的数据有很大的控制权,而且他们的隐私也会受到服务提供商的保护。
[0121]
身份中心411中存储有很多不同对象。数据对象是身份中心411中存储的文件、文件夹、或数据的任何部分。整个身份中心411用一个加密/解密密钥加密作为一个对象。备选地,存储在身份中心411中的数据的不同部分用不同的加密/解密密钥加密。
[0122]
在另一示例实施例中,可验证声明被发布并且存储在身份中心411。例如,与did所有者201相关联的可验证声明由声明发布实体发布,并且所发布的可验证声明存储在与did所有者201相关联的身份中心411。当另一实体需要验证did所有者的凭证时,did所有者201将可验证声明发送给另一实体。例如,did所有者201是持有驾驶执照的人,并且声明发布实体是已发布did所有者的驾驶执照的dmv。dmv发布可验证声明,该可验证声明验证did所有者201持有有效驾驶执照。did所有者201将可验证声明存储在身份中心411中。另一实体是汽车租赁公司,该公司要求did所有者201证明他/她具有有效驾驶执照。然后,did所有者将存储在身份中心411中的可验证声明发送给租车公司。
[0123]
本文中描述的原理涉及发布与主题实体相关联并且由第二实体可验证的成对可验证声明。发布成对可验证声明的实施例的其他细节将参考图5到图15进行描述。
[0124]
图5示出了在其中发布和访问可验证声明的环境500。身份中心501对应于图4的身份中心411,did管理模块503对应于图3的did管理模块320,分布式账本505对应于图2的分布式账本220。
[0125]
可验证声明也称为可验证凭证,可验证凭证提供了一种在计算机网络上表达声明和/或凭证的方式,该计算机网络是密码安全的、尊重隐私的和可自动验证的。声明和/或凭证可以用于各种标识,例如,用于断言主题实体能够操作机动车辆的驾驶执照、可以用于断言主题实体的教育水平的大学学位、使得主题实体能够出国旅行的护照。在各种情况下,一个实体需要向另一实体表达他们的培训、技能和其他资格。例如,当客户租车时,租车公司往往会要求客户亲自出示驾照。可验证声明将允许经由计算机网络执行这样的验证。
[0126]
例如,如图5所示,客户是与did 205相关联的did所有者201。did所有者201有权访问did管理模块503。在某些情况下,did所有者201想要从租车公司租车。在租车公司同意将汽车租赁给did车主之前,租车公司需要验证did车主的驾驶执照,该驾照由dmv发布。因此,dmv是示例声明发布者502,并且租车公司是示例验证者504。
[0127]
如图5所示,验证者504(例如,租车公司)请求did管理模块503示出由声明发布者502发布的可验证声明,这由箭头509表示。did管理模块503然后请求声明发布者502发布验证者504需要的可验证声明,这由箭头507表示。声明发布者502将验证did所有者的did 205。响应于did 205的验证,声明发布者502发布可验证声明,并且将发布的可验证声明发送给did管理模块503,这由箭头508表示。声明发布者502还将发布可验证声明的事务记录到分布式账本505中,这由箭头511表示。
[0128]
在接收到可验证声明之后,did管理模块503将所接收的可验证声明记录在身份中心501中,这由箭头506表示。did管理模块503然后将所记录的可验证声明发送给验证者504,这由箭头510表示。验证者504然后访问分布式账本505以验证可验证声明。在上述过程中,声明发布者502、did管理模块503和验证者504还认证或验证did所有者201的did 205。备选地或另外地,声明发布者502和验证者504中的每个还与did相关联,并且声明发布者502和验证者504的每个did也被did管理模块503认证或验证。
[0129]
特别地,本文中描述的原理涉及发布和访问成对可验证声明。现在将参考图6和图7讨论与“成对”声明和“可验证”声明相关的更多细节。“声明”是关于主题的陈述。声明通常使用主题-财产-价值关系来表达。成对声明是只能由一个或多个特定验证者访问的声明。因此,即使主题的属性值相同,也会为不同验证者集发布单独的成对声明。
[0130]
图6示出了示例成对声明600。成对声明600包括声明610和一个或多个预定验证者650,包括验证者651和验证者652。省略号653表示存在任何自然数目的预定验证者。声明610和一个或多个验证者650形成对,称为成对声明600。声明610包括主题620。主题620与一个或多个属性631、632相关联。例如,属性631与驾驶执照相关联,并且属性632与大于21的年龄相关联。每个属性具有对应值641、642。例如,驾驶执照属性631具有值“有效”或“无效”,并且年龄大于21属性632具有作为对象年龄的数值、或者指示“等于或大于21”或“小于21”的二进制值。省略号633、643表示存在与主题620相关联的任何数目的属性(和相应值)。
[0131]
图7示出了可验证成对声明700的示例。可验证成对声明700将附加信息添加到成对声明702以使得验证者能够信任成对声明702。成对声明702对应于图6的成对声明600。如图7所示,可验证成对声明700包括声明id 701,其唯一地标识成对声明702。声明700还包括
描述成对声明702的属性的元数据,例如,发布者(例如,502)、验证者(例如,504)、到期时间、每次访问的成本等。此外,可验证声明700包括发布者签名704,使得声明的发布可以被密码确认,并且声明可以是防篡改的。
[0132]
当did管理模块503将可验证成对声明700呈现给验证者504时,did管理模块503进一步将一个或多个可验证成对声明的集合组织成可验证成对呈现。图8示出了示例性可验证成对呈现800。可验证成对呈现800包括一个或多个可验证成对声明802、803,其中每个可验证成对声明对应于图7的可验证成对声明700。省略号804表示存在任何数目的可验证成对声明被包含在可验证成对呈现800中。可验证成对呈现800包括唯一地标识成对呈现800的呈现id 801。可验证成对呈现还包括由did管理模块503签名的签名805,使得由did所有者201(或did 205)呈现的呈现可以被密码确认。
[0133]
在请求、发布和访问可验证成对声明的过程中,声明发布者(例如,图5的502)、did管理模块(例如,图5的503)、验证者504(例如,图5的504)、身份中心(例如,图5的501)和分布式账本(例如,图5的505)之间发生各种通信。图9a-图9c说明了这些实体之间的若干示例通信模式。参考图9a-图9c,声明发布者902对应于图5的声明发布者502,did管理模块903对应于图5的did管理模块503,验证者904对应于图5的验证者504,分布式账本905对应于图5的分布式账本505,身份中心901对应于图5的身份中心501。
[0134]
参考图9a,验证者904向did管理模块903发送可验证声明的请求,这由箭头906表示。响应于请求的接收,did管理模块903使用分布式账本905验证验证者904的身份,这由箭头907表示。在验证者904的身份使用分布式账本905被验证之后,did管理模块903然后向声明发布者902发送对可验证成对声明的请求,这由箭头908表示。请求包括与did管理模块903相关联的第一did 205和验证者904的身份。例如,验证者905与第二did相关联,并且第二did也被包括在请求中。
[0135]
当声明发布者902接收到请求时,声明发布者902使用分布式账本905验证第一did 205和/或验证者904的身份(例如,与验证者904相关联的第二did),这由箭头909表示。在第一did 205和/或验证者904的身份被验证之后,声明发布者902生成可验证成对声明(例如,图7的700),这由箭头910表示。声明发布者902还在账本905中记录了可验证成对声明的发布事务,这由箭头911表示。接下来,声明发布者902将所生成的可验证成对声明发送给did管理模块903,这由箭头912表示。
[0136]
did管理模块903从声明发布者902接收可验证成对声明并且将所接收的可验证成对声明存储在身份中心901,这由箭头913表示。did管理模块903然后生成可验证成对呈现(例如,图8的800),并且将所生成的可验证成对呈现发送给验证者904,这由箭头914表示。验证者904从did管理模块903接收可验证成对呈现,然后使用分布式账本905验证或认证可验证成对呈现,这由箭头915表示。
[0137]
图9b示出了声明发布者902、did管理模块903、验证者904与分布式账本905之间的另一示例通信模式。如图9b所示,验证者904将对可验证声明的请求直接发送给声明发布者902,这由箭头921表示。请求包括与所请求的可验证声明的主题相关联的did 205和验证者904的身份(例如,与验证者904相关联的did)。在声明发布者902接收到请求之后,声明发布者902使用分布式账本905验证与可验证声明的主题和/或验证者的身份相关联的did 205,这由箭头922表示。此外,声明发布者还向did管理模块903(与可验证声明的主题相关联)通
知验证者904已经请求可验证声明,这由箭头923表示。在一些实施例中,声明发布者902要求did管理模块903授予发布者902在声明发布之前发布这样的可验证声明的许可。
[0138]
响应于对did 205和/或验证者904身份的验证、以及从did管理模块903对许可的接收,声明发布者902生成可验证成对声明(例如,图7的700),这由箭头924表示。声明发布者902然后在帐本905中记录可验证成对声明的发布事务,这由箭头925表示。
[0139]
此后,声明发布者902将可验证声明直接发送给验证者904,这由箭头926表示。在验证者904接收到可验证声明之后,验证者904使用分布式账本905验证和/或认证可验证声明,这由箭头927表示。响应于可验证声明的验证和/或认证,验证者904将验证和/或认证结果通知did管理模块903,这由箭头928表示。例如,验证者904是租车公司,并且声明发布者902是dmv。当租车公司904接收并且验证由dmv 902发布的证明did所有者201持有有效驾驶执照的声明时,租车公司904向did管理模块903发送批准通知并且允许did所有者201完成与租车公司904的租车事务。
[0140]
图9c进一步说明了当可验证成对声明先前已经发布并且存储在身份中心901时声明发布者902、did管理模块903、验证者904、分布式账本905和身份中心901之间的通信模式。参考图9c,验证者904首先向did管理模块903发送对可验证声明的请求,这由箭头931表示。这里,did管理模块903然后访问身份中心901以查看所请求的可验证声明是否先前已经发布并且存储在身份中心901。例如,验证者904是租车公司,并且did所有者201之前已经从租车公司904租车。响应于检测到先前发布的成对声明存储在身份中心901,did管理模块903检索先前发布的可验证成对声明,这由箭头932表示。did管理模块903还生成可验证成对呈现并且将可验证成对呈现发送给验证者904,这由箭头933表示。
[0141]
在一些实施例中,所发布的可验证成对声明由声明发布者902的密钥加密。当验证者904从did管理模块903接收到可验证成对声明并且尝试访问可验证成对声明时,验证者904和/或did管理模块903被使得向声明发布者902发送通知,这由箭头934表示。在声明发布者902接收到通知之后,声明发布者902使用分布式账本905验证与可验证成对声明的主题和/或验证者904的身份相关联的did 205,这由箭头935表示。响应于验证,声明发布者902然后将解密密钥发送给验证者904,这是由箭头936表示。
[0142]
在一些实施例中,声明发布者902在将解密密钥发送给验证者904之前施加附加条件。例如,可验证成对声明包括到期日期,并且声明发布者902验证先前发布的可验证成对声明是否已经到期。仅当声明未到期时,声明发布者902才将解密密钥发送给验证者904。当确定先前发布的可验证成对声明已经到期时,声明发布者902简单地向验证者和/或did管理模块903通知声明已经到期。备选地或另外地,声明发布者902要求验证者904和/或did管理模块903支付预定费用以重新发布声明。只有当did管理模块903和/或验证者904向声明发布者902支付预定费用时,声明发布者902才会重新发布具有新到期日期的新的可验证成对声明。最后,在验证者904接收到解密密钥或新的可验证成对声明之后,验证者904使用分布式账本905验证和/或认证声明,这由箭头937表示。
[0143]
下面的讨论现在涉及执行的很多方法和方法动作。尽管方法动作按特定顺序讨论或在流程图中说明为按特定顺序发生,但不需要特定顺序,除非特别说明,或者因为一个动作依赖于在该动作被执行之前完成的另一动作。
[0144]
图10示出了用于发布与主题实体相关联并且由一个或多个验证实体可验证的可
验证成对声明的示例方法1000的流程图。方法1000在声明发布者的计算系统处实现。主题实体对应于与did管理模块503相关联的did所有者201,并且一个或多个验证实体对应于图5的验证者504。可验证成对声明对应于图7的可验证成对声明700。
[0145]
方法1000包括接收针对可验证声明的请求(1001)。可验证声明与主题实体相关联并且由一个或多个验证实体可验证。该请求是从主题实体或一个或多个验证实体发送的。例如,如图9a所示,请求是从主题实体(例如,did管理模块903)发送的;并且如图9b所示,该请求是从一个或多个验证实体(即,验证者904)发送的。
[0146]
在接收到针对可验证声明的请求之后,计算系统随后验证主题实体与可验证声明的主题相关联(1002)。例如,主题实体是客户,他想从租车公司租车。租车公司是一个或多个验证实体的示例,其需要验证客户是否拥有有效的驾驶执照。由于驾驶执照是由dmv颁发的,因此dmv是声明发布者,其接收对可验证声明的请求。dmv验证客户的did是否与驾驶执照相关联。响应于验证,然后发布可验证声明(1003)。
[0147]
向主题实体发送可验证声明(1004)。还使得可验证声明被存储在与主题实体相关联的身份中心(1005)。在一些实施例中,还验证一个或多个验证实体的身份(1006)。然后向一个或多个验证实体发送可验证成对声明(1007)。如图9a所示,在一些实施例中,可验证成对声明被从主题实体(即,did管理模块903)发送给一个或多个验证实体。如图9b所示,在一些实施例中,可验证成对声明直接从声明发布者902发送给一个或多个验证实体。
[0148]
不同实施例被实现以发布可验证声明,该声明被构造为仅由一个或多个验证实体可验证。在一些实施例中,可验证声明由一个或多个验证实体的公钥加密,使得一个或多个验证实体可以使用其私钥解密加密的可验证声明。例如,当一个或多个验证实体与第二did相关联时,可验证声明由与第二did相关联的公钥加密。
[0149]
在一些实施例中,可验证声明通过声明发布者的密钥被加密。图11示出了用于发布可验证声明的示例方法1100的流程图,该可验证声明被构造为仅由一个或多个验证实体可验证,该流程图对应于图10的步骤1003。如图11所示,方法1100包括通过声明发布者的密钥加密可验证声明(1101)。当加密的可验证声明被一个或多个验证实体访问时,声明发布者接收通知(1102)。该通知由第一计算系统(例如,did管理模块903)和/或第二计算系统(例如,验证者的计算系统904)发送。响应于通知的接收,验证一个或多个验证实体的身份(1103)。响应于验证,然后向一个或多个验证实体发送密钥(1104),并且使得一个或多个验证实体使用密钥解密加密的可验证声明(1105)。
[0150]
图12示出了用于施加用于访问可验证成对声明的条件的示例方法1200的流程图。方法1200也在声明发布者处实现。方法1200包括施加用于访问可验证成对声明的条件(1210)。该条件包括(但不限于)到期时间(1211)。数字资产包括可验证数字资产。可验证数字资产被广义地定义为具有值和/或只能被消费有限次数的对象。数字资产由任何实体产生,或被要求由一个或多个特定实体产生,诸如主题实体和/或一个或多个验证实体。此外,数字资产的量是经由匿名数字资产产生的,包括但不限于经由分布式账本控制的加密货币。在某些情况下,数字资产是任何可验证数字资产。
[0151]
省略号1213表示存在要施加的任何数目的条件。例如,验证请求实体的身份也是一个条件。
[0152]
当可验证声明被访问时,声明发布者从请求实体接收用于访问可验证声明的请求
(1220)。响应于该请求,声明发布者确定条件是否被满足(1230)。例如,声明发布者确定声明是否已经到期和/或是否要求验证者或声明的主题在每次访问声明时支付费用。
[0153]
当条件被满足时,即,确定为“是”(1231),声明发布者授予验证者访问可验证声明(1240)。当条件不被满足时,即,确定为“否”(1232),声明发布者拒绝验证者访问可验证声明(1250)。无论授予或拒绝对可验证声明的访问,主题实体都会接收到结果的通知(1260)。此外,当对可验证声明的访问被拒绝时(1250),使得一个或多个验证实体(即,验证者)执行某些任务以使得条件被满足(1270)。例如,当可验证声明已经到期时,一个或多个验证实体被允许支付费用以使声明发布者重新发布具有新的到期日期的可验证声明。
[0154]
本文中描述的原理允许在主题实体与一个或多个特定验证实体之间具体发布可验证声明。主题实体和一个或多个验证实体中的每个与标识符相关联,该标识符是did或中心化标识符。在一些实施例中,对象和/或验证实体中的至少一些与设备标识符相关联,即,不直接与人的标识符相关联,使得与对象和/或验证实体相关联的标识符不被视为成为个人身份信息。当两个实体彼此通信时,它们可以交换彼此的did,同时交换一个或多个可验证成对声明。个人身份信息被包括在可验证成对声明中。由于这些可验证声明是成对的,因此只有所涉及的两个实体会知道相应可验证声明的内容。因此,用户的隐私得到进一步保护。
[0155]
此外,当本文中描述的原理在去中心化环境中实现时,诸如使用分布式账本或区块链,与设备相关联的did(不被视为个人身份信息)在各种隐私法下传播到分布式账本上;并且个人身份信息只会出现在加密的可验证成对声明中,其只能由主题实体和相应验证实体查看。
[0156]
对于本文中公开的过程和方法,在过程和方法中执行的操作以不同的顺序实现。此外,所概述的操作仅作为示例提供,操作中的一些是可选的,组合成更少的步骤和操作,使用另外的操作进行补充,或者扩展成附加操作,而不偏离所公开的实施例的本质。
[0157]
在不背离其精神或特征的情况下,本发明以其他特定形式实施。所描述的实施例在所有方面都被认为仅是说明性的而不是限制性的。因此,本发明的范围由所附权利要求而不是由前述描述指示。在权利要求的等效含义和范围内的所有变化都应当被包含在其范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献