微软 DID是一套基于 Azure云服务的分布式数字身份技术架构和基础功能,让解决方案实施商可方便的在不同区块链上实现分布式数字身份整体解决方案。微软是 DIF联盟的重要成员,以标准的开源技术、协议和参考实现为主要目标。

微软 DID的技术架构包括区块链 BAAS服务、注册 DID的 Layer2方法 ION、隐私数据管理模块 Identity Hub,均以 API的形式为开发者提供服务,ION和Identity Hub还提供了开源软件。在未实现的计划中,还包括手机端的身份管理模块。

通过区块链 BAAS服务向不同区块链注册分布式数字身份标识,可以成为广泛使用的中间层,实现 DIF的互联互通目标。

ION方法是 SideTree协议基于比特币网络的实现,用于解决向公有链注册 DID存在的效率低下问题。

Identity Hub为开发者提供了管理用户隐私数据的基础模块。

1.分布式账本

微软 DID的基础设施不依赖于特定的分布式账本。与 Azure区块链服务的设计思想一脉相承,微软 DID依托于 Azure云服务支持多种分布式账本协议,并且注册了基于该分布式账本的 DID操作方法,对开发者隐藏分布式账本的接入细节,提供 Restful API接口。

目前微软 DID支持以下两个 DID操作方法:

Ion-test:注册到比特币测试网络

test:注册到微软数据库同时正在开发对以下三个分布式账本的支持:

比特币正式网络

通过 uport的 DID方法,注册到以太坊

通过 Sovrin的 DID方法,注册到 Sovrin网络

在 DID注册和查询过程中,为解决公链效率低下的问题,微软和 DIF联盟的几个成员发起了 SideTree协议,构建了 L1层公链和 L2层 DID操作的分层架构:

L2层保存了 DID操作的源数据并推送到 IPFS网络,汇聚尽可能多的 DID操作后锚定到 L1层;

L2层的每个“节点”各自与 L1层同步,获取 Sidetree锚定交易后,拉取DID操作源数据。

2.基于 DID的交互 &可验证凭证应用

微软 DID中未提供完整的 DID交互和可验证凭证应用软件,由开发者根据自己需求进行设计。微软 DID主要为开发者提供了 Identity Hub模块,它的目标是为用户存储和管理隐私数据,以增强数据表达能力的“语义数据模型”实现。在DIF的认可下,已发布了第一版开源代码。

与传统的数据存储解决方案相比,Identity Hub具有去中心化的特性:

标准化接口:Hub的实现厂商需要满足标准化的数据存取接口,包括为每个用户的 Hub注册 DID,不同用户的 Hub通过 DID标识符进行互操作。

开源:通过开源代码,鼓励开发者运营自己的 Hub。

Identity Hub支持与用户通过 DID进行点对点的安全通信,遵循 DIDAuth的相互认证和加密传输。

3.微软的DID方案

微软的DID方案可以拆解为三个部分:Sidetree、ION、以及DID,它们分别对应协议层、网络层和应用层,三者属于逐级向上建构的关系。其中ION既是网络层的名称,也是微软这一DID方案的项目名称。我们来进一步解析一下三个部件的特性:
Sidetree
作为协议层,它可以被部署在比特币以及以太坊网络上,据其官方Medium介绍,之后该协议或可被部署于更多种类的区块链网络上。
需要注意的是,目前的微软DID方案中,Sidetree作为协议层,仅被部署在比特币的测试网上,预计接下来的几个月中可能会部署在比特币主网上。
Sidetree的核心功能有如下三项:

  • Sidetree 核心(Sidetree Core)

观测来自目标区块链(就当前的状况而言,这是代指比特币区块链)的传入事务(incoming trasactions), 抓取其观测到的、所有的DID操作(operations),进而验证每一个DID的状态。

  • 内容可寻址存储协议( Content Addressable Storage Protocol)

这一功能类似于IPFS,它将数据在链下存储以减少链上的负担,并允许跨节点的事务传播(transaction propagation across nodes)。

  • 区块链/账本适配器 (Blockchain/Ledger Adapter)

向底层区块链读取和写入DID操作的代码。
ION
微软对ION做出了如下的定义:
ION是一个基于Sidetree协议的开源网络,可以通过将操作写入安全且不可变的区块链(如比特币)来巩固和维护对DID的所有权。
当介绍ION的特性时,其指出ION在具有全球可扩展性的(globally scalable)的同时,还“保有比特币区块链去中心化的特性“( “while inheriting and preserving the attributes of decentralization present in the Bitcoin blockchain.” )。
需要指出的是,作为Layer 2,ION不受限于一层的比特币区块链的吞吐量限制。据悉,其上的TPS是”成千上万“的("tens of thousands of operations" per second)。
此外,ION还涉及一些需要付费的事项。当ION的节点想要将事务锚定到比特币区块链(anchoring transactions to the Bitcoin blockchain)时,他们需要付费。
一般来说,这一部分费用会被转嫁至终端用户那里。据微软去中心化身份事务的高级副总丹尼尔.布什(Daniel Buchner)测算,一项包含3万个操作的事务,每个用户需要付出的手续费为0.0003美元。
丹尼尔进一步补充道,未来微软可能使用自己的节点来运行ION,这样就可以给终端用户免除这部分费用了。而包括Casa、Equnix、Learning Machine、Civic、Cloudflare等公司,也都对运营ION节点表示了兴趣。
DID

Decentralized IDentity去中心化身份,简称DID,相对于传统的基于PKI的身份体系,基于区块链建立的DID数字身份系统具有保证数据真实可信、保护用户隐私安全、可移植性强等特征,其优势在于:

  • 去中心化:基于区块链,避免了身份数据被单一的中心化权威机构所控制。
  • 身份自主可控:基于DPKI (分布式公钥基础设施),每个用户的身份不是由可信第三方控制,而是由其所有者控制,个人能自主管理自己的身份。
  • 可信的数据交换:身份相关数据锚定在区块链上,认证的过程不需要依赖于提供身份的应用方。

要理解DID,不妨将其一分为二:

  1. 唯一标识符。( a unique identifier)
  2. 相关的DID文档。(an associated DID Document)

前者充当着后者的标签,后者则包含诸如DID可以授权什么,以及在哪些服务中,DID可以被使用等信息。需要注意的是,DID文档中不直接包含任何个人信息(姓名、地址、电话等)。

DID标识:

DID标识是一个特定格式的字符串,用来代表一个实体的数字身份,这里的实体可以是人、机、物。DID标识的格式为:

