什么是DID?
根据DID(Decentralized Identity) 的设计原则,用户能够创建和控制自己的身份,而无需依赖于任何中心化机构。
DID通过使用身份钱包将身份控制权交还给消费者,消费者在钱包中从认证发行人(例如政府部门)那里收集自己的官方验证信息。
用户可以通过控制钱包向第三方共享某些信息来更好地管理他们的在线身份和隐私。例如,为了想车管局申请驾驶证,用户只需通过钱包提供自己已满十八岁的数字证明,而不用透露他们的实际出生日期。
W3C在针对DID的规范中是如何描述的:
“去中心化标识符 (DIDs) 是一种可验证的、自我掌控的数字身份新型标识符。DID 完全在 DID 主体的控制之下,独立于任何中心化的注册机构、身份提供者或证书颁发机构。DIDs是将 DID主体与同该主体进行可信任交互的方式相关联的 URL。DIDs可以解析为 DID 文档(DID Document)——描述如何使用特定DID的简单文档。
每个DID 文档至少包含三件事:证明目的、验证方法和服务端点。证明目的与验证方法相结合,提供事物的证明机制。例如,DID文档可以指定特定的验证方法,比如加密公钥或假名生物特征协议,可用于验证为身份认证而创建的证明。服务端点支持与 DID 控制器(DID Controller)的可信交互。”
由上可见,DIDs只是一个标识符,它们不提供有关主体本身的任何信息。
在实际使用中,DID需要与可验证声明 (Verifiable Claims,VC) 结合使用以支持数字交互,其中必须与第三方共享有关主体的信息,通过向第三方证明 DID 主体具有某些证明或属性的所有权来证明身份的合法性。该证明基于 VC、VC 所涉及的 DID 主体和 VC 的发行者之间的加密链接,发行者可以是自己的 DID 主体(自我声明的声明)或受信任的实体。对发行人的信任是通过信任发行人的 DID 或信任列表等方式建立的。然后,第三方可以使用提供的受密码学保护的证明来验证关于主体的声明的所有权和可信度。
由于声明的呈现完全由用户管理,他们可以决定与第三方共享哪些关于他们自己的特定信息;通过这种选择性披露使得属性隐私和个人数据保护得到加强。
可验证声明生成和使用的整体流程如下图所示(摘自 W3C 工作草案)。在此数据模型中,凭证(Credentials)被视为由发行人提出的一组或多个声明。
DID的架构概览
DID 和 DID URL
DID 是一个由三部分组成的 URI:方案 did:、方法标识符(DID method)和由 DID method指定的一个唯一的标识符。 DID 可解析为 DID 文档。DID URL 扩展了基本 DID 的语法以包含其他标准 URI 组件,例如路径、查询和片段,以便定位特定资源——例如,定位到DID 文档内的加密公钥。
W3C DIDs 有三个主要元素:
DID scheme,类似于 http、ipfs 等方法声明;
DID Method,是一个具体方法的标识符,每一个想建 DIDs 身份体系的项目都可以去申请一个,例如腾讯可以为 QQ 申请一个 tencentqq 的标识符;
DID Method-Specific Identifier,是一个具体的 id,它有什么用取决于具体项目方的定义,例如腾讯可以用 did:tencentqq:123456789 来指代你的 QQ 号 123456789。
DID Subject
DID 主体是由 DID 标识的实体。DID 主体也可能是 DID 控制器。任何东西都可以是DID主体:人、组织、事物或抽象概念等等。
DID Controller
DID 控制器是具有对 DID 文档进行更改能力(由 DID method定义)的实体(个人、组织或自治软件)。这种能力通常由代表控制器的软件使用的一组加密密钥的控制来声明。一个 DID 可能有多个控制器,而 DID 主体可以是 DID 控制器,也可以是多个控制器其中之一。
Verifiable Data Registry
为了可解析为 DID 文档,DID 通常被记录在某种底层系统或网络上。任何支持记录 DID 和返回生成 DID 文档所需数据的系统都称为可验证数据注册表,包括分布式账本、去中心化文件系统、任何类型的数据库、对等网络和其他形式的可信数据存储(目前最常用的是区块链存储方案)。
DID Document
DID 文档包含与 DID 相关的信息。它们通常表示验证方法,例如加密公钥,以及与与 DID 主体交互相关的服务。
DID Methods
DID 方法是创建、解析、更新和停用特定类型的 DID 及其关联的 DID 文档的机制。
DID Resolvers 和 DID Resolution
DID 解析器是一个系统组件,它将 DID 作为输入并生成符合要求的 DID 文档作为输出。这个过程称为 DID resolution。
DID URL dereferencers and DID URL dereferencing
DID URL 解引用器是一个系统组件,它将 DID URL 作为输入并生成资源作为输出。此过程称为 DID URL dereferencing。
参考文献:
- https://www.w3.org/TR/did-core/#architecture-overview
- https://www.gsma.com/identity/decentralised-identity
- https://www.forbes.com/sites/forbestechcouncil/2021/12/10/how-decentralized-identity-is-reshaping-privacy-for-digital-identities/
- https://ec.europa.eu/futurium/en/system/files/ged/eidas_supported_ssi_may_2019_0.pdf
- "Decentralized Identifiers (DIDs) v1.0". World Wide Web Consortium. Retrieved 2021-06-01.
- https://en.wikipedia.org/wiki/Self-sovereign_identity
- https://www.avanade.com/en/blogs/avanade-insights/security/decentralized-identity
- https://www.citi.com/ventures/perspectives/opinion/digital-identity.html
- https://venturebeat.com/2022/03