简介
DID, which stands for Decentralized Identifier, is a type of identifier that is unique and globally resolvable. It is designed to provide individuals and entities with control over their digital identities. With DID, users can create and manage their own identifiers, eliminating the need for centralized identity authorities.
DIDs are created using blockchain or distributed ledger technology, ensuring security, privacy, and interoperability. They enable users to authenticate themselves, assert ownership of data, and establish trust in digital interactions. DIDs can be used in various applications, such as decentralized identity systems, self-sovereign identity, and verifiable credentials.
One of the key advantages of DIDs is that they give individuals more control over their personal information. Users can choose which entities they share their DIDs with, and they can revoke access at any time. This empowers individuals to protect their privacy and be in charge of their own digital identities.
Overall, DIDs offer a promising solution to the challenges of digital identity management, providing a decentralized and user-centric approach. They have the potential to revolutionize how identities are created, verified, and used in the digital world.
DID 代表去中心化标识符,是一种唯一且全球可解析的标识符。 它旨在为个人和实体提供对其数字身份的控制。 借助 DID,用户可以创建和管理自己的标识符,从而无需集中身份管理机构。
DID 使用区块链或分布式账本技术创建,确保安全性、隐私性和互操作性。 它们使用户能够验证自己的身份,维护数据的所有权,并在数字交互中建立信任。 DID 可用于各种应用,例如去中心化身份系统、自我主权身份和可验证凭证。
DID 的主要优势之一是它们使个人能够更好地控制自己的个人信息。 用户可以选择与哪些实体共享其 DID,并且可以随时撤销访问权限。 这使个人能够保护自己的隐私并负责自己的数字身份。
总体而言,DID 为数字身份管理的挑战提供了一个有前景的解决方案,提供了一种去中心化且以用户为中心的方法。 它们有可能彻底改变数字世界中身份的创建、验证和使用方式。
使用场景举例
使用场景概述
可信数字身份主要使用在两类问题上,认证和授权。
- 认证的功能是证明用户使用某产品或服务前,具有使用资质;
- 授权的功能是用户在获取某权利或认证时,需要通过前置认证来获得授权。
案例:网络拍卖中竞拍人资质认证
背景:
在进行某款产品网络拍卖前,拍卖平台通常需要对竞拍人进行资质认证,例如实名认证、缴纳保证金等。
对于竞拍人和拍卖平台来说,整个认证流程过于复杂,还可能涉及到保证金的缴纳、退还、违约等操作。
基本流程:
- 竞拍人在DID小程序上向公安部申请实名认证声明
- 竞拍人在DID小程序上向浦发银行申请资产大于1000w的大客户认证
- 竞拍人通过DID小程序登入竞拍平台,提供实名认证声明和浦发大客户认证
- 资质认证完成
案例:一站式政务
背景:
居民的政务数据通常存在于不同部门,跨部门的政务办理往往需要先至A部门开具证明,再至B部门进行办理。
对居民而言,这些流程过于复杂,办理的过程中文件也容易丢失;对政府部门而言,希望提高居民办理的用户体验,同时也确保居民的数据不被外泄。
基本流程:
- 用户在DID小程序上向A部门发起申请某可验证声明
- 用户在DID小程序上向B部门发起申请某可验证声明
- 用户使用DID小程序向C部门出示A、B两部门签发的可验证声明,即可完成政务的办理
案例:入职新员工的背景调查
背景:
企业招聘新员工时通常会进行背景调查,用以验证员工的学历信息、前雇主信息等的真伪。
对于员工而言,需要花时间去每个机构获取最新的材料;对于企业而言,材料在流转和获取的过程中,也可能存在篡改行为,缺乏验证真伪的机制。
基本流程:
- 员工在DID小程序上分别向学校和前雇主申请相应的可验证声明。
- 员工提交声明,现雇主通过区块链验证DID以及声明的真伪。
非技术简介
1. 数字身份的发展历史与现状
随着互联网的出现和普及,传统的身份有了另外一种表现形式,即数字身份。一般认为,数字身份的演进经历了四个阶段,分别是:中心化身份、联盟身份、以用户为中心的身份以及自 我主权身份。
中心化身份
是由单一的权威机构进行管理和控制的,现在互联网上的大多数身份还是中心化身份。联盟身份
的出现解决了中心化身份中身份数据零碎混乱的弊端,此种身份是有多个机构或者联盟进行管理和控制的,用户的身份数据具备了一定程度的可移植性,例如允许用户登录某个网站时, 可以使用其他网站的账户信息,类似于 QQ、微信或者微博的跨平台登录。以用户为中心
的身份则将重点集中在去中心化上,通过授权和许可进行身份数据的共享,例如OpenID。自我主权身份
才是真正意义上的去中心化的、完全由个人所拥有和控制的身份。
而要使身份具有真正的自我主权,这种基础设施必然需要驻留在分散信任的环境中。随着区块链技术的出现,自我主权身份的实现终于找到了突破口。
2. DID
相对于传统的基于PKI(公钥基础设施)的身份体系,基于区块链建立的分布式数字身份系统具有保证数据真实可信、保护用户隐私安全、可移植性强等特征,其优势在于:
去中心化
:基于区块链,避免了身份数据被单一的中心化权威机构所控制。身份自主可控
:基于DPKI (分布式公钥基础设施)
,每个用户的身份不是由可信第三方控制,而是由其所有者控制,个人能自主管理自己的身份。可信的数据交换
:身份相关数据锚定在区块链上,认证的过程不需要依赖于提供身份的应用方。
详见:DID规范
3. 可验证声明(Verifiable Claim)
Verifiable Claim
,简称Claim
,是一个 DID 给另一个 DID 的某些属性做背书而发出的描述性声明,并附加自己的数字签名,用以证明这些属性的真实性,可以认为是一种数字证书。
详见:可验证声明
4. 分布式信任的建立
分布式信任是数字身份的基础,其核心是基于区块链去中心化、不可篡改的特性而创建的DID。然后多方通过接入工具接入分布式信任网,以区块链为依据,建立不同身份标识之间的安全通讯,为可验证声明(一种数字证书)的流转建立前提。
- 首先,用户的
DID
不是单一机构赋予的,而是用户根据确定的算法(DID Spec)生成的,是完全由用户自主控制的。生成DID
的同时,也会生成一对秘钥,并把公钥与DID的绑定关系发布在分布式存储上,而私钥则由用户保管,最后只需把身份相关数据锚定在区块链上即可。 - 其次,应用方验证用户身份信息时,只需要根据分布式系统中形成共识的用户的公开秘钥,进行验证计算即可验证用户的真实性。

