掌桥专利:专业的专利平台
掌桥专利
首页

一种跨域分布式自组织DID解析方法

文献发布时间:2024-05-31 01:29:11


一种跨域分布式自组织DID解析方法

技术领域

本发明涉及分布式数字身份技术领域,尤其涉及一种跨域分布式自组织DID解析方法。

背景技术

解析是DID在使用中的重要步骤,是使用DID的不同主体间构建交互的重要起始方式之一,其通用的子步骤为:甲向解析服务提供者提供乙的DID以及DID文档的调用方首选表示形式的媒体类型;解析服务提供者为甲提供乙的DID文档、文档的元数据。

但是由于不同DID方法所提供的标识解析方法不同,使用不同DID方法形成的DID间难以相互解析、相互引用,大大限制了DID的应用范围。

发明内容

本发明旨在至少解决相关技术中存在的技术问题之一。为此,本发明提供一种跨域分布式自组织DID解析方法。

本发明提供一种跨域分布式自组织DID解析方法,包括:

S1:需解析用户确定随机用户为需跨域解析的待解析用户;

S2:需解析用户向自身的第一DID方法发送解析请求,第一DID方法通过所述解析请求中的第一解析方法获取第一服务用户,并由第一服务用户的DID解析获得解析服务信息;

S3:第一DID方法由所述解析服务信息中选取服务端点进行访问并发送解析请求,所述第一服务用户根据解析请求查询获得解析路径,并通过所述解析路径将所述解析请求发送至第二服务用户;

S4:第二服务用户转发所述解析请求至第二DID方法,第二DID方法通过所述解析请求中的第二解析方法对待解析用户的DID文档进行解析,获得解析结果;

S5:第二DID方法将所述解析结果返回至第二服务用户,第二服务用户通过解析路径将所述解析结果返回至第一服务用户,第一服务用户通过第一DID方法将所述解析结果返回至需解析用户,以完成解析。

根据本发明提供的一种跨域分布式自组织DID解析方法,所述需解析用户与第一服务用户的DID均使用第一DID方法,所述待解析用户与第二服务用户的DID均使用第二DID方法,在进行跨域解析时,所述需解析用户为所述第一服务用户的用户,所述第一服务用户与所述待解析用户异DID方法。

根据本发明提供的一种跨域分布式自组织DID解析方法,步骤S1进一步包括:

S11:需解析用户获取随机用户DID,确定所述随机用户DID为待解析DID;

S12:需解析用户确定所述随机用户DID中的第二DID方法与自身的第一DID方法不同;

S13:需解析用户确定随机用户DID需跨域解析,则将随机用户记为待解析用户。

根据本发明提供的一种跨域分布式自组织DID解析方法,步骤S2中的所述解析请求符合W3C DIDs中的解析规则。

根据本发明提供的一种跨域分布式自组织DID解析方法,步骤S2中的所述解析服务信息至少包括服务端点列表。

根据本发明提供的一种跨域分布式自组织DID解析方法,步骤S3中,第一DID方法向服务端点发送解析请求时,还发送需解析用户的可接受解析结果表征的元数据结构的名称。

根据本发明提供的一种跨域分布式自组织DID解析方法,步骤S3进一步包括:

S31:第一DID方法由所述服务端点列表中选取服务端点进行访问;

S32:第一DID方法通过所述服务端点,将所述解析请求发送至第一服务用户;

S33:第一服务用户接收所述解析请求,并查询跨域解析列表对所述解析请求进行可解析性验证,

若解析请求不可进行解析,则向第一DID方法回复methodNotSupported;

若解析请求可进行解析,则执行步骤S34;

S34:第一服务用户对解析请求中的所述元数据结构进行支持性验证,

若解析结果不支持元数据结构,则向第一DID方法回复representationNotSupported;

若解析结果支持元数据结构,则根据解析请求查询跨域解析路由表,获得解析路径,并执行步骤S35;

S35:第一服务通过所述解析路径将解析请求发送至第二服务用户,当第二服务用户无法对所述解析请求直接解析时,则再次由所述服务端点列表中选取服务端点进行访问。

根据本发明提供的一种跨域分布式自组织DID解析方法,步骤S32中,当第一DID方法将解析请求发送至第一服务用户时,需设置TTL值。

根据本发明提供的一种跨域分布式自组织DID解析方法,所述跨域分布式自组织DID解析方法除用于DID解析需求外,还用于解引用需求,当所述跨域分布式自组织DID解析方法用于解引用需求时,所述解析请求为解引用请求,所述解析结果为解引用结果。

根据本发明提供的一种跨域分布式自组织DID解析方法,步骤S4中的所述解析结果包括:

