DIDs v1.0を読む【Identifier】
はじめに
こんにちは。麻雀領域からピボットしたため、麻雀ポッドキャストを続けるか悩んでいる細谷です。Twitterであるツイートを見つけて背中を押してもらった気持ちになっています。
今回はIdentifier編です。
Identifier
概要
このセクションではDIDsやDID URLsの正式な構文について述べられています。またDID methodsに関する構文との区別をつけるために、本書では"generic"という単語を使っていたりもします。
DID Syntax
全てのDIDは以下のthe DID Syntax ABNF Rulesに準拠しなければなりません。
ABNFとはルールを厳密な意味で定義するための文法の一種として捉えておけば良さそうです。以下の記事などで概要が何となく掴めました。
DID URL Syntax
DID URLとは特定のリソースがネットワーク上のどこにあるかを示すものです。従来のhttps://などから始まるURLは単に”情報の置き場所”感が強かったですが、didでは
DID subject
verification method
証明されたものを検証するための方法
(exデジタル署名における証明を検証するために署名を行った送信者が秘密鍵を持っているか確認する)services
単一、または複数のエンドポイントを使用してDND subjectや関連するエンティティーとのインタラクティブなやり取りを行うもの
(ex 分散型SNS Damusとかもそう?)DID document
その他
書き方自体はweb2までのURLから大きく変わった感はないですね。
厳密な定義は以下から
path-abempty, query, fragment
Path
generic URLです。DID methodsを規定するものとは区別する必要があります。
did:example:123456/path
Query
クエリです、はい
did:example:123456?versionId=1
did:example:123?versionTime=2021-05-10T17:00:00Z
did:example:123?service=files&relativeRef=/resume.pdf etc...
Fragment
最小単位のリソースを指定するイメージでしょうか。
//A unique verification method in a DID Document//
did:example:123#public-key-0
//A unique service in a DID Document//
did:example:123#agent
//A resource external to a DID Document//
did:example:123?service=agent&relativeRef=/credentials#degree
DID Parameters
queryに指定できるパラメータを紹介しています。
Relative DID URLs
ここまでの説明を簡単にまとめるとDID URLは以下の要素によって構成されています。
以下の例はURLとして”did:example:123456789abcdefghi#key-1”の記載となります。
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/ed25519-2020/v1"
]
"id": "did:example:123456789abcdefghi",
"verificationMethod": [{
"id": "did:example:123456789abcdefghi#key-1",
"type": "Ed25519VerificationKey2020", // external (property value)
"controller": "did:example:123456789abcdefghi",
"publicKeyMultibase": "zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
}, ...],
"authentication": [
// a relative DID URL used to reference a verification method above
"#key-1"
]
}
感想
DIDにおけるURLの味方を主に見てきました。大元の概念はそこまで変わっていないなと感じる一方で、DID documentにアクセスする・authorityの存在などが押さえておくと良さそうという感じです。