5. 生态参与方
在这个分布式信任网中,有如下生态参与方:
Holder(用户)
:DID
的使用者,用户通过DID客户端
,即DID Agent
(目前的实现中,即DID小程序
),创建、管理自己的DID
,并把身份相关数据安全的存储在可靠的组件Identity Hub
中。Issuer(发证方
):发证方是向用户创建并签发可验证声明(一种数字证书)的机构或个人,可以是政府机关,亦或是学校等机构。Verifier(应用方)
:应用方是能够让用户使用DID的应用服务提供方,应用方会验证用户的DID
以及可验证声明,从而间接的验证用户的真实性。

在分布式信任网中,能够使用DID
登入的应用方有两种:
- 无需可验证声明即可登入的应用,例如普通的网站。
- 需要指定可验证声明才能登入的应用,例如某网站要求用户大于18岁才能使用DID登入。
在第一种情况中,应用方只需验证用户是DID
的拥有者即可让用户登入。
在第二种情况中,用户首先需要先去向发证方,比如公安局,申请一个证明自己是18岁的可验证声明,然后向应用方出示此声明才能完成DID
的登入。
可验证声明(Verifiable Claim)是一个 DID
给另一个 DID
的某些属性做背书而发出的描述性声明,并附加自己的数字签名,用以证明这些属性的真实性,可以认为是一种数字证书。如果做背书的 DID
是权威机构,那么此 DID
签发的 Claim
可以认为具有公信力。因为可验证声明是DID签发出来的,所以应用方只需要去链上获得此DID
的公钥即可验证声明的真伪。
通过权威机构签发选择性披露的可验证声明的方式,例如在声明中只说明声明的拥有者大于18岁,而不披露实际隐私年龄,保护了用户的隐私信息。
技术简介
1. 架构

