DigitalABOUTSERVICECASENEWSSPECIALISTRECRUITSPECIALIST多様な専門性を持つNRIデジタル社員のコラム、インタビューやインサイトをご紹介します。自己主権ブロックチェーンDIDs初めまして。NRIデジタルの小松です。NRIデジタルでは、デジタルアイデンティティに着目し、次世代のIDの在り方について調査検討活動を行っています。Identifiers)を解説します。デジタルアイデンティティとはそもそもデジタルアイデンティティとは何でしょうか。entity)」と定義しています。したがって、デジタルアイデンティティとは、「実体に関連する属性情報の集合」をインターネットなどのデジタル空間上で表現したものと考えられます。サービスを利用する実体を識別する識別子としての「ID」、それに付随する「パスワード」や「個人の属性情報(名前、生年月日etc.)」など、それらの集合をデジタルアイデンティティと呼ぶことができます。デジタルアイデンティティは、インターネット上でさまざまな形で利活用されています。サービスの利用時には、事前に登録した「ID」と「パスワード」を入力して、認証を行い、ログインすることが一般的です。デジタルアイデンティティの活用が進むにつれて、それらの情報管理の重要性は高まり、さまざまなアプローチが取られてきました。当初はサービス提供企業が各々でIDを発行し、当該企業が管理するDBで、中央集権的に管理していました。複数のサービスを利用するユーザにとっては、サービスによってIDとパスワードを使い分けたり、新規登録時に毎回氏名などを入力したりするのは手間です。企業側としても、ID情報管理には、厳しいセキュリティ対策が必要のため、業務負荷になっていました。この課題を解決する技術要素として、同事業者内でのシングルサインオンや、ID連携が新たに登場し、現在では多くのサービスで実装されています。一方で、上記のID管理方式はいずれも特定の事業者にアイデンティティ情報が集約されるため、「特定事業者への依存」「事業者のデータ管理の信頼性欠如」などの懸念が浮かび上がっています。それらを踏まえた新たなアイデンティティ管理の考え方として注目されているのが、SSIという概念です。Identity」という記事の中で提唱した言葉です。Provider(IdP)と呼ばれる管理主体に依存せず、サービスを利用する個人が自身でデジタルアイデンティティ情報を発行・管理する考え方です。SSIでは、自身で生成した識別子や認証のための鍵を用いてIDとそれに紐づく属性情報を個人で管理するため、以下のような特性を持っています。1つ目が、ID情報の利用可否が特定事業者に依存しない点です。従来の技術では、もしIdPが倒産した場合、当該IDが二度と使用不可能になってしまいますが、自身でIDを管理する場合はそのリスクを避けることができます。この特性は、例えば難民の身元保証に役立つことが期待されています。医療福祉サービスの享受や銀行口座の開設には、政府が発行する公的な身分証明書が必要不可欠です。何らかの理由で自国を追われた難民の人々は、避難先の国で有効な身分証明書を持っておらず、生活に困るケースが多く存在します。国に依存せず、自分で自らのアイデンティティを証明する手段を確立するSSIは、そうした国際問題の解決にもつながる可能性があると考えられています。2つ目が、ID情報の管理権限が個人にある点です。昨今、各事業者が管理するID・パスワードなどの属性情報の漏えいが問題視されています。法的整備が進められているとはいえ、管理権限が事業者側にあるかぎり、個人の情報がどのように管理・利用されているかはブラックボックスです。SSIにおいてはID・属性情報の利用と、第三者への開示は、個人の意思で自由に制御できるようになることを目指しており、個人情報・プライバシー保護の観点での改善が見込めます。このようなSSIの概念を実サービスに適用するにあたっては、具体的な実現方法について国内外で議論が進められており、後述する「DIDs」が実現手段の1つとして検討されています。Identityの略称で、分散型台帳技術などを用いてIDを管理することで、デジタルアイデンティティが特定のIdPへの依存度を下げることを目指す考え方です。Identifiers)という仕様です。DIDsは、ブロックチェーン等により構築された分散型システムによって実現される識別子のことを指します。DIDsは秘密鍵・公開鍵のキーペアと紐づけて管理し、秘密鍵で署名したデータを公開鍵で検証することで認証を行います。この仕様の下で、ユーザは自身の権限でこのデジタルアイデンティティの生成や更新などを行うことができます。以降、本記事で仕組みや概要を解説する際にDIDという言葉を識別子(分散Identifier)という意味で記載します。下の図は、W3Cが提唱するDIDのアーキテクチャの概念図です。Documentが得られる仕組みとなっています。Documentには、DID自身やDIDに紐づく公開鍵の情報など、DIDに関連するデータモデルが記載されており、DIDを使った認証や検証を行うために必要不可欠です。W3Cが提唱するDIDのアーキテクチャの概念図https://www.w3.org/TR/did-core/#architecture-overview各コンポーネントは以下のような役割を担っています。SubjectDIDの所有者を表す。Documentの内容の更新・削除などの管理権限を持つ主体。Subjectと同一。Document内の特定の情報(公開鍵等)を指し示すために使われる。Documentが保存される、分散型台帳やブロックチェーンなどのレジストリ。DIDは下図のように、スキーマ・DIDメソッド名・DIDメソッド固有の識別子からなる文字列で構成されています。文書で定められており、接頭辞「did:」で始まります。DIDメソッドとは、DIDがどのように実装されるかを定義したものであり、DIDの生成方法やDID登録先のレジストリなどが定められています。開発者は、W3Cで定められた要件に基づいて独自にDIDメソッドを開発できるため、現在数多くのDIDメソッドが存在します。代表的なものには、レジストリとしてBitcoinブロックチェーンを使用するdid:ionや、Ethereumブロックチェーンを使用するdid:ethrがあります。識別子は各メソッド内で一意な値が発行されますが、発行されるプロセスはメソッドごとに様々です。DIDのレジストリとしてブロックチェーンを用いる場合、ブロックチェーンの「書き込まれたIDは他の誰かが更新することも、削除することもできない」という性質により、中央集権的な機関の管理から逃れて、ユーザ自身でIDの生成・更新・削除できることが担保されます。このような特性から、DIDがSSIの考え方の実現する手段の1つと考えられています。すべてのDIDがブロックチェーンをレジストリとして使用しているわけではありません。did:keyは、キーペアの公開鍵をbase58-btcでエンコードした値を識別子として持つバックエンドレスなdidメソッドとして知られています。DID登録の仕組み本記事ではDIDの理解を深めるための一例として、実際にDIDがレジストリに登録される仕組みについて解説します。Mode」について紹介します。Modeの概念図です。キーペアの生成まず、ユーザが公開鍵・秘密鍵のキーペアを生成し、ウォレットに保存します。キーペアの生成はウォレット内部で行われる場合もあります。ウォレットとは、DIDおよび関連する秘密鍵やその他の機密性の高い暗号鍵情報を安全に保管することができるソフトウェアまたはハードウェア端末のことです。DIDの生成ここでは、DIDが生成されます。DIDを構成する識別子は、公開鍵からの計算などの方法で作成されます。この段階では、DIDはまだレジストリ上に紐づけられていません。registrarはDIDの生成や更新を担うコンポーネントで、これらを実行する関数を実装したソフトウェアやハードウェアを指します。ここでは、登録リクエストをレジストリに送るために必要なファイルの作成など、DID登録に必要な準備が行われます。Documentの内容を記載したJSON形式のデータを生成します。Registrarがウォレットに対してデジタル署名を求めます。Documentの情報を確認して署名することで、これらの情報の真正性が担保されます。Registrarが署名されたファイルを使ってレジストリへの書き込みを行い、DIDがレジストリに登録されます。一例ですが、以上のような仕組みで、DIDが生成・登録されます。本記事ではSSIの考え方およびDIDsの仕組みについて解説しました。Credentials)を使って、デジタル学生証などの実証実験も行われています。次回は、VCsおよび、VCsをどのようにサービスに適用していくのかご紹介します。