当需求为解析请求时,解析结果至少包括待解析用户的DID文档内容,若未获得解析结果则返回notFound,若解析结果无效则返回nvalidDid;

当需求为解引用请求时,解引用结果为待解析用户的DID引用资源,若未获得解引用结果则返回notFound,若解引用结果无效则返回nvalidDidUrl。

本发明提供的一种跨域分布式自组织DID解析方法,可构建一个跨链、跨DID方法的DID解析网络,为跨链、跨DID方法的标识解析提供一个分布式的解析网络,可提供连续跨域(跨链、跨DID方法)的DID解析服务。

本发明构建的标识解析网络无逻辑中心,从而使得鲁棒性更强、基础设施安全性更高,可有效抗single failure;另外相较于当前的工业互联网标识解析体系、DNS解析体系,本发明构建的解析体系可扩展性、灵活性更强;另外本发明可为提供更好更快解析服务的提供者带来更多流量,并提供收费解析的可能;其次相较于为单一DID方法提供解析服务的提供者,跨域解析可以解析由多个DID方法、基于不同区块链构建的DID,极大扩展了DID解析体系;还可提供匿名解析服务,大大提升安全性,隔离追踪;在其中,任何人都能作为解析节点存在;通过DID URL服务还实现跨域DID解析,大大跨域解析难度;还大大拓展了DID中服务的覆盖范围。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的一种跨域分布式自组织DID解析方法流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。以下实施例用于说明本发明,但不能用来限制本发明的范围。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

下面结合图1描述本发明的实施例。

为了更好地理解本发明,在描述本发明具体实施方式前,首先进行具体实施方式中各名词的对应。

其中,下述实施方式中,用户乙为需解析用户,用户丙为待解析用户,用户甲为第一服务用户,用户丁为第二服务用户,用户甲基于区块链A设定,用户丙基于区块链B设定,方法m1为第一DID方法,方法m2为第二DID方法。

为了更好地理解本发明,在描述本发明具体实施方式前,首先进行前置条件的说明。

m1的解析节点与甲可以共用同一did,即是同一主体;m2的解析节点与丁可以是同一主体;甲和丁可以是同一主体。

另外,成为跨域解析服务提供者(甲、丁),需要具备以下条件:至少基于一条区块链及一种DID方法拥有DID;至少可对外提供一个解析服务端点,且在其DID文档中对外公布为解析节点;可提供至少两种DID方法的解析服务;或可提供至少一种与a中不同的DID方法的解析服务。

另外,为实现前述跨域解析,跨域解析服务提供者(甲、丁)需要具备以下设施:解析列表,用于列出其可解析的DID方法及支持的区块链,以及对应DID方法所支持的DID文档的元数据结构;路由表,用于跨域解析,帮助节点找到所需的跨域解析节点,在由跨域解析服务提供者所组成的网络中,以类ad-hoc或类mesh的形式确保解析服务网络正常进行。

为了更好地理解本发明,在描述本发明具体实施方式前,首先进行前置步骤的说明。

甲在区块链A上使用DID方法m1注册DID,获得DID甲,并在DID文档中标注自己提供解析服务并提供相关信息、与DID甲交互可使用的公钥Pub甲,相关信息至少包括甲所提供的解析服务端点列表PList,解析服务内容及流程或包含解析服务内容及流程的文件链接,若为文件链接则在DID文档也应包含内容文件使用Pub甲的签名。

当用户乙(DID乙,did:m1:yi)有跨方法解析需求时,具体地:乙有解析基于区块链B使用DID方法m2的DID——DID丙(did:m2:bing)的需求时,乙不需要使用DID方法m2重新注册一个DID,再通过m2的解析服务提供者对DID丙进行解析,而可以通过甲提供的服务进行跨域解析。

执行该操作,乙可以先成为甲的用户,方便统计、监管、收费,若该服务不收费可以忽略此步骤,具体步骤为:

乙首先通过DID方法m1解析DID甲,获得DID甲(did:m1:jia)的DID文档,查看其DID文档获得PList、Pub甲;乙随机选取PList中服务端点Pi发送握手请求,如有保密需求则通过Pub甲进行加密后向Pi发送加密握手请求及乙的公钥Pub乙,握手请求/加密握手请求中包含一个由乙生成的随机数。

Pi接收到握手请求/加密握手请求后发送向乙发送握手信息,若为加密握手则使用Pub乙加密发送加密握手信息,握手信息/加密握手信息中包含握手请求/加密握手请求中的随机数。

