第3部分 原理篇2去中心化数字身份标识符(DID)(2)

3.2.2. DID相关概念

3.2.2.1. 去中心化标识符 (Decentralized identifier,DID)

第3部分 原理篇2去中心化数字身份标识符(DID)(2)

本聪老师:DID有两个含义,一是Decentralized identity,就是去中心化身份,是广泛意义的DID。另外一个是Decentralized identifier,是去中心化标识符,是指对应现实世界某个实体(entity)的全局唯一的id号。

小明:是,经常听到DID这个词,感觉更多是指去中心化身份。

本聪老师:对,DID出现在不同的语境中会分别对应不同的含义。为了区分,本书中提到的去中心化身份称为DID,将后者称为DID标识符。

本聪老师:我们接下来看下DID标识符的形式和组成部分(图3-3):

第3部分 原理篇2去中心化数字身份标识符(DID)(2)

图3-3DID标识符

小天:看起来DID标识符组成包括3部分:Scheme、DID Method及其特定字符串。

本聪老师:对。第1部分称为scheme identifier,方案标识符。这里的did是固定不变的,用于区别身份标识符所属的不同方案,表明这个身份标识符遵循DID的规范,并且兼容所有遵循DID规范的系统。

小天:也就是说,看到一个身份标识符开头是DID,就能明确它是遵从DID规范所生成的DID标识符。