一共分为三层:
- Layer 1:区块链层
- Layer 2:去中心化二层网络
- Layer 3:可信交换层
(1)Layer 1:区块链层
L1层是区块链层,是整个方案的基础设施。分布式存储中保存的是DID文档(DID Document),在文档内最关键的是DID与公钥的对应关系。在区块链上则锚定着这些身份数据的对应关系。
目前我们方案中区块链支持Ethereum
和Quorum
,分布式存储支持IPFS
。
(2)Layer 2:去中心化二层网络
由于目前区块链较低的TPS无法满足上层业务的需求,百度自研了L2层节点–Germ
。Germ
节点会把上层的DID相关的操作 打包,并创建一个 L1 链上交易并在交易中嵌入该操作批次的哈希。从而提高系统的整理处理性能。详见:L2 Germ
同时,我们对上提供了统一的DID解析服务,即DID Resolver,此服务同时也对接DIF社区的通用解析器。
(3)Layer 3:可信交换层
L3是可信交换层,是DID系统中各个生态参与方互相建立安全身份认证与数据交换层。
其中,
DID Agent
是用户使用的DID客户端,百度发布了DID小程序,作为DID客户端,能够方便用户便捷的管理自己的DID,详见:DID小程序Identity Hub
是用户安全存储身份数据的组件,详见:Identity Hub
2. 主要工作流程

(0) 用户使用DID小程序创建自己的DID
(1) 用户在小程序内获取发证方列表
(2) 用户向指定的发证方提交可验证声明申请,并提供相关材料
(3) 发证方审核完材料后,给用户颁发可验证声明
(4) 用户使用DID登入第三方应用,并获知应用需要用户提供某可验证声明
(5) 用户授权第三方应用去Identity-Hub中去获取可验证声明
(6) 第三方应用获取已授权的可验证声明
(7) 用户登入第三方应用成功
3. DID Wallet
DID Wallet
(DID钱包),作为用户端,方便用户(Holder
)进行DID
和Claim
的管理。
具备以下功能:
DID
创建DID
及其Document
的查看DID
管理,包括:私钥查看、私钥重置- 使用
DID
登入Verifier
Claim
申请Claim
查看Claim
使用- 配置
DID Reoslver
地址 - 配置
Identity Hub
地址
DID Wallet
存在多种实现形式,包括:
- 小程序,见:DID小程序
- Windows、Linux、Mac 的 UI Wallet (TBD)
- Chrome 插件(TBD)
- 命令行工具(TBD)
- Android App(TBD)
- iOS App(TBD)
4. Identity Hub
Identity Hub
用于保存和管理用户的数据,详见:Identity Hub。
5. 发证方签发服务
Issuer Service
是发证方对外提供的服务,主要作用是签发声明。
需要提供如下功能:
- 审核用户的声明请求,并给符合条件的用户签发声明。
- 提供一个吊销列表,列表中是被吊销的声明。
详见:成为发证方。
6. 发证方注册中心
用户申请Claim
的时候,需要知道发证方相关信息,包括发证方Claim
服务的Endpoint
之类的,这类信息会由发证方公布在自己的主页上。
同时,提供Claim Issuer Registry
服务,即发证方注册中,用来对外发布一些已知的发证方列表及其相关信息。
此模块目前是中心化部署,所提供的信息都是公布在各个发证方的主页上的。
功能:
- 查询Issuer List
- 录入Issuer
- 删除Issuer
详见:发证方注册中心
7. 应用方
Verifier
是能够使用DID的第三方应用,例如网站、移动APP之类。
详见:接入DID系统
8. DID 解析器
DID Resolver
提供DID
的解析服务,能够根据DID
查询对应的DID Document
。同时提供DID
的CRUD
功能。
详见:
9. DIF Universal Resolver
DIF Universal Resolver
是Decentralized Identity Foundation
提供的DID通用解析服务,可以解析非常多的DID。
10. L2 Germ
L2 Germ
基于区块链的Layer 2
系统,由于目前主流区块链网络的TPS的限制,要支持一个全网规模的DID系统还达不到吞吐量的要求,而为了解决该问题,引入了二层的系统架构。区块链网络作为一层网络,在区块链上层再实现一个二层的网络,由二层网络先对需要上链的数据打包,计算打包后的hash,再把hash上链,使得每一笔交易都能够包含多个上层的写操作,从而提高吞吐。
详见:Germ节点
11. L1 DLT
L1 DLT
即底层的区块链网络,目前支持Quorum
和Ethereum
。
发表回复