乙收到Pi发送的握手信息/加密握手信息后查看其中的随机数,如无误则向Pi发送握手确认/加密握手确认,Pi收到后握手确认/加密握手确认记录乙为甲的普通/私密解析用户。

本发明提供一种跨域分布式自组织DID解析方法,包括:

本发明中,所述需解析用户与第一服务用户的DID均使用第一DID方法,所述待解析用户与第二服务用户的DID均使用第二DID方法,在进行跨域解析时,所述需解析用户为所述第一服务用户的用户,所述第一服务用户与所述待解析用户异DID方法。

S1:需解析用户确定随机用户为需跨域解析的待解析用户;

其中,步骤S1进一步包括:

S11:需解析用户获取随机用户DID,确定所述随机用户DID为待解析DID;

S12:需解析用户确定所述随机用户DID中的第二DID方法与自身的第一DID方法不同;

S13:需解析用户确定随机用户DID需跨域解析,则将随机用户记为待解析用户。

本阶段中,乙(DID乙,did:m1:yi)获得丙的DID——DID丙(did:m2:bing),确定需要对其进行解析以获取其DID文档中的内容或获取丙在DID中描述的某种服务。

然后通过本地读取DID丙,判定其与自己所持有DID(即DID乙)不属于同一DID方法(一般可通过判断did:m1是否等于did:m2进行判断),确定需要跨域解析/解引用。

S2:需解析用户向自身的第一DID方法发送解析请求,第一DID方法通过所述解析请求中的第一解析方法获取第一服务用户,并由第一服务用户的DID解析获得解析服务信息;

进一步的,步骤S2及后续步骤中所提及的DID方法,均为通过DID方法解析器的实现进行解析请求发送等动作,另外步骤S2及S3中的解析服务信息均为跨域解析服务信息。

其中,步骤S2中的所述解析请求符合W3C DIDs中的解析规则,具体为W3CDecentralized Identifiers (DIDs) v1.0中的解析规则。

其中,步骤S2中的所述解析服务信息至少包括服务端点列表。

乙向本DID方法(m1)的解析节点发送DID URL解析请求,该解析请求应符合W3CDID URL规则,其中一个实施例为:did:m1:jia?service=resolution&relativeRef=/did:m2:bing;

此外,如果乙有更具体的解析需要,可通过在relativeRef中嵌套DID URL进行定位,可能的例子是:did:m1:jia?service=resolution&relativeRef=/did:m2:bing#public-key-0,即希望获得DID丙的public-key-0。

乙将该DID URL包装在解引用函数中发送/加密发送给m1的解析节点did:1m:jiexi,解引用函数应包含该DID URL及乙可接受的解析结果的元数据结构参数(did+id+json),该参数若为空,则可返回默认格式的DID文档。

然后m1的解析节点did:m1:jiexi通过m1提供的解析方法通过DID甲(did:m1:jia)获取甲的DID文档,并从查询获得跨域解析服务相关信息,包含服务端点列表PList。

S3:第一DID方法由所述解析服务信息中选取服务端点进行访问并发送解析请求,所述第一服务用户根据解析请求查询获得解析路径,并通过所述解析路径将所述解析请求发送至第二服务用户;

其中,步骤S3中,第一DID方法向服务端点发送解析请求时,还可发送需解析用户的可接受解析结果表征的元数据结构的名称。

进一步的,上述的需解析用户的可接受解析结果表征的元数据结构的名称可以选择性的进行发送。

其中,步骤S3进一步包括:

S31:第一DID方法由所述服务端点列表中选取服务端点进行访问;

S32:第一DID方法通过所述服务端点,将所述解析请求发送至第一服务用户;

进一步的,m1的解析节点从PList中随机选取一个服务端点Pi进行访问,将DID丙(did:m2:bing)及可接受的解析结果的元数据结构参数/解引用需求发送给甲,设定TTL,即等待上限IP协议值,并等待解析结果。

S33:第一服务用户接收所述解析请求,并查询跨域解析列表对所述解析请求进行可解析性验证,

若解析请求不可进行解析,则向第一DID方法回复methodNotSupported;

若解析请求可进行解析,则执行步骤S34;

在一些实施例中,上述步骤S33中提及的跨域解析列表的示例如表1所示。

表1 跨域解析列表示例

S34:第一服务用户对解析请求中的所述元数据结构进行支持性验证,

若解析结果不支持元数据结构,则向第一DID方法回复representationNotSupported;

若解析结果支持元数据结构,则根据解析请求查询跨域解析路由表,获得解析路径,并执行步骤S35;

