原文标题:《Blockstack Dev 分享 | DID 的前世今生看这篇就够了》 《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 —- 编译者/作者:一块Plus社区 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
Cdot CTO:技术解读去中心化身份 DID 与 Blockstack
2020-04-07 一块Plus社区 来源:链闻
- 上一篇:受数字货币性质困扰的日本数字资产调查
- 下一篇:4月7日行情分析向上游泳的火腿
LOADING...