分散的标识符(DIDS)v1.0

2021-03-27 14:39:24

分散的标识符(DIDS)是一种新型的标识符,概述可验证的,分散的数字身份。 A确认的(例如,一个人,组织,事物,数据模型,抽象实体等)确定它的控制器决定它识别。相比之下,联合的标识符,已经设计了,使他们可以与集中注册管理机构,身份提供者和认证授权解耦。具体而言,虽然其他缔约方可用于帮助启用与之相关的信息,但该设计使得Theconstroler能够证明它来证明它而不需要允许的任何其他方。 DIDS是将DIDSUBJECT与DID文件相关联的URI,允许与该主题的可信组织进行可信赖。

每个文件都可以表达加密材料,验证方法或服务,它提供了一组机制,使控制器能够证明对此的控制。服务与DOD主题相关的互动。如果DIDsubject是诸如数据模型的信息资源,则确实可以提供返回DOT本身的手段。

此文档指定DID语法,常见的数据模型,核心属性,序列化表示,执行操作,并解析解决它们所代表的资源。

W3C分散的标识符工作组已作为AW3C候选推荐将此文件发布,并要求软件开发人员和DIDMethod规范作者提供实验实施,设计了本文档中所有功能的可实现性。

要退出W3C候选推荐阶段,W3C执行组WillRequire两件事:1)对于机器可测试的规范性陈述,每个功能至少两个可互操作的实现,2)对于不可通过机器可测试的正常性,至少有两个演示每个功能。特征被定义为规范中的一个或多个功能统一的规范性语句。

目前,存在82实验性的方法规范,32个实验性的方法驱动程序驾驶员,以及确定与给定实施方式的候选推荐测试套件是符合本规范的。建议遵守DID核心问题并确诊的核心问题并进行了核心测试套件每个都包含最新的疑虑列表,并提出的常长可能导致该规范的更改。

引入抽象数据模型,可以序列化到包括JSON,JSON-LD和CBOR在内的多功能所在。

介绍DID规范注册表的目的是用于重新注册的扩展属性,表示,DICATE INPUTMETADATA和OUTPUT METADATA,DIDED METADATA,DID参数和DIDMETHOD。

为身份验证,断言,关键协议,能力调用和能力代表性的目的添加验证关系。

支持与DID文件相关多标识符的能力,例如DID控制器,也称为等效ID和规范ID。

一个表示部分,详细介绍了抽象数据模型如何以各种不同的格式呈现和消耗以及所有表示,生产者和消费者的一般。

详细说明了DID解决方案,并确保了URL解除了interfaceDefinition,即所有DIDS的interfacedefinition预计将曝光以及inputs和输出到这些进程。

欢迎有关本文件的评论。请在github上发布问题,或发送主题to [email protected](订阅,档案)。

本节介绍DIDS的正式语法,并执行了URL。术语"通用"用于区分此处定义的语法从其各自的特定方法中的SyntaxDefined。

