LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > Cdot CTO:技术解读去中心化身份 DID 与 Blockstack

Cdot CTO:技术解读去中心化身份 DID 与 Blockstack

2020-04-07 一块Plus社区 来源:链闻

Cdot CTO 吴逸飞讲解去中心化身份 DID 与 Blockstack 开发相关的问题。

原文标题:《Blockstack Dev 分享 | DID 的前世今生看这篇就够了》
撰文:吴逸飞,Cdot CTO

《Blockstack:从开发入门到技术实战》课程训练营是由一块链习和 Blockstack 共同打造的全球第一档 Blockstack 开发中文实战课程。

每周日晚 8 点,作为课程内容知识拓展——助教技术分享会,由各位第一期的助教们自发轮流在线上进行分享,为学员们详细解读一个 Blockstack 技术相关内容。

昨晚,由 Cdot CTO ——吴逸飞助教在直播间为大家带来第三讲「去中心化身份与 Blockstack 」,内容复盘如下。

去中心化身份(DID)简介

从登陆授权看身份系统的三个阶段

中心化身份管理

每个网站有单独的用户名与密码,同时存储了用户的相应信息。

问题:身份非常碎片化,难以管理;很多平台上重复使用同一组用户名密码,但最薄弱处容易被攻陷。

联盟中心化身份管理

使用第三方授权(如微信、Google 等)登陆,一个账户就可以登陆各种应用,方便用户使用。

问题:账户与个人信息耦合;需要对中心化巨头的信任,但巨头有意无意泄露用户隐私的例子时有发生。

去中心化身份管理

优点:用户可以创建多个身份使用不同的应用;所有身份的所有权都是用户自己;敏感数据加密存储。

问题:还处于建设初期;可能面临私钥丢失等问题(可被改善)

另一个角度:身份互通

联盟中心化身份管理已经告诉我们身份互通的好处,但是还不够。 每次办理签证时需要提交的资料大同小异,但是总是要重复提交。每次办理不同城市的健康码,都要重复填很多信息 & 不同城市的健康码互相不认。

W3C 关于 DID 的规范

文档

DID 草案目前还处于早期阶段,DID 的文档还有很多内容没有完成。这也导致很多的实现其实只能参考这类文档,而同时要自行摸索缺失部分。

概括

DID = 为了能与 DID 主体进行可信的交互而将他与 DID document 相联系的链接。

DIDs are URLs that relate a DID subject to a DID document allowing trustable interactions with that subject.

如果 DID 在分布式账本上注册(Blockstack 就是如此),那么每个人都可以是自己的身份的发行人(?Root CA),整个系统是一个 DPKI(decentralized PKI)。

DID 方法指在特定的分布式账本或网络上创建、读取、更新和注销 DID 以及其对应的 DID document 的机制。

DID methods are the mechanism by which a DID and its associated DID document are created,read, updated, and deactivated on a specific distributed ledger or network.

在这里可以看到当前主要的 DID 方法,其中 did:stack: 对应着 Blockstack 所使用的 DID 方法。

DID 由三个部分组成

DID (URL 标识符)DID 方法标识符DID 方法中所规定的标识符

而该 DID 指向一个 DID document,比如

DID document 包含了这个 DID 的数据,其中包括 Claim (和接下来的 VC 相关)。

VC

参考 Verifiable Credential 的 W3C 规范,VC 主要是用于向 VC 的对象提供断言。比如说学校给你颁发的毕业证,就可以 VC 的形式存在。

我这里讲一下并不属于 DID 的 VC,是因为它和 DID 关系十分紧密。

VC 全过程中包括以下几个参与方:

claim:对一个主体的断言。

credential:某人所做的一组 claim。

verifiable credential :元数据、crendential 和证明(例子:电子身份证)。


一个例子:


整个证明遵循如下流程:

发行 VC在例如数字钱包中存储 VC将 VC 转化为验证者(verifier) verifiable presentation验证者验证 verifiable presentation

而证明一般以比如 JWT 等形式传输,以下是一个 JWT payload 的例子。

Blockstack 中的 DID

W3C 中对 DID 实现的要求

全局唯一具有创建、读取、更新、注销功能

而 Blockstack 实现了创建全局唯一 DID,以及读取(resolve 系统),更新和注销 DID 功能的系统。

创建全局唯一 DID

DID:stack + 比特币地址衍生出的标识符是全局唯一的 DID。

BNS 域名:直接注册到比特币,DID 部分地址 = 比特币地址(对于 p2pkh,开头的 version byte=0,地址以 1 起头)

BNS 子域名:由对应的 BNS 域名收集哈希 batch 并打包注册到比特币,DID 部分地址需要加上 version byte=63,所以 BNS 子域名 DID 部分地址以 S 开头。

读取(resolve)部分的类比

Core 下的文件,例如 https://core.blockstack.org/v1/names/hildolfrx.id.blockstack 相当于 DID -> DID Document

Zonfile/profile.js

有点像 DID Document:

publicKey ? authentication 尽管 publicKey 并不是在根字段。

apps ? service 提供了能够与该用户进行交互的 app 列表。

最后的 signature ? proof,对 DID Document 未被篡改提供的证明。

并且可以理解为用户向应用证明自己身份的 VC JWT,Blockstack 中登陆时的认证其实类似于提供一个 VC (只不过 VC 是由用户自己发行的)。

Blockstack 是一个 DPKI 系统。

思考

DID 的问题

DID 可能会使数据形成孤岛。而实际上分散在各个个用户中的数据很难被有效运行,摩擦可能会特别高。

监管方面的难度加大,行政甚至司法成本显著提高。

对 Blockstack DID 的攻击

Zonfile 的存储商可以在请求时返回一个过时的(但合法的) Zonfile

实现第三方认证

VC 的讲解给出了第三方认证的一个框架。而 Uport 官方给出了一个 Demo,大家可以用手机端 app 体验一下,思考一下 Blockstack 系统中如何实现第三方认证。

来源链接:mp.weixin.qq.com

  • 添加新手交流群:币种分析、每日早晚盘分析
  • 添加虎哥微信,一对一亲自指导:hugelunbi02
  • —-

    编译者/作者:一块Plus社区

    玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

    LOADING...
    LOADING...