摘要:随着欧洲通用数据保护条例 (GDPR) 的施行,基于区块链的分布式身份 (Decentralized Identifiers, DID) 越来越受到学术界和产业界的关注。到底什么是分布式身份?其设计原理和实现形式是怎么的?咱们能够用它来做什么呢?
相比于下面几个问题,我置信你肯定对“为什么须要分布式身份”这个问题更加好奇。
身份模式的演进及特点
在上世纪 90 年代,互联网被定义为 Web1.0。用户与网络的交互非常简单,网站提供的简直都是“只读”服务,不管文字、图片还是音频内容,用户能做的仅仅是浏览或者简略的搜寻,不波及内容公布和评论对身份没有要求。可见此时的互联网,不具备有理论用处的身份体系。
互联网 Web2.0 定义了一个可“读写”的网络,在短短十几年工夫里,利用类型、服务模式、内容生态均失去飞速发展。与此同时,数字身份体系也被从新定义并不断完善。先后产生了 中心化身份 、 联盟身份 和以用户为核心的身份 三种身份模式。
不难发现,身份体系变动倒退背地的次要推动力就是用户对身份自主管制和自我隐衷保护意识的一直加强。
中心化身份的数据由 繁多的主体负责生成、管制、治理和保护。例如咱们相熟的支付宝、微信等账号。显然,中心化身份的使用权由核心主体和用户独特享有,但身份的生成权、解释权、存储权都集中在身材提供商,由此带来了身份不自主可控、隐衷透露、可移植性差、互操作性差以及单点危险等一系列问题。
联盟身份的提出肯定水平上缓解了上述问题,但没有基本解决。例如,当用户通过微信或支付宝受权,作为第三方账户登录某平台时会面临两类问题。一方面平台还会额定收集用户信息,造成新的独立的身份零碎。另一方面因为互联网寡头的垄断,多家身份提供商仍可合谋管制用户的数字身份。
以用户为核心的身份在实际当中因为安全性等种种原因未能宽泛推广应用。
分布式身份从根本上解决了上述问题,不依赖于核心身份提供商,真正具备身份的自主可控性、安全性、自解释性、可移植性、互操作性。在分布式场景下赋予每个用户自主管制和应用数字身份的能力,并针对身份数据等敏感信息进行隐衷爱护。
Web3.0 向咱们描述了一个万物互联的可信网络世界,实现了数据确实权与受权、强隐衷爱护、凋谢的抗审查的自在数据交换。以 DID 为根底构建去中心化运行的对立身份认证零碎正是 Web3.0 倒退的重要实际之一。
解读分布式身份
接下来咱们探讨,什么是分布式身份以及其设计原理和实现形式。
分布式身份的技术架构包含 分布式账本、规范的 DID 协定、规范的可验证凭证协定和以此构建的利用生态。在实现上会基于区块链实现身份的注册、发现,可验证凭证的申请、签发、授予和验证,以及相干数据的隐衷存储和可信计算。
图 1. DID 零碎根本运行流程和应用形式图
为了不便了解 DID 零碎根本的运行流程和应用形式,我绘制了一张图(图 1)。从图中能够看出零碎次要有三类实体,包含 签发者、持有者 和验证者,其中每个实体都能够是设施、利用、集体或者组织。
首先,各实体通过简略的密码学工具或者 DID SDK 生成齐全由本人管制的身份文档(具体的数据结构咱们前面再开展),并公布到区块链上实现身份的注册。DID 文档中还能够蕴含其所能提供的服务信息,以反对企业用户多样的利用场景。例如签发者是学校 A,在其身份文档中能够公布电子学历认证服务;签发者也能够是公司 B,在身份文档中申明职位招聘的相干要求。
具备根底的身份标识之后,通过可验证凭证架设起身份与身份之间的认证体系 。凭证的模板会由相干主体注册公布到区块链上,并继续保护。接着,持有者便能够向签发者发动认证申请,取得凭证后 组合加工 出示给验证者实现校验。例如如下场景,小为(持有者)须要向公司 B(验证者)公布的职位招聘发动申请,职位要求申请者须要具备本科学历。小为能够将从学校 A 处申请到的凭证出示给公司 B 实现职位申请。
最初,业务零碎就能够基于 DID 体系实现下层利用的构建。用户之间无需有信赖关系,面向凭证开展业务,细粒度的爱护隐衷 信息。
就这么简略!
乏味的个性和利用场景
晓得了为什么和是什么之后,让咱们略微深刻一些关键技术的细节,以便更好的使用。
身份文档是 DID 的根底数据结构,其设计简洁、功能丰富、可扩展性强。为了直观了解,我将关键字段组成的 JSON(图 2)绘图如下。
图 2. 身份文档示意图
列举几个乏味的个性:
- “publicKey”列表能够反对不同秘钥体制和类型的公钥。不同的公钥可用于反对不同的业务。(公钥和私钥是成对呈现的两个秘钥。公钥能够公开,私钥必须机密保留。因为加密和解密应用的是两个不同的秘钥,所以这种算法称之为非对称加密算法。)
- “controller”和”authentication”字段能够是本文档的公钥或者其余 DID 文档的标识、公钥。这样能够 轻松扩大出弱小的身份层级管制体系。
- “recovery”复原标识能够在主控私钥失落的状况下实现文档复原和更新。
可验证凭证 由元数据 (Metadata)、 属性申明汇合 (Claims) 和证实资料 (Proofs) 三局部组成。要害组件及字段见图 3. 可验证凭证同样具备丰盛的性能和极强的扩展性,其中波及的能力项有很多,例如生命周期治理、可信模型、零常识证实、隐衷频谱、凭证平安等。此处通过介绍“凭证细粒度组合出示”帮忙大家感触可验证凭证的性能个性。
图 3. 可验证凭证要害组件及字段
凭证常见的应用模式是签发者对整个凭证的摘要进行签名,并加密将凭证发送给持有者。持有者解密或者重加密凭证,出示给验证者实现校验。不言而喻这样的设计会带来两方面问题,一方面是隐衷爱护能力较差,在出示验证过程中会导致用户无关属性的裸露 。另一方面, 凭证的应用场景和签发凭证类型耦合在一起,不利于扩大应用场景。
举个例子,后面提到学校 A 和公司 B 都公布了各自的“服务”。当小为想申请某个职位时,招聘要求申明应聘者须要是年龄小于 30 岁的本科毕业生。此时如果小为间接出示身份证 (以证实年龄小于 30 岁) 和学历凭证,会裸露例如姓名、籍贯、性别、院校信息等无关属性。如果你向学校申请额定开具一个仅包含学历和年龄的证实,这种形式显然十分低效,并且凭证没有失去复用。
凭证细粒度组合出示的一种实现形式是,签发者计算凭证属性汇合中每个属性的“Pedersen 承诺”(用于隐衷爱护属性信息)。再针对所有承诺进行“C- L 签名”(起到多属性签名的聚合成果,压缩签名所占空间)。在凭证出示前,小为能够从已有身份凭证和新取得的学历凭证中筛选服务须要的几个属性公开明文,其余属性均出示密文承诺,实现职位申请。下图是小为申请工作例子的具体流程,大家能够跟着序号和形容梳理梳理。
图 4. 基于分布式身份的可验证凭证应用示例流程图
至此,咱们简答做个总结吧,细节记没记住不重要,体会其精力就好。
本文列举了从 Web1.0 到 Web3.0 互联网身份体系的倒退变动,随着用户对主权和隐衷爱护诉求的一直进步,分布式身份和可验证凭证是构建将来对立身份认证体系必不可少的技术。国内上,W3C 规范组织与 2019 年底公布了 Decentralized Identifiers(DIDs)v1.0 和 Verifiable Credentials(VC)v1.0 标准规范草案,并继续扩大欠缺。在国内,2020 年 6 月低分布式数字身份产业联盟(DIDA)成立。
本文介绍了分布式身份根底的数据结构、技术体系架构、次要的性能个性和利用场景。但分布式身份体系所涵盖的内容远比这些要多,他是下层利用生态的身份和认证底座,能够广泛应用到数字政务、民生生存、医疗衰弱、交通运输、数字金融等畛域中。如果你想理解更多细节或者马上入手理论体验一下话,能够关上 华为云官网搜寻 TDIS。
华为云分布式身份服务 (Decentralized Identity Service) 是一种基于区块链的 分布式数字身份及可验证凭证的注册、签发、治理平台。合乎 W3C 标准规范 。 为集体和企业用户提供对立的、可自解释 的、移植性强的分布式身份标识,同时反对多场景的可验证凭证治理,细粒度的凭证签发和验证,无效解决跨部门、跨企业、跨地区的身份认证难和隐衷泄露等问题。
点击关注,第一工夫理解华为云陈腐技术~