通用DID方案是URI方案符合[[!RFC3986]。 ABNF定义可以在下面找到,它使用[[!RFC5234]]中的语法和Alpha和数字的相应定义。在[[rfc3986]中,在下面的ABNF中未定义的所有其他规则名称。所有确实必须符合ThedId语法ABNF规则。

此ABNF目前目前允许一个空的方法特定于特定于ID串。一些方法表达了对使用空方法特定ID字符串提供的分辨率的兴趣,例如,DID文件的可供选择,该文件描述了验证的数据注册表,单独解析DID方法名称。工作组正在请求反馈候选推荐阶段,以了解实施者是否感兴趣。这一事图可能会因该反馈而变化。另见发行34。

did =" DID:"方法名称":"特定方法 - idmethod-name = 1 *方法 - charmethod-char =%x61-7a / digitmethod-id = *(* iDchar":")1 * id托arch = alpha / digit /& #34;。" /" - " /" _" / pct-encodedpct-encoded ="%" Hexdig Hexdig

DIFT URL是特定资源的网络位置标识符。它可用于检索像Deptations,验证方法,服务,DID文件的特定部分或其他资源的表现。

以下是使用[[RFC5234]中的语法]中的ABNF定义。它建立了所定义的方案。 [[!RFC3986]中展开的路径避免,查询和片段组件。所有URL都必须符合ThedID URL语法ABNF规则。如上所述,DID方法可以进一步限制髓内。

虽然可以根据DID URL语法的主体使用分号(;)字符,但是本规范的未来版本可能会使其作为如[[矩阵-URIS]]中所述的参数的子分隔符。 Toavoid未来冲突,开发人员应该避免使用它。

DID路径与通用URI路径相同,并符合RFC 3986,第3.3节中的路径避免的ABRF规则。与URI一样,可以通过DID方法指定路径语义,该方法可以使控制器能够进一步专注于这些语义。

A查询与通用URI查询相同,符合RFC 3986中的查询ABNF规则,第3.4节。这种语法特征在于阐述。

片段语法和语义是否与通用泛证相同,并符合RFC 3986,第3.5节中的Fragment ABNF规则。

将DID片段用作与DidDocument或外部资源的方法无关的参考。碎片identifer的一些例子如下所示。

为了最大化互操作性,敦促实施者以确保在横跨表示(参见)的情况下以相同的方式解释片段。例如,json指针[[?rfc6901]]可以在did片段中使用,它不会以相同的方式倒置非JSON表示。

对于JSON-LDREPRESENTIONS,描述了与本节中的语义上的兼容的片段标识符的附加语义。有关信息交流如何取消引用DID碎片,请参阅。

DID URL语法支持基于所描述的查询组件的参数的简单格式。将DIDParameter添加到DIFT URL意味着该参数成为资源的分类器的一部分。

有些参数完全独立于任何特定的DIDMethod和功能,以相同的方式为所有人做的。其他DID方法不支持的其他DID参数。在aresupport中的可选参数,它们预计将均匀地运行在DID方法支持它们。下表提供了常见的参数符合所有DID方法的方法。对所有参数的支持是可选的。

通过Service ID识别从DID文档中的服务.IF存在,关联的值必须是ASCII字符串。

根据RFC3986第4.2节的相对URI引用,它标识服务端点处的资源,它是通过使用服务参数从DidDocument中选择的资源。如果存在,则关联的值必须是ASCII字符串,并且必须使用百分比编码的核心字符作为在RFC3986Section 2.1中指定。

识别要解析的特定版本的DID文件(reversion ID可以是顺序的,或者是uuId,或特定于方法).if存在,关联的值必须是ASCII字符串。

识别要解决的DID文件的某个版本时间戳。这是,在Certaintime为A有效的DID文件。如果存在,则相关的valuemust是一个ASCII字符串,它是有效的XMLDateTime值,如W3C XML Schema定义语言(XSD)1.1第2部分:数据类型[[XMLSchema11-2]的第3.3.7节中所定义。此日期时间值必须为UTC 00:00:00而没有次级二进制精度。对于例如:2020-12-20t19:17:47z。

DID文档的资源哈希要添加完整性保护,在[[哈希链接]]中asspecized。此参数是非规范性的。如果存在,则关联值必须是ASCII字符串。

实施者以及方法规范作者可能会useadational在这里列出的参数。对于MaximicalInteroperability,建议参数使用DIDspecification注册机制[[?DID-SPET-REPARTIES]],以避免与不同语义相同的参数的其他用途的碰撞。

如果存在清晰的用例,则可以使用参数,其中ParameterNeed是引用资源的URL的一部分,其与单独使用确实不同。如果可以通过将元数据传递给DID解析器可以表达相同的功能,则预计不会使用参数。在[[?DID分辨率]]中讨论了制造这些参数的其他考虑因素。

DID解决方案和DID URL解除函数可以通过将输入元数据传递给DID URL的arenot部分(请参阅)的解析器来影响。这是可比较的TOTP,其中某些参数可以包含在HTTP URL中,在取消引用过程中作为HTTP标头oraltern传递。 Theimportant的区别是DIDURL的一部分的参数应该用于指定哪些资源是习惯的,而输入的元数据不是DID URL光的一部分,以控制如何解决该资源的解释。

一个相对的URL是DOD文件中的任何URL值,它在DOD中开始:<方法名称>:<方法 - 特定于id&gt ;.常写,它是任何URL值,它不会以inbanf开头。 URL预计将在同一文件中引用资源。相对于URL可能是相对路径组件,查询参数和片段标识符。

解析相对的URL参考时,使用RFC3986第5节中指定的算法:使用参考决议。基本的URI值是与所作主题相加的DID,参见。该计划是做过的。权限是<方法名称>:<方法 - 特定于id>和路径,查询和碎片值,以及分别定义。

相对于URL通常用于引用验证方法和在没有使用AbsolutuRL的文档中的服务。存储大小是考虑因素的方法,可能是Useled URL以减少DID文档的存储大小。

{" @上下文&#34 ;:" https://www.w3.org/ns/did/v1" ;," ID&#34 ;:" DID:示例:123456789abcdefghi"" verificationmethod&#34 ;: [{" id&#34 ;:"例:123456789abcdefghi#key-1&#34 ;,"类型&#34 ;" ed25519verificy2018",//外部(财产值)"控制器":"例:123456789abcdefghi&#34 ;," publickeybase58&#34 ;:& #34; h3c2avvlmv6gmmnam3uvajzpfkcjcwdwnzn6z3wxmqpv" },......],"身份验证&#34 ;: [//相对于用于引用上面验证方法的URL; #键-1" ]}

在上面的示例中,相对的URL值将被转换为toan绝对执行的URL值为:示例:123456789abcdefghi#key-1。

本规范定义了一种数据模型,可用于表达DidDocuments,并执行文档数据结构,然后可以是序列化的多个具体表示。本节提供了数据模型的AHigh级描述,在数据模型中表达不同类型的不同类型的方式的描述,以及用于扩展数据模型的指令。

DOD文件由条目的地图组成,其中每个条目由AKEY / VALEE对组成。 DOD文档数据模型包含至少两倍的条目类。第一类条目称为属性,并在部分中指定。第二类由特定于表示的条目组成,并在部分中指定。

DOD文档数据模型中的所有条目密钥都是字符串。所有条目值都使用下表中的抽象数据类型表示所有条目值,并且每个表示都是每个数据类型的具体序列化格式。

有限的键/值对序列,没有键在[[infra]]中出现两次asspecized。在[[infra]]中,地图有时被称为有序地图。

有限有序的项目序列,不包含[[infra]]中指定的相同项目Twiceas。一个集合有时被称为[[infra]]中的有序集。

在[XMLSchema11-2]中指定的DateTime,能够无损地表达所有估值的日期和时间值。

通常用于表示[[infra]]中指定的人类可读朗布的代码单元序列。

没有[XMLSchema11-2]中规定的小数组件的实数。为了最大限度地,敦促实施者在RFC8259,第6节中遵守关于INTININTEGERS的建议,第6节:数字。

通常用于近似任意实际数字的值,如指定in [xmlschema11-2]。为了最大限度地,敦促实施者在RFC8259中遵守有关关于Doubles的建议,第6节:数字。

用于指示[[infra]]中定义的值缺少值的值。

由于从[[infra]]使用的数据模型,从[[infra]]使用的时间内,可以明确排序包含多于单一的属性值,例如列表,映射和集合。订购[[infra]]中的所有列表样式结构,无论是无论是否订购的。出于本说明书的目的,除非另有说明,否则地图和设置排序并不重要,并且预计不会产生或消耗确定性地秩序。

为最大互操作性,建议扩展使用W3C的规范注册机制[[?DID-SPED-REPERTIES]]。对新属性或其他扩展的使用机制是唯一可确保两种不同的表示能够能够一起拖曳的特定机制。

表示可以定义其他可扩展性机制,包括Onesthat不需要使用DID规范注册表。这种拓展机构应支持任何其他符合性代表的无损转换。表示表示的扩展机制应将所有属性和表示语法的映射到数据模型及其类型系统中。

两种特定实现始终可以同意乐队外面的相互理解的延伸或表示,这些扩展或表示在DID规范注册表中记录的[[?DID-SPEC-REPARTIES]];此类实施与较大生态系统之间的互操作性将会BELESS可靠。

确实与DID文件相关联。使用数据模型表达了DID文件,可以序列化为表示。以下部分定义了DID文档中的属性,包括是否需要这些属性或可选。这些属性签署了DOD主题与伪装价值之间的关系。

下表包含本规范的核心属性的信息引用,其中包含预期值,以及它们是否被判断。表中的属性名称与NuremativeDefinitions相关联以及每个属性的更详细描述。

属性名称ID,类型和控制器可以在不同类型的地图中存在,不同类型的可能差异。

一组符合规则的验证方法映射,符合规则或符合规则的字符串。

表示Conformsto的JSON Web键[[RFC7517]]的地图。请参阅PublicKeyJWK的定义,即将其约束。

一个字符串,它符合URI,地图或由一个或多个字符串组成的[[RFC3986]]的规则,该字符串符合URI和/或映射的[[RFC3986]]的规则。

本节介绍DomedOnclude标识符的机制,为受试者和控制器做了。

对于特定的主题的DID,使用DOD文件中的ID属性表示。

ID的值必须是符合规则的字符串,并且必须存在于DID文档的DataModel的根映射中。

ID属性仅表示在DID文档的最顶层地图中存在的主题。

Dode方法规范可以创建一个不包含ID属性的文件的中间表示,例如当DID DID ver正在执行DID DATACTION时。但是,完全解析的文件始终包含有效的ID属性。

DID控制器是授权对DID文档进行更改的实体。授权由DID方法授权DID控制器的过程。

控制器属性是可选的。如果存在,则值MustBe字符串或一组符合规则的字符串。相应的DID文件应该明确允许使用特定目的使用某种验证方法的验证关系。

当Diddocument中存在控制器属性时,其值表达了一个或多个DID。对于那些签订的文件中包含的任何验证方法都应该被认为是权威的,这使得满足这些验证方法的证据将被视为所提供的受试者的证据。

请注意,通过如此介绍的控制器的授权,由Controller的值与身份验证为.THI中的密钥恢复尤为重要39; S值得信赖的第三方需要通过攻击者进行恶意活动。请参阅与威胁模型和攻击向量相关的信息。

工作组正在寻求关于Alsoknownas特征的实施者反馈。 如果没有足够的申请人兴趣在实施此功能时,将从本规范中删除并将其放入DID规范注册表[[?did-spec-negrentries]作为扩展名。 DID opject可以为不同目的具有多个标识符,orat不同的时间。 两个或多个DID(或其他类型的URI)识别相同的受试者的断言可以使用Alsoknownas属性来制作。 Alsoknownas属性是可选的。 如果存在,则截头中的每个项目的值是符合[[rfc3986]]的URI。 这种关系是一种声明,即由一个或多个其他标识符识别的该标识符ISALSO的主题。 应用程序可能会选择 ......