Copyright © 2026 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
検証可能なクレデンシャルとは、一連の 主張 を、運転免許証や学歴証明書などとして発行者が表現するための特定の方法です。この 仕様では、検証可能なクレデンシャルの拡張可能なデータモデル、 それらを改ざんから保護する方法、および これらのクレデンシャルを交換するための、発行者、保有者、 ならびに検証者で構成される三者間エコシステムについて説明します。この文書では、 この仕様で説明されている技術を使用するエコシステムにおける セキュリティ、プライバシー、国際化、およびアクセシビリティに関するさまざまな考慮事項についても扱います。
この節では、この文書の公開時点における ステータスについて説明します。現在のW3C 公開文書の一覧と、この技術報告書の最新版は、 次の W3C標準および草案の 索引にあります。
この仕様に関するコメントは、いつでも歓迎します。 課題は、 GitHubに直接登録してください。 それが不可能な場合は、 public-vc-comments@w3.orgに 送信してください。 (購読, アーカイブ)。
この文書は、検証可能なクレデンシャル・ワーキング グループによって、 次の 勧告 トラックを使用する作業草案として公開されました。
作業草案として 公開されることは、 W3Cおよびその会員による承認を意味しません。
この文書は草案であり、他の 文書によっていつでも更新、置換、または廃止される可能性があります。この文書を 作業中の文書以外のものとして引用することは不適切です。
この文書は、 次の W3C 特許 方針の下で運営されるグループによって作成されました。 W3Cは、 すべての特許開示を掲載した公開リストを管理しています。 これは、グループの成果物に関連して行われた 開示をまとめたものです。そのページには、 特許を開示するための手順も含まれています。ある個人が実際に 認識している特許に 必須クレームが含まれていると考える場合、その個人は 次の規定に従って情報を開示しなければなりません。 W3C特許方針の第6節。
この文書には、 2025年8月18日付のW3Cプロセス文書が適用されます。
この節は非規範的です。
クレデンシャルは私たちの日常生活に不可欠です。運転免許証は 自動車を運転する能力を証明し、大学の学位は教育水準を 示し、政府発行のパスポートは国境を越えて移動する際の国籍を 証明します。この仕様は、この種のクレデンシャルをウェブ上で 暗号学的に安全で、プライバシーを尊重し、機械で検証可能な方法で 表現するメカニズムを提供します。これらの クレデンシャルは物理世界で使用されるとき、私たちに利点をもたらします。 しかし、 ウェブ上での利用は依然として実現が困難です。
現在、学歴、医療 データ、金融口座の詳細、および第三者によって検証された その他の個人情報を、ウェブ上で機械可読な方法により表現することは困難です。デジタル クレデンシャルをウェブ上で表現することの難しさは、 物理的なクレデンシャルが現実世界で提供するものと 同じ利点を得る妨げとなっています。
検証可能なクレデンシャルに関連する概念に詳しくない人のために、以下の節では 次の概要を示します。
この仕様の策定に用いられたユースケースと要件については、 検証可能な クレデンシャルのユースケース [VC-USE-CASES]を参照してください。
この節は非規範的です。
物理世界では、クレデンシャルは次の情報で構成される場合があります。
検証可能なクレデンシャルは、情報をデジタルで表現したものです(すなわち、 クレデンシャルであり、これは1つ以上の主張をまとめたもので、 発行者によって作成されます)。これは、可搬性のある改ざん検知可能な形式にでき、 作成者の真正性も検証できます。そのためには、 セクション4.12 保護メカニズムで説明する保護メカニズムのいずれかを使用します。物理的な クレデンシャルで表現できる情報は、デジタル クレデンシャルでも表現でき、したがって検証可能なクレデンシャルでも表現できます。デジタル署名などの技術を 使用することで、検証可能なクレデンシャルを、物理的なものより 改ざん検知可能で信頼できるものにできます。 検証可能なクレデンシャルのバーコード v1.0を使用すれば、 物理的なクレデンシャルにも 検証可能なクレデンシャルを含め、同じ利点を実現できます。
検証可能なクレデンシャルの保有者は、検証可能なクレデンシャルから 検証可能なプレゼンテーションを生成し、その後、これらの 検証可能なプレゼンテーションを検証者と共有して、特定の特性を持つ 検証可能なクレデンシャルを所有していることを証明できます。
検証可能なクレデンシャルと検証可能なプレゼンテーションはどちらも 迅速に送信できるため、離れた場所との間で信頼を確立する際には、物理的な 同等物より便利です。
この仕様は、デジタル クレデンシャルを表現しやすくすると同時に、この目標と複数の プライバシー保護目標との両立も目指しています。デジタル情報の永続性と、 異なるデジタルデータ源を容易に収集して関連付けられることは、 プライバシー上の懸念を生じさせます。検証可能で容易に 機械可読なクレデンシャルの使用は、この懸念をさらに悪化させるおそれがあります。さらに、 物理的なクレデンシャルで使用されるセキュリティ対策(ホログラムや 透かしなど)は少なくとも多くの人に馴染みがありますが、デジタル クレデンシャルを保護する暗号メカニズムは、専門家でない人には 理解または評価することが困難な場合があります。この文書では、 プライバシーに関する考慮事項で、これらの問題のいくつかを概説し、 検証可能なクレデンシャル・データモデルの脅威 モデルで詳細に分析して、それぞれに対する対応策を説明します。 ゼロ知識証明などのプライバシー強化技術を使用して、 このデータモデルを利用する方法の例も、この文書全体で 提供されています。
検証可能なクレデンシャルおよび 検証可能なプレゼンテーションという用語の「検証可能な」は、 クレデンシャル またはプレゼンテーションが、この文書で定義する検証を検証者によって実行できる という特性を指します。検証によって確認されるのは、 検証可能なクレデンシャルまたは検証可能なプレゼンテーションが、その発行者または提示者による真正かつ 最新の言明であることのみです。内部に符号化された 主張が真であることを意味するものではありません。それらの主張に依拠する前に、 検証者は別途妥当性検証を行います。 これは、独自の方針に従って、 発行者がそれらの主張を行うことについて信頼されているかどうか、 および主張が検証者の目的に適合するかどうかを判断するものです。 このプロセスについては、附属書B. 妥当性検証で詳しく説明します。
この節は非規範的です。
この節では、検証可能なクレデンシャルの利用が想定されるエコシステムにおける、中核的な関係者の役割と、 それらの間の関係について説明します。役割とは、さまざまな 方法で実装される可能性のある抽象概念です。役割を分離することで、標準化すべき インターフェイスとプロトコルが明らかになります。この仕様では、次の 役割を導入します。
図1に示すように、どの役割も 検証可能データレジストリを使用して識別子を検証できます。 たとえば、発行者は、 識別子に関連付けられた検証マテリアルをレジストリから取得し、 対応する秘密暗号鍵を所有していることを エンティティに証明させることで、その識別子が特定のエンティティに属することを 検証できます。
上記の図1は、この仕様の残りの概念を具体化するための エコシステムの例を示しています。保護された環境や 独自システムなど、他のエコシステムも存在し、そこでも 検証可能なクレデンシャルが利点をもたらします。
このエコシステムは、典型的な二者間モデルやフェデレーション型ID プロバイダーモデルとは異なります。IDプロバイダーは、IdPと略されることもあり、 保有者のID情報を作成、維持、管理するとともに、フェデレーションまたは分散ネットワーク内の依拠当事者の アプリケーションに認証サービスを提供するシステムです。フェデレーション型 IDモデルでは、保有者のIDは、ID プロバイダーと密接に結び付いています(ただし、保有者はいくつでもIDを持つことができ、 それぞれに独自の識別子とIDプロバイダーが関連付けられる可能性があることに注意してください。これらは、 プライバシー、業務用と個人用の区別、およびその他の懸念への対応に適している場合があります)。 依拠当事者が、識別された保有者に関する情報を必要とするたびに、 その情報をIDプロバイダーから直接取得します。そのため、IDプロバイダーは そのようなすべてのトランザクションに参加し、その内容を知ることになります。これに対し、この 仕様では、ID プロバイダーの概念を発行者と 保有者という2つの異なる概念に分離した三者間モデルを説明します。発行者は、1回のやり取りで 保有者に検証可能なクレデンシャルを提供し、その後 保有者は、別のやり取りでそれらを 検証者に提示します。そのやり取りに発行者は 関与せず、発行者がその存在を認識する必要さえありません。この 仕様では、これらの概念を他の仕様と比較または対応付ける場合を除き、 「IDプロバイダー」、「フェデレーション型ID」、または 「依拠当事者」という用語の使用を避けています。
多くの場合、検証可能なクレデンシャルの保有者は主体ですが、 そうでない場合もあります。たとえば、親(保有者)が 子供(主体)の検証可能なクレデンシャルを保有したり、ペットの飼い主( 保有者)がペット( 主体)の検証可能なクレデンシャルを保有したりする場合があります。これらの例外的な事例について詳しくは、 検証可能なクレデンシャル実装ガイドライン 1.0の 主体と保有者の関係の節を参照してください。
検証可能なクレデンシャルのエコシステムと 具体的なライフサイクルの例についてさらに詳しくは、 検証可能なクレデンシャルの概要 v1.0 [VC-OVERVIEW]を参照してください。
非規範的と明記された節と同様に、この仕様に含まれるすべての作成ガイドライン、図、例、および注記は 非規範的です。この仕様のそれ以外のすべての部分は規範的です。
この文書におけるキーワードMAY、MUST、MUST NOT、OPTIONAL、RECOMMENDED、REQUIRED、SHOULD、およびSHOULD NOTは、 ここに示すように、すべて 大文字で表記される場合に限り、 BCP 14 [RFC2119] [RFC8174]の説明に従って 解釈されます。
適合文書とは、
コンパクト化されたJSON-LD
文書であり、この仕様にある関連するすべての「MUST」の記述に
準拠するものです。具体的には、セクション4. 基本概念、5. 高度な
概念、および
この文書の6.
構文にある関連する規範的な「MUST」の記述は、適用されなければなりません。
適合文書は、メディアタイプがapplication/vcである検証可能なクレデンシャル、
またはメディアタイプがapplication/vpである検証可能なプレゼンテーションのいずれかでMUSTなければなりません。
適合文書は、セクション
4.12 保護メカニズムで説明されている、少なくとも1つの保護メカニズムによってMUST保護されなければなりません。
適合する発行者実装は、 適合文書を生成し、その生成する 適合文書に必須プロパティをすべてMUST 含めなければならず、さらに、その生成する適合文書を、セクション 4.12 保護メカニズムで説明されている保護メカニズムを使用してMUST保護しなければなりません。
適合する検証者実装は、 適合文書を処理し、 セクション4.12 保護メカニズムで説明されているように、 適合文書に対して検証をMUST実行しなければなりません。また、各 必須プロパティが、そのプロパティに関する規範的要件を満たしていることをMUST確認しなければならず、 非適合文書が検出された場合は、エラーをMUST生成しなければなりません。
この仕様には、必須プロパティと任意プロパティの両方が含まれています。任意 プロパティは、適合する発行者実装および 適合する検証者実装によってMAY無視される場合があります。
この文書には、インラインコメント(//)や、省略記号
(...)を使用して例にほとんど価値を加えない情報を示すなど、
JSONでは無効な文字を含む例もあります。
この情報を有効な文書として使用する場合、実装者は
これらの内容を削除するよう注意してください。
この文書全体で提供される例には、
nameやdescriptionなど、各
仕様例の概念を簡単にするために英語の値を持つ説明的プロパティが含まれています。これらの例は、
国際的な利用に必要なデータ構造を必ずしも反映していません。詳細については、
セクション9. 国際化に関する考慮事項で説明します。
この仕様では、概念を説明するために次の用語を使用します。
did:example:123456abcdefがあります。詳細については、
分散型識別子
(DID) v1.0仕様を参照してください。
verifiableCredentialなど、特定のプロパティに関連付けられた
グラフ。これらのプロパティにより、
対応するJSONオブジェクトで定義されたすべての主張を含む、個別のグラフが
生成されます。
この節は非規範的です。
以下の各節では、この 仕様の基礎を形成する、主張、 クレデンシャル、プレゼンテーション、検証可能なクレデンシャル、および 検証可能なプレゼンテーションなど、コアデータモデルの概念について 概説します。
読者は、この節で説明する クレデンシャルやプレゼンテーションなどの一部の概念には、 この仕様によって定義されたメディアタイプが ないことに気付くかもしれません。ただし、検証可能なクレデンシャルまたは 検証可能なプレゼンテーションという概念は、適合文書として定義され、 関連付けられたメディアタイプがあります。これらの概念の具体的な違い — クレデンシャルおよびプレゼンテーションと、検証可能なクレデンシャルおよび検証可能なプレゼンテーションとの違い — は単に、 「検証可能な」オブジェクトは暗号学的な方法で保護され、 その他のオブジェクトは保護されていないという点です。詳細については、セクション 4.12 保護メカニズムを参照してください。
この節は非規範的です。
主張とは、主体についての言明です。主体とは、 主張の対象となり得るものです。主張は、 主体- プロパティ-値の関係を使用して表現されます。
上記の図2に示す主張のデータモデルは、 強力であり、多種多様な言明の表現に使用できます。たとえば、 ある人物が特定の大学を卒業したかどうかは、下の 図3のように表現できます。
個々の主張を結合して、主体に関する情報のグラフを表現できます。下の 図4の例では、 PatがSamを知っているという主張と、 Samが教授として雇用されているという主張を追加して、前の例を拡張しています。
ここまでで、主張と情報のグラフという概念を 紹介しました。主張を信頼するかどうかの判断に役立てるため、 グラフにはさらに多くの情報が追加されることが想定されています。
この節は非規範的です。
クレデンシャルとは、同じエンティティによって行われる、1つ以上の主張の集合です。 クレデンシャルには、 発行者、有効日 および有効期間、代表画像、検証マテリアル、ステータス 情報など、クレデンシャルの特性を説明する識別子やメタデータが含まれる場合もあります。 検証可能なクレデンシャルとは、改ざん検知可能な主張と、 誰が発行したかを暗号学的に証明するメタデータの集合です。検証可能なクレデンシャルの例には、デジタル従業員 身分証明書、デジタル運転免許証、デジタル学歴証明書などがありますが、 これらに限定されません。
上の図5は、 検証可能なクレデンシャルの基本構成要素を示していますが、 主張を情報グラフに編成し、さらにそれらを 検証可能なクレデンシャルに編成する方法の詳細は抽象化しています。
下の図
6は、
検証可能なクレデンシャルのデータ完全性
1.0に基づく埋め込み証明を使用した
検証可能なクレデンシャルを、より完全に表現しています。これは少なくとも2つの情報グラフで構成されます。
これらの情報グラフの1つ目である検証可能なクレデンシャルグラフ
(デフォルトグラフ)は、
クレデンシャルのメタデータおよびその他の主張を通じて、検証可能なクレデンシャル自体を表現します。2つ目の
情報グラフは、proofプロパティによって参照される、
検証可能なクレデンシャルの証明グラフであり、個別の
名前付きグラフです。証明グラフは、
デジタル証明を表現します。この
例では、デジタル署名です。複数の情報グラフが
必要な理由に関心がある読者は、セクション
5.12 検証可能なクレデンシャルグラフを参照してください。
下の図 7は、図 6と同じ検証可能なクレデンシャルを示しますが、JOSE [VC-JOSE-COSE]を使用して保護されています。 ペイロードには単一の情報グラフが含まれます。これは、 クレデンシャルのメタデータおよびその他の主張を含む検証可能なクレデンシャルグラフです。
この節は非規範的です。
プライバシーの強化は、この仕様の主要な設計上の特徴です。そのため、この 技術を使用するエンティティが、特定の状況に適した 自身のペルソナの部分だけを表現できることが極めて重要です。自身の ペルソナの一部を表現したものを、検証可能なプレゼンテーションと呼びます。 異なるペルソナの例には、職業上のペルソナ、 オンラインゲームのペルソナ、家庭でのペルソナ、匿名のペルソナなどがあります。
検証可能なプレゼンテーションは、 保有者によって作成され、複数の検証可能なクレデンシャルからデータを表現でき、 任意の追加データを含めることもできます。これは、 検証者に主張を提示するために使用されます。 検証可能なクレデンシャルを 直接提示することもできます。
プレゼンテーション内のデータは、多くの場合、同じ主体に関するものですが、 複数の発行者によって発行されている場合があります。この情報を集約することで、 人、組織、またはエンティティの一側面を表現します。
上の図8は、 検証可能なプレゼンテーションの構成要素を示していますが、 検証可能なクレデンシャルを情報 グラフに編成し、 さらにそれらを検証可能なプレゼンテーションに編成する方法の詳細は抽象化しています。
下の図
9は、
検証可能なクレデンシャルのデータ完全性
1.0に基づく埋め込み証明を使用した
検証可能なプレゼンテーションを、より完全に表現しています。
これは、少なくとも4つの情報グラフで構成されます。
これらの情報グラフの1つ目である検証可能なプレゼンテーショングラフ
(デフォルトグラフ)は、
プレゼンテーションのメタデータを通じて、検証可能なプレゼンテーション自体を表現します。
検証可能なプレゼンテーションは、
verifiableCredentialプロパティを介して
検証可能なクレデンシャルを参照します。
このクレデンシャルは、
クレデンシャルのメタデータとその他の主張を含む自己完結型の検証可能なクレデンシャルグラフです。このクレデンシャルは、
proofプロパティを介して検証可能なクレデンシャルの証明グラフを参照し、
クレデンシャルの証明(通常はデジタル署名)を表現します。
この検証可能なクレデンシャルグラフと、それにリンクされた証明グラフは、
それぞれ2つ目と3つ目の情報グラフを構成し、それぞれが個別の
名前付きグラフです。プレゼンテーションも、
proofプロパティを介して
プレゼンテーションの証明グラフを参照します。これは、
4つ目の情報
グラフ(別の名前付きグラフ)です。この
プレゼンテーションの証明グラフは、
検証可能なプレゼンテーショングラフ、
検証可能なクレデンシャルグラフ、および
検証可能なクレデンシャルグラフからリンクされた証明グラフのデジタル署名を表します。
下の図
10は、図
9と同じ検証可能なプレゼンテーションを示していますが、
[VC-JOSE-COSE]に基づくエンベロープ型
証明を使用しています。
ペイロードには2つの情報
グラフだけが含まれます。1つは、プレゼンテーションのメタデータを通じて検証可能なプレゼンテーションを表現する検証可能なプレゼンテーション
グラフで、もう1つは、
verifiableCredential
プロパティによって参照される、対応する
検証可能なクレデンシャルグラフです。
検証可能なクレデンシャルグラフには、
data: URL [RFC2397]を介して、
図
7に示すエンベロープ型証明で保護された
検証可能なクレデンシャルを参照する、単一の
EnvelopedVerifiableCredential
インスタンスが含まれます。
data:
URLは、
図
7に
示される
検証可能なクレデンシャルを参照します。
多くの場合は関連しているものの、関連している必要はない異なる主体に関する複数の
クレデンシャルを利用して、
大学のクレデンシャルの集合などのプレゼンテーションを作成できます。これは、
verifiableCredentialプロパティを使用して複数の検証可能なクレデンシャルを参照することで実現します。
詳細については、附属書E. 検証可能なプレゼンテーションの追加図を
参照してください。
この節では、この文書の後半にあるセクション5. 高度な概念に備えて、 この仕様の基本概念をいくつか紹介します。
この節は非規範的です。
この仕様は、新しい種類の 検証可能なクレデンシャルのプロトタイプを容易に作成できるよう設計されています。開発者は、以下の テンプレートをコピーして、一般的な 検証可能なクレデンシャル用ツールに貼り付けることで、プロトタイプクレデンシャルの発行、 保有、および 検証を開始できます。
開発者は、以下のMyPrototypeCredentialを、作成したいクレデンシャルの型に
変更します。検証可能なクレデンシャルは主体について記述するため、
credentialSubjectオブジェクト内の各プロパティと値の組は、
クレデンシャル主体の特定のプロパティを表します。開発者がこれらの
プロパティと値の組をいくつか追加した後、変更したオブジェクトを
適合する発行者実装に送信すると、開発者向けの検証可能なクレデンシャルが
作成されます。プロトタイプ作成の観点では、開発者が
行う必要があるのはこれだけです。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": ["VerifiableCredential", "MyPrototypeCredential"],
"credentialSubject": {
"mySubjectProperty": "mySubjectValue"
}
}
すべてのクレデンシャルプロパティが安定した後、他の開発者との
相互運用性を促進するため、安定したURLで語彙ファイルとコンテキストファイルを生成し、
公開することが推奨されます。その後、上記の
https://www.w3.org/ns/credentials/examples/v2 URLを、
ユースケース固有のコンテキストURLに置き換えます。この
プロセスについては、セクション5.2 拡張性で扱います。また、
開発者は、自身のユースケースに適合する既存の語彙ファイルとコンテキストファイルを
再利用できます。再利用可能なリソースについては、検証可能なクレデンシャルの拡張機能を
調べることができます。
検証可能なクレデンシャルは、1つ以上の 主体のプロパティと、クレデンシャル自体のプロパティを表現するために使用されます。この仕様では、 検証可能なクレデンシャルについて、次のプロパティを定義します。
検証可能なクレデンシャルには、セクション5.2 拡張性で定義する拡張メカニズムを使用して、 追加のプロパティを持たせることができます。
2つのソフトウェアシステムがデータを交換する必要がある場合、両方のシステムが 理解できる用語を使用する必要があります。2人の人間が、同じ言語を使用することで 効果的に意思疎通する方法を考えてください。その言語では、"名前"や "ウェブサイト"などの使用する語が、どちらの人にとっても同じ意味を持ちます。これは、 会話のコンテキストと呼ばれることがあります。この仕様では、 通信を行うコンテキストを確立することで、ソフトウェアシステムについて同様の結果を得るために 同様の概念を使用します。
検証可能なクレデンシャルおよび検証可能なプレゼンテーションを処理するソフトウェアシステムは、
各用語にURLを使用して用語を識別します。ただし、
それらのURLは長く、人間にとってあまり使いやすくない場合があり、短く
人間にとって使いやすい別名の方が役立つことがあります。この仕様では、
@context プロパティを使用して、短い別名をURLに対応付けます。
検証可能なクレデンシャルおよび検証可能なプレゼンテーションはMUST、
@context プロパティを含めなければなりません。アプリケーション開発者はMUST、
アプリケーションで使用されるすべてのJSON-LD
コンテキストを、少なくともアプリケーションで使用する用語の
意味に影響する範囲で理解しなければなりません。そのためのメカニズムの1つは、
検証可能なクレデンシャルのデータ完全性
1.0仕様の
コンテキストの検証に関する節で
説明されています。この仕様を基礎とする他の仕様はMAY、JSON-LDコンテキストを
セクション5.3 関連リソースの完全性で説明する
relatedResource機能または実質的に同等の
メカニズムによって完全性保護することを要求できます。
@context プロパティの値はMUST、
最初の項目が値
https://www.w3.org/ns/credentials/v2を持つURLである
順序付き集合でなければなりません。
順序付き集合内の後続項目はMUST、
URLとオブジェクトの任意の組み合わせで構成され、それぞれが
JSON-LDコンテキストとして処理可能でなければなりません。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/58473",
"type": ["VerifiableCredential", "ExampleAlumniCredential"],
"issuer": "did:example:2g55q912ec3476eba2l9812ecbfe",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"alumniOf": {
"id": "did:example:c276e12ec21ebfeb1f712ebc6f1",
"name": "Example University"
}
}
}
上記の例では、基本コンテキストのURL
(https://www.w3.org/ns/credentials/v2)を使用して、データ交換が
検証可能なクレデンシャルに関するものであることを確立します。この概念については、
セクション5.2 拡張性でさらに
詳しく説明します。https://www.w3.org/ns/credentials/v2で利用可能なデータは、
永続的にキャッシュできる静的
文書です。その処理手順については、附属書
C.1
基本コンテキストで説明します。検証可能なクレデンシャル・データモデルに関連する
人間可読な語彙文書は、
https://www.w3.org/2018/credentials/で利用できます。
2番目のURL(https://www.w3.org/ns/credentials/examples/v2)は、
例を
示すために使用されます。実装は、試験運用システムや実稼働システムなど、
その他の目的でこのURLを使用しないことが想定されています。
@context プロパティについては、
JSON-LD
1.1仕様の
セクション3.1: コンテキストでさらに詳しく説明されています。
人、製品、
組織など、特定のものについて言明を表現する場合、そのものにグローバルに一意な識別子を使用すると便利です。
グローバルに一意な識別子により、他者も
同じものについて言明を表現できます。この仕様では、そのような識別子に使用する任意のid
プロパティを定義します。id プロパティを使用すると、
検証可能なクレデンシャル内で特定のものについて言明を表現できます。このプロパティは、
発行者が
検証可能なクレデンシャル内のオブジェクトを表現するとき、または
保有者が
検証可能なプレゼンテーション内のオブジェクトを表現するときに設定します。id
プロパティは、
その識別子によって識別される特定のものについて他者が言明を表現するときに
使用することが想定される識別子を表します。id値の例には、
UUID(urn:uuid:0c07c1ce-57cb-41af-bef2-1b932b986873)、HTTP URL
(https://id.example/things#123)、DID(did:example:1234abcd)があります。
仮名性が必要な場合、識別子が有害になる可能性があることに
開発者は留意してください。そのようなシナリオを検討する際は、
検証可能なクレデンシャル・データモデル脅威モデルの
識別子に基づく
関連付けを注意深く読むことが推奨されます。
その脅威モデルには、プライバシー上の懸念を生じさせる
その他の種類のアクセスおよび関連付けメカニズムも記載されています。
プライバシーが極めて重要な考慮事項である場合は、
id プロパティを省略できます。一部のユースケースでは、
id プロパティが不要であるか、明示的に省略する必要があります。同様に、
公開解決可能なURLとその他の形式の識別子のどちらを選択するかにも
特別な注意を払う必要があります。公開解決可能なURLは、検証と相互運用を
容易にしますが、慎重に使用しない場合、
機密である可能性のある情報へのアクセスを意図せず許可することもあります。
id プロパティはOPTIONALです。存在する場合、
id プロパティの値は、
参照解決可能であってもよい単一のURLでMUSTなければなりません。
id内のURLには、参照解決可能な場合に
idに関する機械可読情報を含む文書が得られるURLを使用することが
RECOMMENDEDされます。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": ["VerifiableCredential", "ExampleDegreeCredential"],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaeqpc578Kg3k9asdXLMhsQSjh8HMPp3ip3miiWZUUhsv9p",
"cryptosuite": "ecdsa-rdfc-2019",
"proofPurpose": "assertionMethod",
"proofValue": "z5amhaLc2HywY7CB5z6UFqXLrHDcXjSm4T6JsLcy4uxjf39kdRkvxAY4xHSHhZobSZAf9amTcbyKdhtmfyLAtba2m"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaee6cRuNdNecab7A7cnbb6w5xovYRWxYirEHstya3usouK",
"cryptosuite": "ecdsa-sd-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0AhVhAaa2xB7uvaVU45J2B464rmd3kx-QdQplIjUCPVS6xPla9cQ5cghCB8AkglwSBp-C-7GuqR2UgAqOQHJdGNkNdiVgjgCQD834RQUfUmZHshkJZ1Lb5L9q-WDizWanxekkIflcv6rZYIMmf3HbxMF3WhTn238aW1e1xgpZ7ZZz8KyzGznwFm17KhVhAXIl0Si7hASRY-Pit02JvKkdPshNBJ173cjc_SR2OjPFwRP2xk6m5u-M_ilIopxzvA0x8_qq4fNHr51sMJfzVulhAZf7JZOgYSxqpQS8KbTd7BH7tOQSdvp9vVzfIo42V3nPHVc5uvsBiU1tojwAv3SWkDzlhK820GM3SbeYZ136Iy1hAB-j7KmlI0jaSxkgWxwmgbq2pWI9lIjszPJGZI3n2ElHF5dsbRRpHikT_tRzQLyNnFYVq2Gl81ZMPuHsDA71G81hAYJYBuk-C2FmwbZiE-UjZ6nyFa5Mz4_vq47PK_0myc9HcIEJ9RZvYLJTFL5g820VMsfmx-uKSggR3MmotvPuALFhAZ6GEvqwHnNjeJ1wRW2NjScRuD0uVNuz-DT49swyBqpBngsQgsJC95SX_vIL4GfbXOWGaAkYOPS8CED_Tp91jT4FnL2lzc3Vlcg"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"verificationMethod": "did:key:zUC7JVyoNecN4arDQjjTXVSfyv1V7bwcnMUs6y2BuSeWmzarPohM5DLXAXXxkBRrpjbzZTUdrLaAVoj87nPgXktL3q8JgBvRqqHo9Z88Jfn2tXXM8Q1aTDhNgf1HYL9WEMiULnS",
"cryptosuite": "bbs-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0ChVhQh4ZbrGO7Wg8qsyvcnGBbBoDqN-XXQ7LIbkeP13o5yHIZ8tC6ELjpJrwsGFhQL2CsAdRvyoWAPlj-hGvALc6qEvIbbrt7axyOUl_cjBTbCFhYQD3-tli9rF9b1rOCOCaDSL0zj-QnIO3TIaEobJTPayaIS1r7HKFDPyyrvPGqNF8bjgNELvoomOjpbD9JEvaGI1pYYLMBLFvXdBPRt0k4kRZk93gc0jkscNQB3wJpCXu4OPkNaVJMlX03jEKZdwQ437AaRg2tSqfzd_pbHzZq9O7FyF1fsAT1tn_tHqFT5wrUWfaGtHJRQwv6rnUS3s9HBqQB_1ggs9FRoSirDoxtxfUeUCnCOCBrv8SGNsXujNCpyodzP-uBZy9pc3N1ZXI"
}
}
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
application/vc
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
application/vc+jwt
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1788642562,
"exp": 1789852162,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"NiOQc1AKFpLjEei48l_9iWesudh6gkjM9xWH3H8rZsQ"
]
},
"_sd": [
"CfL-AHo5CUMy1VOocEwXYibZO702IATz9EhbQvCLulU"
]
},
"_sd": [
"Ulb2wAy99n7akJ9iyOGFQApSASkccgoDBADJ4GZvV9Y",
"VFizGDAV_KbJ0aloMsCa8GoMeVy44MkxcHjy_dc2LN4"
]
}
SHA-256ハッシュ: Ulb2wAy99n7akJ9iyOGFQApSASkccgoDBADJ4GZvV9Y
開示: WyJhRFdyLUF1TE53RGJFdURYU0lKelBRIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd
内容: [
"aDWr-AuLNwDbEuDXSIJzPQ",
"id",
"http://university.example/credentials/3732"
]
SHA-256ハッシュ: VFizGDAV_KbJ0aloMsCa8GoMeVy44MkxcHjy_dc2LN4
開示: WyJ2RW12RGFvdFROU3FmQlJvaThJektBIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d
内容: [
"vEmvDaotTNSqfBRoi8IzKA",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential"
]
]
SHA-256ハッシュ: CfL-AHo5CUMy1VOocEwXYibZO702IATz9EhbQvCLulU
開示: WyJIaHdvOXJaTWZJcHk4YzdvWDl3ZThRIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd
内容: [
"Hhwo9rZMfIpy8c7oX9we8Q",
"id",
"did:example:ebfeb1f712ebc6f1c276e12ec21"
]
SHA-256ハッシュ: NiOQc1AKFpLjEei48l_9iWesudh6gkjM9xWH3H8rZsQ
開示: WyJSZFFzcW9VVVVWcnE4S1FfSjZSZENnIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
内容: [
"RdQsqoUUUVrq8KQ_J6RdCg",
"type",
"ExampleBachelorDegree"
]
上記の例では、2種類の識別子を使用しています。1つ目の識別子は 検証可能なクレデンシャル用であり、HTTPベースのURLを使用します。2つ目の 識別子は、検証可能なクレデンシャルの主体( 主張の対象となるもの)用であり、 分散型識別子を使用します。これは DIDとも呼ばれます。
DIDは識別子の一種ですが、 検証可能なクレデンシャルを有用なものにするために必須ではありません。具体的には、 検証可能なクレデンシャルは DIDに依存せず、DIDも検証可能なクレデンシャルに依存しません。 ただし、多くの検証可能なクレデンシャルは DIDを使用し、この仕様を実装するソフトウェア ライブラリはDIDを解決する必要があります。 DIDベースのURLは、 主体、発行者、保有者、クレデンシャルのステータスリスト、暗号 鍵、および検証可能なクレデンシャルに関連するその他の機械可読情報に関連付けられた識別子を表現するために使用されます。
この文書で指定される種類のオブジェクトを処理するソフトウェアシステムは、
提供された
検証可能なクレデンシャルまたは検証可能なプレゼンテーションが意図したユースケースに
適しているかどうかを判断するために型情報を使用します。この仕様では、オブジェクトの型情報を表現するための
type プロパティを定義します。この型情報は、附属書
B.
妥当性検証で説明する妥当性検証プロセスで使用できます。
検証可能なクレデンシャルおよび検証可能なプレゼンテーションはMUST、
関連付けられた値を持つtype プロパティを含めなければなりません。
type プロパティの値はMUST、
1つ以上の
用語および
絶対URL文字列でなければなりません。複数の
値を指定する場合、その順序は重要ではありません。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": ["VerifiableCredential", "ExampleDegreeCredential"],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaeqpc578Kg3k9asdXLMhsQSjh8HMPp3ip3miiWZUUhsv9p",
"cryptosuite": "ecdsa-rdfc-2019",
"proofPurpose": "assertionMethod",
"proofValue": "z2csb49ns6Mof5KPLyzLQXnxpSRKxzHJGCY52Jq2tdTPRTDZQV8JK4ys6vTfUoYarvpe5BDzYGh79MFuVKBJ5PBhY"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaee6cRuNdNecab7A7cnbb6w5xovYRWxYirEHstya3usouK",
"cryptosuite": "ecdsa-sd-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0AhVhASYq_Yc6pD9VdrVUjAMg_ykogtjLzQ8H3RFSHzGK6Y3JCe9hLIWpRNCWabzvnOCgfdhngU3dDX9Fh9p_YzwgBT1gjgCQCw149snFGhIf3Xa-I9BSDZzJGZb7kucbkD2SEt833laJYIGrncSHTnhFxFdbN1CPnm29IQgZgAUqi-ECWD9hqCPEChVhAQj2KCV9TF-j5bmQbTuGWDUd_8yU_nMQdJiBjFJRlTTJVrRzQe7vQzv4-0Kk9CrA67hNlwQPtzoY_s0ogQOr62FhAX1XOwq6tz50tv_iNlVwbRWA-ltPuAb5P-1q9v6qJt-s5iUnTt6nsG7xYUzFF7DLb1T-ipLlVHnLKbrS97ao9yVhAuXfqVZsX2kn75BtfbQNHBCoTYDSYycrT9MQo5zadGzOROqnVgO8Pvu-xdQYMW1WTkh9s1sQldNA_QkBbTUhaZlhAazUXicVF1Swoq6-OJNx0qtQVqonOYTidRKYGCVHMB-G_eogILbSKAq6bzzX1UjY_icFVYE1P4zxbAAJX1fBFulhABi1Af9f6AF8MM_cz0PO7VNRLwGVJIrgyEn3m0aAYQoYnfdFnPVa_eMWvllUgzqIMMxIC7RtyLKrgFC0JuKhCQ4FnL2lzc3Vlcg"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"verificationMethod": "did:key:zUC7JVyoNecN4arDQjjTXVSfyv1V7bwcnMUs6y2BuSeWmzarPohM5DLXAXXxkBRrpjbzZTUdrLaAVoj87nPgXktL3q8JgBvRqqHo9Z88Jfn2tXXM8Q1aTDhNgf1HYL9WEMiULnS",
"cryptosuite": "bbs-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0ChVhQh4ZbrGO7Wg8qsyvcnGBbBoDqN-XXQ7LIbkeP13o5yHIZ8tC6ELjpJrwsGFhQL2CsAdRvyoWAPlj-hGvALc6qEvIbbrt7axyOUl_cjBTbCFhYQD3-tli9rF9b1rOCOCaDSL0zj-QnIO3TIaEobJTPayaIS1r7HKFDPyyrvPGqNF8bjgNELvoomOjpbD9JEvaGI1pYYLMBLFvXdBPRt0k4kRZk93gc0jkscNQB3wJpCXu4OPkNaVJMlX03jEKZdwQ437AaRg2tSqfzd_pbHzZq9O7FyF1fsAT1tn_tHqFT5wrUWfaGtHJRQwv6rnUS3s9HBqQB_1ggogQCwPe68VtUqpT8fysP2HZaFj2P5VqWUt8Hs6EsaZSBZy9pc3N1ZXI"
}
}
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
application/vc
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
application/vc+jwt
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1788642562,
"exp": 1789852162,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"K5Yp7JRDL09DVpaGACBVxJTDvdVplthn9jqlGB2y2So"
]
},
"_sd": [
"JNf-IWCXmOjjn_4V_LGJlnksiaEYUG-p8SikN0Q-MxI"
]
},
"_sd": [
"RvwNlpbnTOjSBCl-7PBIFGaXv-YEKjLwsSA6LgRe41w",
"iRqdb8tlxIAmgmoixqHfRck6hJWnNsp9jeQxt9b0tgg"
]
}
SHA-256ハッシュ: iRqdb8tlxIAmgmoixqHfRck6hJWnNsp9jeQxt9b0tgg
開示: WyJWdmlTanczVDNlalJKWDZqZEQtNVJRIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd
内容: [
"VviSjw3T3ejRJX6jdD-5RQ",
"id",
"http://university.example/credentials/3732"
]
SHA-256ハッシュ: RvwNlpbnTOjSBCl-7PBIFGaXv-YEKjLwsSA6LgRe41w
開示: WyJqM0phNmdieWVfOVJrdjlXS0JuczN3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d
内容: [
"j3Ja6gbye_9Rkv9WKBns3w",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential"
]
]
SHA-256ハッシュ: JNf-IWCXmOjjn_4V_LGJlnksiaEYUG-p8SikN0Q-MxI
開示: WyJJamhsSFlTS0pUWDA4eTlzQS0weXZnIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd
内容: [
"IjhlHYSKJTX08y9sA-0yvg",
"id",
"did:example:ebfeb1f712ebc6f1c276e12ec21"
]
SHA-256ハッシュ: K5Yp7JRDL09DVpaGACBVxJTDvdVplthn9jqlGB2y2So
開示: WyJ2WkVVZU9OV2pYaUd0VWdyVUtVV1dnIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
内容: [
"vZEUeONWjXiGtUgrUKUWWg",
"type",
"ExampleBachelorDegree"
]
この仕様に関して、次の表は 型を指定することがMUST要求されるオブジェクトを示します。
| オブジェクト | 型 |
|---|---|
| 検証可能なクレデンシャル オブジェクト |
VerifiableCredentialと、任意で、より具体的な
検証可能なクレデンシャルの型。例:"type": ["VerifiableCredential", "OpenBadgeCredential"]
|
| 検証可能なプレゼンテーション オブジェクト |
VerifiablePresentationと、任意で、より具体的な
検証可能なプレゼンテーションの型。例:"type": "VerifiablePresentation"
|
| credentialStatus オブジェクト |
有効なクレデンシャルステータスの型。例:"type": "BitstringStatusListEntry"
|
| termsOfUse オブジェクト |
有効な利用条件の型。例:"type": "TrustFrameworkPolicy"
|
| evidence オブジェクト |
有効な証拠の型。例:"type": "Evidence"
|
| refreshService オブジェクト |
有効なrefreshServiceの型。例:"type": "VerifiableCredentialRefreshService2021"
|
| credentialSchema オブジェクト |
有効なcredentialSchemaの型。例:"type": "JsonSchema"
|
検証可能なクレデンシャル・データモデルの型システムは、
JSON-LD
1.1のものと同じであり、
セクション3.5:
型の指定および
セクション9: JSON-LD
文法で詳しく説明されています。JSON-LDコンテキストを使用する場合(セクション
5.2 拡張性を参照)、この仕様では、
JSON-LD文書を理解しやすくするために、
@typeキーワードの別名としてtypeを使用します。
アプリケーション開発者や文書作成者はJSON-LD型システムの詳細を
理解する必要はありませんが、相互運用可能な拡張性をサポートするこの仕様の実装者は
理解する必要があります。
すべてのクレデンシャル、プレゼンテーション、および
カプセル化されたオブジェクトは、ソフトウェアシステムが
追加情報をより容易に検出して処理できるよう、追加の、より限定的な型(たとえば
ExampleDegreeCredential)を指定するか、関連付けることがSHOULD推奨されます。
credentialSubjectオブジェクトに関連付けられたオブジェクトや、その内部に深くネストされた
オブジェクトなど、この仕様で定義されるカプセル化されたオブジェクトを処理する場合、
ソフトウェアシステムは、階層の上位にあるカプセル化
オブジェクトで指定された型情報を使用することがSHOULD推奨されます。具体的には、
クレデンシャルなどのカプセル化オブジェクトは、
検証者が、カプセル化オブジェクトの型に基づいて関連オブジェクトの内容を
迅速に判断できるよう、関連オブジェクトの型を伝達することがSHOULD推奨されます。
たとえば、typeが
ExampleDegreeCredentialであるクレデンシャルオブジェクトは、
credentialSubjectプロパティに関連付けられたオブジェクトに、次の
識別子が含まれていることを検証者に示します。
idプロパティ内の主体。
typeプロパティ内の学位の種類。
nameプロパティ内の学位の名称。
これにより、実装者は検証のためにtypeプロパティに関連付けられた値に
依拠できます。オブジェクトの型と、それに関連付けられた値は、
少なくとも、その型のURLで参照できる人間可読な仕様に
文書化されることが想定されています。たとえば、BitstringStatusList型の人間可読な
定義は、
https://www.w3.org/ns/credentials/status/#BitstringStatusListで確認できます。また、同じURLで
HTTPコンテントネゴシエーションを介して
機械可読バージョンを提供することも
推奨されます。
新しい種類の検証可能なクレデンシャルを作成する方法の説明は、 この仕様の範囲外です。関心のある読者は、 検証可能なクレデンシャル実装ガイドライン 1.0の 新しいクレデンシャル型の作成の節を読むことが推奨されます。
クレデンシャルを表示する際には、
発行者が提供する、その
クレデンシャルに名前と、その
目的の簡潔な説明を付与するテキストがあると便利です。nameおよびdescription プロパティ
は、これらの目的に使用されます。
name プロパティの値はMUST、
文字列または
言語値オブジェクトでなければなりません(
9.1 言語と基底方向を参照)。理想的には、
次の
クレデンシャルの名前は簡潔で人間が読めるものであり、
個人が
あるクレデンシャルを、自身が保有している可能性のあるほかのクレデンシャルから
すばやく区別できるようにするものです。
description プロパティの値はMUST、
文字列または言語値オブジェクトでなければなりません(
9.1 言語と基底方向を参照)。理想的には、
次の
クレデンシャルの説明は数文以内であり、
個人がその内容を思い出せるだけの
情報をクレデンシャルについて伝えるものです。その際、
すべての主張に目を通す必要はありません。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": ["VerifiableCredential", "ExampleDegreeCredential"],
"issuer": {
"id": "https://university.example/issuers/565049",
"name": "Example University",
"description": "A public university focusing on teaching examples."
},
"validFrom": "2015-05-10T12:30:00Z",
"name": "Example University Degree",
"description": "2015 Bachelor of Science and Arts Degree",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": {
"id": "https://university.example/issuers/565049",
"name": "Example University",
"description": "A public university focusing on teaching examples."
},
"validFrom": "2015-05-10T12:30:00Z",
"name": "Example University Degree",
"description": "2015 Bachelor of Science and Arts Degree",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaeqpc578Kg3k9asdXLMhsQSjh8HMPp3ip3miiWZUUhsv9p",
"cryptosuite": "ecdsa-rdfc-2019",
"proofPurpose": "assertionMethod",
"proofValue": "z3HyhJrQp4NGeTiCvA5PwA7LHmX6LEQjHvdj15hnMyUt3mDFpyQwkYTYHm16wrNejiaSnQJRtqdFRLBBn66sUtPYh"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": {
"id": "https://university.example/issuers/565049",
"name": "Example University",
"description": "A public university focusing on teaching examples."
},
"validFrom": "2015-05-10T12:30:00Z",
"name": "Example University Degree",
"description": "2015 Bachelor of Science and Arts Degree",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaee6cRuNdNecab7A7cnbb6w5xovYRWxYirEHstya3usouK",
"cryptosuite": "ecdsa-sd-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0AhVhA9eBZ3zjxuj0IcV6BJobNReA-F8MFuXarAEQkZu0XbBzMazxTcurv0sm6zbuZthOOYyUgufuZ9rFdjeG4WP9mpVgjgCQD0jQzO4hrZutcu3W9LvCVM9f0o1IUtWTn-4-L-3pyLIRYIItb5A4K0qAvYg4pmUOGWDuJ5HlF2Zxzf6yLVGr3gdmGh1hA_ZBp66r3OHhPze0PMFJkUMwEj_c5zb2jZc88nw7nCSBZI-pwZ2KcJLdgo2j237BxDkFtIez_-RojU1aycyYtdlhAtKygVIUGw2o1a1ihLVqshVrjXmndR1XKxj6mfchzM6gF0oq4UU4UkY2wXa2a7mu8yYzLGN3px9BorgpaZTu9llhApFGv_o2hoaiNDlhjFWJmuiU1g3R30TzmmjjKATdHnJ9tNTaVNsBMZ2KtujzDYTDDnXqOI9BQv-JWvOPm-pWEx1hAO2sJNL_bRhq6Xv1Zl7m1TyWId-bn3D2vRm3OxzwmY73v7kZgerL9-wiBB_3pF9xhlY9Ym1HWL4lFbRr4f8u-DlhAoh3GO_w-r9OuAeVhqkEH9ws-hHHEi-0PWUfr16hW-RgTteu0o2lx-Sa12h_N04D4jECG9DC1ySy3IOEf_3NDk1hA_EAkRyAAZhseD-h6DIv5s_nasDUXZqezES6FJiLeTSBLnGwoiLZRqBfmazBZBE2dobfXeFzRDhTG5jZvo-8W6VhAZaehJc5SCUwaQIGnH-yLbT6jLCDAo7iJaf3ICE_wHEmLQFLyUp2QMDVLnTlm3RFSs0WxG2DdExJNfArdmduNPoFnL2lzc3Vlcg"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": {
"id": "https://university.example/issuers/565049",
"name": "Example University",
"description": "A public university focusing on teaching examples."
},
"validFrom": "2015-05-10T12:30:00Z",
"name": "Example University Degree",
"description": "2015 Bachelor of Science and Arts Degree",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"verificationMethod": "did:key:zUC7JVyoNecN4arDQjjTXVSfyv1V7bwcnMUs6y2BuSeWmzarPohM5DLXAXXxkBRrpjbzZTUdrLaAVoj87nPgXktL3q8JgBvRqqHo9Z88Jfn2tXXM8Q1aTDhNgf1HYL9WEMiULnS",
"cryptosuite": "bbs-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0ChVhQl2la-H4xA8qLgaVEsd550eGlNlHCKRQk9lkZHwGmuW1dZAov1NcuyRYt4atnKd_VRnffX6PPV1dT0trhLjLCh72S2ov3NQ5pZ0H5WWCO5uBYQD3-tli9rF9b1rOCOCaDSL0zj-QnIO3TIaEobJTPayaIXFDE8ZX70eeJX1DawHuw0sW9CBV3sa68IaRGcnZiiQpYYLMBLFvXdBPRt0k4kRZk93gc0jkscNQB3wJpCXu4OPkNaVJMlX03jEKZdwQ437AaRg2tSqfzd_pbHzZq9O7FyF1fsAT1tn_tHqFT5wrUWfaGtHJRQwv6rnUS3s9HBqQB_1ggA41wkpaGKw674WeJTsXTml3Zk_rjWZm8dPW2Qgv2tRmBZy9pc3N1ZXI"
}
}
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
application/vc
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": {
"id": "https://university.example/issuers/565049",
"name": "Example University",
"description": "A public university focusing on teaching examples."
},
"validFrom": "2015-05-10T12:30:00Z",
"name": "Example University Degree",
"description": "2015 Bachelor of Science and Arts Degree",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
application/vc+jwt
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": {
"id": "https://university.example/issuers/565049",
"name": "Example University",
"description": "A public university focusing on teaching examples."
},
"validFrom": "2015-05-10T12:30:00Z",
"name": "Example University Degree",
"description": "2015 Bachelor of Science and Arts Degree",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1788642562,
"exp": 1789852162,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": {
"name": "Example University",
"description": "A public university focusing on teaching examples.",
"_sd": [
"0DPMOo9GZmOnofDJDjn3Gd-E4YTvtIoXF0w2DuILZDA"
]
},
"validFrom": "2015-05-10T12:30:00Z",
"name": "Example University Degree",
"description": "2015 Bachelor of Science and Arts Degree",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"OBjdo7I6rnn3JcJ-ItGiPSkRCpQIO9pF0LmIr1nmk4c"
]
},
"_sd": [
"d6VFMULI-ndwWK4ZxyJ-DG09ieA8SMYsBd03VJ_E-_4"
]
},
"_sd": [
"3y6M19gPD9IGdosjkeZcaxpifa4tUVJKoPlIepQ_ViQ",
"knJVBYSola7RJYoq_t7HoDTuhF9Ogw-sshsJzA-P7RM"
]
}
SHA-256ハッシュ: 3y6M19gPD9IGdosjkeZcaxpifa4tUVJKoPlIepQ_ViQ
開示: WyJBQ0I2SGtGSU1QSVhCcFpQY0kzbEV3IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd
内容: [
"ACB6HkFIMPIXBpZPcI3lEw",
"id",
"http://university.example/credentials/3732"
]
SHA-256ハッシュ: knJVBYSola7RJYoq_t7HoDTuhF9Ogw-sshsJzA-P7RM
開示: WyJBY3l4am05dG1XeG1xaGJQQ2I5M2Z3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d
内容: [
"Acyxjm9tmWxmqhbPCb93fw",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential"
]
]
SHA-256ハッシュ: 0DPMOo9GZmOnofDJDjn3Gd-E4YTvtIoXF0w2DuILZDA
開示: WyI3Z05jX0lVWHpuQkhEOTk3ejlMenhRIiwgImlkIiwgImh0dHBzOi8vdW5pdmVyc2l0eS5leGFtcGxlL2lzc3VlcnMvNTY1MDQ5Il0
内容: [
"7gNc_IUXznBHD997z9LzxQ",
"id",
"https://university.example/issuers/565049"
]
SHA-256ハッシュ: d6VFMULI-ndwWK4ZxyJ-DG09ieA8SMYsBd03VJ_E-_4
開示: WyJ2ektlSzc0bmFCXzhRN1l2WThJTHd3IiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd
内容: [
"vzKeK74naB_8Q7YvY8ILww",
"id",
"did:example:ebfeb1f712ebc6f1c276e12ec21"
]
SHA-256ハッシュ: OBjdo7I6rnn3JcJ-ItGiPSkRCpQIO9pF0LmIr1nmk4c
開示: WyIxT1NqVjQ0WklSYnlxazVHMlo1RE5nIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
内容: [
"1OSjV44ZIRbyqk5G2Z5DNg",
"type",
"ExampleBachelorDegree"
]
名前と説明は、異なる言語での内容の表現もサポートします。
言語および基底方向の情報を伴う文字列を表現するには、
@value、@language、および
@direction
プロパティを含むオブジェクトを使用して、それぞれテキスト値、言語タグ、および基底方向を表現できます。
詳細は、
9.1 言語と基底方向を
参照してください。
以下の例の@directionプロパティは、
対応する単一言語の文字列には必須ではありません。これらの既定の方向は、
@directionの値で設定された方向と同じです。ここでは、@direction
プロパティを、例示を明確にし、コピー、貼り付け、編集によって
機能する結果が得られるようにするために含めています。実装者には、
文字列の
国際化に関する節を、
JSON-LD
1.1仕様で読むことが推奨されます。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": ["VerifiableCredential", "ExampleDegreeCredential"],
"issuer": {
"id": "https://university.example/issuers/565049",
"name": [{
"@value": "Example University",
"@language": "en"
}, {
"@value": "Université Exemple",
"@language": "fr"
}, {
"@value": "جامعة المثال",
"@language": "ar",
"@direction": "rtl"
}],
"description": [{
"@value": "A public university focusing on teaching examples.",
"@language": "en"
}, {
"@value": "Une université publique axée sur l'enseignement d'exemples.",
"@language": "fr"
}, {
"@value": ".جامعة عامة تركز على أمثلة التدريس",
"@language": "ar",
"@direction": "rtl"
}]
},
"validFrom": "2015-05-10T12:30:00Z",
"name": [{
"@value": "Example University Degree",
"@language": "en"
}, {
"@value": "Exemple de Diplôme Universitaire",
"@language": "fr"
}, {
"@value": "مثال الشهادة الجامعية",
"@language": "ar",
"@direction": "rtl"
}],
"description": [{
"@value": "2015 Bachelor of Science and Arts Degree",
"@language": "en"
}, {
"@value": "2015 Licence de Sciences et d'Arts",
"@language": "fr"
}, {
"@value": "2015 بكالوريوس العلوم والآداب",
"@language": "ar",
"@direction": "rtl"
}],
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": [{
"@value": "Bachelor of Science and Arts Degree",
"@language": "en"
}, {
"@value": "Licence de Sciences et d'Arts",
"@language": "fr"
}, {
"@value": "بكالوريوس العلوم والآداب",
"@language": "ar",
"@direction": "rtl"
}]
}
}
}
この仕様は、発行者、すなわち 検証可能なクレデンシャルの発行元を表現するためのプロパティを定義します。
検証可能なクレデンシャルはMUST、
issuer プロパティを持たなければなりません。
issuer プロパティの値はMUST、
次のURL、または
id プロパティを含み、その値がURLであるオブジェクトのいずれかでなければなりません。いずれの場合も、
発行者はこのURLを選択して、自身をグローバルに一義的に識別します。
RECOMMENDEDなのは、次のURLとして、参照解決したときに、
制御識別子文書となるものを用いることです。この文書は制御識別子 v1.0仕様で定義され、
次の発行者に関するものであり、情報の検証に使用できます。その情報は
次の
クレデンシャルに表現されています。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": ["VerifiableCredential", "ExampleDegreeCredential"],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaeqpc578Kg3k9asdXLMhsQSjh8HMPp3ip3miiWZUUhsv9p",
"cryptosuite": "ecdsa-rdfc-2019",
"proofPurpose": "assertionMethod",
"proofValue": "z3UCx3YbHeZZ7jq8D9b8itNZpbdMLSQuC6i8r5zAF9DDA2S2gAq6KgGUa5F31F6FTSvxhXyimumJFV9m5ub7wtw9N"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaee6cRuNdNecab7A7cnbb6w5xovYRWxYirEHstya3usouK",
"cryptosuite": "ecdsa-sd-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0AhVhAa2HEMU6j7PN6xbRdWN0Zsa8vDmfTHzTe36iKWQfBKh6Y0b7m3De12WPMIWVJBGAN8PkoGo7g_E3DlG_LRtY3AVgjgCQCiQP8EMTwRK3tKiHAmoANxo9F6trm2I6oEqKfDR1SnclYIN7qqaZYhank4REfmamLJNbFw6nZFoQ27MNtj4phTIn0hVhALdKrGxMp4j3OgOAyKUIoirGHqkk5cE2T6xQNoPv-AqgV3BHMRdCGytmB__LLgSfrGikbrmIZzkncAjgBQLYVlFhAtp35vUtjU22xwN0ApmnsFLLhvMZE82iXQbDoJPdYex4gcEy3VCShiAHq0fZQQ_w57JzRvtTFSN5nB5fUnv15L1hALfh0IlQXV2UWzV1u45FasE9d3KSq1TDLgGYHz1eN6DQ56LjyP-FIGPltBoygOAF4lFfYLLbYK5eXt7c7KQGQulhA_6r3E5REhY0n4fmWebUH536aV5H57yCm0uMoFArhGjJKF9GOfBYDlq89rFdavMJw0ooCoPjsmOiyp_fYnqdyDFhAB0w3WreQqv3n57p0RWRvVeS7oPA0S_sFF90IBtGd1sqc_iGNww0UMEUi1UZYX--n9fehg0rmeDxlv1iwKuSYDoFnL2lzc3Vlcg"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"verificationMethod": "did:key:zUC7JVyoNecN4arDQjjTXVSfyv1V7bwcnMUs6y2BuSeWmzarPohM5DLXAXXxkBRrpjbzZTUdrLaAVoj87nPgXktL3q8JgBvRqqHo9Z88Jfn2tXXM8Q1aTDhNgf1HYL9WEMiULnS",
"cryptosuite": "bbs-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0ChVhQuVb-Kl_Muxvn-scLX6yvPSEO1qatpJujOOaTHvosYOQTCLj72z1-GPkeps5LCt79YAPzx-tcnHGcKaxXT4UQSfmw3Yit_mohbAXWSvO3AQlYQD3-tli9rF9b1rOCOCaDSL0zj-QnIO3TIaEobJTPayaIKnv3N5iX7nvZR0OCXS-uXH4QQ9mW65QM5qlHOfE4GQVYYLMBLFvXdBPRt0k4kRZk93gc0jkscNQB3wJpCXu4OPkNaVJMlX03jEKZdwQ437AaRg2tSqfzd_pbHzZq9O7FyF1fsAT1tn_tHqFT5wrUWfaGtHJRQwv6rnUS3s9HBqQB_1gg2-BQp1R2IM3QoFUI2WfaF3HqCxy8Z_1jh-u4xLek3tSBZy9pc3N1ZXI"
}
}
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
application/vc
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
application/vc+jwt
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1788642562,
"exp": 1789852162,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"I7pjs4_wyc0lWE4aCnlVqIlXwYTcTZfMTTqIvQ-XMTU"
]
},
"_sd": [
"ti90XR08_7xSvcKHt5n9-cqBLwbaUw_sJiH3eM_oT70"
]
},
"_sd": [
"RYa1HPo_JqL9kQe8_xskF663BWWm3W4yZG8hO3tvmAA",
"hkn4PWOqdNAq3MSBFwY0UxHb7Q-mbCXgXzkfjOg4rZ8"
]
}
SHA-256ハッシュ: hkn4PWOqdNAq3MSBFwY0UxHb7Q-mbCXgXzkfjOg4rZ8
開示: WyJ4ak1NbkJPMVZJQVNDZnlqSDk4VG93IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd
内容: [
"xjMMnBO1VIASCfyjH98Tow",
"id",
"http://university.example/credentials/3732"
]
SHA-256ハッシュ: RYa1HPo_JqL9kQe8_xskF663BWWm3W4yZG8hO3tvmAA
開示: WyIyZC1oWHdXQW5TZFFPQlA4RTN6UXpnIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d
内容: [
"2d-hXwWAnSdQOBP8E3zQzg",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential"
]
]
SHA-256ハッシュ: ti90XR08_7xSvcKHt5n9-cqBLwbaUw_sJiH3eM_oT70
開示: WyJWSk5ZV3ZTR1RXemVhWGd4dEg0VDJnIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd
内容: [
"VJNYWvSGTWzeaXgxtH4T2g",
"id",
"did:example:ebfeb1f712ebc6f1c276e12ec21"
]
SHA-256ハッシュ: I7pjs4_wyc0lWE4aCnlVqIlXwYTcTZfMTTqIvQ-XMTU
開示: WyJUdE1KZUJhOS1GU3g4bXBIazdqOVJ3IiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
内容: [
"TtMJeBa9-FSx8mpHk7j9Rw",
"type",
"ExampleBachelorDegree"
]
発行者に関する追加情報は、 issuerプロパティにオブジェクトを関連付けて表現することもできます。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": ["VerifiableCredential", "ExampleDegreeCredential"],
"issuer": {
"id": "did:example:76e12ec712ebc6f1c221ebfeb1f",
"name": "Example University"
},
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": {
"id": "did:example:76e12ec712ebc6f1c221ebfeb1f",
"name": "Example University"
},
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaeqpc578Kg3k9asdXLMhsQSjh8HMPp3ip3miiWZUUhsv9p",
"cryptosuite": "ecdsa-rdfc-2019",
"proofPurpose": "assertionMethod",
"proofValue": "z4xErymdqkw11RkatDqHgEvBP5FGrj5VkGXwzG2X4wherYnH1jPbtQX9MSEHvXp729pPLnYH84VC6C7HWQDtL1j6"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": {
"id": "did:example:76e12ec712ebc6f1c221ebfeb1f",
"name": "Example University"
},
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaee6cRuNdNecab7A7cnbb6w5xovYRWxYirEHstya3usouK",
"cryptosuite": "ecdsa-sd-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0AhVhAvfJXBZd496XcZcCwYXJd-ijIx7U4lHyPku8ZD32Q0haH-wCu1FlOgSB-VQFtqBRxrIjDk6Xul3M3k72czY7JQ1gjgCQC0qfQ1BOcJ5Lkvm8k8hQ1rkVb8c_pPsdXRROosouMCztYIJPtpPPjBzmHsmCvq3lL1tcKi5M9wLeJZpXgg-rPxkqJhVhAec_i5BhyI2YKR839DxtJsM32qwkw7hT1zPxY1FODUKkaUY2PGkJal764UBBs_Pkud0fNagLDO5D0wC41Qw9c5lhA21mnQnoYd4gFIdRl0Pnrn2kW0BnC35qzpKXeBTefedsWE3WqXUbagY0jaQHt1kYNTk3w3YUuf3fKwasI5iXEYlhASYapu5wsl4wpWYJMM-hjltjsXTbtPq1j91395s7eQdR3aOkoBuyfd-5GHGorMAkf0M_l0Cr0RPfvlxu4MPXUb1hAzIBNBho458ey2UYVWQ51LZQoiOwBIgcmKhMFO5rr7ixI-BLeXGb-CMGhTMA7cCcdTsXyy9rlpGm0jvG5rvQfHFhAC0f31KQBMCOoWoDTcv-3Xt7cpARy5rfbKQletriZTOZ_iZZj2haG3N2m3_K0jWhdL1XzmGAe09TcXTSSXMOI04FnL2lzc3Vlcg"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": {
"id": "did:example:76e12ec712ebc6f1c221ebfeb1f",
"name": "Example University"
},
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"verificationMethod": "did:key:zUC7JVyoNecN4arDQjjTXVSfyv1V7bwcnMUs6y2BuSeWmzarPohM5DLXAXXxkBRrpjbzZTUdrLaAVoj87nPgXktL3q8JgBvRqqHo9Z88Jfn2tXXM8Q1aTDhNgf1HYL9WEMiULnS",
"cryptosuite": "bbs-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0ChVhQrC7s_jn_2bwymqWbq1r4dAfhkZoAxsoLiKk3ri6eIo2RCMH-bYE_-9mUodo_RgudSXAcmDtUlwf8kET_gnOdt5QzwKPefjcsyNbxTU283CRYQD3-tli9rF9b1rOCOCaDSL0zj-QnIO3TIaEobJTPayaIQAGpGXTZS6rwOppAPreXlDb3xQb46PJ_xcVri0glVYJYYLMBLFvXdBPRt0k4kRZk93gc0jkscNQB3wJpCXu4OPkNaVJMlX03jEKZdwQ437AaRg2tSqfzd_pbHzZq9O7FyF1fsAT1tn_tHqFT5wrUWfaGtHJRQwv6rnUS3s9HBqQB_1ggP983JVVEFktPJIXhwxdTbW-LoPF5dJVQH4jhjefR9sOBZy9pc3N1ZXI"
}
}
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
application/vc
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": {
"id": "did:example:76e12ec712ebc6f1c221ebfeb1f",
"name": "Example University"
},
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
application/vc+jwt
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": {
"id": "did:example:76e12ec712ebc6f1c221ebfeb1f",
"name": "Example University"
},
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1788642562,
"exp": 1789852162,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": {
"name": "Example University",
"_sd": [
"gmGloiJNljvbzjc4Lg1G4VyoKrXPDVkHlW0Q5DF_lIo"
]
},
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"UPAvmV04h7krnQCwDRxR0rXBuyINQtdwv5v05jaYWjE"
]
},
"_sd": [
"PmVGPKFESuL5gWlVyLHKRRYG67lv3cJOLy6OXMvd03w"
]
},
"_sd": [
"M3-fkt7GgMLQPkjtPu2deV2Ufv9BJ4e05Ts3F-PGPF8",
"OJBvgBGxZ_ajceXS5FpJ0j2i3YcX-HfMepRwUaFVUfs"
]
}
SHA-256ハッシュ: OJBvgBGxZ_ajceXS5FpJ0j2i3YcX-HfMepRwUaFVUfs
開示: WyJSVV9lZWlsckdIeVJER1VCX0MtT0lBIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd
内容: [
"RU_eeilrGHyRDGUB_C-OIA",
"id",
"http://university.example/credentials/3732"
]
SHA-256ハッシュ: M3-fkt7GgMLQPkjtPu2deV2Ufv9BJ4e05Ts3F-PGPF8
開示: WyJjYVVtWl8tNTRSUV9tRDBpTTBzLUdRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d
内容: [
"caUmZ_-54RQ_mD0iM0s-GQ",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential"
]
]
SHA-256ハッシュ: gmGloiJNljvbzjc4Lg1G4VyoKrXPDVkHlW0Q5DF_lIo
開示: WyJZRm9SY3UxOExZbjhlUmhfOE41V21RIiwgImlkIiwgImRpZDpleGFtcGxlOjc2ZTEyZWM3MTJlYmM2ZjFjMjIxZWJmZWIxZiJd
内容: [
"YFoRcu18LYn8eRh_8N5WmQ",
"id",
"did:example:76e12ec712ebc6f1c221ebfeb1f"
]
SHA-256ハッシュ: PmVGPKFESuL5gWlVyLHKRRYG67lv3cJOLy6OXMvd03w
開示: WyJmZzNnNkZEY3p5T0NlU2VkU2hWaXNnIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd
内容: [
"fg3g6FDczyOCeSedShVisg",
"id",
"did:example:ebfeb1f712ebc6f1c276e12ec21"
]
SHA-256ハッシュ: UPAvmV04h7krnQCwDRxR0rXBuyINQtdwv5v05jaYWjE
開示: WyJMdWhGQ2FyVmNSRUstZ1NmbVFyWGtRIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
内容: [
"LuhFCarVcREK-gSfmQrXkQ",
"type",
"ExampleBachelorDegree"
]
検証可能なクレデンシャルには、主張が含まれます。その主張は1つ以上の主体に関するものです。
この仕様は、credentialSubject プロパティを、
次の
主張の表現のために定義します。その主張は1つ以上の主体に関するものです。
検証可能なクレデンシャルはMUST、
credentialSubject プロパティを含まなければなりません。
credentialSubject プロパティの値は、
オブジェクトの集合です。各
オブジェクトはMUST、主体でなければなりません。その主体についての1つ以上の主張はMUST、
credentialSubject プロパティ内にシリアライズされなければなりません。各オブジェクトには、
MAY、
id プロパティも含めて、主体を識別してもかまいません。これは、
セクション4.4 識別子で説明されています。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": ["VerifiableCredential", "ExampleDegreeCredential"],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaeqpc578Kg3k9asdXLMhsQSjh8HMPp3ip3miiWZUUhsv9p",
"cryptosuite": "ecdsa-rdfc-2019",
"proofPurpose": "assertionMethod",
"proofValue": "z32tZqevy2bWArZtNTr9uVuxHMYBRC3NXaRUR8rvvferx7WMjerYAsvxJjCtkjB7V2o9hecPr9qd5CTckPYGBXh3G"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaee6cRuNdNecab7A7cnbb6w5xovYRWxYirEHstya3usouK",
"cryptosuite": "ecdsa-sd-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0AhVhA101-mPu7ZDbK5Tm8EsTf_p8zOtqgtBbEBi4GDeT7KSILKQzd1IiIIZpx82U6GGYE-xwan9dtkd7_L5VrgCJaHlgjgCQCScXI7nbF_qrx-mTD4wve_ns3Q7E0w5HdO4rnJ-PAYyZYIGRJawpdeBNF6zkm8Ie6T9qojlermHaffjIgILL-9UMihVhAk64ss8WQazULbGnusVBTxy5jcpYJg10XsG__443pcVqDDjvLhfntW-amMT9alMgAoKIIJmGLlFD804gtlAuOUFhABG_iIWJfdYdn9uxr7kBSpVDyGuOaTrqFGpB0cqvHq8hPkGFoEJdRZo51-K3P2QgZ_ViGGWjNAh23H6CKw6XCf1hAChaXCI7p7FST1dwm91Zy_bibXx6UxfWyKHRhx6eKTagfRZAJ-uhz94-_Eu02q0zldcGEF8Hyfv04wnL61gF7Q1hAL-OYZzNHClpuX85mKTtK04BJ5-EQ26-idA5p6Z726JCJFUzibrHfI9KU_avQiTeWrv1Ss046n6BqyvthsBpKKlhACjOoGlPmmZXA-FB3z6DrRbjF8EEGpKLpZiAu7jH7aMpOxcV5tN7W9B255HiFZndwh1iW0abSEcz_34pnhjpi6YFnL2lzc3Vlcg"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"verificationMethod": "did:key:zUC7JVyoNecN4arDQjjTXVSfyv1V7bwcnMUs6y2BuSeWmzarPohM5DLXAXXxkBRrpjbzZTUdrLaAVoj87nPgXktL3q8JgBvRqqHo9Z88Jfn2tXXM8Q1aTDhNgf1HYL9WEMiULnS",
"cryptosuite": "bbs-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0ChVhQh4ZbrGO7Wg8qsyvcnGBbBoDqN-XXQ7LIbkeP13o5yHIZ8tC6ELjpJrwsGFhQL2CsAdRvyoWAPlj-hGvALc6qEvIbbrt7axyOUl_cjBTbCFhYQD3-tli9rF9b1rOCOCaDSL0zj-QnIO3TIaEobJTPayaIS1r7HKFDPyyrvPGqNF8bjgNELvoomOjpbD9JEvaGI1pYYLMBLFvXdBPRt0k4kRZk93gc0jkscNQB3wJpCXu4OPkNaVJMlX03jEKZdwQ437AaRg2tSqfzd_pbHzZq9O7FyF1fsAT1tn_tHqFT5wrUWfaGtHJRQwv6rnUS3s9HBqQB_1ggJHx1-prSYte6q2_nrSH0qfNZUhq1zn1u_D5gMJLRWACBZy9pc3N1ZXI"
}
}
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
application/vc
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
application/vc+jwt
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1788642562,
"exp": 1789852162,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"SZvJxRpMTmWJDLhxyfy9T548k6T4jBp8n8-Cbhb8WL4"
]
},
"_sd": [
"vZcSKOKKZ1lRaXQiKdvyGrBPrOn_PWI5w0FCMqbY_UI"
]
},
"_sd": [
"13j2KPySJ7-1rgy3X-V3dtFt4RHk-WVVT0fA7Owx2n0",
"MIbto-Ly5T2xeB4JK3UfGy8Vb3i6Dx60dsdaV7Cj_UQ"
]
}
SHA-256ハッシュ: MIbto-Ly5T2xeB4JK3UfGy8Vb3i6Dx60dsdaV7Cj_UQ
開示: WyJuQkhDdzQtT2xyd3ZqZEd2QkRtakxBIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd
内容: [
"nBHCw4-OlrwvjdGvBDmjLA",
"id",
"http://university.example/credentials/3732"
]
SHA-256ハッシュ: 13j2KPySJ7-1rgy3X-V3dtFt4RHk-WVVT0fA7Owx2n0
開示: WyJpWnhvb0QwRGJFNU9OSUxVTlhVU1NnIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d
内容: [
"iZxooD0DbE5ONILUNXUSSg",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential"
]
]
SHA-256ハッシュ: vZcSKOKKZ1lRaXQiKdvyGrBPrOn_PWI5w0FCMqbY_UI
開示: WyJ3ekd6dC1FOUtvS2xWQ1hPb3lSOUZ3IiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd
内容: [
"wzGzt-E9KoKlVCXOoyR9Fw",
"id",
"did:example:ebfeb1f712ebc6f1c276e12ec21"
]
SHA-256ハッシュ: SZvJxRpMTmWJDLhxyfy9T548k6T4jBp8n8-Cbhb8WL4
開示: WyJQLXR3cUk3YnN5M0FaWUtheUIybXpBIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
内容: [
"P-twqI7bsy3AZYKayB2mzA",
"type",
"ExampleBachelorDegree"
]
複数の主体に関する情報を
検証可能なクレデンシャルで表現できます。以下の例では、
2つの
主体を配偶者として指定します。配列表記を使用して、
複数の
主体をcredentialSubjectプロパティに関連付けている点に注意してください。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": ["VerifiableCredential", "RelationshipCredential"],
"issuer": "https://issuer.example/issuer/123",
"validFrom": "2010-01-01T00:00:00Z",
"credentialSubject": [{
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"name": "Jayden Doe",
"spouse": "did:example:c276e12ec21ebfeb1f712ebc6f1"
}, {
"id": "https://subject.example/subject/8675",
"name": "Morgan Doe",
"spouse": "https://subject.example/subject/7421"
}]
}
この仕様は、validFrom プロパティを定義し、
発行者がクレデンシャルが有効になる日時を表現できるようにします。また、
validUntil プロパティは、
クレデンシャルが有効でなくなる日時を表現します。
日付と時刻を比較する際、計算は「時間的に」行われます。 つまり、文字列値は、タイムライン上の一点として存在する 「時間値」に変換されます。その後、比較対象の日時が タイムライン上の特定の時点に対してどこに位置するかを確認することで、 時間的な比較が行われます。
validFrom プロパティの値はMUST、
[XMLSCHEMA11-2]
dateTimeStamp文字列値でなければなりません。この値は、
クレデンシャルが有効になる日時を表します。その日時は
将来または
過去の場合があります。この値は、
credentialSubject
プロパティに関連付けられた情報が有効になる最も早い時点を表すことに注意してください。validUntil値も
存在する場合、
validFrom値はMUST、
その時点と時間的に同じか、
validUntil値が表す時点よりも早い時点を表現しなければなりません。
validUntil プロパティの値はMUST、
[XMLSCHEMA11-2]
dateTimeStamp文字列値でなければなりません。この値は、
クレデンシャルが有効でなくなる日時を表します。その日時は
過去または
将来の場合があります。この値は、
credentialSubject
プロパティに関連付けられた情報が有効である最も遅い時点を表すことに注意してください。validFrom値も
存在する場合、validUntil
値はMUST、その時点と時間的に同じか、それより後の時点を
表現しなければなりません。比較対象は、
validFrom値が表す時点です。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": ["VerifiableCredential", "ExampleDegreeCredential"],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"validUntil": "2020-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"validUntil": "2020-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaeqpc578Kg3k9asdXLMhsQSjh8HMPp3ip3miiWZUUhsv9p",
"cryptosuite": "ecdsa-rdfc-2019",
"proofPurpose": "assertionMethod",
"proofValue": "z2dKRP62PT5tXJWmMFwoRwaLirvpM3KQSyezxRrppMWWAyQHQgqSvFQqJrerRp9n1pm6w4bNgRV8KVq7LnMDkFmbo"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"validUntil": "2020-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaee6cRuNdNecab7A7cnbb6w5xovYRWxYirEHstya3usouK",
"cryptosuite": "ecdsa-sd-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0AhVhASymzIzRv9itXTEGFOhWeeaRGltN3Q5ZTLerIOIT_YOZnsEiIGhc2_6lxxriLmcUx4vCEqzwLWM7qQL_bu0-y-FgjgCQCd0IBv_dHa_tVxxyByNXUEpchBk6mBfNDpC2cTGbkRphYIPfGlHazfyyvni0ogmkmzbtBeW2ypsWnfeHkpdq7scxshlhA1MRdQ7vZEkIAwHSFrXj88CYxvOhKY_H6tnhkUIqOrZVuYHwkP9N1rQjN3FxE6K5nF98nt-g0Kw0m2LKxs8v771hAVeYeJ8JZ-LsldBa_OBfviMyta3rMzxReE3jwM70P5SkcY3q7DMP6AWdvowGVWe-MhO2t3lG9t6FTV3WY2xYumlhAv_MGxQlKo55okftl6QJCs4G0MC22-7l9DhRk7PTGOXP0EvAtPrtMbQ43iJMDY88JESSiv1IUnu_IH-BUorqye1hACa_36i20pLl8nteRriKsz6JROIWELHPyh9dqACyzZdfObvh2aweK3EXwW2DEs8qe-mAk1JELhuxF6k9fD26mqFhA7W-Mwb15_hIFWh0Dy8KFuF1u-b8AZwrWoVuDOKDPGKfGHnxCKNiKRTg9q7evsaPROjJ3ZtaoEpsQ7JvnqqKNV1hAaaQEbl1S-UYFFOYuoFyMPPj_emQbfBzl-hYEJNKJNW_5Lq_H81O7GJPyA5ajvSqmhKlbjLiZIn9sAxLppCdwp4FnL2lzc3Vlcg"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"validUntil": "2020-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"verificationMethod": "did:key:zUC7JVyoNecN4arDQjjTXVSfyv1V7bwcnMUs6y2BuSeWmzarPohM5DLXAXXxkBRrpjbzZTUdrLaAVoj87nPgXktL3q8JgBvRqqHo9Z88Jfn2tXXM8Q1aTDhNgf1HYL9WEMiULnS",
"cryptosuite": "bbs-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0ChVhQsWlptnesgCHlq0jnOxdSQZ-vBEyCHlufPsK_10HmZUW6p2Tk39-3nPU-D5Wpx5tnCp-pXmZe1oJUTMpZkD1752Q_hJji2VTngfoF5ThcBatYQD3-tli9rF9b1rOCOCaDSL0zj-QnIO3TIaEobJTPayaIKnv3N5iX7nvZR0OCXS-uXH4QQ9mW65QM5qlHOfE4GQVYYLMBLFvXdBPRt0k4kRZk93gc0jkscNQB3wJpCXu4OPkNaVJMlX03jEKZdwQ437AaRg2tSqfzd_pbHzZq9O7FyF1fsAT1tn_tHqFT5wrUWfaGtHJRQwv6rnUS3s9HBqQB_1ggWWL7Q19VWfetyDZL8ZT3MUW20katDynN9Sq9ZLkpglGBZy9pc3N1ZXI"
}
}
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
application/vc
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"validUntil": "2020-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
application/vc+jwt
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"validUntil": "2020-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1788642562,
"exp": 1789852162,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"validUntil": "2020-01-01T19:23:24Z",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"QELQZJWytF6jR5cXNImOn4ZpfNITgg14GNWE40n5XCY"
]
},
"_sd": [
"Jn6ZzfDzSo3puw06QPiTiLfISSstodaLnFEXm0Ntah4"
]
},
"_sd": [
"dL4BRjBgxF44rL1HpO4xfb7WZvoTXyRCebt5KJLhQco",
"hvj_lR-PUmmvHKa8iyNeQzxhDri9Y4m1gjmxdB9c6gc"
]
}
SHA-256ハッシュ: hvj_lR-PUmmvHKa8iyNeQzxhDri9Y4m1gjmxdB9c6gc
開示: WyJ6d2Nfa1RlZEpMdmtHSGdIY1FkTGJnIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd
内容: [
"zwc_kTedJLvkGHgHcQdLbg",
"id",
"http://university.example/credentials/3732"
]
SHA-256ハッシュ: dL4BRjBgxF44rL1HpO4xfb7WZvoTXyRCebt5KJLhQco
開示: WyJ6MGZXRlR4OUFzazFEX25ZZnNEZFZRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d
内容: [
"z0fWFTx9Ask1D_nYfsDdVQ",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential"
]
]
SHA-256ハッシュ: Jn6ZzfDzSo3puw06QPiTiLfISSstodaLnFEXm0Ntah4
開示: WyJPcWlCRWRJajZxem1vSld4dHBhUV9nIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd
内容: [
"OqiBEdIj6qzmoJWxtpaQ_g",
"id",
"did:example:ebfeb1f712ebc6f1c276e12ec21"
]
SHA-256ハッシュ: QELQZJWytF6jR5cXNImOn4ZpfNITgg14GNWE40n5XCY
開示: WyJRUmtxVDdKZkwtOXZyMzU3RXNZbF9nIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
内容: [
"QRkqT7JfL-9vr357EsYl_g",
"type",
"ExampleBachelorDegree"
]
validFromおよびvalidUntilが存在しない場合、
検証可能なクレデンシャルの有効期間は、
無期限に有効であると
みなされます。このような場合、検証可能なクレデンシャルは、
verifiable credentialが作成された時点から有効であるとみなされます。
この仕様は、 credentialStatus プロパティを、 検証可能なクレデンシャルのステータスに関する情報(そのクレデンシャルが一時停止または 失効しているかどうかなど)を取得するために定義します。
存在する場合、credentialStatus プロパティに関連付けられた値は、
単一のオブジェクト、または1つ以上のオブジェクトの集合です。各オブジェクトには、次のプロパティが
定義されています。
id プロパティはOPTIONALです。これはMAY、
クレデンシャルのステータスオブジェクトに一意の識別子を付与するために使用してもかまいません。存在する場合、
セクション4.4 識別子の規範的指針にMUST
従わなければなりません。
type プロパティはREQUIREDです。これは、
オブジェクトが表す
ステータス情報の型を表現するために使用されます。関連する規範的
指針として、セクション4.5
型にMUST従わなければなりません。
クレデンシャルのステータス情報の正確な内容は、
個別の
credentialStatus 型の定義によって決まり、
実装が簡単か、プライバシーを強化するかといった要因に応じて
異なります。その値は、クレデンシャルの現在のステータスと、機械可読情報を
URLから取得できるかどうかを判断するのに十分な情報を提供します。たとえば、オブジェクトには、
クレデンシャルが一時停止または失効しているかを記した外部文書へのリンクを含めることができます。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": ["VerifiableCredential", "ExampleDegreeCredential"],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"credentialStatus": {
"id": "https://university.example/credentials/status/3#94567",
"type": "BitstringStatusListEntry",
"statusPurpose": "revocation",
"statusListIndex": "94567",
"statusListCredential": "https://university.example/credentials/status/3"
}
}
クレデンシャルには、失効または一時停止しているかどうかなど、複数のステータスを 関連付けることができます。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://license.example/credentials/9837",
"type": ["VerifiableCredential", "ExampleDrivingLicenseCredential"],
"issuer": "https://license.example/issuers/48",
"validFrom": "2020-03-14T12:10:42Z",
"credentialSubject": {
"id": "did:example:f1c276e12ec21ebfeb1f712ebc6",
"license": {
"type": "ExampleDrivingLicense",
"name": "License to Drive a Car"
}
},
"credentialStatus": [{
"id": "https://license.example/credentials/status/84#14278",
"type": "BitstringStatusListEntry",
"statusPurpose": "revocation",
"statusListIndex": "14278",
"statusListCredential": "https://license.example/credentials/status/84"
}, {
"id": "https://license.example/credentials/status/84#82938",
"type": "BitstringStatusListEntry",
"statusPurpose": "suspension",
"statusListIndex": "82938",
"statusListCredential": "https://license.example/credentials/status/84"
}]
}
実装者は、複数のステータスエントリを持つクレデンシャルに 相反する情報が含まれる可能性があることに注意してください。このような矛盾の調整は、 妥当性検証プロセスの一部であり、したがって検証者のビジネス ロジックの一部となるため、 この仕様の範囲外です。
ステータス方式のデータモデル、形式、およびプロトコルを定義することは、 この仕様の範囲外です。検証可能なクレデンシャル拡張文書には、 検証可能なクレデンシャルのステータス確認を実装したい実装者が利用できる ステータス方式が掲載されています。
クレデンシャルのステータス仕様はMUST NOT、個人の追跡を可能にしてはなりません。たとえば、 発行者が、 検証者が特定の保有者または主体に関心を持ったときに、直接または間接に通知を受けることなどです。容認できない 手法には、クレデンシャルを使用するたびに、特定の個人のステータスを確認するために 発行者へ連絡する「ホームへの通信」や、 クレデンシャルを使用するたびに発行者へ情報を要求し、その発行者がその情報を使用して、 検証者が特定の個人に関心を持っていることを推測できる「仮名性の低下」が含まれます。
データスキーマは、特定のデータ集合に所定の構造を適用するときに 役立ちます。この仕様では、少なくとも次の2種類のデータスキーマを 考慮します。
データスキーマは、次のプロパティとは異なる目的を果たすことを理解することが重要です。
@contextプロパティは、データ構造も
データ構文も適用せず、代替
表現形式への任意の符号化を定義することもできません。
この仕様は、データスキーマを表現するための次のプロパティを定義します。発行者は、発行する検証可能なクレデンシャルに このプロパティを含めることができます。
credentialSchema プロパティの値はMUST、1つ以上の
データスキーマでなければなりません。それらのスキーマは、提供されたデータが提供されたスキーマに適合するかどうかを判断するのに十分な情報を検証者へ
提供します。各
credentialSchemaはMUST、自身のtype(
たとえば、
JsonSchema)およびid プロパティを指定しなければなりません。その値はMUST、スキーマファイルを識別するURLでなければなりません。個別の
型の
定義によって、各データスキーマの正確な内容が決まります。
複数のスキーマが存在する場合、妥当性は、関連付けられた各typeプロパティで
規定される処理規則に従って決定されます。
credentialSchema プロパティを使用すると、
型定義に注釈を付けたり、語彙の特定のバージョンに固定したりできます。
検証可能なクレデンシャルの作成者は、
何らかのコンテンツ完全性保護メカニズムによって保護された
語彙の静的バージョンをcredentialSchemaによって含めることができます。
credentialSchema
プロパティにより、
クレデンシャルの構文検査を実行し、検証メカニズムを
使用することもできます。たとえば、JSON Schema
[VC-JSON-SCHEMA]による妥当性検証です。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/3732",
"type": ["VerifiableCredential", "ExampleDegreeCredential", "ExamplePersonCredential"],
"issuer": "https://university.example/issuers/14",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
},
"alumniOf": {
"name": "Example University"
}
},
"credentialSchema": [{
"id": "https://example.org/examples/degree.json",
"type": "JsonSchema"
},
{
"id": "https://example.org/examples/alumni.json",
"type": "JsonSchema"
}]
}
上の例では、発行者が2つのcredentialSchema
オブジェクトを指定しています。各オブジェクトは、JSON Schema [VC-JSON-SCHEMA]ファイルを指しています。これにより、
検証者は、検証可能なクレデンシャルが
適正形式であるかどうかを判断できます。
この仕様では、2種類の 保護 メカニズムを認めます。 エンベロープ証明を使用するものと、埋め込み証明を使用するものです。
エンベロープ証明は、このデータモデルのシリアライズを 包み込みます。このようなRECOMMENDEDエンベロープ証明メカニズムの1つが、 JOSEおよびCOSEを使用した 検証可能なクレデンシャルの保護 [VC-JOSE-COSE]で定義されています。
埋め込み証明は、 データモデルのシリアライズに証明を 含めるメカニズムです。このようなRECOMMENDED埋め込み 証明メカニズムの1つが、検証可能なクレデンシャルのData Integrity 1.0 [VC-DATA-INTEGRITY]で定義されています。
この2種類の保護メカニズムは相互排他的ではありません。追加の 保護メカニズム仕様も、セクション5.13 保護メカニズム仕様の規則に従って定義される場合があります。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://example.gov/credentials/3732",
"type": ["VerifiableCredential", "ExampleDegreeCredential"],
"issuer": "did:example:6fb1f712ebe12c27cc26eebfe11",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "https://subject.example/subject/3921",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"cryptosuite": "eddsa-rdfc-2022",
"created": "2021-11-13T18:19:39Z",
"verificationMethod": "https://university.example/issuers/14#key-1",
"proofPurpose": "assertionMethod",
"proofValue": "z58DAdFfa9SkqZMVPxAQp...jQCrfFPP2oumHKtz"
}
}
上の埋め込み証明は、元のクレデンシャルを、
proofプロパティを介して元のデータにデジタル署名を付加することで保護します。
その結果、最新の
プログラミング環境やデータベースシステムで容易に管理できる検証可能なクレデンシャルが
得られます。
eyJhbGciOiJFUzM4NCIsImtpZCI6IkdOV2FBTDJQVlVVMkpJVDg5bTZxMGM3U3ZjNDBTLWJ2UjFTT0 Q3REZCb1UiLCJ0eXAiOiJ2YytsZCtqc29uK3NkLWp3dCIsImN0eSI6InZjK2xkK2pzb24ifQ . eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwcz ovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaXNzdWVyIjoiaHR0cHM6 Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy81NjUwNDkiLCJ2YWxpZEZyb20iOiIyMDEwLTAxLT AxVDE5OjIzOjI0WiIsImNyZWRlbnRpYWxTY2hlbWEiOnsiX3NkIjpbIlNFOHp4bmduZTNNbWEwLUNm S2dlYW1rNUVqU1NfOXRaNlN5NDdBdTdxRWMiLCJjT3lySEVrSlZwdEtSdURtNkNZVTREajJvRkExd0 JQRjFHcTJnWEo1NXpzIl19LCJjcmVkZW50aWFsU3ViamVjdCI6eyJkZWdyZWUiOnsibmFtZSI6IkJh Y2hlbG9yIG9mIFNjaWVuY2UgYW5kIEFydHMiLCJfc2QiOlsibVNfSVBMa0JHcTIxbVA3Z0VRaHhOck E0ZXNMc1ZKQ1E5QUpZNDFLLVRQSSJdfSwiX3NkIjpbIlhTSG9iU05Md01PVl9QNkhQMHNvMnZ1clNy VXZ3UURYREJHQWtyTXk3TjgiXX0sIl9zZCI6WyJQNE5qWHFXa2JOc1NfRzdvdmlLdm1NOG0yckhDTm 5XVVV2SXZBbW9jb2RZIiwieFNvSHBKUXlCNGV1dmg4SkFJdDFCd1pjNFVEOHY5S3ZOTmVLMk9OSjFC QSJdLCJfc2RfYWxnIjoic2hhLTI1NiIsImlzcyI6Imh0dHBzOi8vdW5pdmVyc2l0eS5leGFtcGxlL2 lzc3VlcnMvNTY1MDQ5IiwiaWF0IjoxNzAzNjI1OTAxLCJleHAiOjE3MzUyNDgzMDEsImNuZiI6eyJq d2siOnsia3R5IjoiRUMiLCJjcnYiOiJQLTM4NCIsImFsZyI6IkVTMzg0IiwieCI6Inl1Zlo1SFUzcU NfOTRMbkI3Zklzd0hmT0swQlJra0Z5bzVhd1QyX21ld0tJWUpLMVNfR0QySVB3UjRYUTZpdFEiLCJ5 IjoiRmEtV2pOd2NLQ1RWWHVDU2tCY3RkdHJOYzh6bXdBTTZWOWxudmxxd1QyQnRlQ0ZHNmR6ZDJoMF VjeXluTDg0dCJ9fX0 . M7BFJB9LEV_xEylSJpP00fd_4WjrOlXshh0dUv3QgOzw2MEGIfSfi9PoCkHJH7TI0InsqkD6XZVz38 MpeDKekgBW-RoDdJmxnifYOEJhKpJ5EN9PvA007UPi9QCaiEzX ~ WyJFX3F2V09NWVQ1Z3JNTkprOHNXN3BBIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbG UvY3JlZGVudGlhbHMvMTg3MiJd ~ WyJTSEc4WnpfRDVRbFMwU0ZrZFUzNXlRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIi wgIkV4YW1wbGVBbHVtbmlDcmVkZW50aWFsIl1d ~ WyJqZzJLRno5bTFVaGFiUGtIaHV4cXRRIiwgImlkIiwgImh0dHBzOi8vZXhhbXBsZS5vcmcvZXhhbX BsZXMvZGVncmVlLmpzb24iXQ ~ WyItQmhzaE10UnlNNUVFbGt4WGVXVm5nIiwgInR5cGUiLCAiSnNvblNjaGVtYSJd~WyJ0SEFxMEUwN nY2ckRuUlNtSjlSUWRBIiwgImlkIiwgImRpZDpleGFtcGxlOjEyMyJd ~ WyJ1Ynd6bi1kS19tMzRSMGI0SG84QTBBIiwgInR5cGUiLCAiQmFjaGVsb3JEZWdyZWUiXQ
上のエンベロープ証明は、元のクレデンシャルを、 元のデータをデジタル署名エンベロープにカプセル化することで保護します。その結果、 検証可能なクレデンシャルは、 SD-JWT形式を理解する ツールを使用して処理できるようになります。
検証可能な提示はMAY、複数の検証可能なクレデンシャルからの情報を 集約するために使用してもかまいません。
検証可能な提示はSHOULD、存続期間を極めて短くし、 検証者が提供するチャレンジに結び付けるべきです。その実現方法の詳細は、 保護メカニズム、転送プロトコル、および検証者のポリシーによって異なります。 特定の保護メカニズムまたは埋め込みプロトコルによって追加要件が定義されていない限り、 検証者は通常、 検証可能な提示が、提示された 検証可能なクレデンシャルと相関しているとは想定できません。
デフォルトグラフは、検証可能な提示において、 検証可能な提示グラフとも呼ばれます。
検証可能な提示には、次のプロパティが定義されています。
id プロパティは任意です。これはMAY、
検証可能な提示に
一意の識別子を付与するために使用してもかまいません。存在する場合、
セクション4.4 識別子の規範的指針にMUST
従わなければなりません。
type プロパティはMUST、存在しなければなりません。これは、
検証可能な提示の
型を表現するために使用されます。このプロパティの値の1つはMUST、
VerifiablePresentationでなければなりませんが、追加の型をMAY含めてもかまいません。
関連する
規範的指針として、セクション4.5 型にMUST
従わなければなりません。
verifiableCredential プロパティはMAY、
存在してもかまいません。その値は、
MUST、1つ以上の検証可能なクレデンシャルおよび/または
エンベロープされた検証可能なクレデンシャル
オブジェクトでなければなりません(値はMUST NOT、
数値、文字列、URLなどのオブジェクト以外の値であってはなりません)。これらのオブジェクトは、
検証可能なクレデンシャルグラフと呼ばれ、
MUST、
保護メカニズムを使用して保護された情報を表現しなければなりません。
詳細については、セクション5.12
検証可能なクレデンシャルグラフを参照してください。
holder
プロパティを含めてもかまいません。存在する場合、その値はMUST、
URLまたは
id プロパティを含むオブジェクトのいずれかでなければなりません。RECOMMENDEDとして、
URL形式のholder値、またはそのid値には、
参照解決したときに、保有者に関する機械可読情報を含む文書が得られるものを使用してください。その情報は、
検証に使用でき、対象となる情報は
検証可能な提示で表現されたものです。
holder プロパティが存在しない場合、
保有者に関する情報は保護メカニズムを介して取得されるか、
または妥当性検証には関係しません。ここでいう妥当性検証の対象は検証可能な提示です。
以下の例は、検証可能な提示を示しています。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "urn:uuid:3978344f-8596-4c3a-a978-8fcaba3903c5",
"type": ["VerifiablePresentation", "ExamplePresentation"],
"verifiableCredential": [{ ... }]
}
上に示したverifiableCredential プロパティの内容は、
この仕様で説明する検証可能なクレデンシャル
グラフです。
検証可能な提示には、
ペイロードを「エンベロープする」保護メカニズムを使用して保護された1つ以上の
検証可能なクレデンシャルを
含めることができます。たとえば、JOSEおよびCOSEを使用した検証可能なクレデンシャルの保護
[VC-JOSE-COSE]です。
これは、verifiableCredentialプロパティを、typeが
EnvelopedVerifiableCredentialであるオブジェクトに関連付けることで実現できます。
verifiableCredentialプロパティを介して
検証可能な提示に関連付けるために使用されます。
オブジェクトの@contextプロパティはMUST、
存在し、この仕様の基底コンテキストなどのコンテキストを含まなければなりません。そのコンテキストは、
この仕様が提供する基底コンテキストで定義されるid、type、
および
EnvelopedVerifiableCredentialの各用語を少なくとも定義します。オブジェクトのid値はMUST、
data: URL
[RFC2397]でなければなりません。これは、保護された検証可能なクレデンシャルを
エンベロープ型セキュリティ
方式で表現します。たとえば、
JOSEおよびCOSEを使用した検証可能なクレデンシャルの保護
[VC-JOSE-COSE]です。
オブジェクトのtype値はMUST、
EnvelopedVerifiableCredentialでなければなりません。
以下の例は、検証可能な提示に、 エンベロープされた 検証可能なクレデンシャルが含まれる例を示しています。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": ["VerifiablePresentation", "ExamplePresentation"],
"verifiableCredential": [{
"@context": "https://www.w3.org/ns/credentials/v2",
"id": "data:application/vc+sd-jwt,QzVjV...RMjU",
"type": "EnvelopedVerifiableCredential"
}]
}
実装者が、このセクションで説明したオブジェクトと、id値によって表現されたエンベロープされた提示を
RDF環境で処理し、RDFに関連するオブジェクト間の
関係を作成したい場合があります。
これを行う必要性とメカニズムはユースケースによって異なるため、
実装にも依存します。
ペイロードを「エンベロープする」メカニズムを使用して保護された検証可能な提示を
表現できます。
そのようなメカニズムには、たとえば、
JOSEおよびCOSEを使用した
検証可能なクレデンシャルの保護 [VC-JOSE-COSE]があります。これは、
typeがEnvelopedVerifiablePresentationである
オブジェクトを使用することで実現できます。
@contextプロパティはMUST、存在し、
コンテキストを含まなければなりません。
たとえば、この仕様の基底コンテキストです。
そのコンテキストは、少なくともid、type、および
EnvelopedVerifiablePresentation
の各用語を、この仕様が提供する基底コンテキストで定義されるとおりに定義します。オブジェクトのid
値はMUST、data: URL [RFC2397]でなければなりません。これは、保護された
検証可能な提示を、
エンベロープ型保護
メカニズムで表現します。たとえば、
JOSEおよびCOSEを使用した検証可能なクレデンシャルの保護
[VC-JOSE-COSE]です。
オブジェクトのtype値はMUST、
EnvelopedVerifiablePresentationでなければなりません。
以下の例は、エンベロープされた検証可能な提示を示しています。
{
"@context": "https://www.w3.org/ns/credentials/v2",
"id": "data:application/vp+jwt,eyJraWQiO...zhwGfQ",
"type": "EnvelopedVerifiablePresentation"
}
一部のゼロ知識暗号方式では、保有者が、 主張を保有していることを間接的に証明できる場合があります。その主張は検証可能なクレデンシャルから得たものであり、 その検証可能なクレデンシャルに含まれるすべての主張を開示する必要はありません。このような 方式では、検証可能なクレデンシャルを使用して、提示可能な データを導出できます。そのデータは暗号学的に表明されるため、検証者は、 発行者を信頼する場合、その値を信頼できます。
一部の選択的開示方式では、主張の一部を共有できます。 それらは検証可能なクレデンシャルから導出されます。
ZKP形式の検証可能な提示の例として、 直接埋め込まれた検証可能なクレデンシャルの代わりに派生データを含むものについては、 セクション5.7 ゼロ知識証明を参照してください。
保有者はMAY、
verifiableCredential プロパティを
検証可能な提示で使用して、検証可能なクレデンシャルを任意の
発行者(自身を含む)から含めてもかまいません。ある発行者が、ある
検証可能なクレデンシャルにおいて保有者と同一である場合、その主張は、その
検証可能なクレデンシャルにおいて
自己表明とみなされます。
このような自己表明された主張は、それを含む
検証可能な提示を保護するものと同じメカニズム、または
他の検証可能なクレデンシャルに使用できる任意の
メカニズムによって保護できます。
自己表明の対象となる主体、つまり自己表明された主張の主体は限定されないため、これらの主張には、
保有者、含まれている他の検証可能なクレデンシャルのいずれか、さらには
検証可能な提示自体についての言明も含められます。この提示は、自己表明された検証可能なクレデンシャルを
含むものです。いずれの場合も、id プロパティは、
特定の主体を識別するために使用されます。これは、その主体に関する主張を記述するオブジェクト内で、
検証可能なクレデンシャルが自己表明ではない場合と同様に
使用されます。
検証可能な提示が、自己表明された
検証可能なクレデンシャルを含み、そのクレデンシャルが、
同じ検証可能な提示と同じメカニズムのみを使用して保護される場合、MUST、holder
プロパティを含めなければなりません。
検証可能なクレデンシャルに対して定義されたすべての規範的要件は、 自己表明された検証可能なクレデンシャルにも適用されます。
検証可能なクレデンシャルが検証可能な提示に含まれる場合、
issuer プロパティについて、その
検証可能なクレデンシャルにおける値が、holder
プロパティについて検証可能な提示に設定された値と同一であるとき、そのクレデンシャルは自己表明されたものとみなされます。
以下の例は、検証可能な提示が、 自己表明された検証可能なクレデンシャルを埋め込む例を示しています。そのクレデンシャルは、 検証可能な提示と同じ メカニズムを使用して保護されます。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": ["VerifiablePresentation", "ExamplePresentation"],
"holder": "did:example:12345678",
"verifiableCredential": [{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": ["VerifiableCredential", "ExampleFoodPreferenceCredential"],
"issuer": "did:example:12345678",
"credentialSubject": {
"favoriteCheese": "Gouda"
},
{ ... }
}],
"proof": [{ ... }]
}
以下の例は、検証可能な提示が、 自己表明された検証可能なクレデンシャルを埋め込む例を示しています。そのクレデンシャルは、 主張を保持し、その対象は 検証可能な提示です。そのクレデンシャルは、 検証可能な提示と同じメカニズムを使用して 保護されます。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": ["VerifiablePresentation", "ExamplePresentation"],
"id": "urn:uuid:313801ba-24b7-11ee-be02-ff560265cf9b",
"holder": "did:example:12345678",
"verifiableCredential": [{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": ["VerifiableCredential", "ExampleAssertCredential"],
"issuer": "did:example:12345678",
"credentialSubject": {
"id": "urn:uuid:313801ba-24b7-11ee-be02-ff560265cf9b",
"assertion": "This VP is submitted by the subject as evidence of a legal right to drive"
},
"proof": { ... }
}],
"proof": { ... }
}
セクション4. 基本概念で 導入した概念を基礎として、このセクションでは検証可能なクレデンシャルに関するより複雑なトピックを検討します。
このセクションは非規範的です。
検証可能なクレデンシャルの信頼モデルは、次の 前提に基づいています。
事前の信頼関係が存在しない場合、保有者は、 発行者が、提供される検証可能なクレデンシャルを 発行する資格を持つかどうかを、何らかの帯域外の手段で判断できる場合があります。
注記:保有者が発行者を常に信頼する必要はありません。 発行された検証可能なクレデンシャルは、 主体に関する表明であっても、その主体が保有者とは限らず、 または誰を対象ともしない場合があるためです。そして保有者は、 その情報の真実性に対する責任を負うことなく、検証者にその情報を中継する意思があるかもしれません。
この信頼モデルは、次の点を確保することで他の信頼モデルと 異なります。
検証者が、どの発行者を、どのデータまたは 目的について信頼するかをどのように決定するかは、この勧告の範囲外です。有名な組織などの発行者は、 その評判だけを理由に、多くの検証者から信頼される場合があります。発行者と検証者が、 参加規則によって全メンバーが互いを信頼するコミュニティのメンバーである場合もあります。 また、検証者が、発行者を審査し、信頼リストに掲載する責任を負う特定の信頼サービスプロバイダーを信頼する場合もあります。このような信頼リストの例には、電子 署名およびインフラストラクチャ(ESI);信頼リスト [ETSI-TRUST-LISTS] で規定されたものや、 Adobe 承認済み信頼リストがあります。
発行者と検証者の間の期待を切り離すことにより、 より柔軟で動的な信頼モデルが形成され、市場競争と顧客の 選択肢が増えます。
この信頼モデルと、作業グループが検討したさまざまな脅威 モデルとの相互作用の詳細については、検証可能なクレデンシャルのユースケース [VC-USE-CASES]を参照してください。
この仕様で詳述するデータモデルは、より従来型の認証局の信頼 モデルが提供するような、推移的信頼モデルを前提としません。検証可能なクレデンシャル・データモデルでは、検証者は 発行者を直接信頼するか、信頼しないかのいずれかです。検証可能なクレデンシャル・データモデルを使用して 推移的信頼モデルを構築することも可能ですが、実装者には、 セキュリティ上の弱点について学ぶことを強く推奨します。この弱点は、 認証局システムが採用するように 信頼を広範に委譲することによって生じます。
検証可能なクレデンシャル・データモデルの目標の1つは、許可を必要としない イノベーションを可能にすることです。これを実現するには、データモデルを さまざまな方法で拡張可能にする必要があります。データモデルには次のことが求められます。
このデータモデリングへのアプローチは、しばしば オープンワールド仮説と呼ばれます。これは、あらゆるエンティティが他のあらゆるエンティティについて 何でも言及できることを意味します。このアプローチは、単純で予測可能なソフトウェアシステムの構築と矛盾するように思われるかもしれません。しかし、 オープンワールド仮説の下で拡張性とプログラムの正確性を両立させることは、閉じた ソフトウェアシステムよりも常に困難です。
このセクションの残りの部分では、一連の例を通じて、拡張性と プログラムの正確性の両方を実現する方法を説明します。
まず、以下に示すクレデンシャルから始めると仮定します。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://vc.example/credentials/4643",
"type": ["VerifiableCredential"],
"issuer": "https://issuer.example/issuers/14",
"validFrom": "2018-02-24T05:28:04Z",
"credentialSubject": {
"id": "did:example:abcdef1234567",
"name": "Jane Doe"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://vc.example/credentials/4643",
"type": [
"VerifiableCredential"
],
"issuer": "https://issuer.example/issuers/14",
"validFrom": "2018-02-24T05:28:04Z",
"credentialSubject": {
"id": "did:example:abcdef1234567",
"name": "Jane Doe"
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaeqpc578Kg3k9asdXLMhsQSjh8HMPp3ip3miiWZUUhsv9p",
"cryptosuite": "ecdsa-rdfc-2019",
"proofPurpose": "assertionMethod",
"proofValue": "z5mx4F9Y7WG1nmgGbK5TopTBNKcL4A8J8TgiGHeXza97wX9zdJ9xJ93CigVrphjDEQ51bfhxqPQ33EtXWYr7EecWj"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://vc.example/credentials/4643",
"type": [
"VerifiableCredential"
],
"issuer": "https://issuer.example/issuers/14",
"validFrom": "2018-02-24T05:28:04Z",
"credentialSubject": {
"id": "did:example:abcdef1234567",
"name": "Jane Doe"
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaee6cRuNdNecab7A7cnbb6w5xovYRWxYirEHstya3usouK",
"cryptosuite": "ecdsa-sd-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0AhVhA0epbCBiyDPEBAQQ1IHFCIE633o_K7xydvHttIvF3PtFn2mViOGJlQ0osR1jmpi9cIrCfZl3bJeDHfoIUcF6tblgjgCQCzqqR3uH2EvrfOSsJq9odItJMe0iR_DCfsIYsHb4tGD1YICsgD7onOuwT9a1NgaBBOSUgRX3VP2nVRkW_EHM6pj20g1hAxPG_57XTKS_9A2tR-54A2e9cqUO18ejFLCM_HSse-7mIqd4RLar8W2f8nzOITjmxO0qrI8y1Yev6pj9ZkJxgbFhAlgMHonBHyUZ_vTLGYpvJrS5jT8vXWVh_1o8QJAA_FtSbGW8OYzHByVx-HMHB-OXn_p04Q8kqYHJuIsTZH9luClhAETNZX6bZbLsrw0TXJcrzEos82xjTtsGnOXdvkE1D6K_VugqBmpCp_-Vz6PFX51QTNoNWJpQ3i31vglYItJUuzIFnL2lzc3Vlcg"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://vc.example/credentials/4643",
"type": [
"VerifiableCredential"
],
"issuer": "https://issuer.example/issuers/14",
"validFrom": "2018-02-24T05:28:04Z",
"credentialSubject": {
"id": "did:example:abcdef1234567",
"name": "Jane Doe"
},
"proof": {
"type": "DataIntegrityProof",
"verificationMethod": "did:key:zUC7JVyoNecN4arDQjjTXVSfyv1V7bwcnMUs6y2BuSeWmzarPohM5DLXAXXxkBRrpjbzZTUdrLaAVoj87nPgXktL3q8JgBvRqqHo9Z88Jfn2tXXM8Q1aTDhNgf1HYL9WEMiULnS",
"cryptosuite": "bbs-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0ChVhQuPNRxOKzfW4tOd3sW1EYWCAn358k_ZgDQlVpuccDuH-mIbBq0ieUvz1iIp3FfD44LmF-bMoUiZbgCOPYoNPx6kGUXdWV3307b74FbilbhTRYQD3-tli9rF9b1rOCOCaDSL0zj-QnIO3TIaEobJTPayaIvqENcCm8D2khyMGr7-FGFdx818_ufbFmo8hKn_2FgMpYYLMBLFvXdBPRt0k4kRZk93gc0jkscNQB3wJpCXu4OPkNaVJMlX03jEKZdwQ437AaRg2tSqfzd_pbHzZq9O7FyF1fsAT1tn_tHqFT5wrUWfaGtHJRQwv6rnUS3s9HBqQB_1ggpBh8waxBO_P219SajAnhJIWtWDtOZv1biUSq0-rjucqBZy9pc3N1ZXI"
}
}
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
application/vc
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://vc.example/credentials/4643",
"type": [
"VerifiableCredential"
],
"issuer": "https://issuer.example/issuers/14",
"validFrom": "2018-02-24T05:28:04Z",
"credentialSubject": {
"id": "did:example:abcdef1234567",
"name": "Jane Doe"
}
}
application/vc+jwt
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://vc.example/credentials/4643",
"type": [
"VerifiableCredential"
],
"issuer": "https://issuer.example/issuers/14",
"validFrom": "2018-02-24T05:28:04Z",
"credentialSubject": {
"id": "did:example:abcdef1234567",
"name": "Jane Doe"
}
}
application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1788642562,
"exp": 1789852162,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": "https://issuer.example/issuers/14",
"validFrom": "2018-02-24T05:28:04Z",
"credentialSubject": {
"name": "Jane Doe",
"_sd": [
"-wedpWQu5yUFFC7flwkPpuqjpgWgwQRn3p3Dgr7Fhk8"
]
},
"_sd": [
"fC49fGTEX6S_8WfP8tNsvTW9yC28-Dn9GEsfoBwJrAE",
"jmyaQF6mjqa2CHHhC9geWhPcDwofx2fISa7qRglOunQ"
]
}
SHA-256ハッシュ: jmyaQF6mjqa2CHHhC9geWhPcDwofx2fISa7qRglOunQ
開示情報: WyJXRUtWUzBPQmt2TkJaVTdnLXNkNFRRIiwgImlkIiwgImh0dHA6Ly92Yy5leGFtcGxlL2NyZWRlbnRpYWxzLzQ2NDMiXQ
内容: [
"WEKVS0OBkvNBZU7g-sd4TQ",
"id",
"http://vc.example/credentials/4643"
]
SHA-256ハッシュ: fC49fGTEX6S_8WfP8tNsvTW9yC28-Dn9GEsfoBwJrAE
開示情報: WyJ1VnZsTzBfMjBnN0lpOVd0MDdReVBRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIl1d
内容: [
"uVvlO0_20g7Ii9Wt07QyPQ",
"type",
[
"VerifiableCredential"
]
]
SHA-256ハッシュ: -wedpWQu5yUFFC7flwkPpuqjpgWgwQRn3p3Dgr7Fhk8
開示情報: WyJNaEhSbFlrR3JiNkw2V2dWSGM0YjJRIiwgImlkIiwgImRpZDpleGFtcGxlOmFiY2RlZjEyMzQ1NjciXQ
内容: [
"MhHRlYkGrb6L6WgVHc4b2Q",
"id",
"did:example:abcdef1234567"
]
この検証可能なクレデンシャルは、エンティティに関する情報を表明しています。そのエンティティは
did:example:abcdef1234567に関連付けられており、nameの値は
Jane Doeです。
ここで、開発者が検証可能なクレデンシャルを拡張して、 社内参照番号とJaneの好きな食べ物という2つの追加情報を保存したいと仮定します。
まず、以下のように、2つの新しい用語を含むJSON-LDコンテキストを 作成します。
{
"@context": {
"referenceNumber": "https://extension.example/vocab#referenceNumber",
"favoriteFood": "https://extension.example/vocab#favoriteFood"
}
}
このJSON-LDコンテキストを作成した後、開発者は、検証者がアクセスできる場所にこれを公開します。その検証者は、
検証可能なクレデンシャルを処理します。上のJSON-LDコンテキストが
https://extension.example/my-contexts/v1で公開されていると仮定すると、このコンテキストを含め、新しいプロパティと
クレデンシャルの型を検証可能なクレデンシャルに追加することで、この例を拡張できます。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2",
"https://extension.example/my-contexts/v1"
],
"id": "http://vc.example/credentials/4643",
"type": ["VerifiableCredential", "CustomExt12"],
"issuer": "https://issuer.example/issuers/14",
"validFrom": "2018-02-24T05:28:04Z",
"referenceNumber": 83294847,
"credentialSubject": {
"id": "did:example:abcdef1234567",
"name": "Jane Doe",
"favoriteFood": "Papaya"
}
}
この例は、許可を必要としない分散型の方法で、検証可能なクレデンシャル・データモデルを 拡張する方法を示しています。示されたメカニズムにより、この方法で作成された 検証可能なクレデンシャルが、 名前空間の衝突と意味上の曖昧さを防ぐ方法を提供することも保証されます。
このような動的な拡張性モデルは、実装の 負担を増やします。このようなシステム向けに作成されたソフトウェアは、 アプリケーションのリスクプロファイルに基づいて、拡張を含む検証可能なクレデンシャルを受け入れられるかどうかを 判断しなければなりません。特定の拡張だけを受け入れるアプリケーションもあれば、高度なセキュリティが求められる環境では、拡張を一切受け入れない場合もあります。 これらの決定はアプリケーションの開発者に委ねられており、 明確にこの仕様の範囲外です。
拡張仕様の作成者には、JSON-LDコンテキストなどの文書を高い可用性で提供するよう強く推奨します。 これらの文書を使用する開発者は、文書を取得できないときにエラーを生成するソフトウェアを 使用している可能性があります。拡張用JSON-LDコンテキストの常時 利用可能性を確保する方法には、これらの文書を実装に同梱すること、長期間のキャッシュを行うコンテンツ 配信ネットワークを使用すること、コンテキストに コンテンツアドレスURLを使用することがあります。これらのアプローチについては、付録 C. コンテキスト、語彙、型、およびクレデンシャルスキーマで詳しく説明します。
実装者には、この仕様にある拡張ポイントに十分注意することを推奨します。例として、セクション4.10 ステータス、4.11 データ スキーマ、 4.12 保護メカニズム、5.4 更新、 5.5 利用条件、および 5.6 証拠があります。この仕様はこれらの拡張ポイントに対する具体的な 実装を定義しませんが、検証可能なクレデンシャル拡張文書は、 開発者がこれらの拡張ポイントから使用できる拡張の、非公式に選定された一覧を 提供します。
アプリケーション固有の語彙で新しい用語を定義する場合、語彙の 作成者はSHOULD、詳細な チェックリストに従うべきです。このチェックリストはLinked Data公開のベストプラクティスにあります。 特に、次の指針が 重要です。
さらに、機械可読の説明(すなわち
JSON-LDコンテキスト文書)はMUST、
その語彙の@context プロパティで指定されたURLに公開しなければなりません。このコンテキストはMUST、各用語を対応するURLにマッピングしなければなりません。その際、
プロパティ値の型など、さらなる制約を併記する場合があります。
相互運用性を求める実装者は、@context プロパティの値に期待される順序を記述した、人間が読める文書も公開することが期待されます。
アクティブ コンテキストを処理する場合、そのコンテキストはこの仕様で定義された 基底JSON-LDコンテキスト文書によって定義されています。準拠するJSON-LDベースの プロセッサは、JSON-LDコンテキストがいずれかの用語を再定義するとエラーを生成します。 既存用語の定義を変更する唯一の方法は、その新しい用語のスコープ内でアクティブコンテキストを消去する新しい 用語を導入することです。この機能に関心のある作成者は、JSON-LD 1.1仕様の @protected キーワードについて確認してください。
準拠文書はSHOULD
NOT、実運用環境で
@vocab機能を
使用するべきではありません。JSON用語の衝突を引き起こし、他のアプリケーションとの間に意味上の曖昧さが生じる可能性があるためです。代わりに、適切な相互運用性を実現するため、準拠文書はSHOULD、
アプリケーションが使用するすべての用語を定義するJSON-LDコンテキストを使用するべきです。これは、前述のセクション5.2
拡張性で説明したとおりです。
準拠文書が、使用するすべての用語を定義するJSON-LDコンテキストを使用しない場合、
MUST、
https://www.w3.org/ns/credentials/undefined-terms/v2を
@contextプロパティの最後の値として含めなければなりません。
システムで、期限切れの
検証可能なクレデンシャルを手動または自動で更新できるようにすることは有用です。
検証可能なクレデンシャルの有効期間について詳しくは、セクションB.7 有効期間を参照してください。
この仕様では、refreshService プロパティを定義します。これにより、
発行者は更新サービスへのリンクを含めることができます。
発行者は、検証可能なクレデンシャル内の要素として更新サービスを含めることができます。これは、そのサービスが 検証者または 保有者(あるいはその両方)向けである場合です。また、更新サービスを検証可能な提示内に含めることもできます。これは、そのサービスが 保有者のみを対象とする場合です。後者の場合、 保有者は、検証可能なクレデンシャルを更新してから、 検証可能な提示を作成し、検証者と共有できます。前者の場合、更新サービスを検証可能なクレデンシャル内に含めることで、 保有者または検証者は、将来そのクレデンシャルを更新できます。
更新サービスは、
クレデンシャルが期限切れであるか、発行者が
クレデンシャルのステータス情報を公開していない場合にのみ使用されることが想定されています。発行者は、
refreshService プロパティを、公開情報を含まないか、更新サービスが何らかの方法で
保護されていない検証可能なクレデンシャルに含めないことが推奨されます。
refreshService プロパティの値はMUST、受信者が検証可能なクレデンシャルを更新できるだけの十分な情報を、受信者のソフトウェアに提供する
1つ以上の更新サービスでなければなりません。各refreshService値はMUST、そのtypeを指定しなければなりません。
各更新サービスの正確な内容は、個々のrefreshService 型の定義によって決まります。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://w3id.org/age/v1"
],
"type": ["VerifiableCredential", "AgeVerificationCredential"],
"issuer": "did:key:z6MksFxi8wnHkNq4zgEskSZF45SuWQ4HndWSAVYRRGe9qDks",
"validFrom": "2024-04-03T00:00:00.000Z",
"validUntil": "2024-12-15T00:00:00.000Z",
"name": "Age Verification Credential",
"credentialSubject": {
"overAge": 21
},
"refreshService": {
"type": "VerifiableCredentialRefreshService2021",
"url": "https://registration.provider.example/flows/reissue-age-token",
"refreshToken": "z2BJYfNtmWRiouWhDrbDQmC2zicUPBxsPg"
}
}
上の例で、発行者は、自動
refreshServiceを指定しています。このサービスは、検証可能なクレデンシャルを更新サービスの
urlへPOSTすることで使用できます。この特定の検証可能なクレデンシャルは、元の発行者以外の誰とも共有することを意図していない点に注意してください。
refreshService プロパティを
検証可能なクレデンシャルに配置して、
検証者が利用できるようにすると、
保有者から制御権と同意する機会を奪い、
検証可能なクレデンシャルを検証者へ直接発行できるようになります。
これにより、保有者が迂回されます。
利用条件は、発行者または保有者が、
検証可能なクレデンシャルまたは
検証可能な提示が発行された際の条件を伝えるために使用できます。発行者は、自身の利用条件を検証可能なクレデンシャル内に配置します。保有者は、自身の利用条件を検証可能な提示内に配置します。この仕様では、利用条件に関する情報を表現するための
termsOfUse プロパティを定義します。
termsOfUse プロパティの値は、特に次の事項の一部または全部を
検証者へ伝えるために使用できます:
termsOfUse プロパティの値はMUST、
作成者がクレデンシャル
または提示を発行した際の利用条件ポリシーを1つ以上指定しなければなりません。受信者(保有者または
検証者)が指定された利用条件に従わない場合、それは受信者自身の責任で行われ、
明示された利用条件に違反すると法的責任を負う可能性があります。各termsOfUse値はMUST、
その型(例:TrustFrameworkPolicy)を指定しなければならず、MAY、そのインスタンスの
idを指定できます。各利用条件の正確な内容は、個々のtermsOfUse 型の定義によって決まります。
{
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/undefined-terms/v2"
],
"id": "urn:uuid:08e26d22-8dca-4558-9c14-6e7aa7275b9b",
"type": [
"VerifiableCredential",
"VerifiableAttestation",
"VerifiableTrustModel",
"VerifiableAuthorisationForTrustChain"
],
"issuer": "did:ebsi:zZeKyEJfUTGwajhNyNX928z",
"validFrom": "2021-11-01T00:00:00Z",
"validUntil": "2024-06-22T14:11:44Z",
"credentialSubject": {
"id": "did:ebsi:zvHWX359A3CvfJnCYaAiAde",
"reservedAttributeId": "60ae46e4fe9adffe0bc83c5e5be825aafe6b5246676398cd1ac36b8999e088a8",
"permissionFor": [{
"schemaId": "https://api-test.ebsi.eu/trusted-schemas-registry/v3/schemas/zHgbyz9ajVuSProgyMhsiwpcp8g8aVLFRNARm51yyYZp6",
"types": [
"VerifiableCredential",
"VerifiableAttestation",
"WorkCertificate"
],
"jurisdiction": "https://publications.europa.eu/resource/authority/atu/EUR"
}]
},
"termsOfUse": {
"type": "TrustFrameworkPolicy",
"trustFramework": "Employment&Life",
"policyId": "https://policy.example/policies/125",
"legalBasis": "professional qualifications directive"
},
"credentialStatus": {
"id": "https://api-test.ebsi.eu/trusted-issuers-registry/v5/issuers/did:ebsi:zvHWX359A3CvfJnCYaAiAde/attributes/60ae46e4fe9adffe0bc83c5e5be825aafe6b5246676398cd1ac36b8999e088a8",
"type": "EbsiAccreditationEntry"
},
"credentialSchema": {
"id": "https://api-test.ebsi.eu/trusted-schemas-registry/v3/schemas/zCSHSDwrkkd32eNjQsMCc1h8cnFaxyTXP5ByozyVQXZoH",
"type": "JsonSchema"
}
}
}
上の例で、発行者は、 検証可能なクレデンシャルの発行における法的根拠が、 「Employment&Life」トラストフレームワークを使用した「professional qualifications directive」であることを、 ポリシーへの具体的なリンクとともに表明しています。
この機能は、政府が発行する検証可能なクレデンシャルで使用されることが想定されています。市民の機密データが予期せず使用されることを防ぐため、 デジタルウォレットに対し、その使用を同種の政府機関に限定するよう指示できます。同様に、民間企業が発行する一部の検証可能なクレデンシャルは、 使用を組織内の特定部門または営業時間内に限定することが想定されています。実装者には、この発展途上の機能について、検証可能な クレデンシャル実装ガイドライン [VC-IMP-GUIDE]文書の該当セクションを参照することを推奨します。
発行者は、検証者へ追加の裏付け情報を提供するため、 検証可能なクレデンシャルに証拠を含めることができます。 検証者はこれを使用して、 検証可能なクレデンシャル内の主張を信頼する際の確信度を判断できます。たとえば、発行者は、主体が提供した物理的文書を確認したり、 クレデンシャルを発行する前に一連の経歴調査を行ったりできます。特定の状況では、この情報は検証者が、特定のクレデンシャルを信頼することに伴うリスクを判断する際に役立ちます。
この仕様では、証拠情報を表現するためのevidence プロパティを定義します。
evidence プロパティの値はMUST、単一のオブジェクトまたは1つ以上のオブジェクトの集合でなければなりません。
すべての証拠オブジェクトについて、次のプロパティが定義されています:
id プロパティは任意です(OPTIONAL)。証拠オブジェクトの一意な識別子を提供するために使用してもMAY。
存在する場合は、セクション
4.4 識別子の規範的指針に従わなければなりません(MUST)。
type プロパティは必須です(REQUIRED)。これは、そのオブジェクトが表現する証拠情報の型を示すために使用されます。セクション
4.5
型の関連する規範的指針に従わなければなりません(MUST)。
添付ファイル、クレデンシャルへの参照、 およびクレデンシャル以外のデータがこの仕様でどのようにサポートされ得るかについては、セクション 5.3 関連リソースの完全性を参照してください。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json"
],
"id": "http://1edtech.edu/credentials/3732",
"type": [
"VerifiableCredential",
"OpenBadgeCredential"
],
"issuer": {
"id": "https://1edtech.edu/issuers/565049",
"type": "Profile"
},
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"type": "AchievementSubject",
"name": "Alice Smith",
"activityEndDate": "2023-12-02T00:00:00Z",
"activityStartDate": "2023-12-01T00:00:00Z",
"awardedDate": "2024-01-01T00:00:00Z",
"achievement": [{
"id": "urn:uuid:d46e8ef1-c647-419b-be18-5e045d1c4e64",
"type": ["Achievement"],
"name": "Basic Barista Training",
"criteria": {
"narrative": "Team members are nominated for this badge by their supervisors, after passing the Basic Barista Training course."
},
"description": "This achievement certifies that the bearer is proficient in basic barista skills."
}]
},
"evidence": [{
// url to an externally hosted evidence file/artifact
"id": "https://videos.example/training/alice-espresso.mp4",
"type": ["Evidence"],
"name": "Talk-aloud video of double espresso preparation",
"description": "This is a talk-aloud video of Alice demonstrating preparation of a double espresso drink.",
// digest hash of the mp4 video file
"digestMultibase": "uELq9FnJ5YLa5iAszyJ518bXcnlc5P7xp1u-5uJRDYKvc"
}
]
}
上のevidenceの例で、発行者は、
主体が達成内容を実演している動画を、クレデンシャルの証拠として保有していることを表明しています。
evidence プロパティは、使用される保護メカニズムが提供する情報とは異なる追加情報を提供します。
evidence プロパティは、検証可能なクレデンシャルに関連する文書証拠などの裏付け情報を表現するために使用されます。これに対して、保護メカニズムは、
発行者の真正性と検証可能なクレデンシャルの完全性に関する、機械で検証可能な数学的証明を表現するために使用されます。
保護メカニズムについて詳しくは、セクション4.12
保護メカニズムを参照してください。
ゼロ知識証明は保護メカニズムであり、 保有者は、ある値を含む検証可能なクレデンシャルを保持していることを、実際の値を開示せずに証明できます。たとえば、 誕生日を明らかにせず、その人物が25歳を超えていることを証明できます。 このデータモデルは、ゼロ知識証明を使用した保護に対応しています。
ゼロ知識証明メカニズムによって実現される、検証可能なクレデンシャルと互換性のある機能には、次のものがあります:
保護メカニズムを作成する仕様の作成者はMUST NOT、 検証者が、 保有者について、異なる検証可能な提示を複数の異なる 検証者に対して行った際に相関付けられるような情報を漏えいする設計にしてはなりません。
すべてのゼロ知識証明メカニズムが、すべての機能に対応しているわけではありません。 特定のゼロ知識証明メカニズムが提供する機能と技術の詳細、およびそれらを 検証可能なクレデンシャルで使用する際の規範的要件は、そのゼロ知識証明メカニズムで 検証可能なクレデンシャルを保護するための仕様に記載されます。 そのような仕様の例については、Data Integrity BBS暗号スイートv1.0を参照してください。
ほとんどの場合、保有者がゼロ知識メカニズムを 検証可能なクレデンシャルで利用するには、発行者が、これらの機能をサポートする方法で 検証可能なクレデンシャルを保護する必要があることに注意してください。
以下の図は、データモデルを使用して検証可能なクレデンシャルをゼロ知識で発行および提示する方法を示しています。
以下に、検証可能なクレデンシャルと検証可能な提示の例を示します。これらは、Data Integrity BBS暗号スイートv1.0のリンク不能な選択的開示の保護メカニズムを使用しています。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://w3id.org/citizenship/v4rc1"
],
"type": [
"VerifiableCredential",
"PermanentResidentCardCredential"
],
"issuer": {
"id": "did:web:utopia.example",
"image": "data:image/png;base64,iVBORw0KGg...VORK5CYII="
},
"name": "Permanent Resident Card",
"description": "Government of Utopia Permanent Resident Card.",
"credentialSubject": {
"type": [
"PermanentResident",
"Person"
],
"givenName": "JANE",
"familyName": "SMITH",
"gender": "Female",
"image": "data:image/png;base64,iVBORw0KGgo...g==",
"residentSince": "2015-01-01",
"commuterClassification": "C1",
"birthCountry": "Arcadia",
"birthDate": "1978-07-17",
"permanentResidentCard": {
"type": [
"PermanentResidentCard"
],
"identifier": "83627465",
"lprCategory": "C09",
"lprNumber": "999-999-999"
}
},
"validFrom": "2026-09-05T00:00:00Z",
"validUntil": "2027-09-05T23:59:59Z",
"proof": [
{
"type": "DataIntegrityProof",
"created": "2026-09-05T17:21:31Z",
"verificationMethod": "did:web:utopia.example#zDnae...QGW8",
"cryptosuite": "ecdsa-rdfc-2019",
"proofPurpose": "assertionMethod",
"proofValue": "z4fJttfr...kn9P"
},
{
"type": "DataIntegrityProof",
"verificationMethod": "did:web:utopia.example#zUC7EwMqo9vCjFmj7ArU2SivcbeccAY6hd4nw5fVD6xD4W2vm9eVy6VqVnciAZRmPLXnuxuka5JTJVmgz66CxDno6eqZmvUViCckCcKg8A4s1R4i2JjyzrdTQs5zrfY4jJCHFCp",
"cryptosuite": "bbs-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0ChVhQiJsvokWSE4Cq999Bw9aluhWuToMG7qGNtAx5I2_LmNjRPCMcTLoiBc_HV8gjvgvSNnrFNK50Ubf1gIN8i8sHUWwUzqdDMevqlO8qVOWgki1YQM6iv5KVLQKPLTMEAHhSEWyz3z3hrSSQJTjO8vIFJgMWaLnxEOgYUkAwn3mL9Hhr-t6oc0OXaYjMBPYyPIQUnwdYYKipusluRJ7SzUrZmv4RxeebXFP1W0GGgnhEIBufF7eulvisZDSTSVWCkn1KMnStOgmhPPjOCIDvXVY2Xxbm61KFgc2pSZJwhV5kLxZV9igRbX8uzqgdbnLyerjY7DzJdVggryiDkfzraDE3VOas9Ls5wKk4oBfAtvO0QZikpLOL1VeBZy9pc3N1ZXI"
}
]
}
上の例は、検証可能なクレデンシャルです。この例では、 発行者がBBSベースのリンク不能な開示方式を有効にして基底証明を作成しています。 保有者はその基底証明を使用し、元の検証可能なクレデンシャルから特定の情報だけを開示する派生証明を作成できます。
{
"@context": [
"https://www.w3.org/ns/credentials/v2"
],
"type": [
"VerifiablePresentation"
],
"verifiableCredential": [
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://w3id.org/citizenship/v4rc1"
],
"type": [
"VerifiableCredential",
"PermanentResidentCardCredential"
],
"issuer": {
"id": "did:web:vcplayground.org",
"image": "data:image/png;base64,iVBORw0KG...YII="
},
"credentialSubject": {
"type": [
"PermanentResident",
"Person"
],
"birthCountry": "Arcadia"
},
"proof": [
{
"type": "DataIntegrityProof",
"verificationMethod": "did:web:utopia.example#zUC7EwMqo9vCjFmj7ArU2SivcbeccAY6hd4nw5fVD6xD4W2vm9eVy6VqVnciAZRmPLXnuxuka5JTJVmgz66CxDno6eqZmvUViCckCcKg8A4s1R4i2JjyzrdTQs5zrfY4jJCHFCp",
"cryptosuite": "bbs-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0DhVkDEJOplpVKV9UBPos-YnSuy7u-_wuxUUcElOCVqJwekpfS8pDYv5mlIiADqJNm62CgfJMG1SeBV9Ri5DlmMAOaWayl51Aqc_fPn1V756d-P51JNwmlPQ9RmyYQPGfk3_8z0KF57H_seUFGZOYAtul85f9rypgN_emBvVApxUSMClqvNSgNVQ_sqVS1ICFkz9MIuTv6Ng6F8CNm0svtv1Tnkmjn6I4bgP0b46j57-lgiAP6Xb72RCnppHyfcuc6z9NB82BgIPCHzu2V3u8sWHyPS1JzVDLUiPVWUy6Oar0A4q9QLP4y92Q4JpJRx0Bl-x3cvCcBZp8ESDphMEDoMgEBqWVdWEZ_KQa2JrYuiWeHfK81WPNlJimOp4xl4CotHqx1NIinSB7jmrtcQ-0dIX_vz5wnYwhlP44rE7TgydrFE_16BYk0hkfKJw8sGCQNxqcUMHGh262ZOie2ASifU8OXd5TZOgTaUXRauwCrAPQZnQKnAQ8j8hBLgD_0Ujzt2Yk6dQueUv493jnmWJMnCbAy33MuRhHSqSxHVJBXOhhUX3s79HY0V-uLkGOZw_61HRpAi0W4spLv77ehUlwW5N35VFbs_THFXGA5AgY3Cg1vY-K5SyqpH5BlWhAcTRwoDKboqp0tOecM5qpZyuAORQ7fK2JddnEMHmvOKW7x_ugykAbQm6DeqhyGPtKxuiSulr-IHFK-KyGCXPAAKbk7X5Hkf29q7tOEGTIU4_9ga88PtiQKJTu7Ao8ABBEg9Gqt-KcfqfPgt8cqwxGtjW21sD3bSbtUiWNQO3ZDPelP9ToXbduEPpsNEYwxRbMtS5SF6YDqy16Bo8uyw41jnKvb-E5ABF-2MGjxB9zt8ZH_TJirGP_IMt0ssYrODZAlJbakLKiD5NH3g-xlvMTHxrD8VEzJakACnJIrm3X9J7MjUM_YTqth99oc2Yq2HLlgwYb1hD3T6jsIaY8zRPzA2ybKdXxZ3ahxyc_nbLDnP2fVNbUj8P9EX2Av_GvmnSYRsE5Wmcblhao6Ref1EF8YFF6JFT8SO2WiAAIBAIQABAUHhAABBxFYRXsiY2hhbGxlbmdlIjoiejFBREtDNVFBdW1Tb1Jud1NDSHRhUXBvQSIsImRvbWFpbiI6InZjcGxheWdyb3VuZC5vcmcifQ"
}
]
}
]
}
上の検証可能な提示には、前の例にある情報のリンク不能な部分集合を含む検証可能なクレデンシャルと、派生証明が含まれています。 検証者はその派生証明を使用して、情報が想定された発行者に由来し、この特定の情報交換に結び付けられていることを検証できます。
実装者には、時刻値の表現と処理は見かけほど単純ではなく、 すぐには明らかにならないうえ、世界各地で一様に扱われてもいない、 さまざまな特性があることを理解するよう推奨します。例を次に示します:
2023-01-01T00:00:00Z)として表現できます。
これらは、壁時計に表示されるような実際の時刻が、ある地域には存在しても、
別の地域には存在しない場合があることを示す例の一部にすぎません。このため、実装者には、
夏時間の影響を受ける値よりも、Zタイムゾーンを基準とする値など、
より普遍的な時刻値を使用することを推奨します。
この仕様では、dateTimeStamp構文を使用することで、普遍的に認識される日付と時刻の組み合わせを増やし、
時刻値が誤って解釈される可能性を減らそうとしています。この構文は、[XMLSCHEMA11-2]仕様で最初に確立されました。
異なるタイムゾーン間での誤解釈を減らすため、
準拠文書で表現されるすべての時刻値はSHOULD、
dateTimeStamp形式で指定するべきです。形式には、値の末尾のZで表される協定世界時(UTC)、
またはUTCを基準とするタイムゾーンオフセットを使用します。オフセットなしで誤って直列化された時刻値はMUST、UTCとして解釈しなければなりません。
UTCを基準とする有効なタイムゾーンオフセットの例には、Z、+01:00、
-08:00、および
+14:00があります。許容されるすべての値の形式的な定義については、このセクション末尾の正規表現を参照してください。
タイムゾーンの定義は、その管理機関によって変更されることがあります。既存の
検証可能なクレデンシャルを置き換えたり、新しいものを発行したりする際、
実装者には、ローカルタイムゾーンの規則変更によって有効期間に予期しない空白が生じないよう確認することを推奨します。
たとえば、標準オフセットがUTC-8であり、2024年に夏時間の実施を停止することが決定された
America/Los_Angelesゾーンを考えます。ある検証可能なクレデンシャルの
validUtil
値が2024-07-12T12:00:00-07:00であった場合、そのクレデンシャルが
validFrom値2024-07-12T12:00:00-08:00で再発行されると、
検証可能なクレデンシャルが無効となる1時間の空白が生じます。
dateTimeStamp値の妥当性を確認したい実装者は、以下に示す正規表現を使用できます。この正規表現は、便宜のため[XMLSCHEMA11-2]仕様から転載したものです。
疑義を避けるために明記すると、[XMLSCHEMA11-2]にある正規表現が
規範的な定義です。以下の正規表現に一致するすべての
dateTimeStamp値が、有効な時点を表すとは限らないことに注意してください。たとえば、この正規表現ではすべての月に31日を許可しており、
うるう年とうるう秒だけでなく、本来は存在しない日付も許容します。ただし、有効な
dateTimeStamp値を生成する最新のシステムライブラリは、多くの場合、有効なdateTimeStamp値を正しく生成します。以下に示す正規表現は、
ここで可読性のために含めた空白を除けば、最新システム上でライブラリが生成した日付と時刻を処理する用途には、
多くの場合十分です。
-?([1-9][0-9]{3,}|0[0-9]{3})
-(0[1-9]|1[0-2])
-(0[1-9]|[12][0-9]|3[01])
T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\.[0-9]+)?|(24:00:00(\.0+)?))
(Z|(\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))
このセクションは非規範的です。
検証可能なクレデンシャルは、 主体を確実に識別する手段として意図されています。ロールベースアクセス制御 (RBAC)および属性ベースアクセス制御(ABAC)が、 主体によるリソースへのアクセスを認可する手段として、この識別に依存することは認識されています。しかし、この仕様は RBACまたはABACの完全な解決策を提供するものではありません。認可フレームワークを併用しない限り、 認可はこの仕様の適切な用途ではありません。
ワーキンググループは、この仕様の策定中に認可のユースケースを検討しており、 この仕様の上に構築されるアーキテクチャ層として、その作業を進めています。
この仕様では、将来の拡張ポイントとして使用できるよう、いくつかのプロパティを予約しています。一部の実装者はこれらのプロパティに関心を示しましたが、 この仕様に含めるのは時期尚早だと判断されました。これらのプロパティはいずれも、 この仕様では定義されていない点に注意することが重要です。したがって実装者は、これらの プロパティの使用が実験的とみなされることに注意してください。
実装者はMAY、これらのプロパティを使用してもかまいません。ただし、規範的な仕様が定められる過程ではSHOULD、 プロパティ自体および/またはその意味が変更されると想定するべきです。 実装者はSHOULD NOT、その実装を説明する公開仕様なしにこれらのプロパティを使用するべきではありません。
以下のプロパティの使用方法に関する衝突を避けるため、実装はMUST、予約済みプロパティに関連付けられた値の中で
typeプロパティを指定しなければなりません。type情報の追加について詳しくは、
セクション4.5
型を参照してください。
| 予約済み プロパティ | 説明 |
|---|---|
confidenceMethod |
検証可能なクレデンシャルまたは検証可能な提示の内部、あるいはそれ自体にあるプロパティの値が正確であるという
検証者の確信度を高めるために使用できる、1つ以上の方法を指定するプロパティです。関連する語彙
URLはMUST、
https://www.w3.org/2018/credentials#confidenceMethodでなければなりません。使用例を含め、
確信度判定方法について詳しく知りたい実装者は、検証可能なクレデンシャルの確信度判定方法v1.0仕様を参照できます。
|
renderMethod |
クレデンシャルを視覚、聴覚、触覚、またはその他の形式でレンダリングするための、
1つ以上の方法を指定するプロパティです。関連する語彙URLはMUST、
https://www.w3.org/2018/credentials#renderMethodでなければなりません。使用例を含め、
レンダリング方法について詳しく知りたい実装者は、検証可能なクレデンシャルのレンダリング方法v1.0仕様を参照できます。
|
この仕様で定義された拡張ポイント、およびこのセクションで定義された予約済み拡張ポイントに関連する仕様の非公式な一覧は、 検証可能なクレデンシャル拡張で確認できます。 このディレクトリ内で予約済み拡張ポイントを参照する項目は、実験的なものとして扱うべきです(SHOULD)。
この文書で提供されるデータモデルをネイティブに使用していないものの、この仕様の複数の概念と整合する デジタルクレデンシャル形式がいくつかあります。公開時点における、そのようなデジタル クレデンシャル形式の例には、 JSON Web Token(JWT)、 CBOR Web Token(CWT)、 JSON Advanced Electronic Signature(JAdES)、 ISO-18013-5:2021 (mDL)、 AnonCreds、 Gordian Envelope、および Authentic Chained Data Container(ACDC)があります。
概念的に整合するデジタルクレデンシャル形式を、このセクションに示す規則に従って 準拠文書へ変換できる場合、その形式は「W3C検証可能な クレデンシャル・エコシステムと互換性がある」とみなされます。仕様の作成者には、 検証可能なクレデンシャル・エコシステムとの互換性を実現する変換を文書化する際、次の規則に従うことを推奨します。 変換仕様は、次の要件を満たします:
@context値を保持しなければなりません。
デジタルクレデンシャルがW3C検証可能なクレデンシャル・エコシステムと互換性があるとみなされるのは、 準拠文書であり、かつ少なくとも1つの保護メカニズムを使用して、 この仕様に記述されたそれぞれの要件を満たす場合に限られます。一部のコミュニティでは、 準拠文書ではないデジタルクレデンシャル形式を 「検証可能なクレデンシャル」と呼ぶことがありますが、そう呼んでも、そのデジタルクレデンシャルがこの仕様に準拠することには決してなりません。たとえば、 SD-JWT-VC [SD-JWT-VC]仕様では名称に「VC」という文字が使用されていますが、 同仕様はW3C検証可能なクレデンシャルと互換性がないことを明示しています。
検証可能なクレデンシャルを表現する場合(たとえば、
提示内で表現する場合)、ある検証可能なクレデンシャル内のデータを、別の検証可能なクレデンシャル内の同じデータだと誤認しないようにすることが重要です。たとえば、2つの検証可能なクレデンシャルがあり、それぞれに次の形式のオブジェクトが含まれているとします:{"type": "Person", "name": "Jane
Doe"}。この場合、一方のオブジェクトが他方と同じ人物を記述しているかどうかは判断できません。
言い換えると、同じエンティティおよび/またはプロパティについて述べていることを確認せずに、2つの検証可能なクレデンシャル間のデータを併合すると、破損したデータセットが生じる可能性があります。
異なる検証可能なクレデンシャルのデータが誤って混在しないように、検証可能な
クレデンシャルグラフという概念を使用し、各検証可能なクレデンシャルをカプセル化します。
単純な検証可能なクレデンシャル、すなわちJSON-LD文書に単一のクレデンシャルと、場合によっては関連する証明が含まれている場合、このグラフは
デフォルトグラフです。提示では、
verifiableCredentialプロパティに関連付けられた各値は、その提示内でそれぞれ独立した
名前付きグラフとなり、その型はVerifiableCredentialGraph
です。このグラフには、単一の検証可能なクレデンシャルまたは
エンベロープ化された検証可能なクレデンシャルが含まれます。
これらのグラフを使用すると、JSON-LD処理に具体的な効果が生じ、あるグラフ内のグラフノード識別子が、
別のグラフ内の識別子から適切に分離されます。入力をアプリケーション固有のJSON-LD文書に限定する実装者も、
ある検証可能なクレデンシャルのデータを別のクレデンシャルのデータと併合する場合には、この点を考慮する必要があります。
たとえば、credentialSubject.idが両方の検証可能なクレデンシャルで同じであっても、それらに含まれるオブジェクトは、前の段落で説明した「Jane
Doe」形式である可能性があります。
類似するプロパティを持つように見えても、URLなどのグローバル識別子を使用するidプロパティを含まないオブジェクトは、
併合しないことが重要です。
セクション4.12 保護メカニズムで説明したように、実装者が 準拠文書を保護する際に使用できる方式は複数あります。有用性と相互運用性を最大限に高めるため、 準拠文書を保護する新しい方法を策定する仕様の作成者に対し、このセクションの指針を示します。
保護メカニズム仕様はMUST、準拠文書のコンテンツ完全性を保護する規範的アルゴリズムを文書化しなければなりません。 このアルゴリズムはMAY、汎用的なものとすることができ、MAY、 準拠文書以外のデータを保護するために使用してもかまいません。
保護メカニズム仕様はMUST、保護された準拠文書内の情報だけを返す検証アルゴリズムを提供しなければなりません。
返される情報には、proof、JOSE/COSEヘッダーパラメータ、署名などの保護メカニズム情報を含めません。
検証アルゴリズムはMAY、保護メカニズムの詳細など、妥当性検証時やデバッグ目的で役立つ可能性のある追加情報を返してもかまいません。
検証アルゴリズムはMUST、メディアタイプ(文字列
inputMediaType)と入力データ(バイト列またはマップとして渡されるinputData)を受け取るインターフェイスを提供しなければなりません。
保護メカニズム仕様はMAY、この文書で指定されたものに加えて、別のアルゴリズムとインターフェイスを提供してもかまいません。検証アルゴリズムは、少なくとも次の項目を含む検証結果を返します:
true、成功しなかった場合は
falseとなる検証ステータス。
保護メカニズム仕様はSHOULD、妥当性検証に不可欠であり、URLから参照されるすべての情報について完全性保護を提供するべきです。 この保護を実現できるメカニズムについては、セクション 5.3 関連リソースの完全性およびセクション C.1 基底コンテキストで説明します。
新しい型の埋め込み証明を作成する保護メカニズム仕様は、 MUST、プロパティを指定し、そのプロパティによって検証可能なクレデンシャルまたは 検証可能な提示を証明グラフに関連付けなければなりません。 保護メカニズムに対する要件は次のとおりです:
@contextファイルを定義できます。
最後の要件は、保護メカニズムがデフォルトグラフを保護し、検証可能な提示では、提示に含まれる各検証可能なクレデンシャルを、それぞれの証明グラフとともに保護することを意味します。 図 9または図 14も参照してください。
proofプロパティは、[VC-DATA-INTEGRITY]で定義されており、MAY、埋め込み保護メカニズムで使用してもかまいません。
保護メカニズム仕様はSHOULD、その保護メカニズムを 保護メカニズムセクション(検証可能なクレデンシャル拡張文書内)に登録するべきです。
許容される保護メカニズムは複数あり、この仕様は、 検証可能なクレデンシャルまたは検証可能な提示で使用する特定の保護メカニズムを義務付けていません。 この仕様を策定したワーキンググループは、次の2つの保護メカニズムを標準化しました: 検証可能なクレデンシャル Data Integrity 1.0 [VC-DATA-INTEGRITY]およびJOSEおよびCOSEを使用した 検証可能なクレデンシャルの保護 [VC-JOSE-COSE]です。コミュニティで知られているその他の 保護メカニズムについては、保護メカニズム セクション(検証可能なクレデンシャル拡張文書内)を参照してください。
セクション3. コアデータモデル、4.
基本概念、および5. 高度な概念で説明するデータモデルは、検証可能なクレデンシャルまたは検証可能な提示の正準の構造表現です。
すべての構文は、このデータモデルを特定の形式で表したものです。このセクションでは、application/vcおよびapplication/vpについて、データモデルをJSON-LDで直列化する方法を規定します。これらは、それぞれ検証可能なクレデンシャルと検証可能な提示の基本メディアタイプです。
構文マッピングはJSON-LDに対してのみ提供されますが、アプリケーションやサービスは、application/vcまたはapplication/vpに戻すことができる、その他のデータ表現構文(XML、YAML、CBORなど)を使用できます。
検証および妥当性検証の要件はデータモデルに基づいて定義されるため、すべての直列化構文は、処理、妥当性検証、または比較のために、決定論的な方法でデータモデルへ変換しなければなりません。
この仕様でプロパティ値に想定される多重度と、その値を格納する結果のデータ型は、プロパティによって異なる場合があります。
次のプロパティは、存在する場合は単一の値として表現されます:id(セクション4.4
識別子)、issuer(セクション4.7 発行者)、および
validFrom/validUntil(セクション4.9
有効期間)。その他のすべてのプロパティは、存在する場合、単一の値または値の配列として表現されます。
この仕様では、この仕様で説明するデータモデルを直列化するためにJSON-LD 1.1を使用します。JSON-LDが有用なのは、グラフベースのデータモデルを表現できるためです。このデータモデルは検証可能なクレデンシャルの基盤です。また、機械可読なセマンティクスを表現でき、データモデルを拡張する際にも有用です(セクション3. コアデータモデルおよび5.2 拡張性を参照)。
JSON-LDは、Linked Dataを直列化するために使用されるJSONベースの形式です。Linked Dataは、リソース記述フレームワーク(RDF)[RDF11-CONCEPTS]を使用してモデル化されます。 RDFは、文のグラフをモデル化する技術です。各文は、1つの主体→プロパティ→値(エンティティ→属性→値とも呼ばれます)の関係であり、この仕様では主張と呼びます。 JSON-LDは、慣用的なJSONを使ってRDFを表現できる技術であり、JSONに慣れた開発者は、RDFをJSONとして利用するアプリケーションを作成できます。詳細については、JSON-LDとRDFの関係を参照してください。
一般に、この文書で説明するデータモデルと構文により、開発者は検証可能なクレデンシャルをおおむねJSON文書として扱うことができ、例をわずかに変更して、そのままソフトウェアシステムにコピー&ペーストできます。このアプローチの設計目標は、異種のソフトウェアシステム間のグローバルな相互運用性を確保しつつ、導入の障壁を低くすることです。 このセクションでは、これを可能にするために使用されるJSON-LDの機能のうち、ほとんどの開発者には意識されないと思われるものの、その詳細が実装者の関心を引く可能性があるいくつかの機能を説明します。 この仕様で使用されるJSON-LD 1.1のとりわけ注目すべき機能には、次のものがあります:
@idキーワードと@typeキーワードは、それぞれidおよびtypeにエイリアス化されており、開発者はこの仕様を慣用的なJSONとして使用できます。
verifiableCredentialプロパティは、JSON-LD
1.1グラフコンテナとして定義されています。そのため、名前付きグラフを作成し、異なるエンティティが表明したデータ集合を分離する必要があります。これにより、たとえば、各発行者が提供するデータグラフと、保有者が検証可能なクレデンシャルを提示する際に提供するデータグラフとが暗号学的に適切に分離され、各グラフの情報の出自が保持されます。
@protectedプロパティ機能は、JSON-LD 1.1の機能であり、
この仕様で定義された用語が上書きされないようにするために使用されます。これは、同じ@context宣言が検証可能なクレデンシャルまたは検証可能な提示の先頭で行われる限り、
データモデルの利用者がJSON-LD
1.1プロセッサを使用するかどうかにかかわらず、その利用者が理解しているすべての用語について相互運用性が保証されることを意味します。
相互運用性を高めるため、この仕様ではデータモデルのJSON-LD表現の使用を制限します。JSON-LDのコンパクト化文書形式を使用しなければなりません(MUST)。これは、application/vcまたはapplication/vpメディアタイプを使用するデータモデルのすべての表現に適用されます。
セクション
6.3
型固有のクレデンシャル処理で詳しく説明するように、一部のソフトウェアアプリケーションは汎用的なJSON-LD処理を行わない場合があります。準拠文書の作成者は、@context値内のJSON-LDキーワードを使用して、検証可能なクレデンシャルまたは検証可能な提示内の値にグローバルな影響を与えると、相互運用性が低下する可能性があることに注意してください。たとえば、@baseキーワードまたは@vocabキーワードの一方または両方を設定する場合です。
これらの値を設定すると、@context値に対する誤ったJSON Schemaテストが、型固有のクレデンシャル処理を行い、@baseおよび/または@vocab値が@context値内に表現されることを想定していない実装において、失敗する可能性があります。
相互運用性を高めるため、準拠文書の作成者には、 型固有のクレデンシャル処理の実行時に容易に検出できないJSON-LD機能を使用しないよう強く推奨します。これらの機能には、次のものがあります:
@context値内でのJSON-LDキーワードのインライン宣言。これらのキーワードは、@baseまたは@vocabの設定などにより、文書の用語と値の処理をグローバルに変更します
@vocabのリセットなど、以前のコンテキストの宣言を上書きするJSON-LDコンテキストの使用
@contextプロパティ内でのJSON-LDコンテキストのインライン宣言
https://www.w3.org/2018/credentials#VerifiableCredentialまたは
https://vocab.example/myvocab#SomeNewType)を、それらの値の短縮形(たとえば、VerifiableCredentialまたはSomeNewType)の代わりに使用すること。
これらの短縮形は、JSON-LDの@contextマッピング(たとえば、
https://www.w3.org/ns/credentials/v2)で明示的に定義されます
この仕様では@vocabの使用に注意を促していますが、実験、開発、ローカル環境への導入を容易にする場合など、この機能の正当な用途もあります。
アプリケーション開発者が本番環境で@vocabを使用したい場合、用語の衝突を減らし、セマンティックな相互運用性の利点を活かすためにその使用は推奨されません。
また、@vocabを使用すると「未定義の用語」エラーの報告が無効になり、
後からの使用によって、以前の@vocab宣言が上書きされることを理解するよう強く推奨します。@vocabの値が異なると、文書に含まれる情報のセマンティクスが変わる可能性があるため、
これらの変更が開発中のアプリケーションに影響するかどうか、およびどのように影響するかを理解することが重要です。
JSON-LD 1.1を使用すると、リスト、配列、さらにはリストのリストも表現できます。 リストや配列を必要とするユースケースでRDFセマンティクスを利用したい場合は、 JSON-LD 1.1のリストに関する指針に従うことを推奨します。
一般に、JSON配列には順序がありますが、JSON-LD配列は@listキーワードを使用しない限り、順序付けられません。
型固有のクレデンシャル処理を実行することでこのデータモデルを使用できますが、その方法で配列を使用する場合は、 上記の指針に従わない限り、JSON-LDでは配列内の項目の順序が保証されないことに注意する必要があります。これは予期しない動作を引き起こす可能性があります。
JSON構造または順序がアプリケーションにとって重要な場合は、それらの要素を@jsonとしてマークするために、そのユースケース固有の@contextを使用することを推奨します。そのような宣言の例を以下に示します。
{
"@context":
{
"matrix": {
"@id": "https://website.example/vocabulary#matrix",
"@type": "@json"
}
}
}
上に示したコンテキストを下の例で使用し、https://website.example/matrix/v1コンテキストを@contextプロパティに含めると、
credentialSubject.matrix内の値はJSONセマンティクスを保持し、2次元行列内のすべての要素の正確な順序が保持されます。
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2",
"https://website.example/matrix/v1"
],
"id": "http://university.example/credentials/1872",
"type": [
"VerifiableCredential",
"ExampleMatrixCredential"
],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"matrix": [
[1,2,3,4,5,6,7,8,9,10,11,12],
[1,1,1,1,1,1,1,1,0,0,0,0],
[0,0,1,1,1,1,1,1,1,0,0,0]
]
}
}
[RFC6838]で定義されるメディアタイプは、 検証可能なクレデンシャルを表現するために使用される構文と、その他の有用な処理指針を識別します。
この仕様のデータモデルを表現するために使用される構文は、メディアタイプによって識別されるべきです(SHOULD)。また、このセクションに示す慣例には従うべきです(SHOULD)。これは、検証可能なクレデンシャルとともにメディアタイプを定義または使用する場合に適用されます。
コアデータモデルに関連付けられたメディアタイプは2つあり、セクションD.
IANAに関する考慮事項に記載されています:
application/vcおよびapplication/vp。
application/vcおよびapplication/vpメディアタイプは、特定の保護メカニズムを意味するものではなく、保護メカニズムと併用することを意図しています。
これらのメディアタイプの完全性を保護するには、保護メカニズムを適用する必要があります。コンテンツの伝達に使用されるメディアタイプにかかわらず、そのコンテンツが安全であると想定してはなりません。
このセクションは非規範的です。
開発者またはシステムが、精度の低いメディアタイプを使用して検証可能なクレデンシャルまたは検証可能な提示を伝達する場合があります。精度の低いメディアタイプを使用する理由には、次のものがあります:
text/plainまたはapplication/octet-streamを使用します。
.jsonによってメディアタイプがapplication/jsonとなり、.jsonldによって
application/ld+jsonとなる場合があります。
application/jsonをapplication/vpの代わりに使用する場合です。
使用されるメディアタイプが対象のプロトコルで許容され、ペイロードから意図されたメディアタイプを特定できる場合、実装者にはエラーを発生させないことを強く推奨します。
たとえば、アプリケーションがapplication/vcメディアタイプに関連付けられたルールに準拠するペイロードだけを受け入れるものの、ペイロードにapplication/jsonまたはapplication/ld+jsonが付されている場合、そのペイロードがより精度の高いメディアタイプにも準拠するかどうかを判定するため、次の手順を実行できます:
@contextプロパティの最初の要素がhttps://www.w3.org/ns/credentials/v2と一致することを確認します。
application/vpメディアタイプであると想定します。これは、JSON文書にトップレベルのtypeプロパティがあり、そこにVerifiablePresentation要素が含まれる場合です。その後も追加のチェックを実行し、ペイロードがこの仕様に準拠した検証可能な提示を表現していることを確認することが想定されます。
application/vcメディアタイプであると想定します。これは、JSON文書にトップレベルのtypeプロパティがあり、そこにVerifiableCredential要素が含まれる場合です。その後も追加のチェックを実行し、ペイロードがこの仕様に準拠した検証可能なクレデンシャルを表現していることを確認することが想定されます。
可能な限り、実装者には、この仕様で定義されるすべてのペイロードに最も精度の高いメディアタイプを使用することを推奨します。 また、精度の低いメディアタイプが付されたペイロードであっても、より精度の高いメディアタイプを付すために必要なルールを満たしていないとは限らないことを認識するよう推奨します。 同様に、精度の高いメディアタイプが付されたペイロードが、必ずしもそのメディアタイプに関連付けられた要件を満たすとは限りません。 ペイロードの受信者は、関連付けられたメディアタイプにかかわらず、対象のシステムで使用するための要件にペイロードが準拠していることを確認するため、適切なチェックを実行することが想定されます。
HTTPクライアントとサーバーは、Acceptヘッダー、およびコンテンツタイプを示す際に、検証可能なクレデンシャルおよび検証可能な提示に関連付けられたメディアタイプを使用します。HTTPサーバーがAcceptヘッダーを無視して別のコンテンツタイプを返す場合や、415 Unsupported Media Typeなどのエラーコードを返す場合があることに、実装者は注意してください。
このセクションは非規範的です。
JSONは異なる種類の情報を表現できるため、特定のJSON文書の利用者が作成者の意図を正しく解釈できるのは、
その文書にコンテキストを与え、他の表現との曖昧さを解消する情報を持っている場合に限られます。この解釈を支援する情報は、JSON文書の外部に完全に置くことも、文書内からリンクすることもできます。
コンパクト化JSON-LD文書には、@contextプロパティが含まれます。このプロパティは、主張を表現するためのコンテキスト情報を内部で表現するか、その情報へリンクします。
これらの機能により、JSON-LD文書を1つのコンテキストから別のコンテキストへ変換する汎用プロセッサを作成できます。ただし、利用者が想定しているコンテキストと形状をすでに使用しているJSON-LD文書を受け取る場合、その処理は必要ありません。
発行者が検証可能なクレデンシャルのJSON-LD文書を作成する場合など、文書の作成者は相互運用性を促進するため、適切なJSON-LDコンテキストを提供し、これらのルールに従う必要があります。
以下の説明は、JSON-LD文書の内容を利用するために変換する必要がないよう、利用者のアプリケーションがすでに理解しているコンテキストと形状で文書が表現されていることを保証する方法の理解に役立ちます。 これは、利用者がコンテキストを一切理解する必要がないという意味ではありません。利用するアプリケーションは、選択したコンテキストと文書形状の組み合わせだけを理解すればよく、その他のものを理解する必要はないという意味です。 発行者は、他のJSON形式のデータと同様に、コンテキストと自身の検証可能なクレデンシャルに関する情報を公開し、汎用プロセッサを使用しない利用者を支援できます。
汎用JSON-LD処理は、JSON-LDソフトウェアライブラリを使用して、準拠文書にさまざまな変換を施して処理するメカニズムと定義されます。 型固有のクレデンシャル処理は、JSON-LDソフトウェアライブラリを必要とせずに準拠文書を処理する、より軽量なメカニズムと定義されます。検証可能なクレデンシャルの利用者の中には、特定の型を持つクレデンシャルだけを利用すればよい利用者もいます。 これらの利用者は、汎用処理の代わりに型固有のクレデンシャル処理を使用できます。型固有のクレデンシャル処理が望ましい場面には、次のものが含まれますが、これらに限定されません:
+json構造化メディアタイプ接尾辞を使用してメディアタイプを処理することを選択した場合。
つまり、型固有のクレデンシャル処理は、利用または生成される文書が準拠文書である限り許容されます。
型固有のクレデンシャル処理を利用したい場合、実装者には次のルールに従うことを推奨します:
@contextプロパティに関連付けられたすべての値が想定された順序になっていること、コンテキストファイルの内容が各ファイルの既知の正しい暗号学的ハッシュと一致すること、
および対象領域の専門家が、その内容が意図したユースケースに適切であると判断していることを確認します。
JSON Schemaと静的コンテキストファイルを併用することは、上記のルールを実装するための許容可能なアプローチの1つです。これにより、型固有のクレデンシャル処理を実行する際に、用語の適切な識別、型付け、および順序を確保できます。
上記のルールは、@contextメカニズムを通じてリテラルなJSONキーをURIにマッピングする場合に、2つの処理メカニズム間のセマンティックな相互運用性を保証します。
汎用JSON-LD処理は、そのアルゴリズムに与えられた未知の@context値を使用し、すべての用語が正しく指定されていることを検証できます。一方、型固有のクレデンシャル処理を行う実装は、事前に理解できるよう設計された特定の@context値だけを受け入れ、JSON-LD
APIを呼び出すことなく同じセマンティクスを得ます。
言い換えると、データ交換が行われるコンテキストは、両方の処理メカニズムに対して、@contextを同じ準拠文書のセマンティクスにつながる方法で使用することにより、明示的に示されます。
このセクションには、実装が検証などの一般的な操作を行うために使用できるアルゴリズムが含まれます。アルゴリズムとして記述された適合要件では、Infra標準[INFRA]の規範的概念を使用します。実装要件に関する詳しい指針については、アルゴリズムへの適合に関するInfra標準のセクションを参照してください。
このセクションのアルゴリズムには、実装がこの仕様への適合性をテストするために使用する最低限のチェックだけが含まれていることに、実装者は注意してください。 実装には、潜在的な問題のデバッグに役立つ警告を開発者へ報告する追加のチェックを提供することが想定されます。 同様に、有害なコンテンツを阻止するため、新しい種類のエラーの報告につながる追加のチェックが実装によって提供される可能性があります。 これらの追加チェックはいずれも、この仕様の将来の版に組み込まれる可能性があります。
このセクションには、準拠する検証者実装が実行しなければならない(MUST)アルゴリズムが含まれます。これは、検証可能なクレデンシャルまたは検証可能な提示を検証する場合に適用されます。このアルゴリズムは、メディアタイプ(文字列 inputMediaType) と保護されたデータ(バイト列 inputData)を受け取り、次のものを含むマップを返します:
検証アルゴリズムは次のとおりです:
falseに設定されている場合、CRYPTOGRAPHIC_SECURITY_ERRORをresult.errorsに追加します。
trueに設定されている場合、result.documentが準拠文書であることを確認します。そうでない場合、result.statusをfalseに設定し、documentプロパティをresultから削除して、MALFORMED_VALUE_ERRORを少なくとも1つresult.errorsに追加します。デバッグ処理を支援するため、その他の警告やエラーを含めてもかまいません(MAY)。
実装が同じ無効な入力に対してエラーを返す限り、保護メカニズムの状態を検証する手順と、入力文書が準拠文書であることを検証する手順は、上記とは異なる順序で実行してもかまいません(MAY)。実装は、上記で説明したものとは異なるエラーを生成してもかまいません(MAY)。
実装が文書の処理中に異常を検出した場合、 ProblemDetailsオブジェクトを使用して、問題を他のソフトウェアシステムへ報告できます。これらのオブジェクトのインターフェースは、データの符号化について[RFC9457]に従います。ProblemDetailsオブジェクトは、次のプロパティで構成されます:
typeプロパティは存在しなければならず(MUST)、その値はMUST、問題の種類を識別するURLでなければなりません。
titleプロパティはSHOULD、問題について短く具体的で人間が読める文字列を提供するべきです。
detailプロパティはSHOULD、問題についてより長く、人間が読める文字列を提供するべきです。
この仕様では、次の問題記述タイプを定義します:
実装はMAY、追加のタイプまたはプロパティを指定してProblemDetailsオブジェクトを拡張してもかまいません。このメカニズムの使用に関する詳しい指針については、拡張メンバーセクション([RFC9457])を参照してください。
このセクションは非規範的です。
この仕様で説明するデータを処理する際、実装者が認識しておくべきアクセシビリティ上の考慮事項がいくつかあります。他のあらゆるWeb標準やプロトコルの実装と同様に、アクセシビリティ上の問題を無視すると、多くの人がこの情報を利用できなくなります。能力にかかわらず、すべての人がこのデータを利用できるようにするには、[WCAG21]などのアクセシビリティに関するガイドラインと標準に従うことが重要です。 これは、歴史的に支援技術に問題をもたらしてきた暗号技術を使用するシステムを構築する場合に、特に重要です。
このセクションでは、このデータモデルを使用する際に考慮すべき一般的なアクセシビリティ上の事項を詳しく説明します。
このセクションは非規範的です。
政府発行の身分証明カードなど、現在使用されている多くの物理的なクレデンシャルは、アクセシビリティ特性が十分ではありません。たとえば、小さな文字、小さく高解像度の画像への依存、視覚障害のある人への配慮の欠如などが挙げられますが、これらに限定されません。
このデータモデルを使用して検証可能なクレデンシャルを作成する場合、データモデルの設計者にはデータファーストのアプローチを使用することを推奨します。たとえば、 クレデンシャルを表現するためにデータまたはグラフィック画像のどちらかを選択できる場合、設計者は、機関名や専門職のクレデンシャルなど、画像のすべての要素を機械可読な方法で表現するべきです。情報を伝えるために、閲覧者による画像の解釈に依存するべきではありません。データファーストのアプローチは、能力の異なる人々に応じたさまざまなインターフェースを構築するための基礎要素を提供するため、推奨されます。
このセクションは非規範的です。
この仕様で説明するデータを公開する際、実装者には、いくつかの国際化上の考慮事項を認識することを推奨します。 他のあらゆるWeb標準やプロトコルの実装と同様に、国際化を無視すると、異なる言語や社会の間でデータを生成し利用することが困難になります。その結果、この仕様の適用可能性が制限され、標準としての価値が大幅に損なわれます。
実装者には、Web上の文字列:言語と方向のメタデータ文書[STRING-META]を読むことを強く推奨します。この文書はW3C国際化活動によって公開され、国際化を支援するため、テキストについて信頼できるメタデータを提供する必要性を詳しく説明しています。国際化に関する最新情報については、検証可能なクレデンシャル実装ガイドライン[VC-IMP-GUIDE]文書も読むことを強く推奨します。
このセクションでは、このデータモデルを使用する際に考慮すべき一般的な国際化事項の概要を示し、実装者が関心を持つ可能性のあるWeb上の文字列:言語と方向のメタデータ文書[STRING-META]の特定部分を取り上げることを目的としています。
複数の表現構文にわたって言語および基本方向の情報を表現できるようにするため、データ公開者には、Web上の文字列:言語と方向のメタデータ文書[STRING-META]の「構文横断の表現」セクションを読むことを強く推奨します。具体的には、言語と基本方向の情報を、[JSON-LD11]、[JSON]、およびCBOR[RFC7049]などの複数の表現構文で表現できるようにします。
一般的な設計パターンでは、言語、および任意で特定の基本方向が付されたテキスト文字列を表現する際に、次のマークアップテンプレートを使用します。
"myProperty": {
"@value": "The string value",
"@language": "LANGUAGE"
"@direction": "DIRECTION"
}
文字列値の代わりに言語値オブジェクトを使用する場合、そのオブジェクトはMUST、値が文字列である@valueプロパティを含まなければなりません。また、SHOULD、@languageプロパティを含むべきです。その値は、整形式のLanguage-Tagを含む文字列でなければならず、このタグは[BCP47]で定義されます。さらに、MAY、@directionプロパティを含めてもかまいません。その値は、基本方向を表す文字列であり、@directionプロパティ([JSON-LD11])で定義されます。言語値オブジェクトはMUST
NOT、@value、@language、および@direction以外のキーを含んではなりません。
上記の設計パターンを使用して、次の例では、テキスト方向を指定せずに書籍のタイトルを英語で表現します。
"title": {
"@value": "HTML and CSS: Designing and Creating Websites",
"@language": "en"
}
次の例では、基本方向を右から左に設定し、同様のタイトルをアラビア語で表現します。
"title": {
"@value": "HTML و CSS: تصميم و إنشاء مواقع الويب",
"@language": "ar",
"@direction": "rtl"
}
多くのシステムはテキスト文字列の最初の文字を使用して基本方向を決定するため、言語と方向を明示的に表現しなければ、上記のテキストは左から右として誤って描画される可能性が高くなります。
複数の言語値オブジェクトを、プロパティの配列値として提供してもかまいません(MAY):
"title": [
{
"@value": "HTML and CSS: Designing and Creating Websites",
"@language": "en"
},
{
"@value": "HTML و CSS: تصميم و إنشاء مواقع الويب",
"@language": "ar",
"@direction": "rtl"
}
]
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://achievement.example/multilingual/v2"
],
"type": [ "VerifiableCredential", "ExampleAchievementCredential" ],
"issuer": {
"id": "did:example:2g55q912ec3476eba2l9812ecbfe",
"type": "Profile"
},
"validFrom": "2024-03-14T22:32:52Z",
"validUntil": "2025-01-01T00:00:00Z",
"credentialSubject": {
"type": [ "AchievementSubject" ],
"achievement": {
"id": "urn:uuid:9a652678-4616-475d-af12-aca21cfbe06d",
"type": [ "Achievement" ],
"name": {
"en": "Successful installation of the Example application",
"es": "Instalación exitosa de la aplicación Example"
},
"criteria": {
"narrative": {
"es": "Instaló exitosamente de la aplicación Example.",
"en": "Successfully installed the Example application."
}
}
}
}
}
各自然言語文字列プロパティ値の言語と基本方向は、提供するべきです(SHOULD)。これは、各プロパティ値の言語値構造を介して提供するか、クレデンシャル全体のすべての値に対するデフォルトの言語と基本方向を介して提供します。値ごとの言語値構造を使用することが推奨されます。文書のデフォルトを使用すると、本来は任意であるJSON-LD展開に基づく変換を、後続のプロセッサが実行しなければならなくなる可能性があるためです。詳細については、文字列の国際化セクション([JSON-LD11]仕様)を参照してください。言語が関連付けられていない自然言語文字列値は、その言語値が未定義であるものとして扱うべきです(SHOULD)。この値はundefined(言語タグ「und」)です。基本方向が関連付けられていない自然言語文字列値は、その方向値が自動であるものとして扱うべきです(SHOULD)。この方向値は「auto」です。
このセクションは非規範的です。
このセクションでは、セキュリティに関する考慮事項とプライバシーに関する考慮事項を含め、この仕様の一般的な脅威モデルについて詳しく説明します。各脅威の完全な分析とその対応策は、 検証可能なクレデンシャル・データモデルの脅威モデルに示されています。実装者には、そこで示された助言を、この仕様が提供する個々の機能に適用することが求められます。
rdf:HTML値内のマークアップなど、注入可能なコードを含む値が格納されており、その内容を適切に処理せず描画する利用者にコードを実行させます。
このセクションは非規範的です。
このセクションでは、検証可能なクレデンシャル・データモデルを本番環境に配備する際の一般的なプライバシー上の考慮事項と、具体的なプライバシーへの影響について詳しく説明します。上記で要約したプライバシー上の脅威と、それぞれへの対応策の完全な分析は、 検証可能なクレデンシャル・データモデルの脅威モデルに示されています。
このセクションは非規範的です。
プライバシーには、仮名状態から個人が強く識別される状態までのスペクトルがあることを認識することが重要です。ユースケースによって、人々が提供してもよいと考える情報と、そこから導出され得る情報に対する許容度は異なります。
プライバシー対策はユースケースごとに異なります。 たとえば、アルコール購入時の規制は購入者が一定の年齢を超えているかどうかを確認することだけを目的としているため、多くの人は匿名のままでいることを望みます。対照的に、医療専門家が患者に処方した薬を調剤する場合、薬局には処方者と患者の両方をより厳密に識別する法的義務があります。すべてのユースケースに適用できる単一のプライバシー対策はありません。
アルコールを購入する際に匿名のままでいたい人でも、販売者に対して適切な保証を与えるため、顔写真付き身分証明書を提示する必要がある場合があります。販売者は、購入者が一定の年齢を超えているという事実以外に、氏名やその他の詳細を知る必要はないかもしれません。それでも、多くの場合、単純な年齢証明だけでは規制を満たすのに不十分なことがあります。
検証可能なクレデンシャル・データモデルは、プライバシーのスペクトル全体を支援することを目指しており、特定の取引に適した匿名性の水準について哲学的な立場を取りません。プライバシーに敵対的な特定の状況を回避したい実装者は、 検証可能なクレデンシャル・データモデルの脅威モデルに記載されたプライバシー上の脅威と対応策を指針としてください。
このセクションは非規範的です。
ベアラークレデンシャルとは、コンサートのチケットなど、その保有者に、保有者が機微情報を開示することなく特定のリソースを利用する権利を与える、プライバシーを強化する情報です。リスクの低い状況では、複数の保有者が同じ検証可能なクレデンシャルを提示しても問題にならない場合や、大きな経済的損失または評判上の損失につながらない場合に、エンティティはベアラークレデンシャルをよく使用します。
検証可能なクレデンシャルをベアラークレデンシャルとして実現するには、主体識別子を指定しません。この識別子はidプロパティで表され、このプロパティはcredentialSubjectプロパティ内にネストされています。たとえば、次の検証可能なクレデンシャルはベアラークレデンシャルです:
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/temporary/28934792387492384",
"type": ["VerifiableCredential", "ExampleDegreeCredential"],
"issuer": "https://university.example/issuers/14",
"validFrom": "2017-10-22T12:23:48Z",
"credentialSubject": {
// note that the 'id' property is not specified for bearer credentials
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/temporary/28934792387492384",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2017-10-22T12:23:48Z",
"credentialSubject": {
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaeqpc578Kg3k9asdXLMhsQSjh8HMPp3ip3miiWZUUhsv9p",
"cryptosuite": "ecdsa-rdfc-2019",
"proofPurpose": "assertionMethod",
"proofValue": "z4gJE9JhYE7Ysoi4bVDxfZtPoS58xSaToS24VgD5ZCFZwrnnNmG1u7TEiWSoDMZg7atEsjnXhgWDDUhPStt3fjP6H"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/temporary/28934792387492384",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2017-10-22T12:23:48Z",
"credentialSubject": {
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"created": "2026-09-05T21:09:22Z",
"verificationMethod": "did:key:zDnaee6cRuNdNecab7A7cnbb6w5xovYRWxYirEHstya3usouK",
"cryptosuite": "ecdsa-sd-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0AhVhAbXDWQP7VZ4tVSPZEQ37oKYrxGWkIwkwa3sS-rkbte7wecDF3TxhbNKPfY9jd5v0jHqYUmEwN_nAnB636lSLe6VgjgCQDMxU4UBpX81s3MtMHLl8e0TfnyBXVUPx2MPOcIa_zlVZYIF-zYmjno5WxBA8rB82d5MfISeVMrv-alCp6slMeruQqhVhAz_JTxkYAp3EJGTbBF4VXY_mXDt2ZTpRAlgfgoptM2H7zSge_QU8P6XW77Pg-7gfTKBMEVz4qoFhuSnT5ofgjQ1hAfO9DdRJLyiv_i-y6s0XuVFw54dxY8J5E6rcOEVJg8uCCOQ48WAkNtlqQiOvUE4zBlI_mHUHIHOqswhcG8gT0BFhAmq26f0MIY0Xg6SOKUGKlHlDXWfNB8vs9cJobyjaNIIXfkpQfpkH0P_XBOtuitw64aCu1es7oS26vqwqArod4f1hAAJw-H9rtO-XLxlDrP4NZPZDy7l6bQw7CI1cxwjtR2bZpUUvN3728RIK6vEhhtrjsrCV7aETHy7sumaImZoprqlhAxTQKCH9T2RR3lisBRvZKNmcA9Qg9iS6oqx0V4Wwjsmc4m8s_2aAM2FTiBsZgCirVLNQgzDEBLIcQCwQYLD-f44FnL2lzc3Vlcg"
}
}
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/temporary/28934792387492384",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2017-10-22T12:23:48Z",
"credentialSubject": {
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"verificationMethod": "did:key:zUC7JVyoNecN4arDQjjTXVSfyv1V7bwcnMUs6y2BuSeWmzarPohM5DLXAXXxkBRrpjbzZTUdrLaAVoj87nPgXktL3q8JgBvRqqHo9Z88Jfn2tXXM8Q1aTDhNgf1HYL9WEMiULnS",
"cryptosuite": "bbs-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0ChVhQr2JdqpEn1gSsMuVv0OOW4ydQjz7yLRGCP4zyahVs3gVxV3yZa3P3kvbf8aHmIY5NVvxNIvEImIEGaLxcQ9IC-mOqGr_iaymo8bVdWwBAa29YQD3-tli9rF9b1rOCOCaDSL0zj-QnIO3TIaEobJTPayaIdrHmhnEXifHmmlKM3zCnc0pq4l3ZkBkIESZ4DrQomVNYYLMBLFvXdBPRt0k4kRZk93gc0jkscNQB3wJpCXu4OPkNaVJMlX03jEKZdwQ437AaRg2tSqfzd_pbHzZq9O7FyF1fsAT1tn_tHqFT5wrUWfaGtHJRQwv6rnUS3s9HBqQB_1ggtUkRUsfQJWZ0UDSHwnjHqcJ-fOZt0xzG9BaPLElAHaSBZy9pc3N1ZXI"
}
}
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
application/vc
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/temporary/28934792387492384",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2017-10-22T12:23:48Z",
"credentialSubject": {
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
application/vc+jwt
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/temporary/28934792387492384",
"type": [
"VerifiableCredential",
"ExampleDegreeCredential"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2017-10-22T12:23:48Z",
"credentialSubject": {
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
}
application/vc+cose
{
"kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
"alg": "ES256"
}
{
"iat": 1788642562,
"exp": 1789852162,
"_sd_alg": "sha-256",
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"issuer": "https://university.example/issuers/14",
"validFrom": "2017-10-22T12:23:48Z",
"credentialSubject": {
"degree": {
"name": "Bachelor of Science and Arts",
"_sd": [
"h1XlmfBwGm3VEKRXV-l75FhG8uaIgozXQ_1qy0WbFrg"
]
}
},
"_sd": [
"eiXDJJLNXsUVLCf5WVosmJn_6kfWI7fQCMUuAonxxDY",
"ljNVHXfmKIiE4JU0vuI3kwdntzVDWYprujOnHqxu5jQ"
]
}
SHA-256ハッシュ: eiXDJJLNXsUVLCf5WVosmJn_6kfWI7fQCMUuAonxxDY
開示: WyJ5bnpDaURFNnhPazhydjZ2UThNcmtBIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvdGVtcG9yYXJ5LzI4OTM0NzkyMzg3NDkyMzg0Il0
内容: [
"ynzCiDE6xOk8rv6vQ8MrkA",
"id",
"http://university.example/credentials/temporary/28934792387492384"
]
SHA-256ハッシュ: ljNVHXfmKIiE4JU0vuI3kwdntzVDWYprujOnHqxu5jQ
開示: WyJtYW10NnpvTVJBV25WU2tSS2NVMjZnIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d
内容: [
"mamt6zoMRAWnVSkRKcU26g",
"type",
[
"VerifiableCredential",
"ExampleDegreeCredential"
]
]
SHA-256ハッシュ: h1XlmfBwGm3VEKRXV-l75FhG8uaIgozXQ_1qy0WbFrg
開示: WyJ1SW40blNBRjYzWkFIU2VCU1NJb19RIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0
内容: [
"uIn4nSAF63ZAHSeBSSIo_Q",
"type",
"ExampleBachelorDegree"
]
ベアラークレデンシャルはプライバシーを強化しますが、発行者は、保有者がベアラークレデンシャルに期待する以上の情報を意図せず開示しないよう、設計に引き続き注意する必要があります。ベアラークレデンシャルの設計と再利用から生じる相関リスク、およびその対応策については、検証可能なクレデンシャル・データモデルの脅威モデルのベアラークレデンシャルの再利用と相関で説明しています。
このセクションは非規範的です。
理想的なプライベートブラウジングでは、個人識別情報(PII)は一切開示されません。しかし、多くのクレデンシャルにはPIIが含まれるため、保有者にソフトウェアを提供する組織は、プライベートブラウジングモードでクレデンシャルや提示を使用すると、この情報が開示される可能性があることを保有者に警告するべきです。プライベートブラウジングの処理方法はブラウザーベンダーごとに異なり、この機能を備えていないブラウザーもあるため、実装者が何らかのプライバシー保護をプライベートブラウジングモードに依存させないことが重要です。代わりに、プライバシー保証を提供するため、ソフトウェアから直接利用できるツールに依存することを実装者に推奨します。
このセクションは非規範的です。
W3Cは包括的な脅威モデリングのアプローチへ移行しており、新しい仕様における「セキュリティに関する考慮事項」セクションを廃止する過程にあります。セキュリティに関する考慮事項の文書については、付録A. 脅威モデルを参照してください。
このセクションは非規範的です。
この仕様は、妥当性検証、すなわち検証可能なクレデンシャルまたは検証可能な提示の妥当性を確認するプロセスについて適合基準を定めていませんが、読者は、検証者が妥当性検証を行う際、このデータモデルの情報をどのように使用することが想定されているのか関心を持つかもしれません。このセクションでは、この仕様のプロパティを検証者がどのように使用することが想定されるかについて、ワーキンググループで行われた議論の一部を取り上げます。
このセクションは非規範的です。
検証者が1つ以上の検証可能なクレデンシャルを保有者に要求する場合、受け取りたいクレデンシャルのタイプを指定できます。クレデンシャルタイプと、各タイプおよび各タイプの主張に対する妥当性検証スキーマは、仕様作成者によって定義され、検証可能なクレデンシャル拡張などで公開されます。
クレデンシャルのタイプは、タイププロパティによって表されます。特定のタイプを持つ検証可能なクレデンシャルには、深くネストされている場合もある特定のプロパティが含まれます。これらを使用して、提示が、検証者の実行する一連の処理規則を満たすかどうかを判断できます。検証可能なクレデンシャルを特定のtypeに絞って要求することで、検証者は保有者から特定の情報を収集できます。その情報は、各発行者が発行した検証可能なクレデンシャルに由来し、検証者が保有者とのやり取りの次の段階を判断できるようにします。
検証者が特定のタイプの検証可能なクレデンシャルを要求する場合、そのタイプには必須および任意の一連の主張が関連付けられています。検証者による検証可能なクレデンシャルの妥当性検証は、必須の主張が含まれていない場合に失敗し、その特定のタイプに関連付けられていない主張は無視されます。つまり、検証者は、受け取った検証可能なクレデンシャルに対して入力の妥当性検証を行い、クレデンシャルタイプの仕様に基づいて不正な形式の入力を拒否します。
このセクションは非規範的です。
検証可能なクレデンシャルのうち、保有者が提示したものでは、idプロパティに関連付けられた値、すなわち各credentialSubjectに対応する値によって、主体が検証者に対して識別されます。保有者が主体でもある場合、検証者は、保有者に関連する検証メタデータを保持していれば、その保有者を認証できます。続いて、検証者は、保有者を、保有者が生成し、検証可能な提示に含まれる署名を使用して認証できます。idプロパティは任意です。検証者は、その他のプロパティを検証可能なクレデンシャルで使用して、主体を一意に識別することもできます。
認証およびWebAuthnが検証可能なクレデンシャルとどのように連携し得るかについては、検証可能なクレデンシャル実装ガイドライン1.0文書を参照してください。
このセクションは非規範的です。
issuerプロパティに関連付けられた値は、発行者を検証者に対して識別します。
issuerプロパティに関連するメタデータは、検証者が検証アルゴリズムを通じて利用できます。このアルゴリズムはセクション7.1
検証で定義されています。このメタデータには、各検証可能なクレデンシャルまたは検証可能な提示を保護するために保護メカニズムが使用した検証方法について、検証済みコントローラを識別する情報が含まれます。通常、そのコントローラは、それぞれのissuerまたはholderです。
一部のエコシステムでは、発行者と検証方法のコントローラとの関係がより複雑な場合があり、上記のマッピングに加えて、またはその代わりに、検証済み発行者のリストを使用することがあります。
このセクションは非規範的です。
holderプロパティに関連付けられた値は、保有者を検証者に対して識別するために使用されます。
多くの場合、保有者に関する関連メタデータは、holderプロパティの値によって識別され、検証者が利用または取得できます。たとえば、保有者は、検証材料を含む情報を公開できます。この材料は、検証可能な提示の保護に使用されます。このメタデータは、検証可能な提示の証明を確認する際に使用されます。一部の暗号識別子は、必要なメタデータをすべて識別子自体に含んでいます。その場合、追加のメタデータは必要ありません。他の識別子では検証可能なデータレジストリを使用し、そこでこのようなメタデータが自動的に公開されるため、検証者は、保有者による追加の操作なしに利用できます。
検証可能なクレデンシャル実装ガイドライン1.0および検証可能なクレデンシャルのユースケースで、主体および保有者に関するその他の例を参照してください。
妥当性検証とは、検証者がビジネスルールを適用して、検証可能なクレデンシャルの特定の使用が適切かどうかを評価するプロセスです。
検証者は、所定の検証可能な提示を複雑なビジネスルールに照らして妥当性検証する必要がある場合があります。たとえば、検証者は、保有者が、主体と同一のエンティティであり、その主体が検証可能なクレデンシャルの主体であるという確信を必要とすることがあります。このような状況では、次の要因により、検証者は、含まれている検証可能なクレデンシャルにおいて、その識別子について表された主張が実際に現在の提示者に関するものであると合理的に確信できます:
このセクションは非規範的です。
validFromは、検証者が想定する範囲内にあることが期待されます。たとえば、検証者は、検証可能なクレデンシャルの有効期間の開始時点が将来ではないことを確認できます。
このセクションは非規範的です。
検証可能なクレデンシャルまたは検証可能な提示に含まれる情報が改ざんされていないことを証明するために使用される保護メカニズムを、暗号証明と呼びます。暗号証明には、デジタル署名やゼロ知識証明など、多くの種類がありますが、これらに限定されません。一般に、暗号証明を検証する際、実装には次の事項を確認することが期待されます:
一般に、デジタル署名を検証する際、実装には次の事項を確認することが期待されます:
このセクションは非規範的です。
検証者は、validFromプロパティとvalidUntilプロパティが一定の範囲内にあることを想定します。たとえば、検証者は、検証可能なクレデンシャルの有効期間の終了時点が過去ではないことを確認できます。一部のクレデンシャルは、本来の有効期間が満了した後でも二次的な目的に役立つことがあるため、validFromプロパティとvalidUntilプロパティによって表される有効期間は、検証の後に行われる妥当性検証の構成要素として常に扱われます。
このセクションは非規範的です。
credentialStatusプロパティを利用できる場合、検証可能なクレデンシャルのステータスは、検証者が、credentialStatusタイプの定義(当該検証可能なクレデンシャルに適用されるもの)と、検証者独自のステータス評価基準に従って評価することが期待されます。たとえば、検証者は、検証可能なクレデンシャルのステータスが「発行者によって正当な理由により撤回された」状態ではないことを確認できます。
このセクションは非規範的です。
credentialSchemaプロパティを利用できる場合、検証可能なクレデンシャルのスキーマは、検証者が、credentialSchemaタイプの定義(当該検証可能なクレデンシャルに適用されるもの)と、検証者独自のスキーマ評価基準に従って評価することが期待されます。たとえば、credentialSchemaのtype値が[VC-JSON-SCHEMA]である場合、検証者は、クレデンシャルのデータが指定されたJSON Schemaに対して妥当であることを確認できます。
このセクションは非規範的です。
目的への適合性とは、カスタムプロパティ、つまり検証可能なクレデンシャル内のプロパティが、検証者の目的に適しているかどうかを指します。たとえば、検証者が、主体が21歳を超えているかどうかを判断する必要がある場合、特定のbirthdateプロパティ、またはより抽象的なプロパティ、たとえばageOverに依存することがあります。
発行者は、検証者から、当該主張を行う者として信頼されています。たとえば、フランチャイズのファストフード店は、フランチャイズ本部が行う割引クーポンの主張を信頼します。発行者が検証可能なクレデンシャルで表明したポリシー情報は、保有者および検証者がそのポリシーを無視することに伴う責任を引き受けない限り、尊重するべきです。
このセクションは非規範的です。
現在一般に「人工知能」や「機械学習」と呼ばれているものを使用するシステムは、人間の能力と同等またはそれを上回る水準で複雑な作業を実行できる可能性があります。これには、検証可能なクレデンシャルの取得や使用などの作業が含まれる可能性があります。そのため、現在CAPTCHAで一般的に行われているように、この種の作業を用いて人間と自動化された「ボット」の活動を区別する方法では、十分または許容可能な保護を提供できなくなる可能性があります。
検証可能なクレデンシャルを使用する、またはその内容に妥当性検証を行うセキュリティアーキテクチャの実装者には、現在一般に「人工知能」と呼ばれるものなど、他のシステムとのやり取りに使用するために検証可能なクレデンシャルを正当に保有する可能性のある機械ベースの主体が存在することを考慮するよう強く推奨します。また実装者は、脅威主体がこのような「人工知能」システムと検証可能なクレデンシャルを組み合わせ、実装者のシステムとやり取りする際に人間を装う可能性についても考慮できます。このようなシステムとしては、ソーシャルメディア、選挙、エネルギー供給、サプライチェーン、自動運転車などのグローバルインフラストラクチャが挙げられますが、これらに限定されません。
実装は、次のMUST要件に従い、https://www.w3.org/ns/credentials/v2に配置されている基本コンテキスト値を、すでに取得済みとして扱う必要があります。
次の値は、基本コンテキストファイルの16進数で符号化されたSHA2-256ダイジェスト値です:
59955ced6697d61e03f2b2556febe5308ab16842846f5b586d7f1f7adec92734。
上記の暗号学的ダイジェストは、最新のUnixコマンドラインインターフェースから次のコマンドを実行して確認できます:
curl -s https://www.w3.org/ns/credentials/v2 | openssl dgst -sha256。
エンドツーエンドのセキュリティを確保するため、アプリケーションが使用するすべてのJSON-LDコンテキストURLでは、同じメカニズムまたは機能的に同等のメカニズムを使用することが強く推奨されます。リソースの暗号学的ハッシュ値が期待されるハッシュ値と一致しない場合、実装はエラーをスローすることが期待されます。
上記の基本コンテキスト、および任意の@contextプロパティ内のその他のコンテキストと値を、JSON-LD展開やRDFへの変換などの操作中に適用する実装は、エラーを発生させずに処理することが期待されます。このような操作を実行した結果エラーが発生した場合、検証可能なクレデンシャルまたは検証可能な提示は、検証に失敗しなければなりません(MUST)。
この仕様で暗号学的ハッシュ値が関連付けられているファイルが変更される可能性は極めて低いものです。ただし、この仕様に重大な誤りが見つかり、エコシステムの安定性を確保するために修正が必要になった場合、暗号学的ハッシュ値が変更される可能性があります。そのため、これらのファイルのHTTPキャッシュ時間は無限には設定されておらず、暗号学的ハッシュ値の変更が検出された場合、実装者には正誤表を確認することが推奨されます。
このセクションは、検証可能なクレデンシャルおよび検証可能な提示を検証する際、検証者が、発行者または保有者がクレデンシャルまたは提示を保護した時点で保有していた情報と一致する情報を持つことの重要性を改めて示すものです。この情報には、少なくとも次のものが含まれる可能性があります:
検証者には、クレデンシャル内から参照されるその他のデータ(URLを介してリンクされるリソースなど)は、デフォルトでは暗号学的に保護されていないことに注意が促されます。永続的にキャッシュされたファイルや暗号学的ハッシュを使用して、検証可能なクレデンシャルのセキュリティに不可欠なすべてのURLにも同様の保護を提供することがベストプラクティスとみなされます。最終的に、リンクされた外部コンテンツの暗号学的ダイジェストを把握していれば、検証者は、そのコンテンツが発行者または保有者の意図したものと同一であることを確認できます。
RDF語彙処理に依存する実装は、基本コンテキストで使用される次の語彙URLが、規範的なJSON-LDシリアル化を読み込む際に、最終的に次のファイルへ解決されることを保証しなければなりません(MUST)。 実装は、語彙ファイルについて、意味的に同等なその他のシリアル化を使用しても構いません(MAY)。各ファイルの内容が正しいことを開発者が検証できるよう、JSON-LD文書ごとに暗号学的ハッシュが提供されています。
| JSON-LD文書とハッシュ |
|---|
|
URL: https://www.w3.org/2018/credentials# 解決後の文書: https://www.w3.org/2018/credentials/index.jsonld SHA2-256ダイジェスト: 9db03c54d69a8ec3944f10770e342b33e58a79045c957c35d51285976fc467c4
|
|
URL: https://w3id.org/security# 解決後の文書: https://w3c.github.io/vc-data-integrity/vocab/security/vocabulary.jsonld SHA2-256ダイジェスト: c7a06ccc144d9d72f435f64802fdfb802a32aefe8b0bcb7504f69754b8c0faeb
|
上記の暗号学的ダイジェストは、最新のUNIX系OSのコマンドラインインターフェースで、<DOCUMENT_URL>を適切な値に置き換えて次のようなコマンドを実行することにより確認できます:
curl -sL -H "Accept: application/ld+json" <DOCUMENT_URL> | openssl dgst -sha256
実装者と文書作成者は、schema.orgの暗号学的ダイジェストが提供されていないことに気付くかもしれません。これは、schema.orgの語彙が定期的に変更されるためです。提供されたダイジェストは、公開後数週間以内に古くなってしまいます。ワーキンググループはこの懸念について議論し、この仕様で使用されるschema.orgの語彙の用語は長年にわたり安定しており、その意味が変更される可能性は極めて低いと結論付けました。
このような定義を利用するプロセッサおよびその他の仕様のために、この仕様では次の基本クラスを定義します:
| 基本クラス | 目的 |
|---|---|
CredentialEvidence
|
evidenceプロパティに配置される、特定の証拠タイプのスーパークラスとして機能します。 |
CredentialSchema
|
credentialSchemaプロパティに配置される、特定のスキーマタイプのスーパークラスとして機能します。 |
CredentialStatus
|
credentialStatusプロパティに配置される、特定のクレデンシャルステータスタイプのスーパークラスとして機能します。 |
ConfidenceMethod
|
confidenceMethodプロパティに配置される、特定の信頼度メソッドタイプのスーパークラスとして機能します。
|
RefreshService
|
credentialRefreshプロパティに配置される、特定の更新サービスタイプのスーパークラスとして機能します。 |
RenderMethod
|
renderMethodプロパティに配置される、特定のレンダリングメソッドタイプのスーパークラスとして機能します。
|
TermsOfUse
|
termsOfUseプロパティに配置される、特定の利用規約タイプのスーパークラスとして機能します。 |
このセクションでは、この仕様で使用されるデータ型を定義します。
sriStringデータ型は、サブリソース完全性仕様で定められた方法を使用してリソースの完全性情報を提供するために、値と関連付けられます。sriStringデータ型は次のように定義されます:
https://www.w3.org/2018/credentials#sriStringintegrity属性を[SRI]仕様で定義しています。
このセクションは非規範的です。
検証可能なクレデンシャルおよび検証可能な提示のデータモデルは、[JSON-LD11]および[VC-JSON-SCHEMA]など、さまざまな基盤技術を活用しています。このセクションでは、@context、type、およびcredentialSchemaプロパティを比較し、データモデルのこれらの機能を使用できる、より具体的なユースケースの一部を取り上げます。
typeプロパティは、それが現れる検証可能なクレデンシャルのタイプを一意に識別するため、すなわち、その検証可能なクレデンシャルに含まれる主張の集合を示すために使用されます。このプロパティと、その値の集合に含まれるVerifiableCredentialという値は必須です。この検証可能なクレデンシャル固有のサブタイプを表す追加値を1つ含めることがベストプラクティスですが、その値を省略することも、配列に追加のタイプ値を含めることも許可されています。多くの検証者は、特定のサブタイプの検証可能なクレデンシャルを要求するため、サブタイプ値を省略すると、どの検証可能なクレデンシャルが必要なのかを、検証者が保有者へ伝えることが難しくなる可能性があります。検証可能なクレデンシャルに複数のサブタイプがある場合は、それらをすべてtypeプロパティに列挙することが合理的です。
typeプロパティを[JSON-LD11]表現の検証可能なクレデンシャルで使用すると、機械が意味論を確認できるため、検証可能なクレデンシャルの意味論を確実に適用できます。[JSON-LD11]では、この技術は主張の集合の分類を記述するだけでなく、グラフ内のプロパティのサブグラフについて、その構造と意味論も伝達します。
[JSON-LD11]では、これはグラフ内のノードのタイプを表します。そのため、一部の[JSON-LD11]表現の検証可能なクレデンシャルでは、typeプロパティが、その検証可能なクレデンシャル内にある多くのオブジェクトで使用されます。
@contextプロパティの主な目的は、[JSON-LD11]の観点から見ると、検証可能なクレデンシャル内のデータの意味およびそのデータの用語定義を、機械可読な形で伝達することです。@contextプロパティは、検証可能なクレデンシャルおよび検証可能な提示内のプロパティについて、グローバルに一意なURLを短い形式の別名へマッピングするために使用され、[JSON-LD11]表現を人間にとって読みやすくします。[JSON-LD11]の観点では、このマッピングにより、クレデンシャル内のデータを機械可読データのネットワークとしてモデル化することもできます。これは、検証可能なクレデンシャルまたは検証可能な提示内のデータが、より大きな機械可読データグラフとどのように関係するかを明確にすることで実現されます。これは、当事者間で調整できないエコシステムにおいて、データの意味を他のデータとどのように関連付けるかを機械に伝えるうえで役立ちます。このプロパティは必須であり、その値の集合の先頭値はhttps://www.w3.org/ns/credentials/v2でなければなりません。
@contextプロパティはデータをグラフデータモデルへマッピングするために使用され、typeプロパティは[JSON-LD11]においてグラフ内のノードを記述するために使用されるため、この2つのプロパティを組み合わせて使用する場合、typeプロパティはさらに重要になります。たとえば、typeプロパティが、解決済みの@contextリソース内に含まれておらず、そのリソースで[JSON-LD11]が使用される場合、検証可能なクレデンシャルの生成および利用時に、主張が破棄されたり、その完全性が保護されなくなったりする可能性があります。また、検証可能なクレデンシャルの生成または利用時にエラーが発生する可能性もあります。どちらになるかは実装の設計上の選択に依存し、現在の実装では両方の経路が使用されています。そのため、[JSON-LD11]表現の検証可能なクレデンシャルまたは検証可能な提示を使用する際には、これらのプロパティに注意することが重要です。
credentialSchemaプロパティの主な目的は、検証可能なクレデンシャルの構造と、そこに現れる各プロパティの値のデータ型を定義することです。credentialSchemaは、検証可能なクレデンシャル内にある主張の集合について、その内容と構造を定義するのに役立ちます。一方、[JSON-LD11]と@contextは、検証可能なクレデンシャル内では、データの意味論および用語定義を伝達するために使用するのが最適ですが、検証可能なクレデンシャルの構造を定義するためにも使用できます。
[JSON-LD11]の一部の機能を使用して、検証可能なクレデンシャルの内容を示唆することは可能ですが、一般に、データモデルのデータ型を制約するために@contextを使用することは推奨されません。たとえば、"@type": "@json"は、意味論に制約を設けず、厳密に定義しないままにする場合に役立ちます。実装者がクレデンシャル内の主張のデータ型を制約しようとしている場合、これは危険になり得るため、使用しないことが期待されます。
credentialSchemaプロパティと@contextプロパティを組み合わせて使用すると、生成者と利用者の双方が、検証可能なクレデンシャルおよび検証可能な提示に期待される内容とデータ型について、より高い確信を持つことができます。
このセクションは非規範的です。
このセクションは、審査、承認、およびIANAへの登録のため、インターネット技術運営グループ(IESG)へ提出されます。
この仕様では、application/vcメディアタイプを、検証可能なクレデンシャル形式に準拠する文書を識別するために明確に登録します。
| タイプ名: | application |
| サブタイプ名: | vc |
| 必須パラメータ: | なし |
| 符号化に関する考慮事項: |
application/vcメディアタイプを使用するリソースは、application/ld+jsonメディアタイプのすべての要件に準拠する必要があるため、JavaScript Object
Notation(JSON)データ交換形式のセクション11で定められているものと同じ符号化上の考慮事項が適用されます。
|
| セキュリティに関する考慮事項: | 検証可能なクレデンシャル・データモデル v2.0で定義されています。 |
| 連絡先: | W3C検証可能なクレデンシャル・ワーキンググループ public-vc-wg@w3.org |
検証可能なクレデンシャル形式はJSON-LDの規則を使用しますが、検証可能なクレデンシャルの実装には、専用のメディアタイプを使用する根拠となる複数の制約と追加要件があることに注意してください。
このメディアタイプは、エンベロープ証明内で、エンベロープ化されたペイロードを示すために使用できます。
クレデンシャルは、有効なJSON-LD文書であることが期待されます。
検証可能なクレデンシャルをapplication/vcメディアタイプで提供する場合、外部コンテキストへの参照を含む、すべてのJSON-LD
1.1コンテキスト情報を文書の本文内に持つことが期待されます。http://www.w3.org/ns/json-ld#context HTTP
Linkヘッダーを介してリンクされたコンテキスト(セクション6.1、JSON-LD
1.1を参照)は無視されます。
この仕様では、application/vpメディアタイプを、検証可能な提示形式に準拠する文書を識別するために明確に登録します。
| タイプ名: | application |
| サブタイプ名: | vp |
| 必須パラメータ: | なし |
| 符号化に関する考慮事項: |
application/vpメディアタイプを使用するリソースは、application/ld+jsonメディアタイプのすべての要件に準拠する必要があるため、JavaScript Object
Notation(JSON)データ交換形式のセクション11で定められているものと同じ符号化上の考慮事項が適用されます。
|
| セキュリティに関する考慮事項: | 検証可能なクレデンシャル・データモデル v2.0で定義されています。 |
| 連絡先: | W3C検証可能なクレデンシャル・ワーキンググループ public-vc-wg@w3.org |
検証可能な提示形式はJSON-LDの規則を使用しますが、 検証可能な提示の実装には、専用のメディアタイプを使用する根拠となる複数の制約と追加要件があることに注意してください。
このメディアタイプは、エンベロープ証明内で、エンベロープ化されたペイロードを示すために使用できます。
提示は、有効なJSON-LD文書であることが期待されます。検証可能な提示をapplication/vpメディアタイプで提供する場合、外部コンテキストへの参照を含む、すべてのJSON-LD
1.1コンテキスト情報を文書の本文内に持つことが期待されます。http://www.w3.org/ns/json-ld#context HTTP
Linkヘッダーを介してリンクされたコンテキスト(セクション6.1、[JSON-LD11]を参照)は無視されます。
このセクションは非規範的です。
以下の図
14は、図
9の変形です。この検証可能な提示は、2つの検証可能なクレデンシャルを参照し、埋め込み証明([VC-DATA-INTEGRITY]に基づくもの)を使用します。各検証可能なクレデンシャルグラフは、それぞれ独自の証明グラフに個別に接続されています。verifiableCredentialプロパティは、検証可能な提示を検証可能なクレデンシャルグラフへ接続するために使用されます。提示の
証明グラフは、検証可能な提示グラフ、両方の検証可能なクレデンシャルグラフ、および証明グラフ(検証可能なクレデンシャルグラフからリンクされたもの)のデジタル署名を表します。この場合、完全な
検証可能な提示は、6つの情報
グラフで構成されます。
以下の図
15は、検証可能な提示について、図
14と同じものを示しますが、エンベロープ証明([VC-JOSE-COSE]に基づくもの)を使用しています。各検証可能なクレデンシャルグラフには、単一の
EnvelopedVerifiableCredential
インスタンスが含まれ、data: URL[RFC2397]を介して、エンベロープ証明によって保護された検証可能なクレデンシャルを参照します。
このセクションには、この仕様にこれまで加えられた実質的な変更を記載します。
次の v2.0第2候補勧告以降の変更:
次の v2.0第1候補勧告以降の変更:
@vocabを削除し、アプリケーション固有のコンテキストファイルでの使用に関する警告を追加。
application/vcおよびapplication/vpのメディアタイプを確定。
次の v1.1勧告以降の変更:
proofに関する記述を削除。
issuerプロパティで許容される値を微調整。
nameおよびdescriptionプロパティへの対応を追加。
dateTimeStampが使用されるようにした。時刻値とタイムゾーンの適切な使用について、さらに指針を提供。
validFromを任意に変更。
relatedResource機能を追加。
renderMethodとconfidenceMethodを追加。
termsOfUseを追加。
application/vcおよびapplication/vpのメディアタイプを追加。
issuanceDate/expirationDateを
validFrom/validUntilに改名。
credentialSubjectの値を文字列にできないことを明確化。
次の v1.0勧告以降の変更:
idプロパティ(credentialStatusおよび
refreshServiceセクション)で許容するよう要件を緩和。
issuer、issuanceDate、credentialStatus、日付、無効なリンク、および軽微な構文エラーに関するいくつかの例の編集上の不具合を修正。
このセクションは非規範的です。
ワーキンググループは、この文書の内容への貢献だけでなく、多様な意見があふれる中で 変化、議論、および合意形成を推進した、この標準化コミュニティにおける多大な尽力に対し、 次の方々に感謝します:David Chadwick、Dave Longley、Ted Thibodeau Jr.、 Brent Zundel、Ivan Herman、Joe Andrieu、およびGabe Cohen。
この仕様に関する作業は、Christopher Allen、Shannon Appelcline、Kiara Robles、 Brian Weller、Betty Dhamers、Kaliya Young、Manu Sporny、Drummond Reed、Joe Andrieu、Heather Vescent、Kim Hamilton Duffy、Samantha Chase、Andrew Hughes、 Will Abramson、Erica Connell、Eric Schuh、Zaïda Rivai、およびShigeya Suzukiが運営に携わる Rebooting the Web of Trustコミュニティから支援を受けました。 Phil Windley、Kaliya Young、Doc Searls、およびHeidi Nobantu Saulが運営に携わる Internet Identity Workshopの参加者も、この仕様について学び、議論し、改善するために設けられた 数多くの作業セッションを通じて、本作業の洗練を支援しました。
ワーキンググループはまた、ワーキンググループ共同議長のDan Burnett、Matt Stone、 Brent Zundel、Wayne Chang、およびKristina Yasuda、ならびにW3Cスタッフ連絡担当の Kazuyuki AshimuraとIvan Hermanに対し、複数回のW3C 標準化サイクルを通じて専門的な運営と一貫した指導を行ったことに感謝します。 さらに、この仕様に組み込まれた数多くの作業項目のインキュベーションを監督した、 W3C Credentials Community Groupの共同議長、 Christopher Allen、Joe Andrieu、Kim Hamilton Duffy、Heather Vescent、Wayne Chang、Mike Prorock、 Harrison Tang、Kimberly Wilson Linson、およびWill Abramsonにも感謝します。
この仕様に関する作業の一部は、契約HSHQDC-17-C-00019、70RSAT20T00000010/P00001、 70RSAT20T00000029、70RSAT21T00000016/P00001、70RSAT23T00000005、 70RSAT23C00000030、70RSAT23R00000006、70RSAT24T00000014、 70RSAT22T00000001に基づく米国国土安全保障省科学技術局、およびNSF 22-572に基づく 米国国立科学財団から資金提供を受けました。この仕様の内容は、必ずしも米国政府の立場または 方針を反映するものではなく、政府による公式な承認を示唆するものでもありません。
ワーキンググループは、仕様をレビューしフィードバックを提供した次の方々に感謝します (名、または氏名が提供されていない場合はGitHubハンドルのアルファベット順):
Abhishek Mahadevan Raju, Adam C. Migus, Addison Phillips, Adrian Gropper, Aisp-GitHub, Alen Horvat, Alexander Mühle, AlexAndrei98, Allen Brown, Amy Guy, Andor Kesselman, Andres Paglayan, Andres Uribe, Andrew Hughes, Andrew Jones, Andrew Whitehead, Andy Miller, Anil John, Anthony Camilleri, Anthony Nadalin, Benjamin Collins, Benjamin Goering, Benjamin Young, Bert Van Nuffelen, Bohdan Andriyiv, Brent Zundel, Brian Richter, Bruno Zimmermann, caribouW3, cdr, Chaoxinhu, Charles "Chaals" McCathieNevile, Charles E. Lehner, Chris Abernethy, Chris Buchanan, Christian Lundkvist, Christine Lemmer-Webber, Christoph Lange, Christopher Allen, Christopher Lemmer Webber, ckennedy422, Clare Nelson, confiks, Dan Brickley, Daniel Buchner, Daniel Burnett, Daniel Hardman, Darrell O'Donnell, Dave Longley, David Ammouial, David Chadwick, David Ezell, David Hyland-Wood, David I. Lehn, David Janes, David Waite, Denis Ah-Kang, Denisthemalice, Devin Rousso, Dmitri Zagidulin, Dominique Hazael-Massieux, Drummond Reed, Emmanuel, enuoCM, Eric Elliott, Eric Korb, Eric Prud'hommeaux, etaleo, Evstifeev Roman, Fabricio Gregorio, Filip Kolarik, Gabe Cohen, Ganesh Annan, George Aristy, glauserr, Golda Velez, Grace Huang, Grant Noble, Greg Bernstein, Gregg Kellogg, Heather Vescent, Henry Andrews, Henry Story, Ian B. Jacobs, Ilan, Isaac Henderson, isaackps, Iso5786, Ivan Herman, Jace Hensley, Jack Tanner, James Schoening, Janina Sajka, Jan Forster Cognizone, Jeff Burdges, Jeffrey Yasskin, Jim Masloski, Jim St.Clair, Joe Andrieu, Joel Gustafson, Joel Thorstensson, John Tibbetts, Jonathan Holt, José San Juan, Juan Caballero, Julien Fraichot, Justin Richer, Kaan Uzdoğan, Kaliya Young, Kazuyuki Ashimura, Ken Ebert, Kendall Weihe, Kerri Lemoie, Kevin Dean, Kevin Griffin, Kim Hamilton Duffy, Konstantin Tsabolov, Kristijan Sedlak, Kristina Yasuda, Kyle Den Hartog, Lal Chandran, Lance, Lautaro Dragan, Leonard Rosenthol, Liam Missin, Liam Quin, Line Kofoed, Lionel Wolberger, Logan Porter, Lovesh Harchandani, Lukas J. Han, Mahmoud Alkhraishi, Maik Riechert, Manu Sporny, Marcel Jackisch, Mark Foster, Mark Harrison, Mark Moir, Markus Sabadello, Martin Thomson, Marty Reed, Matt Peterson, Matt Stone, Matthew Peterson, Matthieu Bosquet, Matti Taimela, Melvin Carvalho, Michael B. Jones, Michael Herman, Michael Lodder, Michael Richardson, Mike Prorock, Mike Varley, Mircea Nistor, MIZUKI Sonoko / Igarashi, nage, Nate Otto, Nathan George, Niclas Mietz, Niko Lockenvitz, Nikos Fotiou, Nis Jespersen, Oliver Terbu, Pat McBennett, Patrick St-Louis, Paul Bastian, Paul F. Dietrich, Paulo Jorge Q. Ferreira, Pelle Braendgaard, Pete Rowley, Phil Archer, Phillip Long, Pierre-Antoine Champin, Rajesh Rathnam, Ralph Swick, Renato Iannella, Reto Gmür, Reza Soltani, Richard Bergquist, Richard Ishida, Richard Varn, Rieks Joosten, RorschachRev, Ryan Grant, Samuel Müller, Samuel Smith, Sarven Capadisli, Sebastian Crane, Sebastian Elfors, Shawn Butterfield, Shigeya Suzuki, Sho Nakatani, Shuji Kamitsuna, Snorre Lothar von Gohren Edwin, Sten Reijers, Stephen Curran, Steve Huguenin, Steve McCown, Steven Rowat, Taro, tcibm, Ted Thibodeau Jr., Tim Bouma, Timo Glastra, Tobias Käfer, Tobias Looker, Tom Jones, Torsten Lodderstedt, Tzviya Siegman, Victor Dods, Vincent Kelleher, Vladimir Alexiev, Víctor Herraiz Posada, Wayne Chang, whatisthejava, Will Abramson, William Entriken、および Yancy Ribbens.
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: