文章目录

  • 去中心化身份(Decentralized ID, DID)介绍
    • 1. 背景与现状
      • 1.1 关于去中心化身份(Decentralized ID, DID)
      • 1.2 Decentralized IDentity(DID)现状
    • 2 W3C DID 标准
      • 2.1 DID 规范
      • 2.2 可验证声明
    • 3 uPort项目
      • 3.1 uPort App
      • 3.2 uPort是如何运转的
      • 3.4 DApp如何使用uPort

去中心化身份(Decentralized ID, DID)介绍

DID可以说是区块链领域一个偏冷门的方向,但是其实它看上去有不小的价值的。

1. 背景与现状

1.1 关于去中心化身份(Decentralized ID, DID)

去中心化身份(Decentralized ID, DID)介绍
参考URL: https://blog.csdn.net/treaser/article/details/99004355

中心化身份 => 联盟身份 => 中心化身份(DID)

一开始的数字认证始是中心化的,比如ICANN管理的域名与IP地址分配,以及PKI(Public Key Infrastructure)系统中的CA(Certificate Authority)证书机构管理的数字证书。

中心化身份系统的本质就是,中央集权化的权威机构掌握着身份数据,因为围绕数据进行的认证、授权等也都由中心化的机构来决定。身份不是由用户自己控制的。

而且不同的中心化网站(比如淘宝、知乎、豆瓣等等)上有一套自己的身份系统,所以都需要你重新注册一个账户。而不同网站自己用的身份系统(及账户对应的数据)之间是不互通的。

为了解决这个问题,不同的网站自己联合起来推出了联盟身份(这个概念是首先由微软在1999年提出的)。在联盟身份体系下,用户的在线身份有了一定的可移植性。如今的不少网站注册都可以支持第三方登录,比如微信、QQ、新浪微博等。

在联盟身份提出后,身份系统就开始走向去中心化了。期间也有很多去中心化的标准、方案出现,比如OpenID。其实就算是一些网站支持的微信、QQ第三方登录,其用户体验也不是很好,而且往往还是需要你用手机号 + 验证码进行注册的。

综上所述,中心化身份主要的问题就是两个,一是个人并不是真正意义上拥有自己的身份,二是身份无法互通。

1.2 Decentralized IDentity(DID)现状

DID可以说是区块链领域一个偏冷门的方向。目前只有很少的团队在研究DID,开发的项目也不多,屈指可数,而关于DID行业的研究报告也几乎没有(只找到一份)。DID的热度和扩容、跨链、DeFi这些热门概念是无法相比的。但是其实它看上去有不小的价值的,微软布局DID或许就是从侧面说明了这点。

基于区块链或者说是分布式账本(DLT)技术的DID有望解决前面提到的问题。

