二、自主管理身份的基本组成部分
为了更好地介绍 SSI 架构的核心组成部分,我们邀请了欧洲 SSI 领域的两位佼佼者:荷兰应用科学研究组织的 Rieks Joosten 和 Oskar van Deventer。Rieks 是一位高级科学家,主要研究商业信息处理和信息安全;Oskar 则是区块链网络领域的高级科学家,两位都是欧洲 SSI 架构实验室的创始人。
第 1 章介绍过,SSI 是一种相对较新的理念,直到 2015 年才出现在互联网舞台上。从一个层面上讲,SSI 指的是个人数据控制在整个数字网络中运作的一整套原理。而在另一个层面上,SSI 是指建立在身份管理、分布式计算、区块链或分布式账本技术(DLT)和密码学等核心概念基础上的一整套技术。
这些核心概念基本在数十年前已出现并日臻成熟,发展创新之处在于如何将它们整合在一起,创建一种新的数字身份管理模式。本章意在让读者从概念角度入手,快速熟悉自主管理身份的 7 个基本组成部分,然后将在第 3 章展示如何将这些组成部分应用于不同的场景。这
7 个组成部分如下。
(1)可验证凭证(也称为数字凭证)。
(2)信任三角:发证方、持证方和验证方。
(3)数字钱包。
(4)数字代理。
(5)分布式标识。
(6)区块链和其他可验证数据注册表。
(7)治理框架(又称为信任架构)。
2.1 可验证凭证
在第 1 章中,我们将分布式身份的实质概括为“将实际身份证书的实用性和便携性转移到我们的数字设备上”,这就是为什么 SSI 的核心概念是可验证凭证。
我们所说的证书到底指什么?这种证书显然指人们钱包里随身携带的能够证明身份的纸质或塑料卡片(在某些情况下指金属卡片)。例如,驾驶执照、身份证、工作证、信用卡等,如图 2.1 所示。
但是,并不是所有的证书都适合放入钱包中。“证书”这一术语可以用来指代任何由某个权威机构颁发的信息集,这些权威机构可以证明这些信息集的真实性,反过来,信息集可以说服其他人(通过这些权威机构)相信这些信息。
(1)医院或人口统计机构出具的出生证明,证明你的出生时间、地点及父母。
(2)大学颁发的学位证书,证明你获得的教育学位。
(3)某国政府签发的护照,证明你是该国的公民。
(4)官方飞行员执照,证明你具备驾驶飞机的资质。
(5)公用事业账单,证明你是签发该账单的公用事业单位的注册客户。
(6)某一司法管辖区内相关机构签发的授权书,证明你可以代表他人合法地采取某些行动。
所有这些示例均涉及对象是人的证书,但可验证凭证并非局限于涉及人的证书。例如,农民可以出具关于一头牲畜饲料供应来源的可验证凭证、制造商可以颁发关于物联网传感器设备的证书(见第 16 章)。
每个证书都包含一套关于证书对象的声明。这些声明由某一机构发布,在 SSI 中称为证书的发证方。获得证书的实体(个人、组织或实物),即将证书保存在数字钱包中的实体,被称为证书的持证方。请注意,证书的对象通常与持证方相同。
证书中的声明(Claim)可以陈述有关对象的任何内容,例如,特征(年龄、身高、体重等)、关系(母亲、父亲、用人单位、公民等)或权益(医疗补助金、图书馆权限、会员福利、法律权利等)。
要想让资格成为一个凭证,其中所包含的声明必须以某种方式可验证,这意味着验证方必须能够确定以下内容。
(1)谁是发证方。
(2)自证书签发之日起未曾被篡改。
(3)未过期或被吊销。
物理证件通常直接在证件中嵌入某种防伪证明(如水印、全息图或其他特殊印刷特征)或声明到期日,也可以直接与发证方核实凭证是否有效、准确和仍在使用。不过,人工验证过程费时费力,这也是假证在全球黑市泛滥的一个重要原因。
这种情况给我们带来了可验证凭证的其中一项核心优势——可利用密码学和互联网(以及标准协议)在短短几秒甚至几毫秒内进行数字验证。这种验证可以回答以下 4 个问题。
(1)凭证是否包含验证方所需的标准格式的数据?
(2)它是否包括发证方的有效数字签名(从而确定其来源,并且在传输过程中未被篡改)?
(3)证书是否仍然有效,即没有过期或被吊销?
(4)如果适用,证书(或其签名)是否提供了持证方是证书对象的加密证明?
注:各种各样的密码证明,包括零知识证明,在可验证凭证中起着关键作用,详见第 6 章。
图 2.2 是 W3C 可验证凭证数据模型 1.0 规范的合编者 Manu Sporny 的一幅插图,通过它来说明构建的数字凭证是如何回答这 4 个问题的。可验证凭证的第 1 部分是证书的唯一标识,类似驾驶执照或护照上独一无二的编码。第 2 部分是描述证书本身的元数据,例如,驾驶执照的到期日期。第 3 部分是证书包含的声明,在图 2.2 中,声明包含了所有其他数据项(姓名、出生日期、性别、发色、眼睛颜色、身高、体重)。第 4 部分是证书对象的签名(驾驶执照中个人照片下方的签名),它是使用加密技术创建的数字签名。
在 W3C 可验证凭证的 4 个核心组成部分与实物证书的组成比对中,其中 3 个核心组成部分与实物证书相同。第 4 个组成部分—发证方的数字签名—只能通过某种形式的水印、全息图或其他难以伪造的印章印在实物证书上。
2.2 发证方、持证方和验证方
图 2.3 说明了 W3C 可验证声明工作组就可验证凭证交换涉及的 3 个主要角色定义的术语。
(1)发证方指的是证书的来源,每个证书都有发证方。大多数发证方是政府机构(护照)、金融机构(信用卡)、大学(学位)、公司(聘用证书)、非政府组织(会员卡)等。不过,个人也可能是发证方,甚至实物也可以是发证方—例如,适当配备的传感器可签发关于传感器读数的数字签名证书。
(2)持证方向发证方申请可验证凭证,将其保存在持证方的数字钱包中(在 2.3 节中讨论),并在验证方提出请求时(经持证方批准),出示一个或多个凭证的声明证明。我们通常认为个人是持证方 / 证明方,但持证方 / 证明方也可以是使用企业钱包或物联网意义上的实物。
(3)验证方是对检验证书对象的任何个人、组织或实物。验证方要求持证方 / 证明方提供一个或多个可验证凭证的其中一项或多项声明的证明。由持证方自主决定是否向验证方提供证明供其验证。在这一过程中,关键步骤是验证发证方通常使用分布式标识(DID)完成的数字签名,本章后面将更详细地讨论这一点。
注:W3C 可验证声明工作组正在创建的规范被称为“可验证凭证数据模型 1.0”。有关可验证凭证的术语和标准的更多详细信息可见 Verifiable Credential Primer 和 W3C Verifiable Credentials Data Model 1.0 。
发证方、持证方 / 证明方和验证方之间的关系通常被称为信任三角,因为这是人类信任关系在数字网络上的基本传达方式。图 2.4 说明了只有验证方信任发证方,可验证凭证才会传递信任,这并不意味着验证方必须与发证方有直接的业务或法律关系,它只是意味着验证方根据其对发证方的信任保证水平,愿意做出的一个业务决定(“我会接受这张信用卡吗?”“可以让这名乘客登机吗?”“是否要录取这个学生?”)。
需要注意的是,信任三角不过是描述了商业交易的一面而已。在许多商业交易中,双方都要求对方提供信息。因此,在单个交易中,双方既是持证方,又是验证方。此外,许多商业交易会导致一方向另一方颁发新的证书,甚至是两个新证书。
图 2.5 给出了一个例子,介绍了消费者从旅游公司报名昂贵假日旅行团要经历的一系列流程。
(1)消费者希望核实该旅游公司是否有破产风险。
(2)旅游网站希望核实消费者是否年满 18 周岁。
(3)消费者支付费用后,旅游网站将票寄给消费者。
(4)旅行结束后,其他消费者向他们确认作为客户他们对旅游公司是否满意。
在这些信息中,每条信息都可作为附有发证方数字签名的可验证凭证来传输。它展示了双方如何交错扮演信任三角中的所有角色。
在多阶段交易中使用和创建了多个可验证凭证,双方扮演着发证方、持证方和验证方的角色。
2.3 数字钱包
在现实世界中,我们通常将证书存放在一个实物钱包中,实物钱包能够贴身存放、便于携带,且证书随时可以取用。数字钱包的功能与实物钱包的功能相比没什么不同。
(1)存储证书、钥匙 / 钥匙卡、账单 / 收据等。
(2)保护这些东西不被盗窃或窥探。
(3)将它们放在手边—在所有设备上便于获取和携带。
遗憾的是,多年来,并没有很多人尝试使用数字钱包,以至于许多开发人员不再使用这个术语,但两个趋势让这一概念重新流行起来。第一个是移动钱包,尤其是那些内置于智能手机操作系统中的移动钱包,这些钱包用来存放信用卡、登机牌和其他一般的理财卡或旅行证书。
图 2.6 展示了两款受欢迎的智能手机钱包,它们是苹果钱包和谷歌支付。它们被广泛使用,因为它们内置在每部苹果手机和谷歌手机中。
第二个是“加密货币”钱包。购买以太币、莱特币等“加密货币”的所有买家都需要以下物品之一。
(1)服务器端钱包,也称为托管钱包或云钱包,其中的密钥由代理人(如 Coinbase)存储。
(2)客户端钱包,也称为非托管钱包或边缘钱包,它是专用硬件钱包(如图 2.7 所示)或运行在一个或多个用户设备(智能手机、平板电脑、笔记本电脑等)上的应用程序。
图 2.7 中的这款钱包是 Ledger Nano S,它有自己的安全显示器。
对 SSI 来说,这些通用形式的钱包都不错。但“加密货币”钱包和 SSI 数字钱包之间也有一些显著的区别。在后面的章节中,我们会深入探讨这些特点,但从更高的层面来看,以下这两个特征最为显著。
(1) SSI 数字钱包对便携式可验证凭证和其他敏感隐私数据实施开放标准。
(2) SSI 数字钱包与数字代理相结合,建立连接并进行证书交换(这一点将在 2.4 节中讨论)。
对于成熟的 SSI,我们需要的是通用数字钱包,其功能更像我们的口袋或实际携带的实物钱包,而不是来自不同供应商的专有钱包,其中每款钱包都使用供应商自己的应用程序接口(API)和可验证凭证设计。
(1)钱包应该接受任何标准化的可验证凭证,就像你可以把任何合适大小的纸质或塑料证书放进你的实物钱包中一样。
(2)可以将钱包安装在你经常使用的任何设备上,就像你可以将实物钱包放在你选择的任何口袋中一样。然而,与实物钱包不同,许多用户希望他们的数字钱包能够在不同设备之间自动保持“同步”,就像许多电子邮件和应用程序在多台设备之间保持信息同步一样。
(3)可以根据需要备份钱包内容并将其移动到其他数字钱包中,甚至可以对不同供应商的钱包也这样操作,就像可以将你的实物证书从一个实物钱包移动到另一个实物钱包中一样。
(4)无论你使用什么样的钱包,使用体验应该大体相同,即使是来自不同供应商的不同钱包,因为这对于安全使用你的钱包来说是至关重要的。
注:有关 SSI 数字钱包的互操作性和标准化的更多信息见后续章节。这一章还回答了另一个最常被问到的关于数字钱包的问题——“如果我的手机丢了会发生什么?”。在无伤大雅的情况下,答案是通过自动维护加密备份。实际上,你的数字钱包将比随身携带的任何实物钱包更安全,它不会丢失、被盗或被黑客攻击。
IBM 区块链信托公司的前执行董事、副总裁 Adam Gunther 将最后一点表示为“一种钱包,一种体验”—无论使用什么样的钱包或设备,都是管理你的可验证凭证和信任关系的一种标准方式。这对最终用户来说不仅是最简单的体验,还是最安全的方法,因为这使得欺骗或“钓鱼”身份所有者干坏事变得更加困难。
微软前首席身份架构师 Kim Cameron 认为这非常重要,他将“环境不同,体验相同”作为其七大身份法则中的最后一条,他将它比作学习开车。全球汽车行业已经使所有品牌和车型的驾驶控制(例如,方向盘、油门、刹车、转向信号)实现了标准化,目的是最大限度地减少学习体验,并且最大限度地保障驾驶员的安全。这样做的理由显而易见,如果一辆汽车不按司机预期的方式操作,则最终可能会给司机或其他人造成伤害。我们同样要高度重视数字生活的安全。
2.4 数字代理
数字钱包和实物钱包的操作方式不同。实物钱包由某一个人,即所有者直接“操作”。他们进行设置,把从发证方处收到的证书放入其中,如果需要证明,则挑选合适的证书提交给验证方,并根据需要将钱包从一个口袋转移到另一个口袋或将里面的证件从一个钱包转移到
另一个钱包。
由于人们无法用二进制数据“说话”,因此数字钱包需要软件才能操作。在 SSI 基础设施中,这种软件模块被称为数字代理。如图 2.8 所示,你可以将数字代理视为数字管家,它“保护”着你的数字钱包,并确保只有你及负责管理你的凭证和密钥的人才能使用它们。
在 SSI 基础设施中,每个数字钱包都由一个充当软件管家的数字代理“保护”,确保只有钱包的掌控者(通常是身份持有者)才能访问存放其中的可验证凭证和密钥。
在 SSI 基础设施中,数字代理除帮助身份所有者管理他们的钱包之外,还有第二份工作,即根据所有者的命令,通过互联网相互“交谈”、建立连接并交换证书。通过一个完全针对数字代理之间的私人通信而制定的“去中心化安全信息交互协议”来实现这一点(关于该协议 DIDComm 的更多信息见第 5 章)。
图 2.9 从更高层面概述了数字代理和他们的数字钱包如何在 SSI 生态系统中建立连接和交流。根据数字代理的位置,通常有两种类型的数字代理:边缘代理和云代理。前者在身份持有者的本地设备上的网络边缘运行。后者在云中运行,可由标准云计算平台提供商托管,也可由称为代理机构的专门的云服务提供商托管。
身份所有者既可以直接与在本地设备上运行的边缘代理交互,又可以间接与在云中远程运行的云代理交互。
云代理还可以代表身份所有者来存储和同步其他数据,如文件、照片、财务记录、病历、资产记录等。与传统云存储不同,云代理中的数据全部经过身份持有者加密。因此,这被称为安全数据存储(SDS)。SDS 与数字钱包一起可作为数字生活管理应用程序和服务的基础,这些应用程序和服务可以在个人的一生乃至更长时间内处理和维护各种数字身份数据。也就是说,SDS可以在数字财产的所有者去世后,在数字财产的管理和清算方面提供巨大帮助。
所以接下来的问题是,数字代理如何代表身份所有者找到彼此,建立连接并进行沟通。
2.5 分布式标识
IP 地址使得互联网上的任何设备能够与互联网上的其他设备连接并向其发送数据包。图 2.10 所示是 IPv4 地址示例。
这种寻址格式允许互联网上的任何设备与设备之间对话。
我们曾在本书的开篇做过解释,知晓互联网上一台机器的 IP 地址并不意味着你对操控这台机器的人、组织或机构的身份有任何了解。为此,操控者(身份持有者)要能够提供关于其身份、特点、关系或权利的证据。并且,该证据必须能够以某种方式得到证实。
数十年来,我们已经掌握生成数字证据的技术:公钥 / 私钥加密(第 6 章会有基本的介绍)。私钥的所有者利用私钥对信息签名,其他任何人均可使用所有者相应的公钥来验证签名的真伪。签名验证表明签名是由私钥的所有者创建的,并且此后信息没有被篡改。
然而,要依赖这种验证,验证方必须知道所有者的正确公钥。因此,为了确保数字代理和数字钱包之间的分布式信息传递的安全性,以及保障数字代理能够彼此加密地发送可验证凭证,我们需要一种强大、安全、可扩展的方法,让身份持有者及其数字代理证明他们对公钥的所有权。
在过去的几十年里,这个问题的解决方案是公钥基础设施,即从世界各地的一小批认证机构获得公钥证书的系统。然而,正如第 8 章深入探讨的那样,传统的公钥基础设施过于集中、太过昂贵,无法满足全球 SSI 基础设施的需求,在 SSI 基础设施中,每个参与者都管理着多组密钥。
就像互联网的 IP 地址一样,答案是一种新型的标识。这种新型标识从公钥衍生得出,因此它非常安全,这种新的标识需要具备以下 4 个属性。
(1)永久性—无论身份所有者变更、使用不同的服务提供商或使用不同的设备,标识都必须能够永不更改。
(2)可解析—标识不仅需要能够检索身份所有者的当前公钥,还需要能够检索当前地址,从而触达所有者的代理。
(3)可加密验证—身份持有者需要能够使用加密技术证明他或他们控制了与该标识相关联的私钥。
(4)分布式—与依赖单一机构控制下的集中式注册表的 X.509 证书不同,这种新型标识必须能够通过使用分布式网络,如区块链、分布式账本、分布式散列表、分布式文件系统、对等网络等来避免单点故障。
这 4 个属性中的最后一个使这种新标识被命名为分布式标识(DID)。考虑到其具有不同的目的,一个 DID 的结构与一个 IP 地址有很大的不同。分布式标识与相关公钥和私钥的示例如图 2.11 所示。
在区块链或其他分布式网络中,一个 DID 充当一个公钥的地址。在大多数情况下,还可利用 DID 确定其对象(DID 确定的实体)的数字代理所处的位置。
对互联网的初步研究得到了美国政府相关机构的支持,通过与美国国土安全部订立合同,首个 DID 技术规范的初步研发工作获得了支持。DID 技术规范于 2016 年年底发布,随后被提交给 W3C 证书社群小组,开启了其成为官方标准的进程(关于 DID、DID 文档、DID方法和 DID 技术规范的更多内容见第 8 章)。2019 年 9 月,这一进程促使 W3C DID 工作组成立。
DID 的设计宗旨是,能够使用专门编写的 DID 方法,利用任何现代区块链、分布式账本技术或其他分布式网络。DID 方法定义了以下4个基本操作。
(1)如何创建(编写)DID 及其附带的 DID 文档(包含公钥和其他描述 DID 对象的元数据的文件)。
(2)如何使用 DID 从目标系统读取(查找)DID 文档。
(3)如何更新一个 DID 文档,如公钥交换。
(4)如何停用 DID(通常通过更新 DID 文档,使其不包含任何信息)。
目前由 W3C DID 工作组维护的 DID 技术规范注册表已包括 80 多种 DID 方法,其中包括基于数字货币的 3 种方法和基于以太网的 6 种方法。它还包括 did:peer 和 did:git 方法,这两种方法不需要分布式账本技术,因为它们完全是对等工作的。任何两个拥有自己 IP 地址的设备都可以使用 TCP/IP 协议栈建立连接并交换数据。同样,任何两个拥有 DID 的身份所有者都可以使用 SSI 协议栈建立加密且安全的连接来交换数据。DID 与 DID 连接的基本概念(如图 2.8 和图 2.9 所示)并不新鲜—与许多其他网络中的连接工作方式类似。但是,DID与 DID 的连接为数字关系带来了 5 个强大的新特性。
(1)永久性—除非其中一方或双方希望中断,否则连接永远不会中断。
(2)专用性—连接上的所有交流都可以自动加密和拥有数字签名。
(3)端到端—连接安全,没有中介。
(4)可信性—这种连接支持交换可验证凭证,以建立对任何有必要保证级别的信任。
(5)可扩展性—这种连接可用于需要进行安全、私密和可靠数字交流的任何其他应用。
2.6 区块链和其他可验证数据注册表
DID 可以在任何类型的分布式网络或可验证数据注册表(这是 W3C 可验证凭证数据模型和分布式标识技术规范中使用的正式术语)中注册,甚至可以对等交换。那么为什么有人会选择在区块链上注册一个 DID 呢?区块链提供了哪些我们几十年来一直使用的其他类型的电子标识和地址(电话号码、域名、电子邮件地址)所没有提供的东西?
我们可以深入密码学、数据库和网络找到答案。在该术语的标准行业用法中,区块链是一个防篡改的分布式数据库,没有任何一方可以控制。这意味着区块链可以提供数据的权威来源,许多不同对等体可以信任这些数据,且没有任何一个对等体可以控制(区块链必须精心设计,然后实施,以抵御攻击)。区块链有意权衡分布式数据库的许多其他标准特性,例如性能、效率、可扩展性、可搜索性、易于管理,以解决一个真正的难题:不需要依赖信托机构的权威数据。图 2.12 说明了传统数据库(无论是集中式还是分布式)和区块链数据库在设计上的根本区别。
(1)区块链中每笔交易(新记录的写入)都要经过数字签名。分布式数据库的控制权是这样分布到所有对等节点的:每个对等节点管理其私钥,并利用区块链对这个交易进行数字签名。除非签名经过验证,否则不接受新交易。
(2)交易被分组为区块,然后将这些区块加密,并链接到前一个区块上。这一步创建了一个不可改变的有序事务链。
(3)每一个新的区块都被加密复制到区块链网络的所有对等节点上,每个区块由不同的对等体运行。这一步通过共识机制执行,这是许多区块链的核心。有许多不同的共识机制—其中一些涉及工作量证明。但是,不管具体的机制如何,每个网络中的对等节点最终都会复制最新的一份数据块,并且其他节点将与这个新的数据块保持一致。事实上,每个节点由不同的对等主体运行(在某些情况下结合了巧妙的博弈论),这使得 51% 或更多的节点串通起来试图攻击区块链(并有机会改写其历史)的可能性更小。
这种加密的方式使得区块链很难被攻击。即使修改已经记录到区块链并复制到所有对等节点的单个交易,也必须侵入数十、数百或数千台机器,并同时全部更改。
从 SSI 的角度来看,特别是注册和解析 DID 和公钥,使数字钱包和数字代理能够安全地交流和交换可验证凭证,各种类型的区块链(公有链、许可链、混合链等)之间的差异是没多大影响的。可以编写一种 DID 方法,使其可以支持绝大多数现代区块链或其他分布式网络。
重要的是,区块链或其他可验证数据注册表解决了一个在密码学历史上从未有过解决方案的问题:一个全球分布式数据库如何在不遇到单点故障或遭到攻击的情况下作为公钥的可信来源。这为以 SSI 为核心的可验证数字凭证的普遍应用打下了坚实的基础。
2.7 治理框架
所有 SSI 基础设施的最终目标是使互联网交互作用的双方实现相互信任,这是许多类型的交易今天根本不可能实现的。在 SSI 中,信任层的基础首先由加密信任奠定,如将发证方的可解析的 DID 和公钥存入一个分布式网络,这锚定了图 2.4 和图 2.13 所示的信任三角,因此验证方可以信赖发证方的电子签名。
但是加密信任并不等于人与人之间的信任。“数字货币”区块链网络中的加密信任可以被用来为“数字货币”交易各方的可验证凭证发证方锚定一个 DID。如果发证方对自己的机构(例如,信用合作社、银行、保险公司或政府机构)足够信任,验证方就可利用这些可验证凭证,使其符合“了解你的客户”或反洗钱法规规定。
人的信任建立在加密信任之上,这种分层的信任展现了 SSI 如何发挥可验证凭证的全部效力。但是,短时间内信任某一发证方所签发的证书并不能产生规模效应。这与 20 世纪 60年代信用卡早期面临的问题相同。各大银行都试图发行自己出品的信用卡,而商家却忙得不可开交,它们无法处理数百家银行数百张种类繁多的信用卡。
因此,直到银行联合起来建立信用卡网络(Visa 和 MasterCard 是最著名的两种),信用卡才开始被采用。这些信用卡受一套商业、法律和技术规则的约束管理,称为治理框架(在数字身份行业中也称为信任架构)。创建和管理治理框架的实体被称为治理机构。治理框架创建了第二个信任三角,如图 2.13 的下半部分所示。该图显示了治理框架如何使验证方的工作变得更容易,如果验证方不清楚发证方所提供的证书的证明,则可查验发证方是否在其信任的治理框架下获得授权。这种查验可以采取多种不同的形式,例如,简单
的“白名单”或者从区块链、安全目录、治理机构中查找可验证凭证。这种递归信任三角的方法适用于任何规模的信任社区,甚至是互联网规模的信任社区,验证方并非直接知道所有发证方(如 Visa 和 MasterCard)。
治理框架是可验证凭证的另一面:它规定了发证方发行证书须遵循的程序和政策。在某些情况下,它还规定了持证方获得证书须同意的条款和条件,以及验证方验证证书必须同意的条款和条件。治理框架还可以指定证书交换的业务模式,例如,如今适用于信用卡网络的“验证方向发证方付费”模式,包括责任政策、保险及其他法律和业务要求。
可验证凭证如何在任何规模的信任社区中发挥效力?这涉及一座城市到整个行业,或者说从一个国家到整个互联网,其秘诀就在于治理框架。正如我们在本书其余部分看到的那样,这些数字信任生态将会给我们的数字生活带来颠覆性的改变,就像当年信用卡网络改变商业世界一样。
2.8 基本构建模块概述
虽然本书将会讲述 SSI 的 7 个基本组成部分的每个部分,但本章介绍这些组成部分的目的是让所有人都能理解它们在 SSI 基础设施中扮演的基本角色。我们可以分别用一句话来概括每个组成部分。
(1)可验证凭证是与我们随身携带实物钱包中的证件(每天都用来证明我们的身份)类似的数字化同等物。
(2)发证方、持证方和验证方是信任三角的 3 个角色,这 3 个角色使得任何类型的证书发挥作用:发行证书、将证书放在钱包中及在持证方出示证书时进行验证。
(3)数字钱包是实物钱包的数字化同等物,可在任何现代计算设备(智能手机、台式计算机、笔记本电脑等)上保存可验证凭证。
(4)数字代理是应用程序或软件模块,使我们能够用属于自己的数字钱包来获取和出示证书,管理连接,并与其他数字代理安全地交流和交换可验证凭证。
(5)分布式标识是由现代加密技术提供支持的新型数字地址,它们不需要集中式注册机构。
(6)区块链和可验证数据注册表是分布式的、受加密保护的数据库,可作为 DID 和公钥的可信来源,且不会出现单点故障或遭到攻击。
(7)治理框架由各种类型和规模的治理机构发布,指的是使用 SSI 基础设施的一套业务、法律和技术规则,该基础设施将支持任何规模和大小且可互操作的数字信任生态系统。那么,这 7 个基本组成部分如何组合在一起形成 SSI 基础设施的整体框架呢?答案是ToIP 栈:SSI 支持的数字信任基础设施的 4 层架构模型,正由 ToIP 基金会实现标准化(由Linux 基金会托管)。如果研究一下图 2.14 中的 ToIP 栈,就会发现所有 7 个组成部分都在其中。
图 2.14 4 层 ToIP 栈
说明:将机器与人之间(第 1 层和第 2 层)的加密信任与业务、法律和社会(第 3 层和第 4 层)的信任相结合,以支持可互操作的数字信任生态系统。请注意,术语公用“设施”指区块链或 DID 的可验证数据注册表。
我们在本书后面的章节,特别是第 2 部分,会更深入地探讨 ToIP 栈和每一层的详细内容。在第 3 章中,我们则展示如何将这些组成部分整合到一起,以解决现实世界中在使用SSI 时通常遇到的数字身份问题。