我们所有人都有许多独特的标识符/或凭据来识别自己,例如电子邮件地址、社交媒体账户、不同网站的用户名和密码、驾驶执照 ID、护照 ID 等等。但在现实中,我们无法控制这些标识符以及它们被共享的方式。

这些标识符通常由第三方公司存储在可能被黑客攻击的中心化服务器中,且其存在与存储它的组织密切相关。如果某组织禁止你使用它的服务或该组织不复存在,你的标识符也将被禁止。Donald Trump(唐纳德 · 特朗普)被踢出 Twitter 的方式就是一个好的例子,一夜之间 Trump 失去了他所有的粉丝和公众身份。

一种新型数字身份:自我主权身份(SSI),已然现世,用以克服上述情况;允许用户完全控制自己的标识符如何生成、存储在哪里,以及如何分享它们。

自我主权身份(SSI)在过去几年里得到了更有力的推动,这也促进了标准的制定以及实施标准的构建模块的发展。

自我主权身份(SSI)的一个基本构件是去中心化标识符(DIDs:Decentralized Identifiers )。这种独特的标识符(URI:Unique Identifiers )允许实体能够在数字世界中生成和控制他们的标识符。

DIDs 具有如下特性:

  • 无需中心化的注册机构

  • 许多 DIDs 使用分布式账本技术或任何其他去中心化的网络,尽管这不是被强制要求的

  • 具有永久性,因为它的存储不依赖于单一的第三方或中心化的注册机构

  • 可以通过密码学验证

  • 它们将 DID 主体(由 DID 识别的实体)与 DID 文档(描述 DID 主体的一组数据)连接起来,使主体之间能够进行可信的互动。

  • 只要符合 W3C 制定的现有标准,它们就是可互操作和可移植的。

如下即是一个 DID :

  • 第一部分,' did ',是一个 URI,用于识别交易与去中心化标识符有关。不管是实现什么,这个 URI 不会改变。

  • 第二部分,' example ' 是 DID 方法(DID method)。这个值代表协议,该协议用于决定用户在哪里或如何找到 DID 。目前大约有 100 种方法,后续可能会增多。这些方法大多围绕着创建、读取、更新和删除,但每种操作的实现会因方法的不同而不同。

  • 第三部分,一串长的字母数字值即是 DID 的解析,可理解为将一个 DID 解析到一个 DID 文档的算法或数值,这类似于我们今天使用的 DNS 地址。

DID 的一个关键构件是 DID 方法。

什么是 DID 方法?

简言之,DID 方法是帮助一个 DID 解析 一个 DID 文档的组件。它定义了 DID 文档如何在网络上创建、读取、更新和删除。

DID 方法通常与可验证数据登记系统相关联,后者是一个将 DIDs、DID 文档和 DID 方法汇集在一起的系统。可验证数据登记系统的例子包括:可信数据库、去中心化数据库、分布式账本和政府 ID 数据库等。在同一个生态系统中可以使用多种类型的登记。

在实现方面,一个 DID 方法是由其规范定义的,它精确地定义了 DIDs 和 DID 文档是如何创建、更新、失效和解析的。

让我们通过一个例子来理解这一点:

DID: ELEM: jadjfa;j948madnfaupwmfm

此处

  • DID 是架构

  • ELEM 是可验证数据登记。此处,ELEM 表示在以太坊网络上实现 sidetree 协议

  • Jadjfa;j948madnfaupwmfm 是特定方法的标识符,是分布式账本上的公钥。

DIDs 是如何工作的?

就像任何其他 URI 一样,DIDs 是一个唯一的标识符,将一个 DID 主体与一个 DID 文档联系起来。


DID 主体可以是个人、实体、事物等。DID 文档是 JSON-LD 格式,包含一组描述 DID 主体的数据,其中包括密码学签名、验证方法,或任何能够使 DID 主体与网络上其他实体进行可信互动的东西。

从本质上讲,DID 包含一个唯一的标识符,用于查询与 DID 主体有关的 DID 文档。它被存储在一个或多个分散的存储系统中,如 IPFS 或 STORJ 。

所以 DID 解析了 DID 文档,而 DID 文档又描述了 DID 主体。在这个循环中,DID 主体控制着 DID,并决定如何以及与谁分享它。从这个意义上,DID 主体是DID 管理员( DID controller ),但 DID 管理员和 DID 主体并不总是同一个实体。

关键的区别在于,DID 管理员有权改变 DID 文档,而且这种权利是通过使用加密钥匙才能实现的,也正因如此,同一个 DID 文件可以有一个以上的 DID 管理员。

由此可知,当一个 DID 主体决定创建一个 DID 与他人共享时,会连接到一个 DID 文件,该文件可能包含:

  • DID 本身

  • 它被创建时的时间戳

  • 与其委托和授权有关的元数据

  • 其有效性的加密证明,包括用于验证 DID 主体的公钥

  • 可以使用该 DID 的服务列表

  • 一个 JSON-LD 签名,以验证 DID 文档的完整性

请注意,DID 文档不包含关于主体的个人信息,这些信息会通过可验证凭证(VC:Verifiable Credentia)实现。你可以把 DID 想象成去中心化基础设施的基础层,而包含主体个人身份信息的可验证凭证则是更高得一层。

DID 与 DNS 的区别
现在,让我们回到 DID,把它分解一下。下面展示了一个 DID 文档得样子:

如上所示,DID 文档里包含验证 DID 管理者所需的加密信息。这里有几个关键元素:

  • Context —— 表示这是一个 JSON-LD 文档

  • Id —— 指向 DID 文档中的 DID

  • Authentication —— 一个可选的属性,代表一个或多个验证方法

  • Service —— 也是可选的,描述了与 DID 主体的通信方式

我们希望以上信息能帮助你了解什么是 DIDs,以及为什么你需要它们来进行相关的实现。对于任何对去中心化身份管理的实现感兴趣的人它都可以派上用场,可以解决我们面临的许多紧迫问题,特别是在数字身份领域。

我们将在后续得文章中展示一些真实世界的使用案例。

END

zCloak Network 是基于波卡生态的隐私计算服务平台,使用zk-STARK 虚拟机为通用计算进行零知识证明的生成与验证。基于独创的自主权数据自证明计算技术,可以让用户在无需对外发送数据的情况下,实现对数据的分析和计算。通过波卡跨链消息传递机制,可以为波卡生态内的其它平行链以及其它公链提供数据隐私保护支持。项目会采用“零知识证明即服务”的商业模式,打造一站式的多链隐私计算基础设施。
原文出自 Affinidi ,原文链https://academy.affinidi.com/demystifying-decentralized-identifiers-dids-2dc6fc3148fd
转载请注明原文与本文出处及翻译团队zCloak Network