进一步的,跨域解析服务提供者甲收到跨域解析请求后查询解析列表,前提为已知有解析的DID方法列表,若该方法不可解析,则回复methodNotSupported,若可解析,则判断解析结果是否支持乙所提出的元数据结构,若不支持则回复representationNotSupported,若支持则查询跨域解析路由表,获取解析路径。

S35:第一服务通过所述解析路径将解析请求发送至第二服务用户,当第二服务用户无法对所述解析请求直接解析时,则执行步骤S31。

进一步的,设计是这种从第一服务用户向第二服务用户发送服务请求的行为是可嵌套的,例如:第三服务用户可以解析待解析DID,但第一服务用户无法直接联系到第三服务用户,但可通过第一服务用户可以联系到第二服务用户,第二服务用户可以联系到第三服务用户。

在上述情境中,需解析用户的解析需求也是可以被满足的,解析请求从第一服务用户发送至第二服务用户,第二服务用户再转发至第三服务用户,另外需要注意的是回传解析结果时同样由第二服务用户转发,解引用方式也相同。

甲将解析需求(did:m2:bing;did+id+json)/解引用需求按路由表路径发送给提供did:m2跨域解析的服务提供者丁,设定TTL并等待解析结果。

其中,步骤S32中,当第一DID方法将解析请求发送至第一服务用户时,需设置TTL值。

进一步的,在本阶段中设置的TTL经过每个节点时-1,减到0时若仍未被解析则弃置该请求,回传时也设置TTL值,减到0时仍未回传到第一服务用户则弃置该解析结果。同时若第一服务用户在一定时间后仍未收到解析结果则给需解析用户回复timeout。

S4:第二服务用户转发所述解析请求至第二DID方法,第二DID方法通过所述解析请求中的第二解析方法对待解析用户的DID文档进行解析,获得解析结果;

其中,所述跨域分布式自组织DID解析方法除用于DID解析需求外,还用于解引用需求,当所述跨域分布式自组织DID解析方法用于解引用需求时,所述解析请求为解引用请求,所述解析结果为解引用结果。

其中,步骤S4中的所述解析结果包括:

当需求为解析请求时,解析结果至少包括待解析用户的DID文档内容,若未获得解析结果则返回notFound,若解析结果无效则返回nvalidDid;

在应用中,当需求为解析需求时,返回的解析结果包括解析结果元数据以及DID文档的元数据。

当需求为解引用请求时,解引用结果为待解析用户的DID引用资源,若未获得解引用结果则返回notFound,若解引用结果无效则返回nvalidDidUrl。

本阶段中,丁收到解析请求后重复步骤S33至S35,但其中的跨域解析服务提供者由甲改为丁,丁将解析需求did:m2:bing;did+id+json或解引用需求按路由表发送给m2的解析节点did:m2:jiexi,设定TTL并等待解析结果。

m2的解析节点did:m2:jiexi处理解析请求按m2支持的解析方法获得DID丙的DID文档(如didResolutionMetadata, didDocument, didDocumentMetadata)或处理解引用请求按m2支持的解析方法获得解引用结果(dereferencingMetadata, contentStream,contentMetadata)。

当然,其中若未解析到则结果为notFound,若无效则结果为nvalidDid;嵌套DIDURL未解引用到资源则结果为notFound,若无效则结果为nvalidDidUrl。

S5:第二DID方法将所述解析结果返回至第二服务用户,第二服务用户通过解析路径将所述解析结果返回至第一服务用户,第一服务用户通过第一DID方法将所述解析结果返回至需解析用户,以完成解析。

进一步的,向丁发送解析或解引用结果;按路由表向甲发送解析或解引用结果;向m1的解析节点did:m1:jiexi发送解析或解引用结果;向乙发送解析或解引用结果。

本发明提供的一种跨域分布式自组织DID解析方法,是在甲需要是区块链A上使用DID方法m1的解析服务提供者,甲同时也是区块链B上使用DID方法m2的解析服务提供者,或者甲与区块链B上使用DID方法m2的解析服务提供者有合作关系的前提下,该服务提供者甲基于区块链A上使用DID方法m1的解析方法,提供对基于区块链B使用DID方法m2的DID进行解析的方法(跨链、跨方法解析),不仅通过无逻辑中心使得构建的标识解析网络鲁棒性更强、基础设施安全性更高,并且相较于当前的工业互联网标识解析体系、DNS解析体系,本发明构建的解析体系可扩展性、灵活性更强。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 一种自组织拓扑的光通信网络及其拓扑自组织方法
  • 一种适用于无线自组织网的跨域组网通信方法及装置
  • 一种基于标识解析的网络协同制造跨域融合信任管控方法
技术分类

06120116625315