Sidetree - 去中心化身份管理协议

身份(Identity)管理是区块链 应用的核心元素。在一个不可信、匿名的分布计算生态中, 要实现去中心化身份管理并不是一件容易的事情。Sidetree是一个基于现有 区块链平台的第二层(L2s)协议,专门用于去中心化身份管理。微软最新开源 的ION项目,就是Sidetree协议基于比特币区块链的一个实现。 本文将分6个部分介绍Sidetree去中心化身份管理协议:DID的核心要素、 Sidetree协议的起源、概述、工作原理、设计约束与实现进展。

1、去中心化身份管理的核心要素

去中心化身份管理的挑战并不是单一模块的问题。 在去中心化应用(DApp)中,一个身份的生命周期中,有一些需要考虑的关键因素:

did key elements

  • 表示:用来描述主体身份的可迁移表示
  • 持久化:用来存储、提取主体身份的机制,同时还需要保持其隐私
  • 隐私:在去中心化账本中保护主体身份的模型
  • 断言: 确定主体身份的特定语句
  • 解析:解析、验证特定主体身份的机制

2、Sidetree协议的起源

2017年,去中心化身份组织(DIF)的一些成员开始讨论如何在全球级别实现 去中心化身份系统。对于大多数去中心化身份系统而言,最下面的一层是 区块链/账本,被称为第一层或L1,用来以某种形式支持去中心化的公钥体系 (Decentralized Public Key Infrastructure)以及W3C去中心化身份(DIDs:Decentralized Identifiers)。

区块链的的可伸缩性不是小问题,但是目前已经存在一个有前途的思路来解决基于 区块链的系统的伸缩性问题:第二层协议或L2s,例如:状态通道、侧链和比特币 闪电网络。L2s通过确定性(Deterministic)处理与交易方案来实现可伸缩性,这些交易是在区块链 之外完成的,只需要在与所依托的底层区块链交互时进行极少的共识处理。

要实现去中心化身份管理,就需要一个大规模运行的系统,同时具备一些核心特性,例如 确定性状态解析以及差分持久化。在过去的18个月中,IDF成员间的思想交流最终 形成了一个完整的第二层协议:Sidetree

区块链开发课程精选

3、Sidetree协议概述

Sidetree协议本身并不是去中心化身份(DID)方法,它由一组代码层级的组件构成, 包括确定性处理逻辑、内容寻址存储抽象以及可以部署到第一层的去中心化账本(例如:公有链) 上的状态验证过程,从而实现无需许可的、第二层DID网络。通过使用特定链相关的适配器, Sidetree协议可以用来在不同的链上创建不同的第二层去中心化身份网络,这些特定链 的适配器负责实现与底层区块链的读写交互。

无论底层采用哪种区块链,Sidetree协议的几乎所有实现代码都保持一致,这使得 它可以适用于多种区块链平台。下面是Sidetree系统的总体结构,以比特币作为目标 区块链,不过如前所述,这也适用于其他区块链:

sidetree arch

Sidetree协议基于一组模块化组件实现,最重要的包括:

  • Sidetree内核 / Sidetree Core : Sidetree内核是主要的逻辑模块,它监听来自底层区块链的交易输入,并使用CAS模块(下面介绍) 提取其中的DID操作,然后组合/验证每个DID的状态。

  • 内容寻址存储 / Content Address Storage : CAS(Content Address Storage)模块是一个基于哈希的存储接口,网络中的第二层节点使用该接口 来交换彼此识别的DID操作批次,以便进行本地持久化和网络传播。该接口抽象自所使用的特定CAS协议, 但是值得指出的是,DIF成员已经为此功能选择了IPFS。

  • 区块链/账本适配器 / Blockchain/Ledger Adapter : 适配器中包含了任何需要读写特定区块链的代码,以便解除Sidetree主体对特定区块链的依赖。不同 的底层链需要分别实现不同的适配器。

4、Sidetree协议工作原理

基于Sidetree的L2节点按如下步骤来创建、读取和处理DID操作:

  1. 要将批操作写入基于Sidetree的L2网络的节点首先汇集尽可能多的DID/DPKI操作(基于确定性协议规则 确定的上限),然后创建一个L1链上交易并在交易中嵌入该操作批次的哈希。

  2. DID操作的源数据由发起节点本地存储,并推送到IPFS网络。当其他节点获知嵌入Sidetree操作的底层链 交易后,这些节点将向原始节点或其他IPFS节点请求该批次数据。

  3. 当一个节点收到某个批次后,它会将元数据固定到本地,然后Sidetree核心逻辑模块解压批次数据来 解析并验证其中的每个操作。目标链的区块/交易体系是Sidetree协议唯一需要的共识机制,不需要额外的 区块链、侧链或咨询权威单元来让网络中的DID达成正确的PKI状态。

下面是关于批次与操作嵌入目标区块链的更详细的示意图:

embed

5、Sidetree协议的设计约束

Sidetree协议在设计时做出了一些关键的假设:

  1. DIDs不可转让,协议没有提供一个逻辑实体转让、购买或获取其他逻辑实体的DID的途径。这对于DID/DPKI 用例是可行的,但是不适用于资金的双花(double spend – 讨厌这个名词的翻译,一种轻佻的感觉)。

  2. 可以延迟揭示嵌入的批次数据,基于确定性规则集进行处理。

  3. DID状态彼此独立,依次一个DID的持有者智能影响它自己的DID的状态。

6、Sidetree协议的实现进展

目前在DIF成员中,有两个团队分别使用Sidetree协议为比特币和以太坊开发L2层的去中心化身份网络。微软主要聚焦于 比特币网络,而Transmute Industries则与ConsenSys合作在开发以太坊版本。你可以在这里 查看微软ION项目的实现代码。


原文: The Sidetree Protocol: Scalable DPKI for Decentralized Identity

汇智网 / Hubwiz.com 翻译整理,转载请标明出处。