本文主要是介绍去中心化身份 DID( Decentralized Identifiers),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目 录
- W3C DID标准
- 一、背景
- 1、DID的动机
- 2、人类友好标识符的作用
- 二、DID与其他全球唯一标识符的区别
- 三、DID的格式
- 四、DID文件(DID Document)
- 五、DID算法
- 六、DID和隐私设计
- 七、DID和可验证证书(VC)
W3C DID标准
去中心化身份标识(Decentralized Identifier,DID)是一种新类型的标识符,具有全局唯一性、高可用性可解析性和加密可验证性。DIDs通常与加密材料(如公钥)和服务端点相关联,以建立安全的通信信道。DIDs对于任何受益于自管理、加密可验证的标识符(如个人标识符、组织标识符和物联网场景标识符)的应用程序都很有用。例如,当前W3C可验证凭据的商业部署大量使用DIDs来标识人员、组织和事物,并实现许多安全和隐私保护保证。
——W3C 文档
表面上看,分散式标识符(DID)只是一种新型的全球性的唯一标识符,但在更深层次上,DID是互联网的一种全新的分布式数字身份,同时,它也是公钥基础设施(PKI)层的核心组成部分。这种分布式的公钥基础设施(DPKI)可能对全球网络安全和隐私与加密网络流量(现在是世界上最大的PKI)的SSL / TLS协议具有同等重要的影响力
W3C的DID标准下的DID系统主要包括以下层次要素:
基础层:DID规范
1、DID标识符(Identifier)
实体由分散标识符(DID)标识。他们可以通过证明(例如,数字签名,隐私保护生物识别协议等)进行身份验证。
2、DID文档(Document)
DID指向DID文档。DID文档包含一组用于与实体交互的服务端点。遵循隐私设计的格言,每个实体可以根据需要拥有尽可能多的DID,以尊重实体所希望的身份,人物角色和背景的分离。(注意,DID文档中没有任何和你个人真实信息相关的内容,比如你的真实姓名、地址、手机号等。因此光靠DID规范是无法验证一个人的身份的,必须要靠DID应用层中的VC。)
应用层:可验证声明
可验证声明(Verifiable Claims 或 Verifiable Credentials,本文接下去都简称VC)
一、背景
1、DID的动机
对分散式标识符的需求日益增长,对于仍适合Web体系结构的新类型URL产生了两个特定要求,并且还有一些额外要求,即更传统的URL(如基于HTTP的URL)没有:
(a)新类型的URL 不应该需要集中的权限来注册、解析、更新或撤销标识符。今天绝大多数URI都基于DNS名称(域名)或IP地址,这些名称(域名)或IP地址依赖于集中授权进行注册和最终控制。可以在没有任何此类权限的情况下创建和管理DID(URI与URL详解链接:https://blog.csdn.net/readiay/article/details/52862379)。
(b)可以加密验证其所有权和相关元数据(包括公钥)的URL。通过DID和DID文档进行身份验证利用与分布式分类帐相同的公钥/私钥密码术。
2、人类友好标识符的作用
DID实现全球唯一性,无需中央注册机构,然而,这是以牺牲人类可记忆性为代价的–能够生成全局唯一标识符的算法自动生成没有人类意义的随机字符串。这证明了关于被称为Zooko三角形的标识符的公理:“人类有意义,分散,安全挑选任何两个”
二、DID与其他全球唯一标识符的区别
对于可以定义为不依赖于任何机构集中授权的永久性可移植身份的自我主权身份,我们需要一种新的标识符来满足所有四个要求:持久性、全球可解析,加密可验证性和分散性
三、DID的格式
四、DID文件(DID Document)
DID的基础设施是一个全球性可拓展的数据库,其中包括了所有与DID兼容的区块链,分布式分类账或分散式网络。在此虚拟数据库中,密钥是DID,值是 DID文档。DID文档的目的是描述引导所标识的实体的加密可验证交互所必需的公钥,认证协议和服务节点。
DID文档是一个有效的JSON-LD对象,它使用DID规范中定义的DID上下文(属性名称的RDF词汇表)。这包括六个组件(全部可选):
(1)DID本身,因此DID文档完全是自我描述的
(2)一组加密材料,例如公钥,可用于身份验证或与DID主题交互
(3)用于与DID主题交互的一组加密协议,例如身份验证和功能划分
(4)一组服务端点,用于描述与DID主题交互的位置和方式
(5)审计时间戳
(6)可选的JSON-LD签名,用于验证DID文档的完整性。
五、DID算法
定义如何在特定区块链或“目标系统”上创建、解析和管理DID和DID文档是DID算法规范的作用。
DID算法规范通常为特定目标系统定义以下操作:
(1)创建。某些DID算法可以直接从加密密钥对生成DID,其他人可以在区块链上使用交易地址或智能合约。
(2)读。一些DID算法使用可以直接在区块链上存储DID文档的区块链。其他人可能会指示DID解析器根据区块链记录的属性动态构建它们。还有一些人可以将区块链上的指针存储到诸如IPFS或STORJ之类的其它分布式存储网络上的一个或多个部分中的DID文档。
(3)更新。从安全角度来看,更新操作是最关键的,因为DID文档的控制表对实体进行身份验证所需的公钥或证据的进行控制(因此攻击者可以冒充实体)。由于DID文档更新权限的验证只能由目标区块链强制执行,因此DID算法规范必须精确定义如何对任何更新操作执行身份验证和授权。
(4)删除。根据定义,区块链上的DID条目是不可变的,因此在传统的数据库意义上它们永远不会被“删除”,但是,它们可以在加密意义上被撤销。DID算法规范必须定义如何执行此终止,例如,通过写入空DID文档。
六、DID和隐私设计
(1)成对。虽然DID可以用作众所周知的公共标识符,但它们也可以用作基于每个关系发布的私有标识符,因此,与具有单个DID的人(例如手机号码或国民身份证号码)相比,她可以拥有数千个成对唯一的DID,这些DID在未经她同意的情况下无法关联,但仍然可以像地址簿一样轻松地进行管理(身份分身术)。
(2)离线私人数据。在公共区块链上存储任何类型的个人身份信息(PII),甚至加密或哈希都是危险的,原因有两个:1)加密或哈希数据是与多方共享数据时的全局关联点, 2)加密最终是否被攻破(例如,量子计算),数据将永远可以在不可变的公共分类账上进行访问。因此,最佳做法是将所有私有数据存储在链外,并仅通过加密的私有对等连接进行交换。
(3)选择性披露。DID实现的分散式PKI(DPKI)为个人提供了两种更好地控制其个人数据的方式。首先,它允许使用加密的数字凭证共享它;其次,这些凭证可以使用零知识证明加密技术来最小化数据,例如,您可以在不披露您的确切生日的情况下披露您已超过一定年龄。
七、DID和可验证证书(VC)
DID只是分布式身份基础设施的基础层,下一个层次是可验证的凭据,这是数字签名电子凭证的技术术语,符合W3C可验证声明工作组正在开发的互操作性标准。
DID可用于识别可验证凭证生态系统中的各种实体,例如发行人、持有人、主题和验证者,更一般地,DID可以用作人员,设备和组织的标识符
参考链接:
知乎-分散式标识符DID
这篇关于去中心化身份 DID( Decentralized Identifiers)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!