(1)标准
目前(2019年)已经提出的标准主要有:

  • W3C的DID标准:A Primer for Decentralized Identifiers (https://identity.foundation/#about)
  • DIF(Decentralized Identity Foundation)的DID Auth:DIF官网(https://identity.foundation/#about)

接下来以W3C的DID标准以及以太坊ETH上的实际项目uPort进行简要分析。

(2)项目
目前已经有的比较知名的DID项目有:MicrosoftDID、Sovrin、uPort、Evernym、Civic、ShoCard。


微软DID: https://www.microsoft.com/zh-cn/security/business/identity/own-your-identity
uPort: https://www.uport.me/

2 W3C DID 标准

去中心化身份标识(Decentralized Identifier,DID)是一种新类型的标识符,具有全局唯一性、高可用性可解析性和加密可验证性。DIDs通常与加密材料(如公钥)和服务端点相关联,以建立安全的通信信道。DIDs对于任何受益于自管理、加密可验证的标识符(如个人标识符、组织标识符和物联网场景标识符)的应用程序都很有用。例如,当前W3C可验证凭据的商业部署大量使用DIDs来标识人员、组织和事物,并实现许多安全和隐私保护保证。

W3C的DID标准下的DID系统主要包括以下层次要素:

  1. 基础层:DID规范
    DID标识符(Identifier)
    DID文档(Document)
  2. 应用层:可验证声明
    可验证声明(Verifiable Claims 或 Verifiable Credentials,本文接下去都简称VC)

2.1 DID 规范

DID标识符,是一个全局唯一的表示你身份的东西,就像你的身份证号码一样。其形式大致如下:


DID示例:did:eth:123456789abcdefg

DID标识符不容易记忆。根据Zooko三角形理论,没有任何标识符能够同时实现易记忆、安全、去中心化。在这里,W3C的DID取了后两者。

DID Infrastructure是一个全局键值对数据库,这个数据库要么是某个DID兼容的区块链,要么是某个DID兼容的分布式账本,或者是某个DID兼容的去中心化网络(其实这个数据库的位置就是DID标识符中的example字段,目前已经有非常多的合法地址 https://w3c.github.io/did-spec-registries/#did-methods )。在这个数据库中,DID标识符是键,而DID文档是值。

DID文档是一个JSON-LD Object,包括6个部分(都是optional的):

  1. DID标识符。
  2. 一个加密材料的集合。比如公钥。
  3. 一个加密协议的集合。
  4. 一个服务端点的集合。
  5. 时间戳。
  6. 一个可选的JSON-LD签名。用来证明这个DID文档是合法的。

这里需要注意的是,DID文档中没有任何和你个人真实信息相关的内容,比如你的真实姓名、地址、手机号等。因此光靠DID规范是无法验证一个人的身份的,必须要靠DID应用层中的VC。

2.2 可验证声明

W3C认为前面的DID规范是基础,而把可验证声明视作是next higher layer,并认为这一层才是建立DID整个体系的价值所在。 因为在这个应用层中,DID既可以用来标识个体的身份、也可以用来标识组织的身份,甚至标识物品的身份(言外之意是不仅可以改变当前的互联网,还可以改变物联网?)。

接下去我将可验证声明简称之VCVC有点类似于数字签名,要是实现数字签名,需要有PKI体系。这里要实现VC也是一样,需要用一套系统来支持它。在VC的这套系统中,有以下几种参与者(列出了其功能):

  • 发行者(Issuer):拥有用户数据并能开具VC的实体,如政府、银行、大学等机构和组织。
  • 验证者(Inspector-Verifier,IV):接受VC并进行验证,由此可以提供给出示VC者某种类型的服务。
  • 持有者(Holder):向Issuer请求、收到、持有VC的实体。向IV出示VC。开具的VC可以放在VC钱包里,方便以后再次使用。
  • 标识符注册机构(Identifier Registry):维护DIDs的数据库,如某条区块链、分布式账本(差不多就是前面提到的DID里的example字段)。

之所以需有Identifier Registry,是因为IV要验证VC,也要验证用户。验证VC用VC和发VC的Issuer,验证用户用DID和存DID的数据库。

因为DID对应的DID文档里没有用户的真实信息,所以当用户进行某个操作时,网站需要用户出示证明。比如,要求你证明“我XXX年龄已经大于18周岁”。这个时候你就需要Issuer帮你发出(并签名)这样一个VC给网站,网站做作为Inspector就可以进行验证。验证之后你可以进行操作了。

这里有一点要注意,那就是Issuer只需要给出你是超过18岁的VC,而不需要给出你的生日是多少的的VC,前者泄露你更少的信息。最理想的VC应该是一个回答是否的回复,而不是回答多少和什么的回复。这样能泄露最少的信息给IV。

这里讲讲IV该如何来验证VC。因为VC中是没有Issuer的公钥的(也不应该有,因为就算有了,IV还是得亲自验证公钥是否是真的)。这里VC的id是一个URI,而VC中的Issuer字段也是一个URI。而Issuer也可能是使用DID来作为其身份的。因此通过VC中的Issuer字段——URI地址得到其DID,然后从DID对应的DID文档里就可以得到其公钥了。用公钥验证对VC的签名就能验证VC是否Issuer发的。

当然IV验证用户的方法也是如此:用Holder(即用户)的DID对应的DID文档里的公钥来验证其数字签名的合法性。

3 uPort项目

uPort是用于构建以用户为中心的去中心化应用的工具和协议的集合。它建立在开放标准和开放源代码库之上。 ——uPort官网

uPort项目方认为,一般的DApp用起来有诸多局限,用户的使用门槛较高:

  1. 你必须下载一个钱包
  2. 理解和钱包、密钥有关的各种概念
  3. 你必须申请一个对应的区块链上的账号
  4. 你必须购买一些平台币,比如ETH上必须买ETH来支付交易gas、EOS上必须买EOS来抵押CPU、RAM、NET资源。
    • 需要一个交易所来买入加密货币,因此需要注册一个交易所账户,还需要弄懂加密货币的交易所其实和证券交易所是有所不同的
    • 需要付费购买。不像其他互联网服务一样是免费的
  5. 理解区块链、P2P网络的各种概念

其实以上就是去中心化身份相比于中心化身份的缺点(优点在前面早就讲过了哈)。因此uPort的目标就是解决这些问题,解决这些问题,去中心化身份才会真正便利于用户。

值得一提的是,uPort是尽可能符合W3C制定的关于DID的标准的。 这里需要说明的是DID完全还是区块链行业中,或者说是Web3生态中处于萌芽状态的事物,**W3C的标准也只是v0.13,标准还处于完善之中。**因此,作为已经在开发产品的uPort其实在使用DID的一些情况下,W3C DID标准可能是还没有相应的Spec,或者是和实际情况不符的。因此uPort此时必须自己想出解决方案。

3.1 uPort App

uPort现在已经有一款移动端的产品了,名字也叫uPort。如下图片所示。
uPort App类似于一款加密货币的钱包,你需要现在这个App上注册一下,注册完了之后你会有一个uPort ID,这个uPort ID(上图最左)其实就是由DID + 以太坊账户组成的。而且看山去骨DID后面的几位是和你你以太坊账户的数字一样的

一个uPort账户关联了以下内容,这些内容都在uPort App中显示出来了:

  • 一个uPort ID:包括一个DID和一个ETH Mainnet Address
  • 个人基本信息:可选填Name、Email、Country、Phone四个字段,其中Name是你在申请账号时必填的,自己任取
  • Credentials:Credentials就是在W3C标准里提到的Claims,就是VC。前面说了VC被Issuer发了以后,Holder可以存在自己的钱包里,等下次用的时候直接出示,而可以省去让Issuer重开的成本。uPort App自然可以帮你存储VC。
  • 其他辅助信息:如账号的二维码、账户头像等等

3.2 uPort是如何运转的

当你开始使用uPort App后(也就是你已经有一个uPort账户了),当你使用某个支持uPort的DApp时,你就可以使用uPort账户来登录。如果这个DApp需要你出示一些证明,你就可以用uPort来帮你把存在uPort账户里对应的VC发给DApp。这和你要进行加密货币交易是,拉起钱包来帮你进行交易签名类似。一个VC就像一个对交易的数字签名。

当然,VC需要事先备在你的uPort账户。获取VC到uPort账户的流程是:用户上传证明材料到uPort账户,比如证明驾驶证的照片。然后uPort作为代理去Issuer出示证明材料,获取VC到你的uPort账户进行关联。

因此uPort运行起来最重要的当然是要有Issuer的支持。Issuer必须支持和uPort的合作。试想某个网站要求Holder出示驾驶证的证明。就算用户真的把驾驶证拍照作为VC上传到uPort账户上,作为IV也无法通过照片来验证,VC是Issuer发的,因此必须由Issuer来告诉IV如何正确验证VC。

3.4 DApp如何使用uPort

首先说一下DApp对uPort支持的现状,uPort作为ETH上的DID服务提供者之一,一般肯定是服务于ETH上的DApp的。而使用DID的DApp非常少,并且DID也不是ETH上热门之物 —— 在2018年以太坊的全年总结之中也没有提到DID的任何内容。所以实际是支持uPort的DApp应该是很少了。

去中心化身份(Decentralized ID, DID)介绍相关推荐

  1. 去中心化身份一般见解

    摘要 DID现在一般是"去中心化身份"(Decentralized Identity)的简称,它是一种没有中心化机构做最终担保的数字身份,是Web2"用户画像" ...

  2. 聊聊微软刚发布的区块链去中心化身份识别系统DID

    这两天区块链技术圈都在讨论微软发布的去中心化身份识别系统 DID (1),微软的 DID (Decentralized IDs)是一线大型互联网公司首次公开拥抱去中心化技术,虽然有传闻说 facebo ...

  3. Web3 元宇宙去中心化身份系统的未来

    在进入 Web3 中的 Getaverse 和加密世界中的 Metaverse 的角色之前,让我们先看看一些基本的想法,它们将为我们将要讨论的内容奠定基础."metaverse"和 ...

  4. 苹果WWDC前瞻之iOS 13更新最受关注;微软发布基于区块链的去中心化身份识别系统;小米成立了新集团质量办公室……...

    关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...

  5. 关于去中心化身份的一点思考

    我认为目前使用第三方的服务的关于身份的三种情况: 1:不需要身份,随意使用,比如不需要账号就可以上B站浏览视频,享受B站提供的视频服务. 2:可以是比较随意的账号身份,你可以随便注册一个账号,不填写身 ...

  6. 西部世界又一发现:ION—存储在IPFS上的去中心化身份服务

    近日,西部世界据IPFS官方周报报道,微软宣布推出ION v1.0去中心化身份服务,并将数据存储在IPFS上.自2019年以来,IPFS一直在与ION展开合作,支持ION使用IPFS存储数据.ION的 ...

  7. a16z:如何建设基于声誉的去中心化身份系统? |链捕手

    随着Web3概念以及ENS等项目的影响力逐渐扩大,去中心化身份及Web3 信誉系统也引起越来越多的关注. 近日,a16z官网发布了由哈佛商学院副教授Scott Kominers与Koodos联合创始人 ...

  8. 基于区块链的去中心化身份技术有哪些应用前景?

    在当前数字化世界中,数据隐私安全的重要性不言而喻.随着区块链技术的兴起,基于区块链的去中心化身份(Decentralized Identity,以下简称"DID")逐渐成为技术社区 ...

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

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

  10. 聊聊ADAMoracle去中心化预言机网络服务介绍

    聊聊ADAMoracle去中心化预言机网络服务介绍. 去中心化的预言机将让开发者有能力使用任意数量的预言机为智能合约提供服务,可以避免单点故障,以及降低中心化预言机作恶带来的损失.因此,可靠的去中心化 ...

最新文章

  1. 妙用vector:根据第一个不等的元素比较两个序列大小的利器
  2. 性能测试应用领域分析
  3. 一次Redis client组件性能分析
  4. 数据结构分类概述【转载】
  5. .NET Framework 工具下载
  6. 杭州有那些APP外包公司?
  7. Android第三十二期 - 辅助类Android
  8. MEGA视频目标检测
  9. Vue中点击复制文本功能
  10. UT000054: The maximum size 1048576 for an individual file in a multipart req
  11. docker运行rabbitmq
  12. 代码坏的味道17:狎昵关系 (Inappropriate Intimacy)
  13. springboot+Elasticsearch实现word,pdf,txt内容抽取并高亮分词全文检索
  14. 涂涂乐的详细实现之三--文件IO操作
  15. Swift 学习总结三:数组,字典,枚举,闭包, 函数
  16. Ubuntu18.04/20.04 上微信中文显示为方块状乱码的解决方案( Deepin-Wechat )
  17. 如何安装正版的Xmanager
  18. hbase安装配置 整合到hadoop
  19. element 修改分页样式_vue想改变element分页样式
  20. 随笔 - 《为什么你在淘宝搜索的东西,会出现在抖音广告里?》-20201210

热门文章

  1. “少数者”的红衣服(博弈论的诡计)
  2. 007企业网络监控软件下载帮你看家
  3. 【国旗迷】世界各国国旗国徽国歌大全 flags.lantianye3.top
  4. Oracle EBS User Guide - URL
  5. Access 2003中文版即学即会视频教程(下)
  6. LTE学习笔记 ——E-RAB
  7. 增量式PID到底是什么?
  8. 做公众号,这些事别去碰,碰就是死
  9. [呼吁]用奶粉代替母乳是误区
  10. 做互联网不要把自己看得太高