本聪老师:是的。第2部分example称为DID Method identifier,用于说明这个身份标识符采用的是遵循DID规范的具体哪个方法(我们可以理解为自治域)。DID Method一般会由搭建DID平台的组织机构自己定义,比如组织机构名称或简称,然后到W3C网站(https://w3c.github.io/did-spec-registries/#did-methods)去注册就可以。我们后面会详细介绍一下DID方法。

小云:W3C这些国际组织只规划设计DID相关规范,具体的实施部署是由这些方法运营商根据规范进行实现的。

本聪老师:对,这是DID去中心化体现的一方面吧。最后第3部分的字母数字组合就是特定DID方法中代表特定实体身份的一个唯一标识字符串。

小天:我理解由DID标识符这三部分形成的一个DID标识符一定是全局唯一的ID标识符,它就是对应主体的唯一数字身份。

本聪老师:对。一个DID标识符,形如did:ytm:653ca82******45d85a47代表含义就是说这个身份标识符遵循数字身份标识符的DID方案,存在于ytm方法中,具备某个唯一id。对照下面的图3-4URN规范,就能更好理解了。

第3部分 原理篇2去中心化数字身份标识符(DID)(2)

图3-4URN规范

小天:我理解DID标识符就像公民身份证号码,是现实世界中的实体身份映射到数字世界身份的一个编号。

本聪老师:可以这么理解。我们再深入思考一下,DID标识符和人之间是一一对应吗?

小明:一个人需要有多个数字身份吗?我觉得当然需要。我是这么理解,每个人的身份证号码只有一个,是国家政府为了管理方便强制要求的。但是在商业社会,不同的应用场景会存在不同的需求,就像一个人会有多个银行的银行卡一样,每个银行卡的id编号就类似与一个DID标识符,主要是用于不同的用途。

本聪老师:我赞同小明的理解。还有个问题,DID标识符只是一个id编号,除了表示人的数字身份,还可以与现实世界哪些实体有关系呢?

3.2.2.2. DID主体 (DID Subject)

本聪老师:根据W3C《DID规范 v1.0》中的说法:“任何东西都可以是 DID 主体:人、团体、组织、物理事物、数字事物、逻辑事物等。”也就是说除了人之外,DID标识符可以与现实世界的一切进行映射,只要其数字身份有价值。

小明:这极大拓展了DID标识符的想象空间。可以想到的有商业公司、学校、社会机构。

小天:还有设备物资、固定资产。

小云:还有知识产权类的艺术作品、文学著作,甚至是品牌。

本聪老师:大家发散一下就能想到许多使用场景。

3.2.2.3. DID URL

本聪老师:还有一个概念是DID URL。DID URL 是特定资源的网络位置标识符,其中包含DID标识符,它扩展了基本 DID 的语法以包含其他标准组件,增加路径(path)、查询(query)和片段(fragment)等参数,可以定位特定资源,例如,DID 文档内的加密公钥,或DID 文档以外的资源。一般业务场景中会大量使用DID URL这种形式,可用于检索 DID 主体、验证方法、服务、DID 文档的特定部分或其他资源的表示形式。

它的语法形式是:did-url = did path-abempty [ “?” query ] [ “#” fragment ]

小明:似乎没看明白。能举几个例子吗?

本聪老师:好的。

比如DID路径URL形如:did:example:123456/path

DID 查询 URI:did:example:123456?versionId=1

DID文档外部的资源:did:example:123?service=agent&relativeRef=/credentials#degree


本文内容摘自《对话去中心化数字身份》。作者:乔布施。首发平台:https://ytm.app

欢迎转载,请注明出处及作者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/697162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web性能优化-浏览器工作原理-MDN文档学习笔记

浏览器工作原理 查看更多学习笔记:GitHub:LoveEmiliaForever MDN中文官网 导航 导航是加载 web 页面的第一步:输入 URL、点击一个链接、提交表单等等 DNS查询 导航的第一步是要去寻找页面资源的位置 例如访问https://example.com&#x…

如何解决DNS解析错误故障

DNS解析错误会导致将一个域名解析为错误的IP地址,或者根本无法确定某个域名对应的IP地址,从而无法通过域名访问相应的站点,形成DNS解析故障。最常见的症状是访问站点对应的IP地址没有问题,但访问其域名时却出现错误。 DNS解析异常…

qt-动画圆圈等待-LED数字

qt-动画圆圈等待-LED数字 一、演示效果二、关键程序三、下载链接 一、演示效果 二、关键程序 #include "LedNumber.h" #include <QLabel>LEDNumber::LEDNumber(QWidget *parent) : QWidget(parent) {//设置默认宽高比setScale((float)0.6);//设置默认背景色se…

【深入了解TensorFlow】TensorFlow的安装与配置

【深入了解TensorFlow】TensorFlow的安装与配置 TensorFlow的安装与配置准备就绪:开始前的准备工作1. 确定您的硬件和操作系统2. 选择安装方式3. 创建虚拟环境(可选)安装TensorFlow使用pip安装使用conda安装从源代码编译安装配置TensorFlow导入TensorFlow模块检查安装是否成…

Oracle 表被删除或重命名后账户间的授权与同义词关系

Oracle 表被删除或重命名后账户间的授权与同义词关系 情景一、 当数据表删除后 数据表被删除后&#xff0c;同义词还是存在的&#xff0c;可以查看当前用户下查看同义词&#xff1a; -- 查看当前用户下的同义词 select * from user_synonyms但授权关系不在了&#xff0c;若重…

10 个 Linux 中超方便的 Bash 别名

1、 你有几次遇到需要解压 .tar 文件但无法记住所需的确切参数&#xff1f;别名可以帮助你&#xff01;只需将以下内容添加到 .bash_profile 中&#xff0c;然后使用 untar FileName 解压缩任何 .tar 文件。 alias untartar -zxvf 2、 下载文件时&#xff0c;如果出现问题想要…

websocket与Socket的区别

概念讲解 网络&#xff1a;通俗意义上&#xff0c;也就是连接两台计算器 五层网络模型&#xff1a;应用层、传输层、网络层、数据链路层、物理层 应用层 (application layer)&#xff1a;直接为应用进程提供服务。应用层协议定义的是应用进程间通讯和交互的规则&#xff0c;不…

明明正常,却不停return

明明正常&#xff0c;却不停return if(!is); { return ; } 熬人

应急响应速查

最重要的&#xff1a;我是谁&#xff1f;我在哪&#xff1f;别人怎么进来的&#xff1f;我就是这个被挖矿被勒索的电脑。 分析项 &#xff1a; 一、了解大概的被入侵系统情况&#xff1a; 发现时间&#xff1f;怎么发现的&#xff1f;这台机器有没有人运维&#xff1f;平时还…

排序第三篇 直接插入排序

插入排序的基本思想是&#xff1a; 每次将一个待排序的记录按其关键字的大小插入到前面已排好序的文件中的适当位置&#xff0c; 直到全部记录插入完为止。 一 简介 插入排序可分为2类 本文介绍 直接插入排序 它的基本操作是&#xff1a; 假设待排充序的记录存储在数组 R[1……

电路设计(27)——交通信号灯的multisim仿真

1.功能要求 使用数字芯片设计一款交通信号灯&#xff0c;使得&#xff1a; 主干道的绿灯时间为60S&#xff0c;红灯时间为45S 次干道的红灯时间为60S&#xff0c;绿灯时间为45S 主、次干道&#xff0c;绿灯的最后5S内&#xff0c;黄灯闪烁 使用数码管显示各自的倒计时时间。 按…

JavaScript 数组、遍历

数组 多维数组&#xff1a;数组里面嵌套 一层数组为二维数组。一维数组的使用频率是最高的。 如果数组访问越界会返回undefined。 数组遍历 数组方法Array.isArray() 这个方法可以去判定一个内容是否是数组。

AndroidStudio 2024-2-21 Win10/11最新安装配置(Kotlin快速构建配置,gradle镜像源)

AndroidStudio 2024 Win10/11最新安装配置 教程目的&#xff1a; (从安装到卸载) &#xff0c;针对Kotlin开发配置&#xff0c;gradle-8.2-src/bin下载慢&#xff0c;以及Kotlin构建慢的解决 好久没玩AS了,下载发现装个AS很麻烦,就觉得有必要出个教程了(就是记录一下:嘻嘻) 因…

把一个对象变成可迭代对象的两种方法,使用Symbol.iterator 和生成器Generator

方法一&#xff1a;自定义Symbol.iterator属性 如果对象拥有[Symbol.iterator] 方法&#xff0c;改方法返回一个迭代器对象&#xff0c;就可以称之为可迭代对象&#xff0c;注意迭代器是一个有 next 方法的对象 步骤如下 实现一个Symbol.iterator 键值是一个函数&#xff0c;…

java 时间格式 YYYY 于yyyy的区别

java formatDate 时间时&#xff0c;经常需要输入格式比如 YYYYMMDD,yyyyMMdd 这两个是有区别的 具体每个参数可以看下面

igolang学习1,dea的golang-1.22.0

参考&#xff1a;使用IDEA配置GO的开发环境备忘录-CSDN博客 1.下载All releases - The Go Programming Language (google.cn) 2.直接next 3.window环境变量配置 4.idea的go插件安装 5.新建go项目找不到jdk解决 https://blog.csdn.net/ouyang111222/article/details/1361657…

代码随想录算法训练营第40天| 343. 整数拆分、96.不同的二叉搜索树

343. 整数拆分 完成 思路&#xff1a; dp数组存放正整数i拆分后的乘积最大值&#xff1b;i可以拆分为j和i-j&#xff0c;也可以是j和dp[i-j]。 代码 class Solution {public int integerBreak(int n) {int[] dp new int[n1];dp[2] 1;// 推导i的拆分乘积最大值for (int i …

【js】无限虚拟列表的原理及实现

什么是虚拟列表 虚拟列表是长列表按需显示思路的一种实现&#xff0c;即虚拟列表是一种根据滚动容器元素的可视区域来渲染长列表数据中某一个部分数据的技术。 简而言之&#xff0c;虚拟列表指的就是「可视区域渲染」的列表。有三个概念需要了解一下&#xff1a; 视口容器元…

【linux】linux查看某个已经启动进程的环境变量及命令行信息 /proc/${pid}/environ cmdline

随便找一个进程 yeqiangyeqiang-MS-7B23:~$ ps aux | grep Vir yeqiang 3538 0.4 0.6 1797056 210332 ? Sl 08:38 0:06 /usr/lib/virtualbox/VirtualBox 查看命令行 yeqiangyeqiang-MS-7B23:~$ strings /proc/3538/cmdline /usr/lib/virtualbox/VirtualBox …

Swift基础知识:17.Swift结构体

在 Swift 中&#xff0c;结构体&#xff08;Structures&#xff09;是一种用来封装一组相关的数据和功能的数据类型。结构体是一种值类型&#xff0c;它在传递和赋值时会被复制&#xff0c;与类&#xff08;Class&#xff09;不同&#xff0c;类是引用类型&#xff0c;它在传递…