去中心化标识符
Weili Yang
SSI 课程:第八章
1
© KEN Labs 2022
去中心化标识符
从四个层次逐渐深入理解DID
SSI标准化
可验证凭证(VCs)
去中心化标识符
(DIDs)
顺着这四个层次一路走下去
我们可以从四个层次来理解DID——从基本定义到深入理解DID的工作方式和这样做的原因,以及它们对互联网和网络的未来意味着什么。
去中心化标识符(DIDs)是与可验证凭证(VCs)相对应的加密方式。这些都是SSI标准化的 "双支柱"。
2
© KEN Labs 2022
概念层:什么是DID?
>1000
DID是一种新类型的全球唯一标识符:一串标识资源的字符串
URI
就技术标准而言,DID是统一资源标识符(URI)的一种类型。
URL
统一资源定位器(URL)是一个URI,可以用来定位该资源在网络上的代表。
URN
在网络架构中,为持久性标识符保留的URI的子类被称为统一资源名(URN)。
URL和URN是URI的子类。URL总是指向网络上的资源代表,而URN是网络上或网络外任何资源的持久名称。DID是一个URI,既可以是URL,也可以是URN,它可以被查询(解析)以获得关于DID所标识的资源的一组标准化信息(元数据)。
3
© KEN Labs 2022
去中心化标识符
DID的四个核心属性
DID的一般格式:方案名称后接DID方法名称,然后接特定于方法的字符串,其语法由DID方法定义。
Network�resources
1. 一个永久性(持久性)的标识符
它永远不需要改变。
2. 一个可解析的标识符
你可以通过查询来发现元数据。
3. 一个加密可验证的标识符
你可以用密码学来证明控制权。
4. 一个去中心化的标识符
不需要中心化的注册机构。
按照W3C DID核心1.0规范的定义,DID是一种新的全球唯一标识符:一串标识资源的字符串。
4
© KEN Labs 2022
DID 解析
获得与DID相关的DID文档的过程被称为DID解析。
功能层:DID如何工作?
DID如何工作
DID架构的基本组成部分。
DID 文档
每个DID只有一个相关的DID文档。
DID 方法
这些不同类型的DID被称为DID方法。
5
© KEN Labs 2022
DID 文档
使用五种不同的DID方法创建DID的例子
DID、DID文档和DID主体之间的关系(在DID主体也是DID控制器的情况下)
6
© KEN Labs 2022
DID 方法
DID如何运作
使用五种不同的DID方法产生的DID实例
7
© KEN Labs 2022
DID 解析
>1000
DID如何运作
DID解析允许支持DID的应用程序和服务发现由DID文档表达的关于DID主体的机器可读元数据。该元数据可用于与DID主体的进一步互动,如下:
需要DID解析的常见场景。第一个是使用DID来识别可验证凭证的签发者,第二个是登录网站,第三个是发现与DID相关的服务。
8
© KEN Labs 2022
处理一个DID URL包括两个阶段:
DID 解析(resolution)
调用DID解析器来检索DID文档。
DID 引用解析(dereferencing)
DID文档被进一步处理,以访问或检索DID URL识别的资源——它可以是DID文档本身的一个子集,也可以是DID URL识别的一个单独的资源,如一个网页。
Telecom Italia
DID URL
以DID为基础构建更高级的URL
9
© KEN Labs 2022
© KEN Labs 2022
去中心化标识符 (DIDs) | 域名 (DNS) |
全球唯一 | 全球唯一 |
持久或可重新分配(取决于DID方法和DID控制器) | 可重新分配 |
对机器友好的标识符(即基于随机数和密码学的长字符串)。 | 人类可读的名称 |
可使用适用的DID方法所定义的不同机制进行解析 | 可使用标准的DNS协议进行解析 |
相关的数据在DID文档中表述 | 相关的数据在DNS区域文档中表达 |
完全去中心化的命名空间,不需要授权 | 基于具有顶级域名(TLD)的集中式根注册处的分层、可委托的名称空间 |
由DID方法特定的流程和基础设施(例如,区块链)保护 | 受信任的根注册中心和传统的PKI (DNSSEC)保护 |
密码验证 | 可验证使用DNS安全扩展(DNSSEC) |
在DID网址中用作授权组件 | 在http:和https: 网址地址以及电子邮件地址和其他标识符中用作授权组件 |
由每个DID方法的权限管理(任何人都可以创建DID方法) | 由互联网名称与数字地址分配机构(ICANN)管理 |
完全在DID控制器的控制之下 | 最终由ICANN和每个DNS顶级域名的注册表运营商控制 |
DID和域名的比较
10
© KEN Labs 2022
DID与其他类型的持久性标识符的比较
其他类型的持久性标识符一般不太适合于SSI应用
通用唯一标识符(UUIDs,也称为全球唯一标识符或GUIDs)。 | 不可解析,不能用密码学来验证 |
持久性URL(PURLs) 处理系统 (HDLs) 数字对象标识符(DOI) 档案资源密钥(ARKs) 开放研究者和贡献者ID(ORCID) | 不是去中心化的;创建和使用这些标识符取决于一个中央或分级机构,不能用密码学来验证 |
其他URN | 要么无法解析,要么解析过程和元数据随每种类型而变化,不能用密码学来验证 |
与其他标识符相比,DID是持久的、可解析的和去中心化的(加密验证性没有展示是因为它不适用于任何其他标识符)。
Customer�Experience
Revenue
Network�resources
11
© KEN Labs 2022
© KEN Labs 2022
DID 类别
类别 | 描述和实例 |
基于账本的DID | DID方法的最初类别涉及区块链或其他分布式账本技术(DLT),其目的是建立一个不受单一机构控制的注册表。这种注册表通常是公开的,可在全球范围内访问。DID的创建/更新/停用是通过向账本写入交易来实现的,该交易是用DID控制者的私钥签署的: did:sov:WRfXPg8dantKVubE3HX8pw did:btcr:xz35-jzv2-qqs2-9wjt did:ethr:0xE6Fe788d8ca214A080b0f6aC7F48480b2AEfa9a6 did:v1:test:nym:3AEJTDMSxDDQpyUftjuoeZ2Bazp4Bswj1ce7FJGybCUu |
账本中间件 (第二层) DIDs | 作为对经典的基于账本的DID方法的改进,这类方法在基础层区块链之上增加了一个额外的存储层,如分布式哈希表(DHT)或传统的复制数据库系统。DID可以在这个第二层创建/更新/停用,而不需要每次都进行基础层账本交易。相反,多个DID操作被分批纳入一个单一的账本交易,提高了性能,降低了成本: did:ion:test:EiDk2RpPVuC4wNANUTn_4YXJczjzi10zLG1XE4AjkcGOLA did:elem:EiB9htZdL3stukrklAnJ0hrWuCdXwR27TNDO7Fh9HGWDGg |
对等 DIDs | 这种特殊类别的DID方法不需要一个全球共享的注册层,如区块链。相反,一个DID被创建,随后只与其他一个对等节点(或相对较小的对等体组)共享。作为关系一部分的DID通过点对点协议进行交换,导致参与者之间的私人连接的建立 (见 https://identity.foundation/peer-did-method-spec/index.html): did:peer:1zQmZMygzYqNwU6Uhmewx5Xepf2VLp5S4HLSwwgf2aiKZuwa |
静态 DIDs | 有一类DID方法是 "静态 "的,即它们能使DID被创建和解析,但不更新或停用。这种DID方法往往不需要复杂的协议或存储基础设施。例如,DID可能只是一个 "包装好的 "公钥,整个DID文档可以通过算法解决,不需要DID本身以外的任何数据: did:key:z6Mkfriq1MqLBoPWecGoDLjguo1sB9brj6wT3qZ5BxkKpuP6 |
备选的DIDs | 其他一些创新的DID方法已经被开发出来,不属于前面的任何类别。它们证明了DID的识别架构足够灵活,可以分层在现有的互联网协议之上,如Git、星际文件系统(IPFS),甚至是互联网本身: did:git:625557b5a9cdf399205820a2a716da897e2f9657 did:ipid:QmYA7p467t4BGgBL4NmyHtsXMoPrYH9b3kSG6dbgFYskJm did:web:uport.me |
12
© KEN Labs 2022
PKI信任三角
从最初的构想开始,PKI的核心就存在一个难题。
也就是说,仅仅考虑公钥/私钥对是不够的。
左图展示了每个密钥对与它的控制机构(控制器)的关系,无论这个控制器是一个人,一个组织,甚至是一个东西(如果这个东西有能力生成密钥对并将其存储在数字钱包中)。
架构层:为什么DID能发挥作用?
更深入地了解为什么DID会起作用
所有公钥/私钥密码学核心的基本信任三角
13
© KEN Labs 2022
PKI的困境
公钥和私钥在数学上是相互绑定的,因此两者都不能被伪造。
但这两种类型的密钥都与控制器有内在的联系。
私钥必须保留给控制器(或其代理)专用,决不能透露给其他任何人。相比之下,公钥正好相反:它必须与希望与控制器安全通信的任何一方共享。
PKI最核心的难点问题
PKI的困境
公钥与私钥在PKI中的基本作用
14
© KEN Labs 2022
问题就在于此:
你如何将一个公钥与它的控制器强绑定,以便任何依赖该公钥的一方(依赖方)能够确定他们是在与真正的控制器打交道?
毕竟,如果你能欺骗依赖方接受控制器B的公钥,而依赖方认为它是控制器A的公钥,那么对有意图和目的敌人而言,控制器B可以完全冒充控制器A。
PKI的核心问题
如何将公钥绑定到其控制器上?
PKI的核心问题是:如何将公钥与其控制器绑定?
15
© KEN Labs 2022
还有一块拼图:
公钥是纯粹的数字实体,其加密的有效性可以在几毫秒内得到验证,而控制器则不然。
控制器是存在于现实世界中的真实的人、组织或事物。
因此,将公钥与控制器进行数字绑定的唯一方法是增加一块拼图:控制器的数字标识符。
真正的PKI信任三角
如何将公钥绑定到其控制器上?
真正的PKI信任三角包括一个控制器的数字标识符。
作为一个依赖方,你必须知道你在正确的时间点上拥有正确的公钥,这对你处理的任何控制器来说都是至关重要的。拼图的另一个部分是控制器的标识符,它可以与公钥绑定,这样依赖方就可以确信公钥属于控制器而不是其他人。
16
© KEN Labs 2022
标识符绑定问题有两个部分:
PKI的两个问题点
这就是PKI自上世纪70年代诞生以来一直在努力解决的两个问题领域
当涉及到将标识符强绑定到控制器上时,有两个问题点。
17
© KEN Labs 2022
标识符到控制器的绑定
对于第一个问题,传统的PKI解决方案是使用一个最合适的现有标识符,然后遵循行业最佳实践,将该标识符与控制器强绑定。
解决方案1:传统的PKI模式
第一个解决方案是用于颁发数字证书的传统PKI模型
传统的PKI使用由某种类型的证书颁发机构签署的数字证书来解决公钥到标识符的绑定问题。
这是在过去40年里发展起来的主流模式。最著名的例子可能是SSL/TLS PKI,它使用X.509证书,在使用HTTPS协议的浏览器中提供安全连接(你在浏览器地址栏中看到的锁图标)。
公钥到标识符的绑定
18
© KEN Labs 2022
信任网
它不依赖于集中式CA,而是依赖于直接认识对方的个人,因此可以单独签署对方的公钥,有效地创建点对点数字证书。
这就把“你信任谁?”(TTP问题)变成了“谁认识你可以信任的人,你能信任谁?”也就是说,如何发现要验证的数字证书的“可信路径”。
解决方案2:信任网模式
到目前为止,还没有人开发出一个合理安全、可扩展、可采用的解决方案来解决这个问题
关于如何构建信任网的图示
公钥到标识符的绑定
19
© KEN Labs 2022
公钥到标识符的绑定
基于公钥的标识符无法单独支持密钥轮换,这有效地阻止了它们作为传统PKI的替代品被采用。
解决方案3:基于公钥的标识符
根据公钥为控制器生成一个标识符
基于公钥的标识符对标识符绑定问题采取了完全不同的方法,从公钥中为控制器生成标识符。
使用基于公钥的标识符,控制器控制着真正的PKI信任三角的所有三点,因为所有这三个值都是使用只有控制者拥有的密钥材料加密生成的。
20
© KEN Labs 2022
公钥到标识符的绑定
解决方案4:DID和DID文档
生成一次基于公钥的标识符,然后能够在每次密钥轮换后继续验证它
控制器发布一个包含原始DID和新公钥的更新DID文档,然后用原始私钥对其进行数字签名,在DID文档之间建立一个信任链。
DID文档之间的这种信任链可以通过对原始DID文档的任何数量的更新和基于公钥的原始标识符来追溯。从本质上讲,每个DID文档都是新的公钥的新数字证书——但不需要CA或任何其他基于人的TTP来认证它。
21
© KEN Labs 2022
DID超出PKI范围的四个好处
DID的好处还不止于此
3
1
2
发现服务端点
4
规模化的隐私设计
监护权和控制权
DID到DID的连接
DID使我们最终能够广泛地采用基于公钥的标识符,并且仍然享有密钥轮换和传统PKI的其他基本功能,而没有这些缺点。但DID的好处还不止于此。
22
© KEN Labs 2022
监护权和控制权
以一个新生婴儿为例。婴儿将需要父母(或其他监护人)代表他们发出这个DID。不过,数字监护权只适用于人。
这些代表了需要第三方控制者的实体类别,这种关系被称为控制权,以区别于人类的监护权。有了监护权和控制权,我们现在可以将SSI和DPKI的好处扩展到每个可以被识别的实体。
超出PKI的好处1:监护权和控制权
在许多情况下,数字证书的注册人不是数字证书所识别的一方
一个用于识别DID主体(一个新生婴儿)的例子,该主体不是DID的控制者。
SSI数字监护是一个非常广泛、深刻和丰富的话题。
23
© KEN Labs 2022
三方绑定
DID控制器在DID文档中发布了一个或多个服务端点URL。
虽然这使得DID文档对许多类型的发现普遍有用,但对于发现远程建立DID-to-DID连接并通过DIDComm协议进行通信所必需的代理端点来说,它是至关重要的。
超出PKI的好处2:发现服务端点
确定如何与DID主体互动
DID、公钥和服务端点之间的三方绑定URLs.
基于DID的代理端点URL的发现对于SSI来说就像基于DNS的IP地址发现对于网络一样重要。
24
© KEN Labs 2022
财产 | 描述 |
永久性 | 除非一方或双方愿意,否则连接将永远不会中断。 |
私人的 | 连接上的所有通信都可以自动加密,并由DID的私钥进行数字签名。 |
端到端 | 连接没有中间层—从“DID到DID”是安全的。 |
可信的 | 该连接支持可验证的凭证交换,以在任何相关背景下建立更高的信任,达到任何保证水平。 |
可扩展的 | 该连接可用于任何需要通过DIDComm协议或双方代理支持的任何其他协议进行安全、私密、可靠数字通信的应用。 |
对等 DIDs
一种DID方法——专门为此目的而创建的对等DID。
每一个DID都代表着其控制者有机会与任何其他DID控制者建立一个即时、安全、私密的点对点连接。
更妙的是,与必须事先从CA获得的静态公钥证书不同,DID可以在新连接需要时立即在本地生成。
超出PKI的好处3:DID到DID的连接
DID-to-DID连接的五个特殊属性
无论是对等DID(默认)还是公共DID之间,DID到DID的连接都是IP信任堆栈第二层的核心。
25
© KEN Labs 2022
好处 3 :
好处 1 :
2.5 days
好处 2 :
超出PKI的好处4:规模化的隐私设计
DID-to-DID连接的五个特殊属性
26
© KEN Labs 2022
语义层面:DID是什么意思?
探讨它们对SSI和互联网的未来意味着什么
3
1
2
DID网络和数字信任生态系统
4
DID能识别什么?
地址的含义
为什么DID没有人类意义
在解释了DID的工作方式和原因之后,我们现在转向理解DID的最深层次:探索它们对SSI和互联网的未来意味着什么。
27
© KEN Labs 2022
地址的含义
从历史角度回顾不同类型网络的地址演变
地址不是独立存在的。它们只存在于使用它们的网络环境中。
起源 | 地址类型 | 网络 |
之前 | 人名 | 人际网络(家庭、宗族、部落等) |
~1750 | 邮政地址 | 邮政邮件网络 |
1879 | 电话号码 | 电话网 |
1950 | 信用卡号码 | 支付网络 |
1964 | 传真号码 | 传真网络 |
1971 | 电子邮件地址 | 电子邮件网络 |
1974 | IP地址 | 互联网(机器友好型) |
1983 | 域名 | 互联网(人类友好型) |
1994 | 持久地址(URN) | 万维网(机器友好型) |
1994 | 网络 (URL) | 万维网(人类友好型) |
2003 | 社会网络地址 | 社会网络 |
2009 | 区块链地址 | 区块链或分布式账本网络 |
2016 | DID | DID 网络 |
28
© KEN Labs 2022
DID网络和数字信任生态系统
DID对堆栈的每一层都是必不可少的,如下所示
发布在比特币和以太坊等公共区块链上的DID;Sovrin、ION、Element和Veres One等分布式账本;或IPFS等分布式文件系统可以作为所有高层参与者的可公开验证的信任根基。它们实际上构成了互联网信任层的基础。
默认情况下,它们是按照Peer DID规范发出和交换的成对的匿名对等DID,因此它们只存在于第2层。然而,DIDComm也可以使用来自第1层的公共DID。
DID是发行和验证数字签名的可验证凭证以及发现凭证交换协议的服务端点URL的过程中不可或缺的。
DID是发现和验证治理机构(作为法律实体)和治理框架(作为法律文件)的锚点,适用于各种规模和形态的数字信任生态系统(以及它们指定的参与者)。DID还使可验证的证书能够持续地引用其发行的治理框架,并使治理框架能够相互引用以实现互操作性。
29
© KEN Labs 2022
为什么DID没有人的意义?
Zooko的三角
Operators are looking to implement big data and analytics in the next 2 years
这就是Zooko的三难困境,它表明一个标识符系统最多可以实现以上三个属性中的两个。
虽然有些人认为Zooko的三角形可以解决,但大多数互联网架构师都认为,实现这三个属性中的两个要比全部三个都容易得多。
单纯的DIDs不能解决人类有意义的命名问题,事实上它们可以锚定一个有潜力的新解决方案。诀窍是在可验证的凭证层(第三层)进行。
通过为这些凭证中的名字创建可搜索的凭证注册处,我们可以共同建立一个命名层,与目前的DNS命名层相比,但语义更丰富、更公平、更可信、更分散。
30
© KEN Labs 2022
DID能识别什么?
DID是否将DID文档确定为一种资源?
NO!
非常准确地说,DID识别DID主体并解析到DID文档(通过遵循DID方法所规定的协议)。DID文档不是一个独立于DID主体的资源,也没有一个独立于DID的URI。相反,DID文档是由DID控制器控制的DID解析的一个工件,用于描述DID主体。
——W3C DID工作小组
"DID确定了DID主体"。这是完全正确的,不管这个主体是什么:一个人、组织、部门、实物、数字主体、概念、软件程序——任何有身份的东西。可能出现混淆的地方是DID所解析的DID文档。
31
© KEN Labs 2022
Pando DID: pando.network
KEN Labs Research: kencloud.com
info@pando.network
twitter.com/KenLabs_Web3
感谢您的观看!
32
© KEN Labs 2022