前缀did:是固定的,表示这个字符串是一个did标识字符串。
中间的example被称为DID方法,就是用来表示这个DID标识是用哪一套方案(方法)来进行定义和操作的。这个DID方法我们可以自定义,并且注册到W3C的网站(https://w3c.github.io/did-spec-registries/#did-methods)中。
最后面的部分是在该DID方法下的唯一标识字符串。比如我们做了一个DID系统,我们把方法就起名叫cid吧,想把中国公民的身份证信息都DID化,那么我的DID标识就是:
did:cid:5111**************5
这里我们就使用身份证号码作为cid这个DID方法下的唯一标识。

DID文档:

每一个DID标识都会对应一个DID文档(DID Document)。这个文档就是一个JSON字符串,里面一般会包含如下信息:

  • DID主题

DID标识符本身,也就是DID文档所描述的该DID。由于DID的全局唯一特性,因此在DID文档中只能有一个DID。

  • 公钥

公钥用于数字签名及其他加密操作,这些操作是实现身份验证以及与服务端点建立安全通信等目的的基础。如果 DID 文档中不存在公钥,则必须假定密钥已被撤销或无效,同时必须包含或引用密钥的撤销信息(例如,撤销列表)。

  • 身份验证

身份验证的过程是 DID 主题通过加密方式来证明它们与 DID 相关联的过程。

  • 授权

授权意味着他人代表 DID 主题执行操作,例如当密钥丢失的时候,可以授权他人更新 DID 文档来协助恢复密钥。

  • 服务端点

除了发布身份验证和授权机制之外,DID 文档的另一个主要目的是为主题发现服务端点。服务端点可以表示主题希望公告的任何类型的服务,包括用于进一步发现、身份验证、授权或交互的去中心化身份管理服务。

  • 时间戳

文档创建时间和更新时间

以上信息并不是必须有,不过一般我们建议包含。我们来看一个具体的DID文档示例:

{
"@context": "https://w3id.org/did/v1",
"id": "did:example:123456789abcdefghi",
"authentication": [{
// 本DID文档对应的DID标识
"id": "did:example:123456789abcdefghi#keys-1",
"type": "RsaVerificationKey2018",
"controller": "did:example:123456789abcdefghi",
//本DID对应的公钥信息
"publicKeyPem": "-----BEGIN PUBLIC KEY...END PUBLIC KEY-----\r\n"
}],
"service": [{
// 获取本DID对应的VC的服务接口
"id":"did:example:123456789abcdefghi#vcs",
"type": "VerifiableCredentialService",
"serviceEndpoint": "https://example.com/vc/"
}]
}

个人觉得DID文档中最重要的就是公钥信息,这是我们接下来要进行VC和VP验证的基础。

我们一般是把DID标识作为Key,把DID文档作为Value存储到区块链中,利用区块链不可篡改、共享数据访问的特点,实现接下来在验证身份时能快速访问获取可信数据。

Sidetree、ION、DID这三项功能组合后的方案又如何发挥作用呢?不妨以具体的场景来理解:
以微信为例,目前用户使用各类互联网服务,往往都会直接选择微信的第三方登录/注册,以统一身份,免除逐个平台账号登录/注册的麻烦。
但这里的隐含问题是,微信可以对你的头像、ID、昵称等信息保有所有权,最近的案例是用户使用微信注册&登录“飞聊”后,相关的信息被申明为“微信所有”,不得在其他平台使用。更严重的的情况可能是,微信或许会关停你的账号,这可能使你所用用类似方法注册的服务都无法使用。
DID引入后,情况可能会转变为,微信可以关停你的账号,但是你的ID、昵称、头像等信息依然可以使用,依靠这些信息的其他平台服务也一样可以继续使用。换言之,身份信息的控制权被转交到了用户手中。
目前 , 微软这一项目已经开源运作,相关代码也已经公开在了Github上。

https://github.com/decentralized-identity/ionhttps://github.com/decentralized-identity/ion
据Cointelegraph,微软对这一DID方案颇有野心,准备将其推向数十亿人口与设备(Specifically, the company aims to create an ecosystem where “billions of people and countless devices),但其面临着不少现实的阻力。

分布式数字身份项目——微软DID相关推荐

  1. Hyperledger Indy项目(开源去中心化身份平台)、去中心化身份(DID)、分布式数字身份项目

    文章目录 一.Hyperledger Indy 1. 什么是Hyperledger Indy 2. 名词概念 3. Indy实现独立的数字身份 4. Indy如何验证数字身份 5. 使用案例 Kiva ...

  2. 分布式数字身份:通往未来的钥匙?

    "身份"是每个人出生就伴有的印记,根据时空的不同,人们拥有不同的身份属性,而人们的身份属性存在着唯一的证明关系.身份认同是组织形成的必要条件,在现实世界中,通常通过物理介质以卡片化 ...

  3. 分布式数字身份DID调研

    分布式数字身份DID调研 1.分布式数字身份 ​ 分布式数字身份不止是人,包括组织,甚至未来也包括物品. 1.1数字身份标识 数字身份通常由身份标识符及关联的属性来表示,分布式数字身份包括:分布式数字 ...

  4. 分布式数字身份 —— 从创建一个Weidentity数字身份开始

    分布式数字身份--创建一个Weidentity数字身份 前言 DID Weid 前置环境准备 基础配置 FISCO BCOS 链 部署 Weidentity 合约 部署 Weidentity Rest ...

  5. 分布式数字身份《DIDA白皮书》

    1 行业现状 分布式数字身份诞生之前,人们的身份信息其实或多或少已经数字化,但数字化不意味着网络化.可信任,以及可以便捷且合法合规的互联互通. 1.1 现有数字身份的痛点 互联网应用的数字身份以用户名 ...

  6. 为什么分布式数字身份是未来?|荷月科技加入分布式数字产业联盟

    8月18日,分布式数字身份产业联盟(DID-Alliance,简称DIDA)第一届理事会第一次理事会议以线上视频的方式成功召开.DIDA理事会员单位出席会议,会议由DIDA秘书长吴彼主持.会议表决会议 ...

  7. 「区块链+数字身份」:身份认证的新战场,让子弹再飞会儿

    作者:李小平 美国经济学家布莱恩•阿瑟在其著作<技术的本质>中,写过这么一句话:「技术总是进行着这样一种循环,为解决老问题去采用新技术,新技术又引发新问题,新问题的解决又要诉诸更新的技术」 ...

  8. 「区块链+数字身份」:DID 身份认证的新战场

    美国经济学家布莱恩 • 阿瑟在其著作<技术的本质>中,写过这么一句话:「技术总是进行着这样一种循环,为解决老问题去采用新技术,新技术又引发新问题,新问题的解决又要诉诸更新的技术」. 区块链 ...

  9. Web3 的通行证——DID 带来数字身份革命

    互联网时代的变迁一路向前,Web1 时期的"只读"让用户是信息的接收方和消费者,Web2 时期的"可读写"让 UGC 带来了浪潮,全民创作的权限促进了百花齐放的 ...

最新文章

  1. __new__ __init__区别
  2. 2021-08-04 jpg和png批量转化8位到24位,相互转化!
  3. 基于张量分解和关系约束的多种类型的MicroRNA-疾病预测
  4. FLASH开发[00]
  5. ed是什么梗_花泽香菜不笑了什么梗怎么回事?花泽香菜为什么是宅男女神?
  6. Spring IOC-BeanFactory的继承体系结构
  7. django-后台管理-控件相关
  8. mysql myisam commit_mysql autocommit对myisam,innodb的性能影响
  9. Android之断点续传下载(转)
  10. python的精髓_思维python2e的学习精髓(4):案例研究界面设计,ThinkPython2e,精粹,四,接口...
  11. Java Lambda
  12. 计算机管理用户u,discuz+uclient 手动提升普通用户至管理员权限网站安全 -电脑资料...
  13. 电子邮件的收发及传输过程解析
  14. 大漠插件最新版7.2111
  15. JavaFx之Ikonli图标库大全(十五)
  16. 自定义控件学习笔记(三)Paint详解
  17. 《缠中说禅108课》44:小级别背驰引发大级别转折
  18. 如何利用Java进行高效的彩信群发
  19. 微信公众号新变动!你都发现了吗?
  20. 微信小程序 - 搜索历史记录功能(纯前端)

热门文章

  1. oracle关键字plus,详细介绍ORACLE sqlplus命令 - jack198409的个人空间 - ITPU...
  2. eclipse for PHP运行项目PHP版本过高无法启动服务问题解决
  3. openstack上win7实例
  4. 【笔记】1、防止电压反充电,2、前后加速,3、开口三角PT(TV)原理
  5. 气象站:处暑至热未止,从事不同行业的人们应该如何预知天气变化
  6. 植物大战僵尸游戏道具或参数的属性-植物大战僵尸免费版提供下载
  7. 领导力:不要做个“好人”
  8. Maven系列第五讲 私服讲解
  9. 【56期分享】4款毕业答辩PPT模板免费下载
  10. 在idea中鼠标光标变成了小手