検証可能なクレデンシャル・データモデル v2.0

W3C勧告

この文書の詳細
このバージョン:
https://www.w3.org/TR/2025/REC-vc-data-model-2.0-20250515/
最新公開バージョン:
https://www.w3.org/TR/vc-data-model-2.0/
最新の編集者草案:
https://w3c.github.io/vc-data-model/
履歴:
https://www.w3.org/standards/history/vc-data-model-2.0/
コミット履歴
実装報告書:
https://w3c.github.io/vc-data-model-2.0-test-suite/
編集者:
Manu Sporny (Digital Bazaar) (v1.0, v1.1, v2.0)
Ted Thibodeau Jr (OpenLink Software) (v2.0)
Ivan Herman (W3C) (v2.0)
Gabe Cohen (Block) (v2.0)
Michael B. Jones (招待専門家) (v2.0)
以前の編集者:
Grant Noble (ConsenSys) (v1.0)
Dave Longley (Digital Bazaar) (v1.0)
Daniel C. Burnett (ConsenSys) (v1.0)
Brent Zundel (Evernym) (v1.0)
Kyle Den Hartog (MATTR) (v1.1)
著者:
Manu Sporny (Digital Bazaar) (v1.0, v1.1, v2.0)
Dave Longley (Digital Bazaar) (v1.0, v1.1, v2.0)
David Chadwick (招待専門家) (v1.0, v1.1, v2.0)
Ivan Herman (W3C) (v2.0)
フィードバック:
GitHub w3c/vc-data-model (プルリクエスト, 新しい課題, 未解決の課題)
正誤表:
正誤表があります

関連項目: 翻訳


概要

検証可能なクレデンシャルとは、運転免許証や教育証明書など、 主張の集合を表現するための特定の方法であり、 発行者によって作成されます。この 仕様では、検証可能なクレデンシャルの拡張可能なデータモデル、 それらを改ざんから保護する方法、および 発行者保有者、 および検証者で構成される、これらのクレデンシャル交換のための三者エコシステムについて説明します。この文書では、この仕様で説明されている技術を使用するエコシステムに関する、セキュリティ、プライバシー、 国際化、アクセシビリティ上のさまざまな考慮事項も扱います。

この文書のステータス

このセクションでは、この 文書が公開された時点でのステータスについて説明します。現在のW3C 公開物の一覧と、この技術報告書の最新版は、 W3C標準および草案 索引 https://www.w3.org/TR/ にあります。

この仕様に関するコメントはいつでも歓迎します。 問題は GitHubに直接提出してください。 それができない場合は、 public-vc-comments@w3.org へ送信してください。 (購読アーカイブ)。

この文書は、Verifiable Credentials Working Groupによって、 勧告トラックを使用する 勧告として公開されました。

W3Cは、この仕様を Webの標準として広く導入することを推奨します。

W3C勧告とは、広範な合意形成の後に W3Cおよびその会員によって承認され、 実装に対する ロイヤリティフリー・ライセンス についてWorking Groupメンバーからの確約を得ている仕様です。

この文書は、 W3C 特許 ポリシーの下で活動する グループによって作成されました。 W3Cは、 そのグループの成果物に関連して行われた すべての特許開示の公開リスト を管理しており、そのページには 特許を開示するための手順も含まれています。ある個人が、 必須クレーム を含むとその個人が考える特許について実際の知識を有する場合、 その情報を W3C特許ポリシー第6節に従って開示しなければなりません。

この文書は、 2023年11月3日版W3Cプロセス文書によって管理されます。

1. 序論

このセクションは非規範的です。

クレデンシャルは、私たちの日常生活に不可欠です。運転免許証は 自動車を運転する能力を確認し、大学の学位は教育水準を 主張し、政府発行のパスポートは国境を越えて 移動する際に市民権を証明します。この仕様は、これらの種類の クレデンシャルをWeb上で表現するための仕組みを提供します。その方法は、 暗号学的に安全で、プライバシーを尊重し、機械で検証可能です。これらの クレデンシャルは物理世界で使用される場合に私たちに利益をもたらしますが、 Web上での利用は依然として実現が困難です。

現在、教育資格、医療データ、金融口座の詳細、およびその他の第三者によって検証された 個人情報を、Web上で機械可読な方法で表現することは困難です。 Web上でデジタルクレデンシャルを表現するという課題は、 物理的なクレデンシャルが現実世界で提供するのと 同じ利益を受け取る私たちの能力を妨げています。

検証可能なクレデンシャルに関連する概念に不慣れな読者のために、 以下のセクションでは次の概要を提供します。

この仕様に反映されたユースケースと要件は、 Verifiable Credentials Use Cases [VC-USE-CASES] にあります。

1.1 検証可能な クレデンシャルとは何か?

このセクションは非規範的です。

物理世界では、クレデンシャルは次のようなもので構成されることがあります。

検証可能なクレデンシャルは、 物理的なクレデンシャルが表すのと同じ情報をすべて表すことができます。 デジタル署名などの技術を追加することで、検証可能なクレデンシャルを 物理的な対応物よりも改ざんが明らかで信頼できるものにできます。

保有者は、検証可能なクレデンシャルから 検証可能なプレゼンテーションを生成し、その後これらの 検証可能なプレゼンテーション検証者と共有して、 特定の特性を持つ検証可能なクレデンシャルを保有していることを証明できます。

検証可能なクレデンシャル検証可能なプレゼンテーションはいずれも 迅速に送信できるため、遠隔地で信頼を確立する際に、 物理的な対応物よりも便利です。

この仕様は、デジタルクレデンシャルを表現する容易さの向上を試みる一方で、 この目標と複数のプライバシー保護目標とのバランスを取ることも目指しています。 デジタル情報の永続性、および異なるデジタルデータ源を収集して相関させることの容易さは、 検証可能で容易に 機械可読なクレデンシャルの利用によって悪化するおそれのある プライバシー上の懸念を構成します。この文書は、セクション 8. プライバシー上の考慮事項で、これらの問題のいくつかを概説し、 対処を試みます。ゼロ知識証明などのプライバシー強化技術を使用して このデータモデルを利用する例も、この文書全体で提供されます。

検証可能なクレデンシャルおよび 検証可能なプレゼンテーションという用語における 「検証可能」とは、クレデンシャル またはプレゼンテーションが、この文書で定義されるように、検証者によって検証され得るという特性を指します。 クレデンシャルの検証可能性は、その中に符号化された主張の真実性を意味するものではありません。 そうではなく、検証可能なクレデンシャルまたは 検証可能なプレゼンテーションの真正性と現行性を確立した後、 検証者は、含まれる主張に依拠する前に、 自身のビジネス規則を用いてそれらを妥当性確認します。このような依拠は、 発行者、証明、主体、および主張を、1つ以上の検証者ポリシーに照らして 評価した後にのみ発生します。

1.2 エコシステムの概要

このセクションは非規範的です。

このセクションでは、検証可能なクレデンシャルが 有用であると期待されるエコシステムにおける、中核的なアクターの役割と それらの関係について説明します。役割は、多くの異なる方法で実装され得る 抽象化です。役割の分離は、標準化に適したインターフェイスや プロトコルを示唆します。この仕様では、次の役割を導入します。

保有者
エンティティが、1つ以上の検証可能なクレデンシャルを保有し、それらから検証可能なプレゼンテーションを生成することによって 担う可能性のある役割です。保有者は多くの場合、常にではありませんが、 保有している検証可能なクレデンシャル主体です。 保有者は自分のクレデンシャルクレデンシャル・リポジトリに保存します。 保有者の例には、学生、従業員、顧客が含まれます。
発行者
エンティティが、1つ以上の 主体について主張を行い、これらの主張から検証可能なクレデンシャルを作成し、 その検証可能なクレデンシャル保有者へ送信することによって 担うことのできる役割です。たとえば、発行者には 企業、非営利組織、業界団体、政府、個人が含まれます。
主体
主張が行われる対象となるものです。主体の例には、人間、 動物、物が含まれます。
検証者
エンティティが、処理のために1つ以上の検証可能なクレデンシャルを、任意で検証可能なプレゼンテーションの中に含めて受け取ることによって担う役割です。 検証者の例には、雇用主、警備担当者、Webサイトが含まれます。
検証可能データ・レジストリ
システムが、識別子、検証材料、およびその他の関連データの作成と検証を仲介することによって 担う可能性のある役割です。その他の関連データには、 検証可能なクレデンシャルのスキーマ、失効 レジストリなどがあり、それらは 検証可能なクレデンシャルの使用を 必要とする場合があります。一部の構成では、 主体の相関可能な識別子が必要になる場合があります。 UUIDや検証材料のためのものなど、一部のレジストリは、 識別子の名前空間として機能するだけの場合があります。 検証可能データ・レジストリの例には、信頼されたデータベース、 分散型データベース、政府IDデータベース、分散台帳が含まれます。多くの場合、 1つのエコシステムでは複数の種類の検証可能データ・レジストリが使用されます。
発行者から保有者へ
               クレデンシャルが流れ、保有者から検証者へ
               プレゼンテーションが流れ、三者すべてが論理的な
               検証可能データ・レジストリの情報を利用できる
               ことを示す図
1 この仕様の基礎を形成する役割と情報の流れ。
注記: 他の種類のエコシステムも存在する

上記の1は、この仕様の残りの概念の土台とするための 例示的なエコシステムを提供します。保護された環境や専有システムなど、 検証可能なクレデンシャルが利益をもたらす 他のエコシステムも存在します。

このエコシステムは、典型的な二者間モデルや連合アイデンティティ・ プロバイダー・モデルとは対照的です。アイデンティティ・プロバイダーは、 IdPと略されることもあり、保有者のアイデンティティ情報を作成、維持、管理しつつ、 連合または分散ネットワーク内の依拠当事者 アプリケーションに認証サービスを提供するシステムです。連合 アイデンティティ・モデルでは、保有者はアイデンティティ・プロバイダーに強く結び付けられます。 この仕様では、これらの概念を他の仕様と比較または対応付ける場合を除き、 「アイデンティティ・プロバイダー」、「連合アイデンティティ」、または 「依拠当事者」という用語の使用を避けます。この仕様は、 アイデンティティ・プロバイダーの概念を、発行者保有者という2つの別個の概念に分離します。

注記: 主体が常に保有者であるとは限らない

多くの場合、検証可能なクレデンシャル保有者はその主体ですが、 一部の場合はそうではありません。たとえば、親(保有者)が 子ども(主体)の検証可能なクレデンシャルを保有する場合や、 ペットの飼い主( 保有者)がそのペット( 主体)の検証可能なクレデンシャルを保有する場合があります。 これらの例外的な場合の詳細については、 Verifiable Credentials Implementation Guidelines 1.0 主体と保有者の関係セクションを参照してください。

検証可能なクレデンシャルのエコシステムの より深い検討と具体的なライフサイクル例については、Verifiable Credentials Overview [VC-OVERVIEW]を参照してください。

1.3 適合性

非規範的として示されたセクションに加えて、この仕様に含まれるすべての作成ガイドライン、図、例、および注記は 非規範的です。この仕様におけるそれ以外のすべては規範的です。

この文書におけるキーワードMAYMUSTMUST NOTOPTIONALRECOMMENDEDREQUIREDSHOULD、およびSHOULD NOTは、 ここに示すようにすべて大文字で出現する場合に限り、 BCP 14 [RFC2119] [RFC8174] で説明されているとおりに解釈されます。

適合文書とは、 この仕様における関連するすべての「MUST」文に準拠する、 コンパクト化されたJSON-LD 文書です。具体的には、この文書のセクション4. 基本概念5. 高度な 概念、および 6. 構文における関連する規範的な「MUST」文が強制されなければなりません。 適合文書は、メディア型application/vcを持つ検証可能なクレデンシャル またはメディア型application/vpを持つ検証可能なプレゼンテーション のいずれかでなければなりません。適合文書は、セクション 4.12 保護メカニズムで説明される、少なくとも1つの保護メカニズムによって 保護されていなければなりません。

適合する発行者実装は、 適合文書を生成し、それが生成する 適合文書にすべての必須プロパティを含めなければならず、 かつ、それが生成する適合文書を、セクション 4.12 保護メカニズムで説明される保護メカニズムを使用して 保護しなければなりません。

適合する検証者実装は、 適合文書を消費し、 セクション 4.12 保護メカニズムで説明されるように、 適合文書に対して検証を実行しなければならず、 各必須プロパティがそのプロパティに対する規範的要件を満たすことを確認しなければならず、 非適合文書が検出された場合にはエラーを生成しなければなりません。

この仕様には、必須プロパティと任意プロパティの両方が含まれています。任意 プロパティは、適合する発行者実装および 適合する検証者実装によって 無視されてもかまいません。

この文書には、インラインコメント(//)や、例にほとんど価値を追加しない 情報を示すための省略記号(...)の使用など、 JSONとして無効な文字を含む例も含まれています。 実装者は、その情報を有効な文書として使用したい場合には、 この内容を削除するよう注意してください。

注記: 英語の人間可読テキストは説明用である

この文書全体で提供される例には、各仕様例の概念を単純化するために、 namedescriptionなどの記述的プロパティが英語の値で 含まれています。これらの例は、必ずしも国際的な利用に必要な データ構造を反映しているわけではありません。詳細については、 セクション11. 国際化上の考慮事項で説明されています。

2. 用語

以下の用語は、この仕様における概念を説明するために使用されます。

主張
主体について行われる断定。
クレデンシャル
発行者によって行われる、1つ以上の主張の集合。クレデンシャル内の主張は、 異なる主体に関するものである場合があります。この仕様で使用される クレデンシャルの定義は、 NISTによる credentialの定義とは異なります。
分散型識別子
DIDとしても知られる、URLベースの可搬な識別子であり、 エンティティに関連付けられます。これらの識別子は多くの場合、 検証可能なクレデンシャルで使用され、主体に関連付けられます。そのため、 検証可能なクレデンシャルを、クレデンシャル・リポジトリから別のリポジトリへ、 クレデンシャルを再発行することなく容易に移動できます。 DIDの例はdid:example:123456abcdefです。詳細については、 Decentralized Identifiers (DIDs) v1.0仕様を参照してください。
デフォルト・グラフ
名前付きグラフの一部として明示されていない、すべての主張を含むグラフ
エンティティ
文の中で抽象名詞または具体名詞として参照できるあらゆるもの。 エンティティには、人、組織、物理的な物、文書、抽象概念、 架空の人物、任意のテキストが含まれますが、これらに限定されません。任意の エンティティは、それが可能であれば、エコシステム内で役割を担うことがあります。なお、 一部のエンティティは本質的に行動できません。たとえば、文字列「abc」は クレデンシャルを発行できません。
グラフ
主体と、他の主体またはデータとの関係から構成される 情報ネットワークを形成する、主張の集合。各主張は グラフの一部です。名前付きグラフの場合は明示的であり、 デフォルト・グラフの場合は暗黙的です。
保有者
エンティティが、1つ以上の 検証可能なクレデンシャルを保有し、それらから検証可能なプレゼンテーションを 生成することによって担う可能性のある役割。保有者は多くの場合、常にではありませんが、 保有している検証可能なクレデンシャル主体です。保有者は、自分の クレデンシャルクレデンシャル・リポジトリに保存します。
発行者
エンティティが、1つ以上の主体について主張を行い、これらの 主張から検証可能なクレデンシャルを作成し、その検証可能なクレデンシャル保有者へ送信することによって担うことのできる役割。
名前付きグラフ
verifiableCredentialなどの特定のプロパティに関連付けられたグラフ。これらのプロパティは、 対応するJSONオブジェクトで定義されたすべての主張を含む 別個のグラフを生じさせます。
プレゼンテーション
1つ以上の発行者によって発行された、1つ以上の検証可能なクレデンシャルから導出され、 特定の検証者と共有されるデータ。
クレデンシャル・ リポジトリ
ファイルシステム、保管庫、個人用検証可能なクレデンシャルウォレットなどのソフトウェアであり、 保有者検証可能なクレデンシャルを保存し、それらへのアクセスを保護します。
選択的開示
保有者が、どの情報を共有するかについて きめ細かい判断を行う能力。
リンク不能な開示
選択的開示の一種であり、プレゼンテーション検証者間で相関できないもの。
主体
主張が行われる対象となるもの。
妥当性確認
特定の発行者からの主張が、特定の用途について検証者のビジネス要件を満たすという保証。この仕様は、 検証者が検証可能なクレデンシャルおよび検証可能なプレゼンテーションをどのように検証するかを定義します。また、 検証者は、それらに依拠する前に 検証可能なクレデンシャル内の主張を妥当性確認することも規定します。 ただし、そのような 妥当性確認の手段は大きく異なり、この仕様の範囲外です。 検証者は、特定の主張について特定の発行者を信頼し、 どのクレデンシャル内のどの主張が 自分たちのシステムでの利用に適しているかを判断するために、 独自の規則を適用します。
検証可能なクレデンシャル
作成者を暗号学的に検証できる、改ざんが明らかなクレデンシャル。検証可能なクレデンシャルは、 検証可能なプレゼンテーションを構築するために使用でき、 それらも暗号学的に検証可能である場合があります。
検証可能データ・レジストリ
システムが、識別子、検証材料、およびその他の 関連データの作成と検証を仲介することによって 担う可能性のある役割です。その他の関連データには、 検証可能なクレデンシャルのスキーマ、失効レジストリ などがあり、それらは検証可能なクレデンシャルの使用を必要とする場合があります。一部の 構成では、主体の相関可能な識別子が必要になる場合があります。 UUIDや検証材料のためのものなど、一部の レジストリは、識別子の名前空間として機能する場合があります。
検証可能な プレゼンテーション
暗号学的な検証プロセスの後にデータの作成者を信頼できるような方法で 符号化された、改ざんが明らかな情報の提示。特定の種類の検証可能なプレゼンテーションには、 元の検証可能なクレデンシャルから合成されたものの、 それ自体は元の検証可能なクレデンシャルを含まないデータが含まれる場合があります (たとえば、ゼロ知識証明)。
検証
検証可能なクレデンシャルまたは検証可能なプレゼンテーションが、それぞれ 発行者または提示者の真正かつ最新の声明であるかを評価すること。 これには、クレデンシャルまたはプレゼンテーションが仕様に適合していること、 保護メカニズムが満たされていること、および存在する場合には ステータス検査が成功することを確認することが含まれます。クレデンシャルの検証は、 クレデンシャルに符号化された主張の真実性を評価することを意味しません。
検証者
エンティティが、処理のために、任意で 検証可能なプレゼンテーションの中に含めて、 1つ以上の検証可能なクレデンシャルを受け取ることによって担う役割。他の 仕様では、この概念を依拠当事者と呼ぶ場合があります。
検証材料
暗号学的に保護された情報のセキュリティを検証するために使用される情報。 たとえば、暗号学的公開鍵は、検証可能なクレデンシャルに関連付けられた デジタル署名を検証するために使用されます。
URL
URL Standardで定義されるUniform Resource Locator。 URLは参照解決され、文書などのリソースを結果として得ることができます。 URLを参照解決、または取得するための規則は、URLのschemeによって定義されます。 この仕様ではURIまたはIRIという用語を使用しません。これらの用語は Web開発者にとって混乱を招くと見なされているためです。

3. コア・データモデル

このセクションは非規範的です。

以下のセクションでは、主張クレデンシャルプレゼンテーション検証可能なクレデンシャル、および 検証可能なプレゼンテーションなど、この 仕様の基礎を形成するコア・データモデルの概念を概説します。

注記: クレデンシャルと検証可能なクレデンシャルの違い

読者は、このセクションで説明される概念の一部、たとえば クレデンシャルプレゼンテーションには、 この仕様で定義されたメディア型がないことに気づくかもしれません。しかし、 検証可能なクレデンシャルまたは 検証可能なプレゼンテーションの概念は、適合文書として定義され、 関連するメディア型を持ちます。これらの概念の具体的な違い — クレデンシャルおよびプレゼンテーションと、 検証可能なクレデンシャルおよび検証可能なプレゼンテーションとの違い — は、 単に「検証可能」なオブジェクトが暗号学的な方法で保護されており、 他方はそうではないという事実です。詳細については、セクション 4.12 保護メカニズムを参照してください。

3.1 主張

このセクションは非規範的です。

主張とは、主体についての文です。主体とは、 主張を行う対象となり得るものです。主張は、 主体- プロパティ-の関係を使用して表現されます。

主体がプロパティを持ち、その
            プロパティが値を持つ
2 主張の基本構造。

上の2に示す主張のデータモデルは強力であり、非常に多様な文を表現するために使用できます。たとえば、 ある人が特定の大学を卒業したかどうかは、 下の3に示すように表現できます。

PatがalumniOf
            プロパティを持ち、その値がExample Universityである
3 Patが「Example University」の卒業生であることを表す基本的な主張。

個々の主張は結合され、主体に関する情報のグラフを表現できます。下の 4に示す例では、前の主張を拡張し、 PatがSamを知っていること、およびSamが教授として雇用されていることを示す主張を追加しています。

前の図を拡張し、
            knowsという別のプロパティを追加して、その値を
            Samとし、SamがjobTitleプロパティを持ち、その値がProfessorであることを示す
4 複数の主張を組み合わせて情報のグラフを表現できる。

ここまでで、主張と情報のグラフという概念を導入しました。 主張を信頼できるようにするには、 より多くの情報がグラフに追加されることが期待されます。

3.2 クレデンシャル

このセクションは非規範的です。

クレデンシャルとは、同じエンティティによって行われる、1つ以上の主張の集合です。 クレデンシャルには、発行者、有効な日時 および期間、代表画像、検証材料、ステータス 情報など、クレデンシャルのプロパティを説明する識別子やメタデータも 含まれる場合があります。 検証可能なクレデンシャルとは、だれが発行したかを暗号学的に証明する、 改ざんが明らかな主張とメタデータの集合です。検証可能なクレデンシャルの例には、 デジタル従業員識別カード、デジタル運転免許証、デジタル教育証明書などが含まれますが、 これらに限定されません。

検証可能な
               クレデンシャルには、クレデンシャル・メタデータ、主張、および
               証明が含まれる
5 検証可能なクレデンシャルの基本構成要素。

上の5は、 検証可能なクレデンシャルの基本構成要素を示していますが、 主張が情報グラフにどのように編成され、 さらにそれらが検証可能なクレデンシャルに どのように編成されるかについての詳細は抽象化しています。

下の6は、 Verifiable Credential Data Integrity 1.0に基づく埋め込み証明を使用した 検証可能なクレデンシャルの、より完全な描写を示しています。 これは少なくとも2つの情報グラフで構成されます。 これらの情報グラフの最初のもの、すなわち検証可能なクレデンシャル・グラフデフォルト・グラフ)は、クレデンシャル・メタデータおよびその他の主張を通じて、検証可能なクレデンシャルそのものを表現します。proofプロパティによって参照される 2つ目の情報グラフは、検証可能なクレデンシャル証明グラフであり、別個の 名前付きグラフです。証明グラフは デジタル証明を表現し、この場合はデジタル署名です。 複数の情報グラフが必要な理由に関心のある読者は、セクション 5.12 検証可能なクレデンシャル・グラフを参照できます。

上部に「検証可能なクレデンシャル・グラフ」の
主張の集合があり、proofプロパティ(または述語)を介して下部の
「検証可能なクレデンシャル証明グラフ」に接続されている図。検証可能なクレデンシャルの主張には、
主体として「Credential 123」があり、4つのプロパティを持つ。すなわち、値ExampleAlumniCredentialの「type」、
Example Universityの「issuer」、2010-01-01T19:23:24Zの「validFrom」、および
Patを値とするcredentialSubjectであり、Patもまた値Example UniversityのalumniOfプロパティを持つ。
検証可能なクレデンシャル証明グラフには、主体「Signature 456」オブジェクトがあり、
5つのプロパティを持つ。すなわち、DataIntegrityProofの「type」、
Example University Public Key 7の「verificationMethod」、2017-06-18T21:19:10Zの「created」、
34dj239dsj328の「nonce」、および
'zBavE110…3JT2pq'の「proofValue」。検証可能なクレデンシャル・グラフには
括弧書きで「(デフォルト・グラフ)」という注記も付けられ、検証可能なクレデンシャル証明
グラフには括弧書きで「(名前付きグラフ)」という注記が付けられている。
6 Verifiable Credential Data Integrity 1.0 [VC-DATA-INTEGRITY]に基づく 埋め込み証明を使用した、 基本的な検証可能なクレデンシャルに関連付けられた情報グラフ。

下の7は、6と同じ検証可能なクレデンシャルを示していますが、 JOSE [VC-JOSE-COSE]を使用して保護されています。 ペイロードには、クレデンシャル・メタデータおよびその他の主張を含む検証可能なクレデンシャル・グラフである、 単一の情報グラフが含まれます。

左側に
「SD-JWT(デコード済み)」とラベル付けされたボックスがあり、
「Header」、「Payload」、「Signature」という3つのテキストラベルが縦に積まれている図。
「Header」ラベルは矢印で右側の別の矩形に接続されており、その矩形には
6つのテキストフィールド「kid: aB8J-_Z」、「alg: ES384」、
「cty: vc」、「iss: https://example.com」、「iat: 1704690029」、および「typ:
vc+sd-jwt」が含まれる。左側の「Payload」ラベルは
矢印で別の矩形に接続され、その中には単一のグラフが含まれる。その
矩形には「verifiable credential graph(JSONで直列化)」というラベルがある。
グラフ内の主張には、主体として「Credential 123」があり、4つのプロパティを持つ。
すなわち、値「ExampleAlumniCredential」の「type」、
値「Example University」の「issuer」、値
「2010-01-01T19:23:24Z」の「validFrom」、および
値「Pat」の「credentialSubject」であり、Patもまた値「Example University」の
「alumniOf」プロパティを持つ。最後に、左側の「Signature」ラベルは
矢印で別の矩形に接続され、その中には単一のテキストフィールド
「DtEhU3ljbEg8L38VWAfUA...」が含まれる。
7 Securing Verifiable Credentials using JOSE and COSE [VC-JOSE-COSE]に基づく 包み込み証明を使用した、 基本的な検証可能なクレデンシャルに関連付けられた情報グラフ。

3.3 プレゼンテーション

このセクションは非規範的です。

プライバシーの強化は、この仕様の重要な設計上の特徴です。したがって、この 技術を使用するエンティティにとって、与えられた状況に適した 自分のペルソナの部分だけを表現することが重要です。自分のペルソナの一部を 表現することを検証可能なプレゼンテーションと呼びます。 異なるペルソナの例には、個人の職業上のペルソナ、 オンラインゲームのペルソナ、家族内のペルソナ、または匿名のペルソナがあります。

検証可能なプレゼンテーションは、保有者によって作成され、 複数の検証可能なクレデンシャルからのデータを表現でき、 任意の追加データを含めることができます。それらは、主張検証者に提示するために使用されます。検証可能なクレデンシャルを 直接提示することも可能です。

プレゼンテーション内のデータは、多くの場合、同じ主体に関するものですが、 複数の発行者によって発行されている場合があります。この情報の集約は、 人、組織、またはエンティティの一側面を表現します。

検証可能な
            プレゼンテーションには、プレゼンテーション・メタデータ、検証可能な
            クレデンシャル、および証明が含まれる
8 検証可能なプレゼンテーションの基本構成要素。

上の8は、 検証可能なプレゼンテーションの構成要素を示していますが、 検証可能なクレデンシャルが情報 グラフにどのように編成され、 さらにそれらが検証可能なプレゼンテーションに どのように編成されるかについての詳細は抽象化しています。

下の9は、 Verifiable Credential Data Integrity 1.0に基づく埋め込み証明を使用した 検証可能なプレゼンテーションの、より完全な描写を示しています。 これは少なくとも4つの情報グラフで構成されます。 これらの情報グラフの最初のもの、すなわち検証可能なプレゼンテーション・グラフデフォルト・グラフ)は、プレゼンテーション・メタデータを通じて 検証可能なプレゼンテーションそのものを表現します。 検証可能なプレゼンテーションは、 verifiableCredentialプロパティを介して、 検証可能なクレデンシャルを参照します。 このクレデンシャルは、クレデンシャル・メタデータおよびその他の主張を含む、自己完結した検証可能なクレデンシャル・グラフです。このクレデンシャルは、 proofプロパティを介して検証可能なクレデンシャル証明グラフを参照し、 クレデンシャルの 証明(通常はデジタル署名)を表現します。この検証可能なクレデンシャル・グラフと、それにリンクされた証明グラフは、 それぞれ2つ目と3つ目の情報グラフを構成し、それぞれが別個の 名前付きグラフです。プレゼンテーションも、 proofプロパティを介して、プレゼンテーション証明グラフを参照します。これは 4つ目の情報グラフ(別の名前付きグラフ)です。この プレゼンテーション証明グラフは、 検証可能なプレゼンテーション・グラフ検証可能なクレデンシャル・グラフ、および 検証可能なクレデンシャル・グラフからリンクされた証明グラフの デジタル署名を表します。

上部に
「検証可能なプレゼンテーション・グラフ」があり、「proof」を介して下部の
「検証可能なプレゼンテーション証明グラフ」に接続されている図。検証可能な
プレゼンテーション・グラフには、3つのプロパティを持つオブジェクト「Presentation ABC」がある。
すなわち、値VerifiablePresentationの「type」、
値「Do Not Archive」の「termsOfUse」。このグラフには
括弧書きで「(デフォルト・グラフ)」という注記が付けられている。この
グラフは、「verifiableCredential」を介して、図6と同一の部分に
接続されている。ただし、検証可能なクレデンシャル・グラフは
デフォルト・グラフではなく名前付きグラフであると注記されている。
検証可能なプレゼンテーション証明グラフには、5つのプロパティを持つ
「Signature 8910」というオブジェクトがある。すなわち、値「DataIntegrityProof」の「type」、
値「Example Presenter Public Key 11」の「verificationMethod」、
値「2018-01-15T12:43:56Z」の「created」、値「d28348djsj3239」の「nonce」、
および値「zp2KaZ...8Fj3K=」の「proofValue」。
このグラフには括弧書きで「(名前付きグラフ)」という注記が付けられている
9 Verifiable Credential Data Integrity 1.0に基づく埋め込み証明を使用する、 基本的な検証可能なプレゼンテーションに関連付けられた情報グラフ

下の10は、9と同じ検証可能なプレゼンテーションを示していますが、 [VC-JOSE-COSE]に基づく包み込み 証明を使用しています。ペイロードには2つの情報 グラフだけが含まれます。すなわち、プレゼンテーション・メタデータを通じて検証可能なプレゼンテーションを表現する検証可能なプレゼンテーション・ グラフと、 verifiableCredential プロパティによって参照される、対応する 検証可能なクレデンシャル・グラフです。検証可能なクレデンシャル・グラフには、 data: URL [RFC2397]を介して、 7に示される包み込み証明で保護された 検証可能なクレデンシャルを参照する、単一の EnvelopedVerifiableCredential インスタンスが含まれます。

左側に
「JWT(デコード済み)」とラベル付けされたボックスがあり、
「Header」、「Payload」、「Signature」という3つのテキストラベルが縦に積まれている図。
「Header」ラベルは矢印で右側の別の矩形に接続され、その矩形には
6つのテキストフィールド「kid: aB8J-_Z」、「alg: ES384」、
「cty: vc」、「iss: https://example.com」、「iat: 1704690029」、および「typ:
vp+sd-jwt」が含まれる。左側の「Payload」ラベルは
矢印で別の矩形に接続され、その矩形は「verifiableCredential」とラベル付けされた
矢印で接続された2つの関連するグラフ(縦に積まれている)から構成される。
2つのグラフには、それぞれ「verifiable
presentation graph(JSONで直列化)」および「verifiable credential
graph(JSONで直列化)」というラベルがある。矩形内の上のグラフには、
3つのプロパティを持つオブジェクト「Presentation ABC」がある。すなわち、値
VerifiablePresentationの「type」、値「Do Not
Archive」の「termsOfUse」。下のグラフには、
単一のプロパティを持つ主体「data:application/vc+sd-jwt,QzVjV...RMjU」が含まれる。
すなわち、値`EnvelopedVerifiableCredential`の「type」。
最後に、左側の「Signature」ラベルは矢印で
別の矩形に接続され、その中には単一のテキストフィールド
「XaOOh4ljklxH7L99RTVSfOl...」が含まれる。
10 Securing Verifiable Credentials using JOSE and COSEに基づく包み込み証明を使用している、 基本的な検証可能なプレゼンテーションに関連付けられた情報グラフ。 data: URLは、 7に示される検証可能なクレデンシャルを 参照します。
注記: プレゼンテーションは複数の検証可能なクレデンシャルを含むことができる

大学のクレデンシャルの集合など、異なる主体に関する複数のクレデンシャルを利用するプレゼンテーションを持つことは可能です。 それらの主体は多くの場合、関連していますが、関連していることは必須ではありません。これは、 verifiableCredentialプロパティを使用して複数の検証可能なクレデンシャルを参照することで実現されます。 詳細については、付録D. 検証可能なプレゼンテーションの追加図を参照してください。

注記: プレゼンテーションは発行者や検証者によって提示されることができる

セクション1.2 エコシステムの概要で説明されているように、 エンティティは、特定のクレデンシャル交換に入るときに、 1つ以上の役割を担うことができます。 保有者は通常、プレゼンテーションを生成することが期待されますが、 発行者または検証者が、 自身を保有者に識別させるために プレゼンテーションを生成する場合があります。これは、検証可能なプレゼンテーションの一部として 機微な情報を渡す前に、保有者発行者または検証者から より高い保証を必要とする場合に発生することがあります。

4. 基本概念

このセクションでは、文書の後半にあるセクション5. 高度な概念に備えて、 この仕様のいくつかの基本概念を導入します。

4.1 はじめに

このセクションは非規範的です。

この仕様は、新しい種類の 検証可能なクレデンシャルのプロトタイプ作成を容易にするように設計されています。開発者は下の テンプレートをコピーし、それを一般的な検証可能なクレデンシャルツールに貼り付けて、 プロトタイプ・クレデンシャルの発行、保有、および 検証を開始できます。

開発者は、下のMyPrototypeCredentialを、作成したいクレデンシャルの型に 変更します。検証可能なクレデンシャルは主体について語るため、 credentialSubjectオブジェクト内の各プロパティと値のペアは、 クレデンシャル主体の特定のプロパティを表します。開発者がこれらの プロパティと値の組み合わせをいくつか追加したら、変更後のオブジェクトを 適合する発行者実装に送信でき、開発者向けに検証可能なクレデンシャルが 作成されます。プロトタイプ作成の観点からは、開発者が行う必要があるのは それだけです。

1: プロトタイプの検証可能な クレデンシャルを作成するためのテンプレート
{
  "@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 拡張性で扱われます。あるいは、 開発者は、自分たちのユースケースに適合する既存の語彙ファイルおよび コンテキスト・ファイルを再利用できます。再利用可能なリソースについては、 Verifiable Credential Extensions を調べることができます。

4.2 検証可能なクレデンシャル

検証可能なクレデンシャルは、1つ以上の 主体のプロパティ、およびクレデンシャル自体のプロパティを表現するために使用されます。この仕様では、 検証可能なクレデンシャルについて次の プロパティを定義します。

@context
セクション4.3 コンテキストで定義されます。
id
セクション4.4 識別子で定義されます。
type
セクション4.5 で定義されます。
name
セクション4.6 名前と説明で定義されます。
description
セクション4.6 名前と説明で定義されます。
issuer
セクション4.7 発行者で定義されます。
credentialSubject
セクション4.8 クレデンシャル主体で定義されます。
validFrom
セクション4.9 有効期間で定義されます。
validUntil
セクション4.9 有効期間で定義されます。
status
セクション4.10 ステータスで定義されます。
credentialSchema
セクション4.11 データ・スキーマで定義されます。
refreshService
セクション5.4 更新で定義されます。
termsOfUse
セクション5.5 利用条件で定義されます。
evidence
セクション5.6 証拠で定義されます。

検証可能なクレデンシャルは、セクション5.2 拡張性で定義される拡張メカニズムによって、 追加のプロパティを持つように拡張できます。

4.3 コンテキスト

2つのソフトウェア・システムがデータを交換する必要がある場合、 両方のシステムが理解する用語を使用する必要があります。2人の人間が同じ言語を使い、 そこで使用される「name」や「website」などの単語が 各人にとって同じ意味を持つことによって、効果的に意思疎通する様子を考えてください。これは、 会話のコンテキストと呼ばれることがあります。この仕様では、 通信するためのコンテキストを確立することで、ソフトウェア・システムに対して 同様の結果を達成するために、類似の概念を使用します。

検証可能なクレデンシャルおよび検証可能なプレゼンテーションを処理するソフトウェア・システムは、 各用語にURLを使用することで用語を識別します。しかし、 それらのURLは長く、人間にとってあまり扱いやすくない場合がある一方で、 短く人間に分かりやすい別名のほうが役立つことがあります。この仕様では、 @contextプロパティを使用して、短い形式の別名をURLに対応付けます。

検証可能なクレデンシャルおよび検証可能なプレゼンテーションは、 @contextプロパティを含めなければなりません(MUST)。アプリケーション開発者は、自分のアプリケーションで使用されるすべてのJSON-LD コンテキストを、少なくともそのアプリケーションが使用する用語の意味に 影響を与える範囲では理解しなければなりません(MUST)。 そのための1つのメカニズムは、 Verifiable Credential Data Integrity 1.0仕様の コンテキストの妥当性確認に関するセクションで 説明されています。この仕様を基礎とする他の仕様は、JSON-LDコンテキストが セクション 5.3 関連リソースの完全性で説明される relatedResource機能、または実質的に同等のメカニズムを使用して 完全性保護されることを要求してもかまいません(MAY)。

@context
@contextプロパティの値は、 最初の項目が値 https://www.w3.org/ns/credentials/v2を持つURLである 順序付き集合 でなければなりません(MUST)。 順序付き集合内の後続の項目は、 URLおよびオブジェクトの任意の組み合わせで構成されなければならず(MUST)、 それぞれが JSON-LD Contextとして処理可能でなければなりません。
2: @contextプロパティの使用
{
  "@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"
    }
  }
}

上の例では、基底コンテキストのURLhttps://www.w3.org/ns/credentials/v2)を使用して、データ交換が 検証可能なクレデンシャルに関するものであることを確立しています。この概念は、 セクション5.2 拡張性でさらに詳述されます。 https://www.w3.org/ns/credentials/v2で利用可能なデータは、永続的にキャッシュ可能な静的 文書であり、その処理手順は付録 B.1 基底コンテキストで提供されます。Verifiable Credentials Data Modelに対応する 人間可読な語彙文書は、 https://www.w3.org/2018/credentials/で利用できます。

2番目のURLhttps://www.w3.org/ns/credentials/examples/v2)は、 例を示すために使用されます。実装では、 パイロット・システムや本番システムなど、その他の目的で このURLを使用しないことが期待されます。

注記: @contextの詳細についてはJSON-LDを参照してください。

@contextプロパティは、 JSON-LD 1.1仕様の セクション3.1: コンテキストで さらに詳述されています。

4.4 識別子

人、製品、組織など、特定のものについて文を表現する場合、 そのものにグローバルに一意な識別子を使用することが有用な場合があります。 グローバルに一意な識別子により、他者が同じものについて文を表現できます。 この仕様では、そのような識別子のために任意のid プロパティを定義します。idプロパティは、 検証可能なクレデンシャル内の特定のものについて文を表現できるようにし、 検証可能なクレデンシャル内でオブジェクトを表現する場合は発行者によって設定され、 検証可能なプレゼンテーション内でオブジェクトを表現する場合は保有者によって設定されます。idプロパティは、その識別子によって識別される 特定のものについて文を表現する際に、他者が使用することが期待される 識別子を表します。id値の例には、 UUID(urn:uuid:0c07c1ce-57cb-41af-bef2-1b932b986873)、HTTP URL (https://id.example/things#123)、およびDID(did:example:1234abcd)が含まれます。

注記: どの種類の識別子も相関可能性を高める

開発者には、仮名性が必要な場合、識別子が有害になり得ることを 念頭に置くよう促します。このようなシナリオを検討する際、開発者には セクション8.4 識別子に基づく相関を注意深く読むことが推奨されます。 プライバシー上の懸念を生じさせる、他の種類のアクセスおよび相関メカニズムも、 セクション8. プライバシー上の考慮事項に記載されています。 プライバシーが重要な考慮事項である場合、 idプロパティを省略することは許容されます。一部のユースケースでは idプロパティを必要としない、または明示的に省略する必要があります。同様に、 公開で解決可能なURLと他の形式の識別子のどちらを選択するかについても、 特別な注意を払う必要があります。公開で解決可能なURLは、 検証と相互運用性を容易にする一方で、慎重に使用しなければ、 潜在的に機微な情報へのアクセスを意図せず許可してしまう可能性もあります。

id
idプロパティは任意です(OPTIONAL)。存在する場合、 idプロパティの値は、 単一のURLでなければならず(MUST)、参照解決可能であってもかまいません(MAY)。 id内のURLは、参照解決可能である場合、 idに関する機械可読情報を含む文書を結果として得るものにすることが 推奨されます(RECOMMENDED)。
3: idプロパティの使用
{
  "@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
{
  "@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": "2025-04-27T17:58:33Z",
    "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ",
    "cryptosuite": "ecdsa-rdfc-2019",
    "proofPurpose": "assertionMethod",
    "proofValue": "z5WHRyhjLd2H5RFcSqW3bss39zFBvVrVuXUovBpbGX2ATL8vSxwoeoiZFb1eibsdjRQK5GS1nr76RZRKBj7iH9roE"
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "created": "2025-04-27T17:58:33Z",
    "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv",
    "cryptosuite": "ecdsa-sd-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0AhVhAfojGD02jMuCezr87Ra8dvWa9ruscwcjDo2jYpvNEzxQthrKO3csDTuvk2A278uD7Cot6fgfm4YXddQ3eKnF91VgjgCQCpvhiT83vvn-T-PFVSUfoo51-s11TfQ39hmlIC61wy2hYINWUMbNH3sN80JcCKn-4fcaBDpSGT7KgsL07bUWUlHrJhVhAG4V_V2OV_xGWDfKU1CH_D53kF5Hy8RBi4S0551TkpUKvouKF5s5a-b1qDh2iNK1RXQyF6vdhbt4Kjo0RfnSYplhAvBoxWd2Xmpe8ERCoO3qs3el64rEmsYuPOgMyQTacrl2tuFLs3ui23JdtCnOSxmcRzVC27r4HIpubjSug4NE261hAcb7bwdJUpxP6Bqp7hiD8O_nFIMxLdzErfU522ZVy4CqLOiEERGMT2jFlgDcxlpkk5ZrMJOl9QfQSLPtjolWIy1hAbOzFKnJtBhSu3lfzmSftTWl1-FLtWu3Lt7ePxpGPbMjr6DVfS3sZL8E6M4uETdce15BsDkThGi_1ZjJ7YG9GLFhADav02TPSZdSV73AqOyZ6ryfuz3Y7pKKuu67dnqNzzXS-H-8-39I1rA759bba_lkqeo8F0lPtT_3liNamnCd-CoFnL2lzc3Vlcg"
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD",
    "cryptosuite": "bbs-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0ChVhQkkdBby2GbmvVh66cM6TNzNfh0hR9ePeG7dWYbHfDxK6CcA_rVoxxsRGIoWX5Gs6ZGgQNPTBeehiEHT_cj-5fjZ6ArTluARHPbaXQzWyXKrVYQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArS1r7HKFDPyyrvPGqNF8bjgNELvoomOjpbD9JEvaGI1pYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFgg1LgUmXHTRjMrLAeoNgJipw-F81uEwauN0JK-WcohpmWBZy9pc3N1ZXI"
  }
}
保護ヘッダー
{
  "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
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vdW5pdmVyc2l0eS5leGFtcGxlL2NyZWRlbnRpYWxzLzM3MzIiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiRXhhbXBsZURlZ3JlZUNyZWRlbnRpYWwiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy81NjUwNDkiLCJ2YWxpZEZyb20iOiIyMDEwLTAxLTAxVDAwOjAwOjAwWiIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImlkIjoiZGlkOmV4YW1wbGU6ZWJmZWIxZjcxMmViYzZmMWMyNzZlMTJlYzIxIiwiZGVncmVlIjp7InR5cGUiOiJFeGFtcGxlQmFjaGVsb3JEZWdyZWUiLCJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyJ9fX0 .YEsG9at9Hnt_j-UykCrnl494fcYMTjzpgvlK0KzzjvfmZmSg-sNVJqMZWizYhWv_eRUvAoZohvSJWeagwj_Ajw
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+cose
d28443a10128a05901be7b2240636f6e74657874223a5b2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f7632222c2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f6578616d706c65732f7632225d2c226964223a22687474703a2f2f756e69766572736974792e6578616d706c652f63726564656e7469616c732f33373332222c2274797065223a5b2256657269666961626c6543726564656e7469616c222c224578616d706c6544656772656543726564656e7469616c225d2c22697373756572223a2268747470733a2f2f756e69766572736974792e6578616d706c652f697373756572732f353635303439222c2276616c696446726f6d223a22323031302d30312d30315430303a30303a30305a222c2263726564656e7469616c5375626a656374223a7b226964223a226469643a6578616d706c653a656266656231663731326562633666316332373665313265633231222c22646567726565223a7b2274797065223a224578616d706c6542616368656c6f72446567726565222c226e616d65223a2242616368656c6f72206f6620536369656e636520616e642041727473227d7d7d584013d7bfd4a7f3c0296d67f24157e4ba5a5fedafc688c5e01bd72f23e1d419d558ec05cddf9ac477fdc9fc7a8b1325dc80968a1bbc95d2c601753693290cbff553
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJpYXQiOjE3NDU3NzY3MTMsImV4cCI6MTc0Njk4NjMxMywiX3NkX2FsZyI6InNoYS0yNTYiLCJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy81NjUwNDkiLCJ2YWxpZEZyb20iOiIyMDEwLTAxLTAxVDAwOjAwOjAwWiIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImRlZ3JlZSI6eyJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyIsIl9zZCI6WyJhbDRaR3cxellsZU1BMTA2SXpiLVhlc0pBbldDZ1NpNW5QbjFKRVYxamo4Il19LCJfc2QiOlsiOC1vWU9FU1JrNjBpbVozblgzY2E5RGxIeXFJcTk4RnQzX19HMUFsYU90MCJdfSwiX3NkIjpbIk9EUGNVWENXbGQtSGlxQ1h5NEhuY1Mxb3hqaURpRE9wMTJ4YlVveEZvU2MiLCJVaGtGbUw3cXc0UVlLWDJjVDNMWFAwcDZ5VHc1UmlIRG5xWGxfMFZLZnhBIl19 .YASiTse77TXvt7jYyChZOd6x0TbbBeEVZ14pekiOWw6G6N40a3evbWFBAkuPcStVFZPshFy1GFECySRVAhcD5A ~WyIzQkdhQ3BfaTZIV0hEMm5GekZ2blN3IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd~WyJld1p0bUpDZHA2VWFWcEVhTXZ0V0FRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d~WyJIdThleHpqLTBySDg0aEtwenhnS0VnIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd~WyJVczR2ekVuVWJuSU96OC1VVDd2OHN3IiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0~
{
  "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
  "alg": "ES256"
}
{
  "iat": 1745776713,
  "exp": 1746986313,
  "_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": [
        "al4ZGw1zYleMA106Izb-XesJAnWCgSi5nPn1JEV1jj8"
      ]
    },
    "_sd": [
      "8-oYOESRk60imZ3nX3ca9DlHyqIq98Ft3__G1AlaOt0"
    ]
  },
  "_sd": [
    "ODPcUXCWld-HiqCXy4HncS1oxjiDiDOp12xbUoxFoSc",
    "UhkFmL7qw4QYKX2cT3LXP0p6yTw5RiHDnqXl_0VKfxA"
  ]
}

主張: id

SHA-256ハッシュ: ODPcUXCWld-HiqCXy4HncS1oxjiDiDOp12xbUoxFoSc

開示: WyIzQkdhQ3BfaTZIV0hEMm5GekZ2blN3IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd

内容: [
  "3BGaCp_i6HWHD2nFzFvnSw",
  "id",
  "http://university.example/credentials/3732"
]

主張: type

SHA-256ハッシュ: UhkFmL7qw4QYKX2cT3LXP0p6yTw5RiHDnqXl_0VKfxA

開示: WyJld1p0bUpDZHA2VWFWcEVhTXZ0V0FRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d

内容: [
  "ewZtmJCdp6UaVpEaMvtWAQ",
  "type",
  [
    "VerifiableCredential",
    "ExampleDegreeCredential"
  ]
]

主張: id

SHA-256ハッシュ: 8-oYOESRk60imZ3nX3ca9DlHyqIq98Ft3__G1AlaOt0

開示: WyJIdThleHpqLTBySDg0aEtwenhnS0VnIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd

内容: [
  "Hu8exzj-0rH84hKpzxgKEg",
  "id",
  "did:example:ebfeb1f712ebc6f1c276e12ec21"
]

主張: type

SHA-256ハッシュ: al4ZGw1zYleMA106Izb-XesJAnWCgSi5nPn1JEV1jj8

開示: WyJVczR2ekVuVWJuSU96OC1VVDd2OHN3IiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0

内容: [
  "Us4vzEnUbnIOz8-UT7v8sw",
  "type",
  "ExampleBachelorDegree"
]

上の例では2種類の識別子を使用しています。最初の識別子は 検証可能なクレデンシャル用であり、HTTPベースのURLを使用しています。2番目の 識別子は、検証可能なクレデンシャル主体主張の対象となるもの)用であり、 分散型識別子、 すなわちDIDを使用しています。

注記: 分散型識別子は任意である

DIDは識別子の一種であり、 検証可能なクレデンシャルが有用であるために 必要なものではありません。具体的には、検証可能なクレデンシャルDIDに依存せず、DID検証可能なクレデンシャルに依存しません。 しかし、多くの検証可能なクレデンシャルDIDを使用し、この仕様を実装するソフトウェア ライブラリはDIDを解決する必要があります。 DIDベースのURLは、 主体発行者保有者、クレデンシャル・ステータス・リスト、暗号鍵、 および検証可能なクレデンシャルに関連付けられるその他の機械可読情報に関連する識別子を表現するために使用されます。

4.5

この文書で規定される種類のオブジェクトを処理するソフトウェア・システムは、 提供された 検証可能なクレデンシャルまたは検証可能なプレゼンテーションが 意図されたユースケースに適しているかどうかを判断するために、型情報を使用します。 この仕様では、オブジェクト型情報を表現するためのtype プロパティを定義します。この型情報は、付録 A. 妥当性確認で説明されるように、 妥当性確認プロセス中に使用できます。

検証可能なクレデンシャルおよび検証可能なプレゼンテーションは、 関連付けられた値を持つtypeプロパティを含まなければなりません(MUST)。

type
typeプロパティの値は、 1つ以上の 用語および 絶対URL文字列でなければなりません(MUST)。複数の値が 提供される場合、その順序は重要ではありません。
4: typeプロパティの使用
{
  "@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
{
  "@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": "2025-04-27T17:58:33Z",
    "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ",
    "cryptosuite": "ecdsa-rdfc-2019",
    "proofPurpose": "assertionMethod",
    "proofValue": "z2F16goBUjRsg2ieNiojpaz313CN98DU4APFiokAUkUvEYESSDmokg1omwvcK7EFqLgYpdyekEoxnVHwuxt8Webwa"
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "created": "2025-04-27T17:58:33Z",
    "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv",
    "cryptosuite": "ecdsa-sd-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0AhVhAIC9hFSOtM2k0lFFuKclfp_cYTO5YWhZIYaMEPMcz1jloqTS0Zkww-Lc1U6FP15vJBaIa5ICMknDv16H8r0eh8VgjgCQDJUVkvejrCod7srzLsvKZEVUqzPULOZlb5-cwYdz0K8NYIJNls-gfevdbPuoczDW5TuctpSXJ7V9anf9MrkmJYP7ehVhARNoIdk_H3oT_8HxLP5Fo38e9blzlzSBmFswtxQUPzERVBXcgCU9k6c8pJz_RmjL0Y1eaW50Gl_qs_olK0u7NKlhAD3n7fkV5E-YF4KlodM7PhHP8_kB9you9XtTDVif3tyYsfWewmRysEN0A-EdLZ0WRwSwyJGBaBgGPb5erVUT-ElhAmLyoxIvE3GPC9rTc8tpfNEmTvcwBlpDGMlYkKb52XQeQeQFQwzgCPhpJowOomdMfPUq_xsHih8NsnDN0LXJtVFhArdqKKbPA-tMtA0mMQn1vIZ6mVjeTeJTsdxwZze2EspERwrMcgS25V-fVtjdEXCmNKyL7giUGy4eixjRGYowzpFhADobyi3ucf61IGgBM8_Vy1b8JkaiISFoy_i8ZldQfiqIoG00zU4-jEFuLWvsW7FGfPo0jq-2ZZBvS5H4SjaETJIFnL2lzc3Vlcg"
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD",
    "cryptosuite": "bbs-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0ChVhQkkdBby2GbmvVh66cM6TNzNfh0hR9ePeG7dWYbHfDxK6CcA_rVoxxsRGIoWX5Gs6ZGgQNPTBeehiEHT_cj-5fjZ6ArTluARHPbaXQzWyXKrVYQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArS1r7HKFDPyyrvPGqNF8bjgNELvoomOjpbD9JEvaGI1pYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFgg_vwNGMCz741AWQhjph2NJJcybTTnmtmN1AZd15PefM6BZy9pc3N1ZXI"
  }
}
保護ヘッダー
{
  "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
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vdW5pdmVyc2l0eS5leGFtcGxlL2NyZWRlbnRpYWxzLzM3MzIiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiRXhhbXBsZURlZ3JlZUNyZWRlbnRpYWwiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy81NjUwNDkiLCJ2YWxpZEZyb20iOiIyMDEwLTAxLTAxVDAwOjAwOjAwWiIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImlkIjoiZGlkOmV4YW1wbGU6ZWJmZWIxZjcxMmViYzZmMWMyNzZlMTJlYzIxIiwiZGVncmVlIjp7InR5cGUiOiJFeGFtcGxlQmFjaGVsb3JEZWdyZWUiLCJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyJ9fX0 .yLIZkNIu3N3b2JNM69FVtAD9C5iaw7qMRc5TG6Yl8yWUu9ql9cO2sUBzNSSSz7MfqW_PMXxpbqplMKsuheroaA
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+cose
d28443a10128a05901be7b2240636f6e74657874223a5b2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f7632222c2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f6578616d706c65732f7632225d2c226964223a22687474703a2f2f756e69766572736974792e6578616d706c652f63726564656e7469616c732f33373332222c2274797065223a5b2256657269666961626c6543726564656e7469616c222c224578616d706c6544656772656543726564656e7469616c225d2c22697373756572223a2268747470733a2f2f756e69766572736974792e6578616d706c652f697373756572732f353635303439222c2276616c696446726f6d223a22323031302d30312d30315430303a30303a30305a222c2263726564656e7469616c5375626a656374223a7b226964223a226469643a6578616d706c653a656266656231663731326562633666316332373665313265633231222c22646567726565223a7b2274797065223a224578616d706c6542616368656c6f72446567726565222c226e616d65223a2242616368656c6f72206f6620536369656e636520616e642041727473227d7d7d58402c8dcd949c0418cf1b489b94632ccaea624331ad4881b15e5c3fddb34d86a5128f5442cd5603f3a0a8d8282ac7b13090c79249b048e3433e9eebfed1d0407adf
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJpYXQiOjE3NDU3NzY3MTMsImV4cCI6MTc0Njk4NjMxMywiX3NkX2FsZyI6InNoYS0yNTYiLCJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy81NjUwNDkiLCJ2YWxpZEZyb20iOiIyMDEwLTAxLTAxVDAwOjAwOjAwWiIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImRlZ3JlZSI6eyJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyIsIl9zZCI6WyJEUkg1aWVsZHdHNXJPMlVQNXlYYlBXWHNTaFFNSmxESlJfZlFVbmhZVDNFIl19LCJfc2QiOlsiUzRvTGpDb0dNckpuMnFFR2lXY1JNNmdFNGZ6cVVFcVIzNC1FOWdjZzIyWSJdfSwiX3NkIjpbIlZtWnFMMkpKUFB0RDk2TmxwNE43TzFRMXhFRmNMZ1hCVzVfQWFGQXp4Sm8iLCJaYTdxRkpZSnRSSExSOFNRT1VUYUxwaDZBY21QSGlYVkc5Ni03Wnp3MEtJIl19 .ypl46Q1EqUERV-IUUS_-qGoAESfv_WdXwtHOk2vX7QTZNFf0NNfg-w2OR8JPRe97kZBDQLuBZKPJhBXdFjbSwg ~WyIxeDVielRkZXhsLW4zWVVIQXF5ZUxBIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd~WyJablVReVZXRmo0UlFfTHFmOVBkbmN3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d~WyI5TG1nOHhaUVJxWEZZaVRlV0hRZjV3IiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd~WyJZMVBDaVA3YnJ3TjFHMEVMWmJXRlZRIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0~
{
  "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
  "alg": "ES256"
}
{
  "iat": 1745776713,
  "exp": 1746986313,
  "_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": [
        "DRH5ieldwG5rO2UP5yXbPWXsShQMJlDJR_fQUnhYT3E"
      ]
    },
    "_sd": [
      "S4oLjCoGMrJn2qEGiWcRM6gE4fzqUEqR34-E9gcg22Y"
    ]
  },
  "_sd": [
    "VmZqL2JJPPtD96Nlp4N7O1Q1xEFcLgXBW5_AaFAzxJo",
    "Za7qFJYJtRLLR8SQOUTaLph6AcmPHiXVG96-7Zzw0KI"
  ]
}

主張: id

SHA-256ハッシュ: VmZqL2JJPPtD96Nlp4N7O1Q1xEFcLgXBW5_AaFAzxJo

開示: WyIxeDVielRkZXhsLW4zWVVIQXF5ZUxBIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd

内容: [
  "1x5bzTdexl-n3YUHAqyeLA",
  "id",
  "http://university.example/credentials/3732"
]

主張: type

SHA-256ハッシュ: Za7qFJYJtRLLR8SQOUTaLph6AcmPHiXVG96-7Zzw0KI

開示: WyJablVReVZXRmo0UlFfTHFmOVBkbmN3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d

内容: [
  "ZnUQyVWFj4RQ_Lqf9Pdncw",
  "type",
  [
    "VerifiableCredential",
    "ExampleDegreeCredential"
  ]
]

主張: id

SHA-256ハッシュ: S4oLjCoGMrJn2qEGiWcRM6gE4fzqUEqR34-E9gcg22Y

開示: WyI5TG1nOHhaUVJxWEZZaVRlV0hRZjV3IiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd

内容: [
  "9Lmg8xZQRqXFYiTeWHQf5w",
  "id",
  "did:example:ebfeb1f712ebc6f1c276e12ec21"
]

主張: type

SHA-256ハッシュ: DRH5ieldwG5rO2UP5yXbPWXsShQMJlDJR_fQUnhYT3E

開示: WyJZMVBDaVA3YnJ3TjFHMEVMWmJXRlZRIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0

内容: [
  "Y1PCiP7brwN1G0ELZbWFVQ",
  "type",
  "ExampleBachelorDegree"
]

この仕様に関して、次の表は typeを指定しなければならない(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"
注記: Verifiable Credentials Data ModelはJSON-LDに基づいている

Verifiable Credentials Data Modelのシステムは、 JSON-LD 1.1のものと同じであり、 セクション3.5: 型の指定および セクション9: JSON-LD 文法で詳述されています。JSON-LDコンテキストを使用する場合(セクション 5.2 拡張性を参照)、この仕様では JSON-LD文書をより理解しやすくするために、 @typeキーワードをtypeの別名にします。 アプリケーション開発者および文書作成者はJSON-LD型システムの詳細を 理解する必要はありませんが、相互運用可能な拡張性をサポートしたい この仕様の実装者は理解する必要があります。

すべてのクレデンシャルプレゼンテーション、および カプセル化されたオブジェクトは、ソフトウェア・システムが この追加情報をより容易に検出して処理できるように、 追加の、より限定された(たとえば ExampleDegreeCredentialなど)を指定する、またはそれに関連付けられるべきです(SHOULD)。

この仕様で定義されるカプセル化されたオブジェクト、たとえば credentialSubjectオブジェクトに関連付けられたオブジェクト、またはその内部に深く入れ子にされた オブジェクトを処理する場合、ソフトウェア・システムは、階層内でより上位の カプセル化オブジェクトに指定された情報を使用するべきです(SHOULD)。 具体的には、クレデンシャルなどのカプセル化オブジェクトは、 関連付けられたオブジェクトのを伝えるべきであり(SHOULD)、 それによって検証者は、カプセル化オブジェクトのに基づいて、 関連付けられたオブジェクトの内容をすばやく判断できます。

たとえば、ExampleDegreeCredentialというtypeを持つ クレデンシャルオブジェクトは、 検証者に対して、 credentialSubjectプロパティに関連付けられたオブジェクトが、次の識別子を含むことを示します。

これにより、実装者は検証のために typeプロパティに関連付けられた値に依拠できます。オブジェクト型とそれに関連する値は、 少なくとも、その型のURLで見つけられる人間可読な仕様に 文書化されていることが期待されます。たとえば、 BitstringStatusList型の人間可読な定義は、 https://www.w3.org/ns/credentials/status/#BitstringStatusListで見つけられます。また、 同じURLでHTTPコンテンツ・ネゴシエーションを通じて 機械可読バージョンを提供することも提案されています。

注記: 新しいクレデンシャル型の作成については実装ガイドを参照してください

新しい種類の検証可能なクレデンシャルを作成する方法の説明は、 この仕様の範囲外です。関心のある読者には、 Verifiable Credentials Implementation Guidelines 1.0 新しいクレデンシャル型の作成セクションを読むことが推奨されます。

4.6 名前と説明

クレデンシャルを表示する際には、 発行者によって提供されるテキストがあると役立つ場合があります。そのテキストは、 クレデンシャルに名前と、その目的の短い説明を与えます。 nameおよびdescriptionプロパティは、 これらの目的を果たします。

name
クレデンシャルの名前を表す、任意のプロパティ。 存在する場合、nameプロパティの値は、 11.1 言語と基底方向で説明されるように、 文字列または 言語値オブジェクトでなければなりません(MUST)。理想的には、 クレデンシャルの名前は簡潔で、人間が読めるものであり、個人が 保有している可能性のある他のクレデンシャルから、 そのクレデンシャルをすばやく区別できるようにするものです。
description
クレデンシャルに関する具体的な詳細を伝える、任意のプロパティ。存在する場合、 descriptionプロパティの値は、 11.1 言語と基底方向で説明されるように、 文字列または言語値オブジェクトでなければなりません(MUST)。理想的には、 クレデンシャルの説明は数文以内の長さであり、 主張全体を確認しなくても、その クレデンシャルの内容を個人が思い出せるだけの十分な情報を伝えるものです。
5: nameおよびdescriptionプロパティの使用
{
  "@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
{
  "@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": "2025-04-27T17:58:33Z",
    "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ",
    "cryptosuite": "ecdsa-rdfc-2019",
    "proofPurpose": "assertionMethod",
    "proofValue": "z2LeuoNi3yR1b6c3fkRsEvXJ5ex8X4RdutyK7L6HAo2bJQwr21w85Y5KWy3DptXR8ke52Assqik6wKTy9DKqkEZ2r"
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "created": "2025-04-27T17:58:33Z",
    "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv",
    "cryptosuite": "ecdsa-sd-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0AhVhA5A-VvZ6RF2KlLjsYsx1DosYuzhbD7hn6N6gTF5yv22oTPKcqHyElGQn3TcerwktEbNrRiuWMvmfuw1XmwhCk-lgjgCQCHC44msX1XnfID2VfkUX1j1PHUzfjdORSePcGUhVB3KxYIBeo1lJt0Rp-So7_Ch6hiCE36oR-r6WyVaT6r-o0Nf1nh1hATMKDPXogkIVw6n-pqlDoJMti8cCVJvle_IWSAqv5vShtqt5E6NEJ3PTiK7NwSMSGMVE0XdJXZlEj3xck6UL0vlhAa7ltjeSjPD1TD52OkPPjuQrhADwoTsDXERr-UCuNICq-uxKiFsxebXjys1SeHIFzT0TQA5TlTl-J55vFL90q-lhAi8EKNrgQiKdl_EAlgv3aS15FLuIpUmfROB6srPRpHI4cz-kC8xlarcp9XMqHIpL5hncUJd2EoGTmMpm3nzs3PVhAr4sC2Lin-35yxMSvWXrq7cEGw4IomJnayfWsxmXencGOmXQzZxJbsUHmLCAprm51apFj19BZED6G-82Ilx0ZvlhADRiBGvSKeF3hYkihvS7kkZDnySRU4Q4yfNm_Hwe6kysHhtP5rnbu3LYfU-hI_0P6FbZJrPQ7uifIMg2QMHxARFhAxjQMayCxmcOVGlo5ICU5zQxx6qTgjgpNl1GC1dGjnA1J3xhFALceL5DHxJbSvcRsRVwRjBybMkZurUWhPgzpwVhAhbwrQWJSLLhyXqFcQef_-eKnNE3F5oBq2phORFJ16m3uRU-R-vSoXJlSpyLBZrNGU7gwCHVv0b_e2ZC13MiFR4FnL2lzc3Vlcg"
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD",
    "cryptosuite": "bbs-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0ChVhQkS0mcHTu9KLuuY8_DlU_2lj8Su_EXxWyY0xMPZuCGQMRzah3DFaerG-CRDFWR1KBWkYUpPizkPDULYOU8XsXoC3a8_00GgHfKuoiNCLnSNBYQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArXFDE8ZX70eeJX1DawHuw0sW9CBV3sa68IaRGcnZiiQpYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFggbCn9jbv1yUPTocre_YTgvXiebb8lJMqxhmAnw4MiFbWBZy9pc3N1ZXI"
  }
}
保護ヘッダー
{
  "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
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vdW5pdmVyc2l0eS5leGFtcGxlL2NyZWRlbnRpYWxzLzM3MzIiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiRXhhbXBsZURlZ3JlZUNyZWRlbnRpYWwiXSwiaXNzdWVyIjp7ImlkIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy81NjUwNDkiLCJuYW1lIjoiRXhhbXBsZSBVbml2ZXJzaXR5IiwiZGVzY3JpcHRpb24iOiJBIHB1YmxpYyB1bml2ZXJzaXR5IGZvY3VzaW5nIG9uIHRlYWNoaW5nIGV4YW1wbGVzLiJ9LCJ2YWxpZEZyb20iOiIyMDE1LTA1LTEwVDEyOjMwOjAwWiIsIm5hbWUiOiJFeGFtcGxlIFVuaXZlcnNpdHkgRGVncmVlIiwiZGVzY3JpcHRpb24iOiIyMDE1IEJhY2hlbG9yIG9mIFNjaWVuY2UgYW5kIEFydHMgRGVncmVlIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6ZXhhbXBsZTplYmZlYjFmNzEyZWJjNmYxYzI3NmUxMmVjMjEiLCJkZWdyZWUiOnsidHlwZSI6IkV4YW1wbGVCYWNoZWxvckRlZ3JlZSIsIm5hbWUiOiJCYWNoZWxvciBvZiBTY2llbmNlIGFuZCBBcnRzIn19fQ .x5OQX2cmaXVU-UxScJ1KlOgR9nwpLvFO4s-fWuHvb58DDEb-xVxS8hqPIpLiNK0F3eedtoHeJ2gJ2RHVnGVSNQ
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+cose
d28443a10128a05902807b2240636f6e74657874223a5b2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f7632222c2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f6578616d706c65732f7632225d2c226964223a22687474703a2f2f756e69766572736974792e6578616d706c652f63726564656e7469616c732f33373332222c2274797065223a5b2256657269666961626c6543726564656e7469616c222c224578616d706c6544656772656543726564656e7469616c225d2c22697373756572223a7b226964223a2268747470733a2f2f756e69766572736974792e6578616d706c652f697373756572732f353635303439222c226e616d65223a224578616d706c6520556e6976657273697479222c226465736372697074696f6e223a2241207075626c696320756e697665727369747920666f637573696e67206f6e207465616368696e67206578616d706c65732e227d2c2276616c696446726f6d223a22323031352d30352d31305431323a33303a30305a222c226e616d65223a224578616d706c6520556e697665727369747920446567726565222c226465736372697074696f6e223a22323031352042616368656c6f72206f6620536369656e636520616e64204172747320446567726565222c2263726564656e7469616c5375626a656374223a7b226964223a226469643a6578616d706c653a656266656231663731326562633666316332373665313265633231222c22646567726565223a7b2274797065223a224578616d706c6542616368656c6f72446567726565222c226e616d65223a2242616368656c6f72206f6620536369656e636520616e642041727473227d7d7d5840e49e36b7cb7a12d81900a6ba0bdd26084dcb33baaf759a3a7b3eacff8af566291f6ae573ba6707b231de6f70372e4b8da88e9be12b0f7dd168d5b6f0f0044770
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJpYXQiOjE3NDU3NzY3MTMsImV4cCI6MTc0Njk4NjMxMywiX3NkX2FsZyI6InNoYS0yNTYiLCJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaXNzdWVyIjp7Im5hbWUiOiJFeGFtcGxlIFVuaXZlcnNpdHkiLCJkZXNjcmlwdGlvbiI6IkEgcHVibGljIHVuaXZlcnNpdHkgZm9jdXNpbmcgb24gdGVhY2hpbmcgZXhhbXBsZXMuIiwiX3NkIjpbIjN5U2k5WkUtdWp0RDQ4NDRacGY4V2NMY3EwQWlyajVqbFJmLTNSQVJPcmsiXX0sInZhbGlkRnJvbSI6IjIwMTUtMDUtMTBUMTI6MzA6MDBaIiwibmFtZSI6IkV4YW1wbGUgVW5pdmVyc2l0eSBEZWdyZWUiLCJkZXNjcmlwdGlvbiI6IjIwMTUgQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyBEZWdyZWUiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJkZWdyZWUiOnsibmFtZSI6IkJhY2hlbG9yIG9mIFNjaWVuY2UgYW5kIEFydHMiLCJfc2QiOlsiZnRIMUtTRTVzNmZKd1cyMWY2STBlUmNtYW9SX2s5YTVBS2lTMnFidFVTNCJdfSwiX3NkIjpbIkNJaDBOYWN4ME5IWUJ5QTFoZ1NlWDdoMXF0amNvUGRIODR1NTN0a2t6R3ciXX0sIl9zZCI6WyI2UFk1X1dKU1pUaWszdG9rOHg0eEF0TWstOGpqWnpzZnV6dXhUX2JvY0wwIiwiVE9XWGhJS1dPeHBZbHgtUmtoal9kVTh3Sml2cmRuOUNrbm9fcXVvNng4YyJdfQ .FzX3Ke7i888rlwj2XY-Xmd73hKH4oGaIp68z2xqPS1Bv17BKSaKQwfxgf22iNAguzVvlIQVXjRqpg0G-S46xDA ~WyI5MGlaMEp1a2lCUlpoa0pnajhyRDN3IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd~WyJpbU94UllGWWVSM2VHWGdJOTUxcHVnIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d~WyJlemF5RzgwVG1hRVhhSjRwNHlpY2xnIiwgImlkIiwgImh0dHBzOi8vdW5pdmVyc2l0eS5leGFtcGxlL2lzc3VlcnMvNTY1MDQ5Il0~WyJXT1lvak0yb2dad3pXQjJOa3FELWNBIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd~WyJuUG1kWEk5YWtEakd4Mk0wRTVhWUtBIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0~
{
  "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
  "alg": "ES256"
}
{
  "iat": 1745776713,
  "exp": 1746986313,
  "_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": [
      "3ySi9ZE-ujtD4844Zpf8WcLcq0Airj5jlRf-3RAROrk"
    ]
  },
  "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": [
        "ftH1KSE5s6fJwW21f6I0eRcmaoR_k9a5AKiS2qbtUS4"
      ]
    },
    "_sd": [
      "CIh0Nacx0NHYByA1hgSeX7h1qtjcoPdH84u53tkkzGw"
    ]
  },
  "_sd": [
    "6PY5_WJSZTik3tok8x4xAtMk-8jjZzsfuzuxT_bocL0",
    "TOWXhIKWOxpYlx-Rkhj_dU8wJivrdn9Ckno_quo6x8c"
  ]
}

主張: id

SHA-256ハッシュ: TOWXhIKWOxpYlx-Rkhj_dU8wJivrdn9Ckno_quo6x8c

開示: WyI5MGlaMEp1a2lCUlpoa0pnajhyRDN3IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd

内容: [
  "90iZ0JukiBRZhkJgj8rD3w",
  "id",
  "http://university.example/credentials/3732"
]

主張: type

SHA-256ハッシュ: 6PY5_WJSZTik3tok8x4xAtMk-8jjZzsfuzuxT_bocL0

開示: WyJpbU94UllGWWVSM2VHWGdJOTUxcHVnIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d

内容: [
  "imOxRYFYeR3eGXgI951pug",
  "type",
  [
    "VerifiableCredential",
    "ExampleDegreeCredential"
  ]
]

主張: id

SHA-256ハッシュ: 3ySi9ZE-ujtD4844Zpf8WcLcq0Airj5jlRf-3RAROrk

開示: WyJlemF5RzgwVG1hRVhhSjRwNHlpY2xnIiwgImlkIiwgImh0dHBzOi8vdW5pdmVyc2l0eS5leGFtcGxlL2lzc3VlcnMvNTY1MDQ5Il0

内容: [
  "ezayG80TmaEXaJ4p4yiclg",
  "id",
  "https://university.example/issuers/565049"
]

主張: id

SHA-256ハッシュ: CIh0Nacx0NHYByA1hgSeX7h1qtjcoPdH84u53tkkzGw

開示: WyJXT1lvak0yb2dad3pXQjJOa3FELWNBIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd

内容: [
  "WOYojM2ogZwzWB2NkqD-cA",
  "id",
  "did:example:ebfeb1f712ebc6f1c276e12ec21"
]

主張: type

SHA-256ハッシュ: ftH1KSE5s6fJwW21f6I0eRcmaoR_k9a5AKiS2qbtUS4

開示: WyJuUG1kWEk5YWtEakd4Mk0wRTVhWUtBIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0

内容: [
  "nPmdXI9akDjGx2M0E5aYKA",
  "type",
  "ExampleBachelorDegree"
]

名前と説明は、異なる言語での内容の表現もサポートします。 言語および基底方向情報を持つ文字列を表現するには、 @value@language、および @directionプロパティを含むオブジェクトを使用して、 それぞれテキスト値、言語タグ、および基底方向を表現できます。 詳細については、 11.1 言語と基底方向を参照してください。

注記: @directionは単一言語の文字列には必須ではない

下の例における@directionプロパティは、 関連付けられた単一言語の文字列には必須ではありません。なぜなら、それらの既定の方向は @direction値によって設定される方向と同じだからです。ここでは、 説明を明確にし、コピー、貼り付け、編集によって機能する結果を得られるようにするために、 @directionプロパティを含めています。実装者には、 JSON-LD 1.1仕様の 文字列の 国際化に関するセクションを読むことが推奨されます。

6: nameおよびdescriptionプロパティの使用
{
  "@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"
      }]
    }
  }
}

4.7 発行者

この仕様では、 発行者検証可能なクレデンシャルとして表現するためのプロパティを定義します。

検証可能なクレデンシャルは、issuer プロパティを持たなければなりません(MUST)。

issuer
issuerプロパティの値は、 URL、または値がURLであるid プロパティを含むオブジェクトのいずれかで なければなりません(MUST)。いずれの場合も、 発行者は、このURLを、自身をグローバルに曖昧さなく識別するために選択します。 このURLは、参照解決された場合に、 制御識別子 v1.0仕様で定義される、 発行者に関する制御識別子文書となり、 検証に使用できるものとすることが 推奨されます(RECOMMENDED)。その検証対象は、 クレデンシャルで表現された情報です。
7: 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": "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
{
  "@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": "2025-04-27T17:58:33Z",
    "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ",
    "cryptosuite": "ecdsa-rdfc-2019",
    "proofPurpose": "assertionMethod",
    "proofValue": "z3sXkg3PHbK2YpbhQajunUvReW3Qn66mPsQQKvn4hwEG1DohgUqvXBF2oKT5Qb8tKSKjewNhsJCCcBoY6Rfye4ipw"
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "created": "2025-04-27T17:58:33Z",
    "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv",
    "cryptosuite": "ecdsa-sd-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0AhVhA91jcz-MSzf_Z-fw6VM-YN1ijTr26VBTz9H14dMiv6t5vRaGC1IKHvDtY0ZJup1pnliukZBHEXgM46Bf4EjdyIFgjgCQDMIFZRjI7aJUGGsbDYML33eEwJuub6dIF5agqeB4sTdJYIAhgKXoAudJOwmVRpO2Ab5sNIirjQdArIjp8ygMx2S5ihVhASWfZk4fYqoICvoaokYzsABtmDzpgTe8ZkI2z4MDKt1wcp0T9tBx30mk1V20Qhy2PT15nrPygrxpn8_h2Z1Jo7FhAXNmEd28tsb_VkmqckvjVBet7p8Hhq7d8DziDldJRri8-cygIdcaX0MsitDRMsclHCsO25UKSjCX96dSto_Y3FVhAeYhHIz52Lw3Fd8tO7rdPOjILauPLHFkRnmHbd8ixxKwb62gTqchavN3rv8GtKxQL9o-cLCKFm-mpQDUABuYxMVhA-vKFPcx_bNem4ufrFDr-cyjUa3r-zjLJwp9xss7XZikI3PLiiMGIBnhhGs3zCsQXvSZMX6ScPOpog6Kzl-YSj1hA7xtSv3lNDKhPKKQ-7F4WHhmfwj0F1PN_mj5jDkJcdw19eYTux4wRXgehBXRtvkuMw9iG6UFyurMFeyb-EkmQPIFnL2lzc3Vlcg"
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD",
    "cryptosuite": "bbs-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0ChVhQs4LnYe9N1n9fBW8t7tgXy8gZA1WksN76TfdxHLUW0cJlImiaNZZbbNwAaL86-8xnTgMJgpwaMchm_8VepMSYZKjfQReWnOfwRfwz8grbaNNYQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArKnv3N5iX7nvZR0OCXS-uXH4QQ9mW65QM5qlHOfE4GQVYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFggO3rpYlZcra0jsUsWXIoCAXrkmj3mb1o1k8CYE2Wx9d6BZy9pc3N1ZXI"
  }
}
保護ヘッダー
{
  "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
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vdW5pdmVyc2l0eS5leGFtcGxlL2NyZWRlbnRpYWxzLzM3MzIiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiRXhhbXBsZURlZ3JlZUNyZWRlbnRpYWwiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy8xNCIsInZhbGlkRnJvbSI6IjIwMTAtMDEtMDFUMTk6MjM6MjRaIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6ZXhhbXBsZTplYmZlYjFmNzEyZWJjNmYxYzI3NmUxMmVjMjEiLCJkZWdyZWUiOnsidHlwZSI6IkV4YW1wbGVCYWNoZWxvckRlZ3JlZSIsIm5hbWUiOiJCYWNoZWxvciBvZiBTY2llbmNlIGFuZCBBcnRzIn19fQ .lTz4nWXqYIiQ0bm_t26FD3GHibp2HVinvyPI6wezRaPURX2KaGSas2v4yaRFhpEyni3hLFc_L2ZhWJXcDWnyUQ
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+cose
d28443a10128a05901ba7b2240636f6e74657874223a5b2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f7632222c2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f6578616d706c65732f7632225d2c226964223a22687474703a2f2f756e69766572736974792e6578616d706c652f63726564656e7469616c732f33373332222c2274797065223a5b2256657269666961626c6543726564656e7469616c222c224578616d706c6544656772656543726564656e7469616c225d2c22697373756572223a2268747470733a2f2f756e69766572736974792e6578616d706c652f697373756572732f3134222c2276616c696446726f6d223a22323031302d30312d30315431393a32333a32345a222c2263726564656e7469616c5375626a656374223a7b226964223a226469643a6578616d706c653a656266656231663731326562633666316332373665313265633231222c22646567726565223a7b2274797065223a224578616d706c6542616368656c6f72446567726565222c226e616d65223a2242616368656c6f72206f6620536369656e636520616e642041727473227d7d7d58405ecf7be0f23f3ed8bf173e4895c70f7dad9fb36628730d78a37aa499cbf1ef8263a4def9303e5de3783c7ae69884fcdafc924ee676ec232d8f51488fee4cdbc5
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJpYXQiOjE3NDU3NzY3MTMsImV4cCI6MTc0Njk4NjMxMywiX3NkX2FsZyI6InNoYS0yNTYiLCJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy8xNCIsInZhbGlkRnJvbSI6IjIwMTAtMDEtMDFUMTk6MjM6MjRaIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiZGVncmVlIjp7Im5hbWUiOiJCYWNoZWxvciBvZiBTY2llbmNlIGFuZCBBcnRzIiwiX3NkIjpbImN4X0JsU2pRSVp6bjN5aFRhc0pEeGhLZVlrcndLc25fLXc1RGFKVVdNYmMiXX0sIl9zZCI6WyJOcm96NFFQRHFTOGZkdVI0bDFQaFZwS3l6aFJzN2xha3VlQUZDMmhNa2hzIl19LCJfc2QiOlsiSk84RmdIYmVuLVdlOHJvUDBiM09uV1hrVHZSMlYzOXRTSllzdmpiTy12cyIsImhvckxSUTVqbHpNcFktWDdKMXA1Wmh4UXNNNmMyaHhoZXNjUnF0RnRQSDgiXX0 .DVnk8KsBnPp-Z9vnpReTasbST4ENcNjOwn9qxCgDx7H33VsJaFi0DyCa2auVKb1oSL0IilelgxsEVs27fMClSA ~WyJoSEtXaHpnQ1k0VUJ0Z1F1V2ZWQjNBIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd~WyJUeHZFNURzNU5OT190S0VnMUsyZnlBIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d~WyJlUkpwYkw3WHZ2SVVwVnVGLWlLUWNnIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd~WyJwb2o5UDctRG5MYzF3VVBSbHpkXy1nIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0~
{
  "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
  "alg": "ES256"
}
{
  "iat": 1745776713,
  "exp": 1746986313,
  "_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": [
        "cx_BlSjQIZzn3yhTasJDxhKeYkrwKsn_-w5DaJUWMbc"
      ]
    },
    "_sd": [
      "Nroz4QPDqS8fduR4l1PhVpKyzhRs7lakueAFC2hMkhs"
    ]
  },
  "_sd": [
    "JO8FgHben-We8roP0b3OnWXkTvR2V39tSJYsvjbO-vs",
    "horLRQ5jlzMpY-X7J1p5ZhxQsM6c2hxhescRqtFtPH8"
  ]
}

主張: id

SHA-256ハッシュ: JO8FgHben-We8roP0b3OnWXkTvR2V39tSJYsvjbO-vs

開示: WyJoSEtXaHpnQ1k0VUJ0Z1F1V2ZWQjNBIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd

内容: [
  "hHKWhzgCY4UBtgQuWfVB3A",
  "id",
  "http://university.example/credentials/3732"
]

主張: type

SHA-256ハッシュ: horLRQ5jlzMpY-X7J1p5ZhxQsM6c2hxhescRqtFtPH8

開示: WyJUeHZFNURzNU5OT190S0VnMUsyZnlBIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d

内容: [
  "TxvE5Ds5NNO_tKEg1K2fyA",
  "type",
  [
    "VerifiableCredential",
    "ExampleDegreeCredential"
  ]
]

主張: id

SHA-256ハッシュ: Nroz4QPDqS8fduR4l1PhVpKyzhRs7lakueAFC2hMkhs

開示: WyJlUkpwYkw3WHZ2SVVwVnVGLWlLUWNnIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd

内容: [
  "eRJpbL7XvvIUpVuF-iKQcg",
  "id",
  "did:example:ebfeb1f712ebc6f1c276e12ec21"
]

主張: type

SHA-256ハッシュ: cx_BlSjQIZzn3yhTasJDxhKeYkrwKsn_-w5DaJUWMbc

開示: WyJwb2o5UDctRG5MYzF3VVBSbHpkXy1nIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0

内容: [
  "poj9P7-DnLc1wUPRlzd_-g",
  "type",
  "ExampleBachelorDegree"
]

issuerプロパティにオブジェクトを関連付けることで、発行者に関する追加情報を表現することもできます。

8: 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"
    }
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "created": "2025-04-27T17:58:33Z",
    "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ",
    "cryptosuite": "ecdsa-rdfc-2019",
    "proofPurpose": "assertionMethod",
    "proofValue": "z35CwmxThsUQ4t79JfacmMcw4y1kCqtD4rKqUooKM2NyKwdF5jmXMRo9oGnzHerf8hfQiWkEReycSXC2NtRrdMZN4"
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "created": "2025-04-27T17:58:33Z",
    "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv",
    "cryptosuite": "ecdsa-sd-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0AhVhA48RQ19Db04U8uJwipJ51iqZLecmjhiPb4k2BXLdHox9KdauSf3Mt6Zhit65HQD3NfKoUBNIhx6u6SkQ_LRN_dlgjgCQCXiUMNh-iT7uOyLhwa_0Ol1mfx4Fhph-wJC4AzOYD8ElYIMaU9eu-pg75GhG_-_CuhoikWj9gtS-qUp4qfdnYI6XAhVhAVag3KzxQuRrStNecEjh3TVoc3hj38x-dqllLiAdbQc_9tlnMJaYIm0HzLXuvqwc7DlSTC7w5D0NX6D2M8NaNqVhAr6tGfnfX0hTJ3a-okEoAyiGTla9x_irE24vYRdi6vlLc-xz5LGVFA5Tyht7GiZaT4kqC3od7Nx57CiHakPBw4VhAGzegEDf5moH7kOGp68C6QQR3TmmVMsFSpU41XLR3-BLBLfuS1gWDQlyAJJDRh_leTFoqkDaxdkcli3NpowghY1hA4WGxUt2yMzqAreubYrAzNKMEQcQts-C0O4y3ErKH9R9UZMnBPY2FslOyagtRB5xE5keh3GGCa9TGNCypiNXVXFhAm-bNAdG37FTLQWR1bVnzRMPaTRr5iWWDMtGoFg78B0v43fkN0r4pPVOj9YcCEFxjS_eCbh9HSnDfHsMRIjnG-oFnL2lzc3Vlcg"
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD",
    "cryptosuite": "bbs-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0ChVhQswmfQ8aSdnXIildKfGdJUPQ-iT1HwBf8bShxHigrMTIGPA_mbb58NHo_tUU7P6a5AlwACoQDdbgQXIoeIZPmKu7snk3tUbaLIpfacByowWNYQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArQAGpGXTZS6rwOppAPreXlDb3xQb46PJ_xcVri0glVYJYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFggxWA747M_eHOtg3OYnWQ7wgc8QZ4KHhjtZYNM8ac6ldiBZy9pc3N1ZXI"
  }
}
保護ヘッダー
{
  "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
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vdW5pdmVyc2l0eS5leGFtcGxlL2NyZWRlbnRpYWxzLzM3MzIiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiRXhhbXBsZURlZ3JlZUNyZWRlbnRpYWwiXSwiaXNzdWVyIjp7ImlkIjoiZGlkOmV4YW1wbGU6NzZlMTJlYzcxMmViYzZmMWMyMjFlYmZlYjFmIiwibmFtZSI6IkV4YW1wbGUgVW5pdmVyc2l0eSJ9LCJ2YWxpZEZyb20iOiIyMDEwLTAxLTAxVDE5OjIzOjI0WiIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImlkIjoiZGlkOmV4YW1wbGU6ZWJmZWIxZjcxMmViYzZmMWMyNzZlMTJlYzIxIiwiZGVncmVlIjp7InR5cGUiOiJFeGFtcGxlQmFjaGVsb3JEZWdyZWUiLCJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyJ9fX0 .iiZQBWDlb2o6AxplaJib4C_XeoftdnSFyrT7X1WBfekQDm1_Vu3JUp1fpQWz4RI7HREkI-4mawO6YUkSG9isHQ
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+cose
d28443a10128a05901df7b2240636f6e74657874223a5b2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f7632222c2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f6578616d706c65732f7632225d2c226964223a22687474703a2f2f756e69766572736974792e6578616d706c652f63726564656e7469616c732f33373332222c2274797065223a5b2256657269666961626c6543726564656e7469616c222c224578616d706c6544656772656543726564656e7469616c225d2c22697373756572223a7b226964223a226469643a6578616d706c653a373665313265633731326562633666316332323165626665623166222c226e616d65223a224578616d706c6520556e6976657273697479227d2c2276616c696446726f6d223a22323031302d30312d30315431393a32333a32345a222c2263726564656e7469616c5375626a656374223a7b226964223a226469643a6578616d706c653a656266656231663731326562633666316332373665313265633231222c22646567726565223a7b2274797065223a224578616d706c6542616368656c6f72446567726565222c226e616d65223a2242616368656c6f72206f6620536369656e636520616e642041727473227d7d7d584080831b3012ddc56c1a9d0d8366bb309b8551e8996fdb77ffc08387ef3feba387d0472fdf2805a00aca9ab9dd28958fde6893a024874ff9151f8dacca5595bbed
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJpYXQiOjE3NDU3NzY3MTQsImV4cCI6MTc0Njk4NjMxNCwiX3NkX2FsZyI6InNoYS0yNTYiLCJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaXNzdWVyIjp7Im5hbWUiOiJFeGFtcGxlIFVuaXZlcnNpdHkiLCJfc2QiOlsiYTQ0Y2M5VHU1eGd1N3hCTHlMaTdwVUoxTHFpdHlPVDZqMWxMNF9xZW04SSJdfSwidmFsaWRGcm9tIjoiMjAxMC0wMS0wMVQxOToyMzoyNFoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJkZWdyZWUiOnsibmFtZSI6IkJhY2hlbG9yIG9mIFNjaWVuY2UgYW5kIEFydHMiLCJfc2QiOlsiRHViUDR4bXg4dk5FNFBuYUUzYjlzRGpKWUhIaHpETVFxUVdnUlg2d2ZzWSJdfSwiX3NkIjpbIkJaa0tyVXpjbFhWcHZEUzRFWUh1YkZZa0w3am9lTXlJUFluVlhoS3dBaDQiXX0sIl9zZCI6WyJDT3F6UUNsT2ZTNzc2dXBmaENuVmRyYjdsWWhHY0lBZlRCWDVWeTB3V1E4IiwiS0t0QnoydUxOZzVrd1ZyNHkzWGhHWkhXRXI3aTc3WGFHOVhHbldPV0ZCbyJdfQ .-JMxTewqTy__6Dh_WAXAS6_TqnXHV66JpBSzVZ61NCP6DdYAAIwgGCo5gbF6HyAerxUjSmCfe9vmUTIgtZ_U3g ~WyJvX1lOb0F1S0pqNTNFWlg0S1ZzVmV3IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd~WyJBVUVzVi1LTnh4eU1WWnBuZWxXT0p3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d~WyIwMkdFZW1rVjhzR3hzOWY4b21PbUxBIiwgImlkIiwgImRpZDpleGFtcGxlOjc2ZTEyZWM3MTJlYmM2ZjFjMjIxZWJmZWIxZiJd~WyJPNnpIek5ERjF2ZVFleVpEb1JBR1VRIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd~WyIzdm1kU29mcW5MVkprRVozVUZnLWNnIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0~
{
  "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
  "alg": "ES256"
}
{
  "iat": 1745776714,
  "exp": 1746986314,
  "_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": [
      "a44cc9Tu5xgu7xBLyLi7pUJ1LqityOT6j1lL4_qem8I"
    ]
  },
  "validFrom": "2010-01-01T19:23:24Z",
  "credentialSubject": {
    "degree": {
      "name": "Bachelor of Science and Arts",
      "_sd": [
        "DubP4xmx8vNE4PnaE3b9sDjJYHHhzDMQqQWgRX6wfsY"
      ]
    },
    "_sd": [
      "BZkKrUzclXVpvDS4EYHubFYkL7joeMyIPYnVXhKwAh4"
    ]
  },
  "_sd": [
    "COqzQClOfS776upfhCnVdrb7lYhGcIAfTBX5Vy0wWQ8",
    "KKtBz2uLNg5kwVr4y3XhGZHWEr7i77XaG9XGnWOWFBo"
  ]
}

主張: id

SHA-256ハッシュ: KKtBz2uLNg5kwVr4y3XhGZHWEr7i77XaG9XGnWOWFBo

開示: WyJvX1lOb0F1S0pqNTNFWlg0S1ZzVmV3IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd

内容: [
  "o_YNoAuKJj53EZX4KVsVew",
  "id",
  "http://university.example/credentials/3732"
]

主張: type

SHA-256ハッシュ: COqzQClOfS776upfhCnVdrb7lYhGcIAfTBX5Vy0wWQ8

開示: WyJBVUVzVi1LTnh4eU1WWnBuZWxXT0p3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d

内容: [
  "AUEsV-KNxxyMVZpnelWOJw",
  "type",
  [
    "VerifiableCredential",
    "ExampleDegreeCredential"
  ]
]

主張: id

SHA-256ハッシュ: a44cc9Tu5xgu7xBLyLi7pUJ1LqityOT6j1lL4_qem8I

開示: WyIwMkdFZW1rVjhzR3hzOWY4b21PbUxBIiwgImlkIiwgImRpZDpleGFtcGxlOjc2ZTEyZWM3MTJlYmM2ZjFjMjIxZWJmZWIxZiJd

内容: [
  "02GEemkV8sGxs9f8omOmLA",
  "id",
  "did:example:76e12ec712ebc6f1c221ebfeb1f"
]

主張: id

SHA-256ハッシュ: BZkKrUzclXVpvDS4EYHubFYkL7joeMyIPYnVXhKwAh4

開示: WyJPNnpIek5ERjF2ZVFleVpEb1JBR1VRIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd

内容: [
  "O6zHzNDF1veQeyZDoRAGUQ",
  "id",
  "did:example:ebfeb1f712ebc6f1c276e12ec21"
]

主張: type

SHA-256ハッシュ: DubP4xmx8vNE4PnaE3b9sDjJYHHhzDMQqQWgRX6wfsY

開示: WyIzdm1kU29mcW5MVkprRVozVUZnLWNnIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0

内容: [
  "3vmdSofqnLVJkEZ3UFg-cg",
  "type",
  "ExampleBachelorDegree"
]

注記: 発行者の識別子には任意のURLを使用できる

issuerプロパティの値は、JWK(たとえば、 "https://jwk.example/keys/foo.jwk")または DID(たとえば、 "did:example:abfe13f712120431c276e12ecab")にすることもできます。

4.8 クレデンシャルの対象

検証可能なクレデンシャルは、1つ以上の 対象についての主張を含みます。 この仕様では、1つ以上の対象についての 主張を表現するためのcredentialSubject プロパティを定義します。

検証可能なクレデンシャルは、 credentialSubjectプロパティを含まなければなりません(MUST)。

credentialSubject
credentialSubjectプロパティの値は、 オブジェクトの集合です。各オブジェクトは、1つ以上の 主張対象でなければならず(MUST)、 その主張はcredentialSubjectプロパティ内に シリアライズされなければなりません(MUST)。各オブジェクトは、 セクション4.4 識別子で説明されるように、 対象を識別するためのid プロパティを含んでもかまいません(MAY)。
9: 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", "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
{
  "@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": "2025-04-27T17:58:34Z",
    "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ",
    "cryptosuite": "ecdsa-rdfc-2019",
    "proofPurpose": "assertionMethod",
    "proofValue": "z36CTYymphefPFDdFakYBe7EHHX7Upev5vtRhxG3ZtKiUPXFKknW9ZTds3wxDhTz1WFCGzFUUv6DC5vifg3VCCSFL"
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "created": "2025-04-27T17:58:34Z",
    "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv",
    "cryptosuite": "ecdsa-sd-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0AhVhAFPsovbuHDInv8ft0M6jMPGrLrNs9j_sEfn1gdDCxFOmyjYDyblufuagmARZj9RabxfO0SkbpUi_m6dQdXIyoklgjgCQC78Ayc-2ykLAZ_NJzb5-S8dtSenHeKEHHGy469czIbhtYILJ97_OhxkzZccWMaUgCAXRO5ZCyoagriazYdV2ViFsuhVhAvGcG2tqQoB5VaC-x652sos00_94wzBOZg9wGR2mytwn_alXEbksbCMUC2lmiU_FrcFzEEAZrAdcsAfoE0J_KRlhAc71QXbdP2iKlqmgocH4qvDcv_3PT_VmSFGWISFdrQPkmv2lb2r9Mb02yZYilf20oMzCPCRsqYP--0g8ysm9doVhAIqwWkfg1pXXKaxx4_5_QpmoOoXjLPNhJ-14QSHUyxTKKCTarm33OdaIhhCjm5_e7MUCYHvA89vCSvSHMrKvKclhASFp1GivaJXYrbBcM6xNFNsXW7xBg7cZXfBeGOwcXf7fXg1GwMJILZBimOaEM5Eay38F8T6HwbeuMvBQ7b05gbFhAkLeI8-tdeQQzX6ik0xDSM4yLsHPmhG47Tu5Hm25ujoo9iVsLzskiGcIsQLsqvRK5238FvPQAeOpK04R7F2aK9IFnL2lzc3Vlcg"
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD",
    "cryptosuite": "bbs-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0ChVhQkkdBby2GbmvVh66cM6TNzNfh0hR9ePeG7dWYbHfDxK6CcA_rVoxxsRGIoWX5Gs6ZGgQNPTBeehiEHT_cj-5fjZ6ArTluARHPbaXQzWyXKrVYQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArS1r7HKFDPyyrvPGqNF8bjgNELvoomOjpbD9JEvaGI1pYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFggUfIz7Xi8QhNU6pC7qIkL0HkvpKYuV2rzBuKizKrBhU6BZy9pc3N1ZXI"
  }
}
保護ヘッダー
{
  "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
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vdW5pdmVyc2l0eS5leGFtcGxlL2NyZWRlbnRpYWxzLzM3MzIiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiRXhhbXBsZURlZ3JlZUNyZWRlbnRpYWwiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy81NjUwNDkiLCJ2YWxpZEZyb20iOiIyMDEwLTAxLTAxVDAwOjAwOjAwWiIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImlkIjoiZGlkOmV4YW1wbGU6ZWJmZWIxZjcxMmViYzZmMWMyNzZlMTJlYzIxIiwiZGVncmVlIjp7InR5cGUiOiJFeGFtcGxlQmFjaGVsb3JEZWdyZWUiLCJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyJ9fX0 .KJnv5DRpXi0xZ6SUSXsu30Xs5OBk8HlunnpkAitIS677TBPhwX1cgbUj9nTuLfNeLlRZnsCyua_yZZ5SooTKSw
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+cose
d28443a10128a05901be7b2240636f6e74657874223a5b2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f7632222c2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f6578616d706c65732f7632225d2c226964223a22687474703a2f2f756e69766572736974792e6578616d706c652f63726564656e7469616c732f33373332222c2274797065223a5b2256657269666961626c6543726564656e7469616c222c224578616d706c6544656772656543726564656e7469616c225d2c22697373756572223a2268747470733a2f2f756e69766572736974792e6578616d706c652f697373756572732f353635303439222c2276616c696446726f6d223a22323031302d30312d30315430303a30303a30305a222c2263726564656e7469616c5375626a656374223a7b226964223a226469643a6578616d706c653a656266656231663731326562633666316332373665313265633231222c22646567726565223a7b2274797065223a224578616d706c6542616368656c6f72446567726565222c226e616d65223a2242616368656c6f72206f6620536369656e636520616e642041727473227d7d7d5840b1ddb83d2cc91513a6a44ae62b8c622918c9b78d1c6492afcec241b39a23cbd6f1c6efbdeeaa94e0c765b7c8b9284e2c930ae859aa0a2defc8b4d9fba132d23d
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJpYXQiOjE3NDU3NzY3MTQsImV4cCI6MTc0Njk4NjMxNCwiX3NkX2FsZyI6InNoYS0yNTYiLCJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy81NjUwNDkiLCJ2YWxpZEZyb20iOiIyMDEwLTAxLTAxVDAwOjAwOjAwWiIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImRlZ3JlZSI6eyJuYW1lIjoiQmFjaGVsb3Igb2YgU2NpZW5jZSBhbmQgQXJ0cyIsIl9zZCI6WyJlU3NEMXVhcVNuZUdIVEVjTWxlM1ZzWlJwOHRNbmo1Q0dyN1EzandzdkZrIl19LCJfc2QiOlsiYU5MMTNnNnUtenN2VG1YVkFfOVRYdXlrSVdpRzd0djVvbExzdHNieDlkayJdfSwiX3NkIjpbIkRsMHp6eHZJcXA1TVdBNWEzSTJQRDFNQXJ3NlZBNFFMeWRscVNsSkVCeVkiLCJqVmtSaTdLMGUySTFkbFJURXREdlFVTEIxcWZaZ3NNcGlCdjVQYWsyMXlzIl19 .Yh2d9J3y-SKxa16vZzRVQKaya0V66OPIar-C9PGVzOu2Q7_0IbsYqTJxtNYsQ39fk64p1-QEgCmWPWHFRAD_qw ~WyIxTGVERC1tNlRQdlFXX1R4MU9MQVVnIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd~WyJiU1ljSjZNVXdGZlhleWRGSl84dHlnIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d~WyJpUGx3eUs1c01BY1BzbzZQbW1DNWl3IiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd~WyJFaEt5VDV6ZjJuSGZUNHFnaWZtczVBIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0~
{
  "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
  "alg": "ES256"
}
{
  "iat": 1745776714,
  "exp": 1746986314,
  "_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": [
        "eSsD1uaqSneGHTEcMle3VsZRp8tMnj5CGr7Q3jwsvFk"
      ]
    },
    "_sd": [
      "aNL13g6u-zsvTmXVA_9TXuykIWiG7tv5olLstsbx9dk"
    ]
  },
  "_sd": [
    "Dl0zzxvIqp5MWA5a3I2PD1MArw6VA4QLydlqSlJEByY",
    "jVkRi7K0e2I1dlRTEtDvQULB1qfZgsMpiBv5Pak21ys"
  ]
}

主張: id

SHA-256ハッシュ: Dl0zzxvIqp5MWA5a3I2PD1MArw6VA4QLydlqSlJEByY

開示: WyIxTGVERC1tNlRQdlFXX1R4MU9MQVVnIiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd

内容: [
  "1LeDD-m6TPvQW_Tx1OLAUg",
  "id",
  "http://university.example/credentials/3732"
]

主張: type

SHA-256ハッシュ: jVkRi7K0e2I1dlRTEtDvQULB1qfZgsMpiBv5Pak21ys

開示: WyJiU1ljSjZNVXdGZlhleWRGSl84dHlnIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d

内容: [
  "bSYcJ6MUwFfXeydFJ_8tyg",
  "type",
  [
    "VerifiableCredential",
    "ExampleDegreeCredential"
  ]
]

主張: id

SHA-256ハッシュ: aNL13g6u-zsvTmXVA_9TXuykIWiG7tv5olLstsbx9dk

開示: WyJpUGx3eUs1c01BY1BzbzZQbW1DNWl3IiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd

内容: [
  "iPlwyK5sMAcPso6PmmC5iw",
  "id",
  "did:example:ebfeb1f712ebc6f1c276e12ec21"
]

主張: type

SHA-256ハッシュ: eSsD1uaqSneGHTEcMle3VsZRp8tMnj5CGr7Q3jwsvFk

開示: WyJFaEt5VDV6ZjJuSGZUNHFnaWZtczVBIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0

内容: [
  "EhKyT5zf2nHfT4qgifms5A",
  "type",
  "ExampleBachelorDegree"
]

検証可能なクレデンシャル内で、複数の 対象に関連する情報を表現することは可能です。 次の例では、配偶者である2つの 対象を指定しています。複数の 対象credentialSubjectプロパティに 関連付けるために、配列表記が使用されていることに注意してください。

10: 検証可能なクレデンシャルで複数の対象を指定する
{
  "@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"
  }]
}

4.9 有効期間

この仕様では、発行者がクレデンシャルが有効になる日時を 表現できるようにvalidFromプロパティを定義し、 クレデンシャルが有効でなくなる日時を表現するために validUntilプロパティを定義します。

日付と時刻を比較する場合、計算は「時間的に」行われます。これは、 文字列値が、タイムライン上の一点として存在する「時間値」に変換されることを意味します。 その後、比較対象の日付と時刻が、タイムライン上の特定の点との関係で どこにあるかを調べることにより、時間比較が実行されます。

validFrom
存在する場合、validFromプロパティの値は、 クレデンシャルが有効になる日付と時刻を表す [XMLSCHEMA11-2] dateTimeStamp文字列値でなければなりません(MUST)。これは未来または過去の日付と時刻であり得ます。 この値は、credentialSubjectプロパティに関連付けられた情報が有効になる最も早い時点を 表すことに注意してください。validUntil値も存在する場合、 validFrom値は、validUntil値で表現される時点と 時間的に同じか、それより前の時点を表現しなければなりません(MUST)。
validUntil
存在する場合、validUntilプロパティの値は、 クレデンシャルが有効でなくなる日付と時刻を表す [XMLSCHEMA11-2] dateTimeStamp文字列値でなければなりません(MUST)。これは過去または未来の日付と時刻であり得ます。 この値は、credentialSubjectプロパティに関連付けられた情報が有効である最も遅い時点を 表すことに注意してください。validFrom値も存在する場合、validUntil 値は、validFrom値で表現される時点と時間的に同じか、それより後の時点を 表現しなければなりません(MUST)。
11: validFromおよびvalidUntilプロパティの使用
{
  "@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
{
  "@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": "2025-04-27T17:58:34Z",
    "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ",
    "cryptosuite": "ecdsa-rdfc-2019",
    "proofPurpose": "assertionMethod",
    "proofValue": "z65sN9W58eruTDUUXYxxwhG4cQ73zQkQuhMYvUVipeM4oEUBPbCxd3oTQTJhnfHN9juyZSzYpERYFjZcfpb2xgeto"
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "created": "2025-04-27T17:58:34Z",
    "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv",
    "cryptosuite": "ecdsa-sd-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0AhVhAxWvPP0HD9usaRDFthqpz1zXbWtTpNr_1pRFMKY9wbt7RAh0kwkoqR9cFHY0PdBj0cPo9BXd_54Z9iLl7GsmAjlgjgCQCJ0FUx3YRbBxybCrTEtFINFNKD7UC2j8tjmvYa6EQKlNYIL-KVtIrAWQi98Ng86FB4giy2xKCqn_kNOmO75D7AQfEhlhA5pKNMOahYQbk8obEMFyLgAsmd3FGqf3FoDTojybRWUPf7F3A22Kl1822zW093-XtKum7Nfe3q16norHXUnhkWVhAvNR9By8I5ISJtylSp1fkzurbIvSXVhkaj4wsUpbTy1GnYHzeS7qhAyUoO4GkIMUfP3yLS0BIGBbJR7de1s5G4lhATnwFdztYAEXk6z93jJot3TPhlnOYk10G0e7u3uyJJF-ZrAsctOYbjF3ZcNZu3UXJZRe4_ytxr5OqwIVLnUfDqFhAkff2_b4hqpz0uK0kDHjkpMun4mAhuxVCjcmyIlJnaaTdFc2RovLnKiPx4Xnd9P_lOd3ZQoz5ThPWzMS7r_43M1hAmVVtNJ7-lpJdlc9tg5e3GpAhnXzYHpiv3WRRT3F4tH8B_zkHnyeNBT61d16TTnvlFn5mFXJ99FD4abIcQkyP_lhA8IS9pAGKqVgTDzxXSvGcGWMXQ4LEy3jfywyDpdiZodvttNhuZVBMkGKhNBo94oGjIHRfoeAFvQfZQo8_ENtBEYFnL2lzc3Vlcg"
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD",
    "cryptosuite": "bbs-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0ChVhQjBPG4AXIRGKu6h5awRiAZHSrx5gfUdbWc2rAxdsfIzSIywzsphRnlb5rPDWwdJlBF5krx4JRYNtT7exHHAw_aZtO6AARXGfbz0eHNrcTKL5YQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArKnv3N5iX7nvZR0OCXS-uXH4QQ9mW65QM5qlHOfE4GQVYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFggWjulaLj5whA4VZOvBqHQbwhSW7Ph0eZ2bxz7ota_qnCBZy9pc3N1ZXI"
  }
}
保護ヘッダー
{
  "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
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vdW5pdmVyc2l0eS5leGFtcGxlL2NyZWRlbnRpYWxzLzM3MzIiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiRXhhbXBsZURlZ3JlZUNyZWRlbnRpYWwiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy8xNCIsInZhbGlkRnJvbSI6IjIwMTAtMDEtMDFUMTk6MjM6MjRaIiwidmFsaWRVbnRpbCI6IjIwMjAtMDEtMDFUMTk6MjM6MjRaIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6ZXhhbXBsZTplYmZlYjFmNzEyZWJjNmYxYzI3NmUxMmVjMjEiLCJkZWdyZWUiOnsidHlwZSI6IkV4YW1wbGVCYWNoZWxvckRlZ3JlZSIsIm5hbWUiOiJCYWNoZWxvciBvZiBTY2llbmNlIGFuZCBBcnRzIn19fQ .UGJHic3E0XIwnJnzsQPF49ZMJsJtVhQSYTk7m8uvpbQWQPIttHiQo8k2qVhNZiRtMDLuIYAdTjim8rhGZbCJ2A
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+cose
d28443a10128a05901de7b2240636f6e74657874223a5b2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f7632222c2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f6578616d706c65732f7632225d2c226964223a22687474703a2f2f756e69766572736974792e6578616d706c652f63726564656e7469616c732f33373332222c2274797065223a5b2256657269666961626c6543726564656e7469616c222c224578616d706c6544656772656543726564656e7469616c225d2c22697373756572223a2268747470733a2f2f756e69766572736974792e6578616d706c652f697373756572732f3134222c2276616c696446726f6d223a22323031302d30312d30315431393a32333a32345a222c2276616c6964556e74696c223a22323032302d30312d30315431393a32333a32345a222c2263726564656e7469616c5375626a656374223a7b226964223a226469643a6578616d706c653a656266656231663731326562633666316332373665313265633231222c22646567726565223a7b2274797065223a224578616d706c6542616368656c6f72446567726565222c226e616d65223a2242616368656c6f72206f6620536369656e636520616e642041727473227d7d7d584076a5f6a774019f85df7b204233f02dcd34fcaa896191e0c41cc6e78f2c4c7d9456daf472970ee8bd3993474bc31f975df3278e844ed6707486b77e928fbd7231
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJpYXQiOjE3NDU3NzY3MTQsImV4cCI6MTc0Njk4NjMxNCwiX3NkX2FsZyI6InNoYS0yNTYiLCJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy8xNCIsInZhbGlkRnJvbSI6IjIwMTAtMDEtMDFUMTk6MjM6MjRaIiwidmFsaWRVbnRpbCI6IjIwMjAtMDEtMDFUMTk6MjM6MjRaIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiZGVncmVlIjp7Im5hbWUiOiJCYWNoZWxvciBvZiBTY2llbmNlIGFuZCBBcnRzIiwiX3NkIjpbInRreDZVVzN3VF9OcVRpeHZWR2tzd2RaRi1rQkE0TmhBV1pHSmxhUURpREkiXX0sIl9zZCI6WyJmTmpEU0RIbDNIQkNTQ1hSRzh0OWJud1RIMUpTT0JQOE0wWmFaQlpQTmNJIl19LCJfc2QiOlsiUHhTdmNMelpvam1Lck5qMWVKWDNxVjZKcVoxdFBVV1dYMFo5Q2dLRTlEVSIsInRTSThIellYN2RYdHhpMVc3UHUxckg4S3ZFNUxBRkNEVVNxcHpsbmdzRDgiXX0 .4gc3oF3a-OHOSwVC1eiCZP-ureWU-bdPdjBlL-xBjUsE5qL2sBQbg5PP_CO6JgZiBONpr3iU6cL0MF9iPpu9Eg ~WyJ3SzVZQTBEZzRoc18wdmtFZk1ENG93IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd~WyJ1T0podHZvMEJ0cm1YbWxIeUVKUTdRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d~WyJjTzBQZjZxM1MweHp2dmRwS25aWlpnIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd~WyI0N0FDOWhlLTRCNW4xV1N0dFJRYXRBIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0~
{
  "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
  "alg": "ES256"
}
{
  "iat": 1745776714,
  "exp": 1746986314,
  "_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": [
        "tkx6UW3wT_NqTixvVGkswdZF-kBA4NhAWZGJlaQDiDI"
      ]
    },
    "_sd": [
      "fNjDSDHl3HBCSCXRG8t9bnwTH1JSOBP8M0ZaZBZPNcI"
    ]
  },
  "_sd": [
    "PxSvcLzZojmKrNj1eJX3qV6JqZ1tPUWWX0Z9CgKE9DU",
    "tSI8HzYX7dXtxi1W7Pu1rH8KvE5LAFCDUSqpzlngsD8"
  ]
}

主張: id

SHA-256ハッシュ: PxSvcLzZojmKrNj1eJX3qV6JqZ1tPUWWX0Z9CgKE9DU

開示: WyJ3SzVZQTBEZzRoc18wdmtFZk1ENG93IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvMzczMiJd

内容: [
  "wK5YA0Dg4hs_0vkEfMD4ow",
  "id",
  "http://university.example/credentials/3732"
]

主張: type

SHA-256ハッシュ: tSI8HzYX7dXtxi1W7Pu1rH8KvE5LAFCDUSqpzlngsD8

開示: WyJ1T0podHZvMEJ0cm1YbWxIeUVKUTdRIiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d

内容: [
  "uOJhtvo0BtrmXmlHyEJQ7Q",
  "type",
  [
    "VerifiableCredential",
    "ExampleDegreeCredential"
  ]
]

主張: id

SHA-256ハッシュ: fNjDSDHl3HBCSCXRG8t9bnwTH1JSOBP8M0ZaZBZPNcI

開示: WyJjTzBQZjZxM1MweHp2dmRwS25aWlpnIiwgImlkIiwgImRpZDpleGFtcGxlOmViZmViMWY3MTJlYmM2ZjFjMjc2ZTEyZWMyMSJd

内容: [
  "cO0Pf6q3S0xzvvdpKnZZZg",
  "id",
  "did:example:ebfeb1f712ebc6f1c276e12ec21"
]

主張: type

SHA-256ハッシュ: tkx6UW3wT_NqTixvVGkswdZF-kBA4NhAWZGJlaQDiDI

開示: WyI0N0FDOWhlLTRCNW4xV1N0dFJRYXRBIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0

内容: [
  "47AC9he-4B5n1WSttRQatA",
  "type",
  "ExampleBachelorDegree"
]

注記: 検証可能なクレデンシャルの有効期間の開始

validFromおよびvalidUntilが存在しない場合、 検証可能なクレデンシャルの有効期間は、無期限に有効であると みなされます。このような場合、その検証可能なクレデンシャルは、 verifiable credentialが作成された時点から有効であると想定されます。

4.10 ステータス

この仕様では、検証可能なクレデンシャルが一時停止されているか 取り消されているかなど、そのステータスに関連する情報を発見するための credentialStatus プロパティを定義します。

存在する場合、credentialStatus プロパティに関連付けられる値は、 単一のオブジェクト、または1つ以上のオブジェクトの集合です。すべてのオブジェクトについて、 次のプロパティ が定義されます。

id
id プロパティ任意(OPTIONAL)です。 クレデンシャル・ステータス・オブジェクトの一意な識別子を提供するために 使用してもかまいません(MAY)。存在する場合は、 セクション4.4 識別子の規範的な指針に 従わなければなりません(MUST)。
type
type プロパティ必須(REQUIRED)です。 これは、オブジェクトによって表現されるステータス情報の型を表現するために使用されます。 セクション4.5 における関連する規範的な指針に 従わなければなりません(MUST)。

クレデンシャルのステータス情報の 正確な内容は、特定のcredentialStatus 定義によって決まり、実装が 簡単か、プライバシーを強化するものかなどの要因に応じて異なります。 その値は、クレデンシャルの現在のステータス、および機械可読な情報を URLから取得可能かどうかを判断するのに十分な情報を提供します。たとえば、 そのオブジェクトには、クレデンシャルが一時停止されているか 取り消されているかを示す外部文書へのリンクを含めることができます。

12: statusプロパティの使用
{
  "@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"
  }
}

クレデンシャルには、取り消されているか一時停止されているかなど、 それに関連付けられた複数のステータスを持たせることができます。

13: statusプロパティに複数のエントリーを使用する
{
  "@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)。 許容できないアプローチには、クレデンシャルの使用ごとに、そのクレデンシャルの 発行者へ連絡して特定の個人のステータスを確認する 「phoning home」や、クレデンシャルの使用ごとに、検証者が特定の個人に関心を持っていることを 発行者が推測できる情報を 発行者に要求させる「仮名性の低下」が含まれます。

4.11 データスキーマ

データスキーマは、特定のデータ集合に特定の構造を強制する場合に有用です。 この仕様が考慮するデータスキーマには、少なくとも2種類あります。

データスキーマは@contextプロパティとは異なる目的を果たすことを 理解することが重要です。@contextプロパティは、データ構造や データ構文を強制するものでも、代替表現形式への任意の符号化の定義を 可能にするものでもありません。

この仕様では、データスキーマを表現するための次のプロパティを定義します。 発行者は、発行する検証可能なクレデンシャルに このプロパティを含めることができます。

credentialSchema

credentialSchema プロパティの値は、 提供されたデータが提供されたスキーマに適合するかどうかを 検証者が判断するのに十分な情報を 提供する、1つ以上のデータスキーマでなければなりません(MUST)。各credentialSchemaは、そのtype (たとえばJsonSchema)と、スキーマファイルを識別する URLでなければならない id プロパティを 指定しなければなりません(MUST)。具体的な型定義が、 各データスキーマの正確な内容を決定します。

複数のスキーマが存在する場合、妥当性は、関連付けられた各 typeプロパティで概説される処理規則に従って判断されます。

注記: クレデンシャル型固有の構文チェックが可能です

credentialSchema プロパティにより、型定義へ注釈を 付けたり、それらを語彙の特定バージョンに固定したりできます。 検証可能なクレデンシャルの作成者は、 何らかのコンテンツ完全性保護メカニズムで保護された語彙の静的バージョンを、 credentialSchemaを使用して含めることができます。credentialSchema プロパティは、クレデンシャルに対する構文チェックを行い、 JSON Schema [VC-JSON-SCHEMA]の 妥当性確認などの検証メカニズムを 使用することも可能にします。

14: credentialSchemaプロパティを使用して JSONスキーマ妥当性確認を実行する
{
  "@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]ファイルを 指しています。

4.12 保護メカニズム

この仕様では、2つの種類の 保護 メカニズムを認識します。 エンベロープ化証明を使用するものと、埋め込み証明を使用するものです。

エンベロープ化証明は、 このデータモデルのシリアライズを包み込みます。そのような推奨(RECOMMENDED)される エンベロープ化証明メカニズムの1つは、JOSEおよび COSEを使用した検証可能なクレデンシャルの保護 [VC-JOSE-COSE]で定義されています。

埋め込み証明は、証明が データモデルのシリアライズに含まれるメカニズムです。そのような推奨(RECOMMENDED)される 埋め込み証明メカニズムの1つは、検証可能なクレデンシャル・データ完全性 1.0 [VC-DATA-INTEGRITY]で定義されています。

これら2つの種類の保護メカニズムは、相互に排他的ではありません。 追加の保護メカニズム仕様も、セクション5.13 保護メカニズム仕様の規則に従って定義される可能性があります。

15: 埋め込み証明を使用する検証可能なクレデンシャル
{
  "@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プロパティを介して 元のデータにデジタル署名を付加することで、元のクレデンシャルを保護します。その結果、現代的な プログラミング環境やデータベースシステムで管理しやすい 検証可能なクレデンシャルになります。

16: SD-JWT形式のエンベロープ化証明を使用する 検証可能なクレデンシャル
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形式を理解するツールで処理できる検証可能なクレデンシャルになります。

4.13 検証可能なプレゼンテーション

検証可能なプレゼンテーションは、複数の 検証可能なクレデンシャルからの情報を集約するために 使用してもかまいません(MAY)。

検証可能なプレゼンテーションは、極めて短命であり、 検証者が提供するチャレンジに結び付けられるべきです (SHOULD)。これを実現する詳細は、保護メカニズム、 トランスポートプロトコル、および検証者ポリシーに 依存します。特定の保護メカニズムまたは埋め込みプロトコルによって追加要件が 定義されていない限り、検証者は通常、その検証可能なプレゼンテーションが提示された 検証可能なクレデンシャルと相関しているとは 仮定できません。

検証可能なプレゼンテーションデフォルトグラフは、 検証可能なプレゼンテーション・グラフとも呼ばれます。

検証可能なプレゼンテーションについて、 次のプロパティが定義されます。

id
id プロパティは任意です。これは、 検証可能なプレゼンテーションの 一意な識別子を提供するために使用してもかまいません(MAY)。 存在する場合は、セクション4.4 識別子の規範的な指針に 従わなければなりません(MUST)。
type
type プロパティは存在しなければなりません(MUST)。 これは検証可能なプレゼンテーションの型を 表現するために使用されます。このプロパティの値の1つは VerifiablePresentationでなければなりません(MUST)が、 追加の型を含めてもかまいません(MAY)。セクション 4.5 における関連する規範的な指針に 従わなければなりません(MUST)。
verifiableCredential
verifiableCredential プロパティは存在してもかまいません (MAY)。値は、1つ以上の 検証可能なクレデンシャルおよび/または エンベロープ化された検証可能なクレデンシャル オブジェクトでなければなりません(MUST)(値は、数値、 文字列、URLなどの非オブジェクト値であってはなりません(MUST NOT))。 これらのオブジェクトは検証可能なクレデンシャル・グラフと 呼ばれ、保護メカニズムを使用して保護された情報を 表現しなければなりません(MUST)。 詳細は、セクション5.12 検証可能なクレデンシャル・グラフを参照してください。
holder
検証可能なプレゼンテーションは、 holderプロパティを含んでもかまいません(MAY)。存在する場合、値はURLまたはid プロパティを含むオブジェクトのいずれかで なければなりません(MUST)。holder内またはその id内のURLは、参照解決された場合に、 保有者についての機械可読な情報を含む文書となり、 検証可能なプレゼンテーションで 表現された情報を検証するために 使用できるものであることが推奨(RECOMMENDED)されます。 holder プロパティが存在しない場合、 保有者についての情報は、保護メカニズムを介して取得されるか、 検証可能なプレゼンテーション妥当性確認には関係しません。

次の例は、検証可能なプレゼンテーションを示しています。

17: プレゼンテーションの基本構造
{
  "@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 プロパティの内容は、 この仕様で説明される検証可能なクレデンシャル・グラフです。

エンベロープ化された検証可能なクレデンシャル

検証可能なプレゼンテーションには、 JOSEおよび COSEを使用した検証可能なクレデンシャルの保護 [VC-JOSE-COSE]など、 ペイロードを「包み込む」保護メカニズムを使用して保護された1つ以上の 検証可能なクレデンシャルを含めることができます。 これは、verifiableCredentialプロパティを、typeEnvelopedVerifiableCredentialであるオブジェクトに関連付けることで実現できます。

EnvelopedVerifiableCredential
これは、エンベロープ化された検証可能なクレデンシャルを含むオブジェクトを、 検証可能なプレゼンテーション内の verifiableCredentialプロパティに関連付けるために使用されます。そのオブジェクトの @contextプロパティは存在しなければならず(MUST)、 この仕様の基本コンテキストなど、少なくとも idtype、および EnvelopedVerifiableCredential用語を、この仕様で提供される基本コンテキストで 定義されるとおりに定義するコンテキストを含まなければなりません。 オブジェクトのid値は、RFC2397]のdata: URLで なければならず(MUST)、JOSEおよびCOSEを使用した検証可能なクレデンシャルの保護 [VC-JOSE-COSE]などの エンベロープ化セキュリティ スキームを使用して、保護された検証可能なクレデンシャルを表現します。 オブジェクトのtype値はEnvelopedVerifiableCredentialで なければなりません(MUST)。

次の例は、エンベロープ化された検証可能なクレデンシャルを含む 検証可能なプレゼンテーションを 示しています。

18: プレゼンテーションの基本構造
{
  "@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"
  }]
}
注記: エンベロープ化されたコンテンツをRDFとして処理する

実装者が、このセクションで説明されるオブジェクトと、id値によって表現される エンベロープ化されたプレゼンテーションをRDF環境で処理し、RDFに関連するオブジェクト間の リンクを作成したい場合があります。そうする必要性とメカニズムはユースケースに依存するため、 実装に依存します。

エンベロープ化された検証可能なプレゼンテーション

JOSEおよび COSEを使用した検証可能なクレデンシャルの保護 [VC-JOSE-COSE]など、 ペイロードを「包み込む」メカニズムを使用して保護された 検証可能なプレゼンテーションを 表現することができます。これは、typeEnvelopedVerifiablePresentationであるオブジェクトを使用することで実現できます。

EnvelopedVerifiablePresentation
エンベロープ化された検証可能なプレゼンテーションを表現するために使用されます。 オブジェクトの@contextプロパティは存在しなければならず(MUST)、 この仕様の基本コンテキストなど、少なくとも idtype、および EnvelopedVerifiablePresentation用語を、この仕様で提供される基本コンテキストで 定義されるとおりに定義するコンテキストを含まなければなりません。オブジェクトの id値は、[RFC2397]のdata: URLで なければならず(MUST)、JOSEおよびCOSEを使用した検証可能なクレデンシャルの保護 [VC-JOSE-COSE]などの エンベロープ化保護 メカニズムを使用して、保護された検証可能なプレゼンテーションを表現します。 オブジェクトのtype値はEnvelopedVerifiablePresentationで なければなりません(MUST)。

次の例は、エンベロープ化された検証可能なプレゼンテーションを示しています。

19: エンベロープ化された検証可能なプレゼンテーションの 基本構造
{
  "@context": "https://www.w3.org/ns/credentials/v2",
  "id": "data:application/vp+jwt,eyJraWQiO...zhwGfQ",
  "type": "EnvelopedVerifiablePresentation"
}

派生クレデンシャルを使用するプレゼンテーション

一部のゼロ知識暗号方式では、保有者が、 検証可能なクレデンシャルからの主張を、その 検証可能なクレデンシャル内のすべての主張を 明らかにすることなく、間接的に保有していることを証明できる場合があります。これらの 方式では、検証可能なクレデンシャルを使用して、提示可能な データを導出できる場合があります。そのデータは、検証者発行者を信頼する場合、その値を 信頼できるように暗号学的に主張されます。

一部の選択的開示スキームでは、検証可能なクレデンシャルから 派生した主張の サブセットを共有できます。

注記: ゼロ知識証明を使用するプレゼンテーションは可能です

直接埋め込まれた検証可能なクレデンシャルではなく、 派生データを含むZKP形式の検証可能なプレゼンテーションの例については、 セクション5.7 ゼロ知識証明を参照してください。

Pat has a property
                 overAge whose value is 21
11 Patが21歳を超えていることを表現する基本的な主張。

保有者の主張を含むプレゼンテーション

保有者は、検証可能なプレゼンテーション内の verifiableCredential プロパティを使用して、 自分自身を含む任意の発行者からの検証可能なクレデンシャルを含めてもかまいません (MAY)。検証可能なクレデンシャル発行者保有者である場合、その 検証可能なクレデンシャル内の 主張自己主張とみなされます。 このような自己主張は、それらが含まれる検証可能なプレゼンテーションを保護するのと 同じメカニズム、または他の検証可能なクレデンシャルに 使用可能な任意のメカニズムによって保護できます。

これらの自己主張された主張対象は 限定されないため、これらの主張には、保有者、含まれる他の検証可能なクレデンシャルの1つ、または 自己主張された検証可能なクレデンシャルが 含まれる検証可能なプレゼンテーションについての文を 含めることもできます。いずれの場合も、自己主張でない 検証可能なクレデンシャルの場合と同様に、 それについての主張が行われるオブジェクト内で、id プロパティを使用して特定の 対象を識別します。

自己主張された検証可能なクレデンシャルを含み、それが 検証可能なプレゼンテーションと同じメカニズムのみを 使用して保護されている検証可能なプレゼンテーションは、 holderプロパティを含まなければなりません(MUST)。

検証可能なクレデンシャルに対して定義される すべての規範的要件は、自己主張された検証可能なクレデンシャルにも 適用されます。

検証可能なプレゼンテーション内の 検証可能なクレデンシャルは、その 検証可能なクレデンシャルissuer プロパティの値が、 検証可能なプレゼンテーションholderプロパティの値と同一である場合、自己主張されたものとみなされます。

次の例は、検証可能なプレゼンテーションと 同じメカニズムを使用して保護された、自己主張された 検証可能なクレデンシャルを 埋め込む検証可能なプレゼンテーションを 示しています。

20: 埋め込みData Integrity証明で保護された、 自己主張された検証可能なクレデンシャルを持つ検証可能なプレゼンテーション
{
  "@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": [{ ... }]
}

次の例は、検証可能なプレゼンテーションと 同じメカニズムを使用して保護された、検証可能なプレゼンテーションについての 主張を保持する、自己主張された 検証可能なクレデンシャルを 埋め込む検証可能なプレゼンテーションを 示しています。

21: 検証可能なプレゼンテーションについての 自己主張された検証可能なクレデンシャルを持ち、埋め込みData Integrity証明で保護された 検証可能なプレゼンテーション
{
  "@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": { ... }
}

5. 高度な概念

セクション4. 基本概念で 導入した概念を踏まえ、このセクションでは検証可能なクレデンシャルに関する、より複雑なトピックを 探ります。

5.1 信頼モデル

このセクションは非規範的です。

検証可能なクレデンシャルの信頼モデルは、次の 期待に基づいています。

この信頼モデルは、次のことを保証することで、他の信頼モデルとの差別化を図ります。

検証者が、どの発行者を、 どのデータまたは目的について信頼するかをどのように決定するかは、この勧告の 範囲外です。よく知られた組織など、一部の発行者は、 その評判だけを理由に多くの検証者から 信頼されることがあります。一部の発行者検証者は、会員規則によりすべての会員が 互いを信頼するコミュニティの構成員である場合があります。一部の検証者は、発行者を審査し、電子 署名およびインフラストラクチャ(ESI); 信頼リスト [ETSI-TRUST-LISTS] または Adobe Approved Trust Listで指定されているような信頼リストに掲載する責任を持つ、 特定の信頼サービス・プロバイダーを信頼する場合があります。

発行者検証者の間の期待を分離することで、 より柔軟で動的な信頼モデルが作られ、市場競争と顧客の選択肢が増えます。

この信頼モデルが、ワーキンググループによって研究されたさまざまな脅威モデルと どのように相互作用するかの詳細については、検証可能なクレデンシャルのユースケース [VC-USE-CASES]を参照してください。

注記: 信頼モデルは従来の認証局システムとは異なります

この仕様で詳述されるデータモデルは、より従来型の認証局信頼モデルによって提供されるような 推移的な信頼モデルを意味するものではありません。検証可能なクレデンシャル・データモデルでは、 検証者発行者を直接信頼するか、 信頼しないかのどちらかです。検証可能なクレデンシャル・データモデルを使用して 推移的な信頼モデルを構築することは可能ですが、実装者には、認証局システムが 採用する方法で 信頼を広範に委任することによって導入される セキュリティ上の弱点について 学ぶことが強く求められます。

5.2 拡張性

検証可能なクレデンシャル・データモデルの目標の1つは、許可不要の革新を可能にすることです。 これを実現するには、データモデルがさまざまな方法で拡張可能である必要があります。 データモデルには次のことが求められます。

このデータモデリングのアプローチは、しばしば オープンワールド仮定と呼ばれます。これは、任意のエンティティが任意の他の エンティティについて何でも述べることができる、という意味です。このアプローチは、 単純で予測可能なソフトウェアシステムの構築と矛盾するように見えますが、 拡張性とプログラムの正しさのバランスを取ることは、閉じたソフトウェアシステムよりも オープンワールド仮定の下では常により困難です。

このセクションの残りの部分では、一連の例を通じて、拡張性とプログラムの正しさの 両方がどのように実現されるかを説明します。

まず、以下に示すクレデンシャルから始めると仮定します。

22: 単純なクレデンシャル
{
  "@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
{
  "@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": "2025-04-27T17:58:34Z",
    "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ",
    "cryptosuite": "ecdsa-rdfc-2019",
    "proofPurpose": "assertionMethod",
    "proofValue": "z3FfiNeGUGhy8ApiRsv42y5VUPFgbieFbUJebkKhkZ6tNASNv6MkiJwNGWczfmrdYdmLZa6r3rtJ4BSF9BjnwrSo8"
  }
}
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"
  },
  "proof": {
    "type": "DataIntegrityProof",
    "created": "2025-04-27T17:58:34Z",
    "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv",
    "cryptosuite": "ecdsa-sd-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0AhVhA8DUmqMDGQOAZ8hIuyi_X-LbT_fD_guDAKeRkRbAwk8aXyQeTRQErpRbOMQiYhWHKelW9XSZSIU3_dk8s-SLLIVgjgCQCEJqTiBGYPxkutgRjtMH-_iViqDBvJl4I9XVBXrsRRBhYIC2fjWyVwswq0oXkkyYFTxwdT5k-XZWMJx7JdwFPfALfg1hApuvVmqTlFFKpI79s8M8CND3arkiGE6talSgE8n2iT9NxbWYgiqH0s3Zxo_eXGCbBoxibB3_VMt9huvsz51yhxVhAj55Js6Ka1i7-mfjrszFmD1W0Lc81XKCtAqHvF-qY2XWd6cpHIwWlSvU3NxSoYpcAdxUrgAu17iEmHMLvpdyllFhAo4kADpzjQ_AeB0nvp-IzeawelLeusg8t2M2yZLPzcN3R4alEKnbWofwSflHD2Yx_QQW3U9Ck9YALaKZbO_KIRYFnL2lzc3Vlcg"
  }
}
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"
  },
  "proof": {
    "type": "DataIntegrityProof",
    "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD",
    "cryptosuite": "bbs-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0ChVhQtDW_taTeCBSwoqWX3rzUAFmrR8_TAfE8027nlDX8x4Eiquv_i6S7XU_4mnGV-ODaZYnVuh47RBcLtkevGmEDr_0aXc7ujmM6icKfQgg88cRYQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArvqENcCm8D2khyMGr7-FGFdx818_ufbFmo8hKn_2FgMpYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFggPmXI3YCyx-_cwMML4xSJvv9xy0Xvrw9Qb6s21_i5rHiBZy9pc3N1ZXI"
  }
}
保護ヘッダー
{
  "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
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vdmMuZXhhbXBsZS9jcmVkZW50aWFscy80NjQzIiwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOiJodHRwczovL2lzc3Vlci5leGFtcGxlL2lzc3VlcnMvMTQiLCJ2YWxpZEZyb20iOiIyMDE4LTAyLTI0VDA1OjI4OjA0WiIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImlkIjoiZGlkOmV4YW1wbGU6YWJjZGVmMTIzNDU2NyIsIm5hbWUiOiJKYW5lIERvZSJ9fQ .p2BTVD1miV8CyTx1ivkbBmBo_LzoMNyQbDPP1_bxRMov_umGGpsw9ngQ5bF245MAbtH-yJw7L0wx14KKQC1gvw
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+cose
d28443a10128a05901487b2240636f6e74657874223a5b2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f7632222c2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f6578616d706c65732f7632225d2c226964223a22687474703a2f2f76632e6578616d706c652f63726564656e7469616c732f34363433222c2274797065223a5b2256657269666961626c6543726564656e7469616c225d2c22697373756572223a2268747470733a2f2f6973737565722e6578616d706c652f697373756572732f3134222c2276616c696446726f6d223a22323031382d30322d32345430353a32383a30345a222c2263726564656e7469616c5375626a656374223a7b226964223a226469643a6578616d706c653a61626364656631323334353637222c226e616d65223a224a616e6520446f65227d7d5840eeb9cf85c67689580f3f73aef32e28e495412ab15f694bec8522b52153966a32c16dace5627374f50fef36b7df36415b2a79e652fa87598940e83d0ff972a167
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJpYXQiOjE3NDU3NzY3MTQsImV4cCI6MTc0Njk4NjMxNCwiX3NkX2FsZyI6InNoYS0yNTYiLCJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaXNzdWVyIjoiaHR0cHM6Ly9pc3N1ZXIuZXhhbXBsZS9pc3N1ZXJzLzE0IiwidmFsaWRGcm9tIjoiMjAxOC0wMi0yNFQwNToyODowNFoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJuYW1lIjoiSmFuZSBEb2UiLCJfc2QiOlsidVE2NkFmZXF3dWY0Y2s5NXI2cTFWZVZEM3FVYjU0VTJtUmdZdGRWQVpkbyJdfSwiX3NkIjpbIktwdURNMGVHaWtoNXBiVjhUR1lrYjZTdDNaLUZadkNtWmxkeGl1NmwydzgiLCJiUzFQMVNOc2tUb2h1QlRCeE8tNHF4bThRT21sQmlDTXhnVXJnYkNpWHM4Il19 .NUK9XkgPZ46Zc_3urENrSvkN0RRkNUw31ki9YFAJVhggzxBJhYHNBWK1NtFhu6cQU1o0XqKjaYVMXHsCB4SGGQ ~WyJTZDNNNUZ1LTl3dnRaZU85RTE2dEx3IiwgImlkIiwgImh0dHA6Ly92Yy5leGFtcGxlL2NyZWRlbnRpYWxzLzQ2NDMiXQ~WyJKeHpWdGlUWjE3UVBpRDZpdVJIZDh3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIl1d~WyJwUEY1VG95bFhTa19FeU8zUmhJT2RRIiwgImlkIiwgImRpZDpleGFtcGxlOmFiY2RlZjEyMzQ1NjciXQ~
{
  "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
  "alg": "ES256"
}
{
  "iat": 1745776714,
  "exp": 1746986314,
  "_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": [
      "uQ66Afeqwuf4ck95r6q1VeVD3qUb54U2mRgYtdVAZdo"
    ]
  },
  "_sd": [
    "KpuDM0eGikh5pbV8TGYkb6St3Z-FZvCmZldxiu6l2w8",
    "bS1P1SNskTohuBTBxO-4qxm8QOmlBiCMxgUrgbCiXs8"
  ]
}

主張: id

SHA-256ハッシュ: KpuDM0eGikh5pbV8TGYkb6St3Z-FZvCmZldxiu6l2w8

開示: WyJTZDNNNUZ1LTl3dnRaZU85RTE2dEx3IiwgImlkIiwgImh0dHA6Ly92Yy5leGFtcGxlL2NyZWRlbnRpYWxzLzQ2NDMiXQ

内容: [
  "Sd3M5Fu-9wvtZeO9E16tLw",
  "id",
  "http://vc.example/credentials/4643"
]

主張: type

SHA-256ハッシュ: bS1P1SNskTohuBTBxO-4qxm8QOmlBiCMxgUrgbCiXs8

開示: WyJKeHpWdGlUWjE3UVBpRDZpdVJIZDh3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIl1d

内容: [
  "JxzVtiTZ17QPiD6iuRHd8w",
  "type",
  [
    "VerifiableCredential"
  ]
]

主張: id

SHA-256ハッシュ: uQ66Afeqwuf4ck95r6q1VeVD3qUb54U2mRgYtdVAZdo

開示: WyJwUEY1VG95bFhTa19FeU8zUmhJT2RRIiwgImlkIiwgImRpZDpleGFtcGxlOmFiY2RlZjEyMzQ1NjciXQ

内容: [
  "pPF5ToylXSk_EyO3RhIOdQ",
  "id",
  "did:example:abcdef1234567"
]

この検証可能なクレデンシャルは、 did:example:abcdef1234567に関連付けられたエンティティが、値Jane Doeを持つ nameを持っていることを述べています。

ここで、開発者が検証可能なクレデンシャルを拡張し、 社内参照番号とJaneの好きな食べ物という2つの追加情報を格納したいと仮定します。

最初に行うことは、以下に示すように、2つの新しい用語を含むJSON-LDコンテキストを 作成することです。

23: 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で 公開されていると仮定すると、この例を、コンテキストを含め、新しい プロパティクレデンシャル検証可能なクレデンシャルに追加することで 拡張できます。

24: カスタム拡張を持つ検証可能なクレデンシャル
{
  "@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を使用することが含まれます。 これらのアプローチについては、付録 B. コンテキスト、語彙、型、およびクレデンシャル・スキーマで さらに詳しく扱います。

実装者には、この仕様における拡張ポイント、たとえばセクション4.10 ステータス4.11 データ スキーマ4.12 保護メカニズム5.4 更新5.5 利用条件、および 5.6 証拠に細心の注意を払うことが推奨されます。この仕様はそれらの拡張ポイントに 対する具体的な実装を定義しませんが、検証可能なクレデンシャル拡張文書は、 開発者がこれらの拡張ポイントから使用できる、非公式で精選された拡張の一覧を提供します。

意味的相互運用性

アプリケーション固有の語彙で新しい用語を定義する場合、語彙の作成者は Linked Data公開のベストプラクティス詳細なチェックリストに 従うSHOULDです。特に、次の指針が とりわけ重要です。

  • 可能な場合は常に、Schema.orgなど、 よく知られた公開語彙で定義されている用語とそれに対応するURLを再利用することが RECOMMENDEDされます。
  • 新しい用語は、それぞれの用語について新しいURLを定義しなければなりません (MUST)。その際、[LINKED-DATA]の一般的なガイドラインに 従うことが期待され、特に次が該当します。
    • 各用語の意味論と使用上の制約を説明する、人間可読な文書を公開しなければなりません (MUST)。
    • すべての新しい用語の集合を、RDF Schema 1.1を使用した 機械可読な語彙として公開することもRECOMMENDEDされます。
    • 用語のURLを参照解決でき、その説明および/または形式的定義が得られるべきです (SHOULD)。

さらに、機械可読な記述(すなわち JSON-LDコンテキスト文書)は、 その語彙の@context プロパティで 指定されるURLに公開されなければなりません(MUST)。このコンテキストは、各用語を対応するURLへ 対応付けなければならず(MUST)、場合によっては プロパティ値の型などの追加の制約を伴います。相互運用性を求める実装者には、 @context プロパティの値の想定される順序を説明する 人間可読な文書も公開することが期待されます。

注記: 用語の再定義は許可されていません

アクティブ・コンテキストを処理する際、 この仕様で定義される基本JSON-LDコンテキスト文書によって定義された アクティブ・コンテキストについては、準拠するJSON-LDベースのプロセッサは、JSON-LDコンテキストが いずれかの用語を再定義するとエラーを生成します。既存の用語の定義を変更する 唯一の方法は、その新しい用語のスコープ内でアクティブ・コンテキストをクリアする 新しい用語を導入することです。この機能に関心のある作成者は、JSON-LD 1.1仕様の @protected キーワードについて読むべきです。

適合文書は、本番環境で @vocab機能を 使用するべきではありません(SHOULD NOT)。これはJSON用語の衝突につながり、他のアプリケーションとの間に 意味的な曖昧さを生じさせる可能性があるためです。代わりに、適切な相互運用性を 実現するために、適合文書は、セクション5.2 拡張性で前述したように、アプリケーションで使用されるすべての用語を定義する JSON-LDコンテキストを使用するべきです(SHOULD)。適合文書が、使用されるすべての用語を定義する JSON-LDコンテキストを使用しない場合、@contextプロパティの最後の値として https://www.w3.org/ns/credentials/undefined-terms/v2を 含めなければなりません(MUST)。

5.4 更新

システムが、期限切れの検証可能なクレデンシャルを手動または自動で更新できるように することは有用です。検証可能なクレデンシャルの有効期間の詳細については、セクションA.7 有効期間を参照してください。 この仕様では、発行者が更新サービスへのリンクを含められるようにする refreshService プロパティを定義します。

発行者は、更新サービスが検証者または 保有者(またはその両方)を対象としている場合、 検証可能なクレデンシャル内の要素として 更新サービスを含めることができ、保有者のみを対象としている場合には 検証可能なプレゼンテーション内に含めることができます。 後者の場合、これにより保有者は、検証者と共有する検証可能なプレゼンテーションを作成する前に、 検証可能なクレデンシャルを更新できます。前者の場合、 検証可能なクレデンシャル内に更新サービスを含めることで、 保有者または検証者のいずれかが、 将来クレデンシャルを更新できるようになります。

更新サービスは、クレデンシャルが期限切れになった場合、または 発行者クレデンシャルのステータス情報を公開しない場合にのみ 使用されることが期待されます。発行者は、公開情報を含まない、またはその更新サービスが何らかの方法で 保護されていない検証可能なクレデンシャルに、 refreshService プロパティを入れないことが推奨されます。

refreshService
refreshService プロパティの値は、 受信者のソフトウェアに、受信者が検証可能なクレデンシャルを更新できるだけの 情報を提供する、1つ以上の更新サービスでなければなりません(MUST)。各refreshService値は、その typeを指定しなければなりません(MUST)。 各更新サービスの正確な内容は、特定のrefreshService 定義によって決まります。
27: 発行者による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"
  }
}

上記の例では、発行者は、検証可能なクレデンシャルを更新サービスの urlにPOSTすることで使用できる、自動refreshServiceを指定しています。 この特定の検証可能なクレデンシャルは、元の発行者以外の誰とも共有されることを 意図していない点に注意してください。

注記: 認証されないクレデンシャル更新

refreshService プロパティ検証可能なクレデンシャルに配置して 検証者が利用できるようにすると、 保有者から制御と同意を取り除き、 検証可能なクレデンシャル検証者に直接発行できるようにして、 それによって保有者を迂回する可能性があります。

5.5 利用条件

利用条件は、発行者または保有者が、 検証可能なクレデンシャルまたは 検証可能なプレゼンテーションが発行された条件を 伝えるために使用できます。発行者は、自身の利用条件を検証可能なクレデンシャル内に配置します。 保有者は、自身の利用条件を 検証可能なプレゼンテーション内に配置します。 この仕様では、利用条件情報を表現するためのtermsOfUse プロパティを定義します。

termsOfUse プロパティの値は、 とりわけ次のいずれかまたはすべてを検証者に伝えるために使用される可能性があります。

termsOfUse
termsOfUse プロパティの値は、作成者が クレデンシャル またはプレゼンテーションを発行した際の1つ以上の利用条件ポリシーを 指定しなければなりません(MUST)。受信者(保有者または 検証者)が指定された利用条件に従う意思がない場合、 それは自己責任で行うものであり、明示された利用条件に違反した場合には法的責任を 負う可能性があります。各termsOfUse値は、たとえば TrustFrameworkPolicyなど、そのを指定しなければならず(MUST)、そのインスタンスidを指定してもよいです (MAY)。各利用条件の正確な内容は、特定の termsOfUse 定義によって決まります。
28: 発行者による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」であり、ポリシーへの特定のリンクを伴うことを 主張しています。

この機能は、市民を機微データの予期しない使用から保護しようとして、 政府発行の検証可能なクレデンシャルが、デジタルウォレットに対して その使用を同様の政府組織に限定するよう指示するために使用されることが期待されています。 同様に、民間業界によって発行される一部の検証可能なクレデンシャルは、 組織内の部門内、または営業時間中に使用を限定することが期待されています。 実装者には、この進化中の機能について、Verifiable Credentials Implementation Guidelines [VC-IMP-GUIDE]文書の 適切なセクションでさらに読むことが強く求められます。

5.6 証拠

証拠は、発行者が、検証者検証可能なクレデンシャル内の追加の補足情報を 提供するために含めることができます。これは、検証者が、その検証可能なクレデンシャル内の主張に依拠する信頼度を 確立するために使用できます。たとえば、発行者は、主体によって提供された物理的な文書を確認したり、 クレデンシャルを発行する前に一連の 身元調査を行ったりできます。特定のシナリオでは、この情報は、与えられた クレデンシャルに依拠することに関連するリスクを判断する際に、 検証者にとって有用です。

この仕様では、証拠情報を表現するためのevidence プロパティを定義します。

evidence
存在する場合、evidence プロパティの値は、 単一のオブジェクト、または1つ以上のオブジェクトの集合でなければなりません(MUST)。次のプロパティが、 すべての証拠オブジェクトに対して定義されます。
id
id プロパティOPTIONALです。証拠オブジェクトに一意の識別子を 提供するために使用してもよいです(MAY)。存在する場合、 セクション 4.4 識別子の規範的な指針に従わなければなりません (MUST)。
type
type プロパティREQUIREDです。これは、オブジェクトによって表現される証拠情報の 型を表現するために使用されます。セクション 4.5 の関連する規範的な指針に従わなければなりません (MUST)。
注記: 証拠を提供するための戦略については実装ガイドを参照してください

添付ファイル、およびクレデンシャルや クレデンシャル以外のデータへの参照が仕様によってどのようにサポートされる可能性があるかについては、 セクション 5.3 関連リソースの完全性を参照してください。

29: スキル達成クレデンシャルを裏付ける証拠の例
{
  "@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 保護メカニズムを参照してください。

5.7 ゼロ知識証明

ゼロ知識証明は保護メカニズムであり、保有者が、実際の値を開示せずに、値を含む 検証可能なクレデンシャルを保有していることを 証明できるようにします。たとえば、誕生日を明らかにせずに個人が25歳を超えていることを 証明できるようにします。このデータモデルは、ゼロ知識証明を使用して保護されることを サポートしています。

ゼロ知識証明メカニズムによって可能となる、検証可能なクレデンシャルと互換性のある 機能には、次のものがあります。

保護メカニズムを作成する仕様作成者は、検証者保有者を複数の検証可能なプレゼンテーションを通じて異なる 検証者間で相関付けられるような情報を漏らす設計にしては なりません(MUST NOT)。

すべてのゼロ知識証明メカニズムですべての機能がサポートされるわけではありません。 特定のゼロ知識証明メカニズムが提供する機能や技法、およびそれらを 検証可能なクレデンシャルとともに使用するための 規範的要件に関する具体的な詳細は、そのゼロ知識証明メカニズムで検証可能なクレデンシャルを保護するための仕様に 記載されることになります。 そのような仕様の例については、Data Integrity BBS Cryptosuites v1.0を 参照してください。

ほとんどの場合、保有者検証可能なクレデンシャルで ゼロ知識メカニズムを利用するには、発行者がこれらの機能をサポートする方法で 検証可能なクレデンシャルを保護する必要があることに 注意します。

以下の図は、ゼロ知識で検証可能なクレデンシャルを発行し提示するために、 データモデルがどのように使用され得るかを示しています。

左側の検証可能な
            クレデンシャル1と検証可能なクレデンシャル2が、
            右側のプレゼンテーション内の派生クレデンシャル1と
            派生クレデンシャル2に対応している。検証可能なクレデンシャル1には
            Context、Type、ID、Issuer、Issue Date、Expiration
            Date、CredentialSubject、およびProofが含まれ、
            CredentialSubjectにはGivenName、FamilyName、および
            Birthdateが含まれ、ProofにはSignature、Proof of
            Correctness、およびAttributesが含まれる。検証可能なクレデンシャル2には
            Context、Type、ID、Issuer、Issue Date、Expiration
            Date、CredentialSubject、およびProofが含まれ、
            CredentialSubjectにはUniversityが含まれ、その中に
            Departmentが含まれ、その中にDegreeAwardedが含まれ、ProofにはSignature、Proof of
            Correctness、およびAttributesが含まれる。右側の
            プレゼンテーション図にはContext、Type、ID、
            VerifiableCredential、およびProofが含まれ、VerifiableCredentialには
            派生クレデンシャル1と派生クレデンシャル2が含まれ、ProofにはCommon Link
            Secretが含まれる。派生クレデンシャル1にはContext、Type、ID、
            Issuer、Issue Date、CredentialSubject、およびProofが含まれ、
            CredentialSubjectにはAgeOver18が含まれ、Proofには
            Knowledge of Signatureが含まれる。派生クレデンシャル2には
            Context、Type、ID、Issuer、Issue Date、CredentialSubject、
            およびProofが含まれ、CredentialSubjectにはDegreeが含まれ、
            ProofにはKnowledge of Signatureが含まれる。線は
            検証可能なクレデンシャル1のBirthdateを派生クレデンシャル1のAgeOver18に
            結び付けている。線は検証可能なクレデンシャル2のDegreeAwardedを
            派生クレデンシャル2のDegreeに結び付けている。
12 ZKPプレゼンテーションにおける クレデンシャルと派生クレデンシャルの関係の視覚的な例。

Data Integrity BBS Cryptosuites v1.0のリンク不能な選択的開示保護メカニズムを使用する 検証可能なクレデンシャル検証可能なプレゼンテーションの例を以下に示します。

30: 基本証明を持つData Integrity BBS Cryptosuiteを使用する検証可能なクレデンシャル
{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://w3id.org/citizenship/v3"
  ],
  "type": ["VerifiableCredential", "PermanentResidentCard"],
  "issuer": {
    "id": "did:web:credentials.utopia.example",
    "image": "data:image/png;base64,iVBORw0KGgo...YII="
  },
  "identifier": "83627465",
  "name": "Permanent Resident Card",
  "description": "Government of Utopia Permanent Resident Card.",
  "validFrom": "2024-08-01T00:00:00Z",
  "validUntil": "2029-12-01T00:00:00Z",
  "credentialSubject": {
    "type": ["PermanentResident", "Person"],
    "givenName": "JANE",
    "familyName": "SMITH",
    "gender": "Female",
    "image": "data:image/png;base64,iVBORw0KGgoAA...Jggg==",
    "residentSince": "2015-01-01",
    "lprCategory": "C09",
    "lprNumber": "999-999-999",
    "commuterClassification": "C1",
    "birthCountry": "Arcadia",
    "birthDate": "1978-07-17"
  },
  "proof": {
    "type": "DataIntegrityProof",
    "verificationMethod": "did:web:playground.alpha.chapi.io#zUC75LjjCLGKRxSissX1nAebRDmY4Bv4T6MAbzgaap9Q8rAGf6SEjc2Hf4nH6bUPDwky3GWoYcUjMCcEqRRQfXEiNwfeDwNYLoeqk1J1W2Ye8vCdwv4fSd8AZ1yS6UoNzcsQoPS",
    "cryptosuite": "bbs-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0ChVhQjYs9O7wUb3KRSMaIRX7jmafVHYDPYBLD4ta85_qmuXTBU_t2Ir7pNujwRE6fERsBUEZRSjJjtI-hqOqDs3VvBvH6gd3o2KeUS2V_zpuphPpYQEkapOeQgRTak9lHKSTqEQqa4j2lyHqekEeGvzPlqcHQGFccGifvLUXtP59jCuGJ86HDA9HL5kDzUT6n4Gi50HlYYIzNqhbjIxlqOuxO2IgIppSTWjQGeer34-PmKnOzKX8m_9DHPhif7TUf5uTV4OQWdhb0SxHnJ-CPu_z9FJ5ACekBQhz6YWS0_CY6j_ibucXzeVfZwLv1W47pjbt-l1Vl5VggSn2xVt69Q0GD9mPKpOhkKV_hyOL7i6haf7bq-gOKAwWDZy9pc3N1ZXJtL2lzc3VhbmNlRGF0ZW8vZXhwaXJhdGlvbkRhdGU"
  }
}

上記の例は、発行者がBBSベースのリンク不能な開示方式を有効にして、 基本証明を作成できるようにした検証可能なクレデンシャルです。 その基本証明はその後、保有者が、元の検証可能なクレデンシャルから特定の情報だけを 明らかにする派生証明を作成するために使用できます。

31: 派生クレデンシャルと証明を持つData Integrity BBS Cryptosuiteを使用する検証可能なプレゼンテーション
{
  @context: "https://www.w3.org/ns/credentials/v2"
  type: "VerifiablePresentation",
  verifiableCredential: {
    "@context": [
      "https://www.w3.org/ns/credentials/v2",
      "https://w3id.org/citizenship/v3"
    ],
    "type": ["VerifiableCredential", "PermanentResidentCard"],
    "issuer": {
      "id": "did:web:issuer.utopia.example",
      "image": "data:image/png;base64,iVBORw0KGgo...YII="
    },
    "name": "Permanent Resident Card",
    "description": "Government of Utopia Permanent Resident Card.",
    "validFrom": "2024-08-01T00:00:00Z",
    "validUntil": "2029-12-01T00:00:00Z",
    "credentialSubject": {
      "type": ["PermanentResident", "Person"],
      "birthCountry": "Arcadia"
    },
    "proof": {
      type: "DataIntegrityProof",
      verificationMethod: "did:web:issuer.utopia.example#zUC75LjjCLGKRxSissX1nAebRDmY4Bv4T6MAbzgaap9Q8rAGf6SEjc2Hf4nH6bUPDwky3GWoYcUjMCcEqRRQfXEiNwfeDwNYLoeqk1J1W2Ye8vCdwv4fSd8AZ1yS6UoNzcsQoPS",
      cryptosuite: "bbs-2023",
      proofPurpose: "assertionMethod",
      proofValue: "u2V0DhVkCkLdnshxHtgeHJBBUGPBqcEooPp9ahgqs08RsoqW5EJFmsi70jqf2X368VcmfdJdYcYJwObPIg5dlyaoBm34N9BqcZ4RlTZvgwX79ivGnqLALC0EqKn2wOj5hRO76xUakfLGIcT4mE-G7CxA1FTs8sRCWy5p6FozelBYiZU2YlhUpJ7pBwelZ9wnlcbj4q-KyxAj5GU2iWp7-FxU-E624DmdT-yvCkAGRRrYej6lMwg7jB9uCHypOXXH2dVZ-jpf74YBaE4rMTxPFh60GN4o3S65F1fMsJbEMLdrXa8Vs6ZSlmveUcY1X7oPr1UIxo17ehVTCjOxWunYqrtLi9cVkYOD2s9XMk1oFVWBB3UY29axXQQXlZVfvTIUsfVc667mnlYbF7a-ko_SUfeY2n3s1DOAap5keeNU0v2KVPCbxA2WGz7UJy4xJv2a8olMOWPKjAEUruCx_dsbyicd-9KGwhYoUEO3HoAzmtI6qXVhMbJKxPrhtcp8hOdD9izVS5ed4CxHNaDGPSopF_MBwjxwPcpUufNNNdQwesrbtFJo0-P-1CrX_jSxKFMle2b3t24UbHRbZw7QnX4OG-SSVucem5jpMXTDFZ8PLFCqXX0zncJ_MQ-_u-liE-MwJu3ZemsXBp1JoB2twS0TqDVzSWR7bpFZKI9_07fKUAmQNSV_no9iAgYRLuPrnnsW1gQgCV-nNqzbcCOpzkHdCqro6nPSATq5Od3Einfc683gm5VGWxIldM0aBPytOymNz7PIZ6wkgcMABMe5Vw46B54ftW-TN5YZPDmCJ_kt7Mturn0OeQr9KJCu7S0I-SN14mL9KtGE1XDnIeR-C_YZhSA3vX4923v1l3vNFsKasqy9iEPHKM0hcogABAQCGAAECBAUGhAMJCgtYUnsiY2hhbGxlbmdlIjoiNGd2OFJyaERPdi1OSHByYlZNQlM1IiwiZG9tYWluIjoiaHR0cHM6Ly9wbGF5Z3JvdW5kLmFscGhhLmNoYXBpLmlvIn0"
    }
  }
}

上記の検証可能なプレゼンテーションには、前の例の情報の リンク不能なサブセットを含む検証可能なクレデンシャルと、検証者が、その情報が期待される発行者に由来し、この特定の情報交換に結び付けられていることを 検証するために使用できる派生証明が含まれています。

5.8 時刻の表現

実装者には、時刻値の表現と処理は見た目ほど単純ではなく、世界の異なる地域で すぐには明らかでなく、また一様にも観測されないさまざまな特異性があることを 理解することが強く求められます。たとえば:

これらは、壁の時計に表示される実際の時刻が、ある地域には存在しても別の地域には 存在しない可能性があることを示す、ほんの数例にすぎません。このため、実装者には、 夏時間/サマータイムの影響を受ける値よりも、Zタイムゾーンに固定された 値など、より普遍的な時刻値を使用することが強く求められます。

この仕様は、[XMLSCHEMA11-2]仕様によって 最初に確立されたdateTimeStamp構造を使用することで、普遍的に認識される 日付と時刻の組み合わせの数を増やし、時刻値の誤解の可能性を減らそうとします。 異なるタイムゾーン間の誤解を減らすため、適合文書で表現されるすべての時刻値は、 値の末尾にZで示される協定世界時(UTC)またはUTCに対するタイムゾーン・ オフセットを伴うdateTimeStamp形式で指定されるべきです (SHOULD)。オフセットなしで誤って直列化された時刻値は、 UTCとして解釈しなければなりません(MUST)。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値の生成において 多くの場合エラーがありません。以下に示す正規表現(ここで読みやすさのために含めた 空白を除いたもの)は、現代のシステムでライブラリ生成の日付と時刻を処理する際には 多くの場合十分です。

32: 有効なXML Schema 1.1: Part 2 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))

5.9 認可

このセクションは非規範的です。

検証可能なクレデンシャルは、 主体を確実に識別する手段として意図されています。 ロールベース・アクセス制御(RBAC)および属性ベース・アクセス制御(ABAC)が、 リソースへのアクセスを主体に認可する手段としてこの識別に依存することは 認識されていますが、この仕様はRBACまたはABACの完全な解決策を提供するものではありません。 付随する認可フレームワークなしに、この仕様を認可に使用することは適切ではありません。

ワーキンググループは、この仕様の作成中に認可のユースケースを検討し、この仕様の上に 構築されるアーキテクチャ層としてその作業を進めています。

5.10 予約済み拡張ポイント

この仕様では、可能な拡張ポイントとして機能するために、いくつかのプロパティを予約しています。 一部の実装者はこれらのプロパティに関心を示しましたが、それらをこの仕様に含めることは 時期尚早であると考えられました。これらのプロパティはいずれもこの仕様によって 定義されていないことに注意することが重要です。したがって、実装者には、これらの プロパティの使用は実験的なものと見なされることが警告されます。

実装者はこれらのプロパティを使用してもよいですが(MAY)、 それらおよび/またはそれらの意味は、規範的に仕様化される過程で変更されることを 予期すべきです(SHOULD)。 実装者は、それらの実装を説明する公開された仕様なしにこれらのプロパティを 使用すべきではありません(SHOULD NOT)。

以下のプロパティがどのように使用されるかに関する衝突を避けるため、実装は 予約済みプロパティに関連付けられた値の中でtypeプロパティを指定しなければなりません (MUST)。type情報の追加に関する詳細については、 セクション4.5 を参照してください。

予約済み プロパティ 説明
confidenceMethod 検証者が、検証可能なクレデンシャルまたは検証可能なプレゼンテーション内または それに関するプロパティ値が正確であるという確信を高めるために使用できる、 1つ以上の方法を指定するために使用されるプロパティ。関連する語彙URLは https://www.w3.org/2018/credentials#confidenceMethodで なければなりません(MUST)。
renderMethod クレデンシャルを視覚、聴覚、触覚、またはその他の形式にレンダリングするための 1つ以上の方法を指定するために使用されるプロパティ。関連する語彙URLは https://www.w3.org/2018/credentials#renderMethodで なければなりません(MUST)。

この仕様で定義される拡張ポイント、およびこのセクションで定義される予約済み拡張ポイントに 関連付けられた仕様の非公式な一覧は、検証可能なクレデンシャル拡張で 見つけることができます。ディレクトリ内で予約済み拡張ポイントを参照する項目は、 実験的なものとして扱うべきです(SHOULD)。

5.11 エコシステム互換性

この文書で提供されるデータモデルをネイティブには使用しないものの、この仕様の多くの概念に 整合するデジタル・クレデンシャル形式がいくつかあります。公開時点で、これらの デジタル・クレデンシャル形式の例には、 JSON Web Tokens(JWT)、 CBOR Web Tokens(CWT)、 JSON Advanced Electronic Signature(JAdES)、 ISO-18013-5:2021 (mDL)、 AnonCreds Gordian Envelopes、および Authentic Chained Data Containers(ACDC)が含まれます。

概念的に整合するデジタル・クレデンシャル形式が、このセクションで提供される規則に従って 適合文書に変換できる場合、それらは W3C検証可能なクレデンシャル・エコシステムと 互換性がある」と見なされます。仕様作成者には、検証可能なクレデンシャル・エコシステムとの 互換性を可能にする変換を文書化する際、次の規則に従うことが推奨されます。 変換仕様は —

注記: 何が検証可能なクレデンシャルを構成するのか?

読者には、デジタル・クレデンシャルがW3C 検証可能なクレデンシャル・エコシステムと互換性があると見なされるのは、それが 適合文書であり、この仕様におけるそれぞれの 要件で説明される少なくとも1つの保護メカニズムを使用する場合に限られることが 告げられます。一部のコミュニティでは、適合文書ではない一部のデジタル・クレデンシャル形式を 「検証可能なクレデンシャル」と呼ぶことがありますが、そうしたとしても、その デジタル・クレデンシャルがこの仕様に準拠することにはなりません。

5.12 検証可能なクレデンシャル・グラフ

検証可能なクレデンシャルを 表現する場合(たとえばプレゼンテーション内で)、ある検証可能なクレデンシャル内のデータが、別の 検証可能なクレデンシャル内の 同じデータと誤認されないようにすることが重要です。たとえば、次の形式のオブジェクトを それぞれ含む2つの検証可能なクレデンシャルがあるとします。 {"type": "Person", "name": "Jane Doe"}この場合、一方のオブジェクトがもう一方のオブジェクトと同じ人物を記述しているか どうかを判断することはできません。言い換えると、それらが同じエンティティ および/またはプロパティについて述べていることを確認せずに、2つの検証可能なクレデンシャル間でデータを マージすると、破損したデータセットにつながる可能性があります。

異なる検証可能なクレデンシャルからの データが誤って混在しないようにするため、各検証可能なクレデンシャルをカプセル化するために 検証可能な クレデンシャル・グラフという概念が使用されます。 単純な検証可能なクレデンシャル、すなわちJSON-LD文書が 単一のクレデンシャルと、場合によっては関連する証明を含む場合、このグラフは デフォルト・グラフです。プレゼンテーションでは、 プレゼンテーションverifiableCredentialプロパティに関連付けられた各値は、 VerifiableCredentialGraph型の別個の 名前付きグラフであり、その中には単一の 検証可能なクレデンシャルまたは 包み込まれた検証可能なクレデンシャルが含まれます。

これらのグラフを使用すると、JSON-LD処理を行う際に具体的な効果があり、 あるグラフ内のグラフノード識別子を別のグラフ内のものから適切に分離します。 入力をアプリケーション固有のJSON-LD文書に限定する実装者も、たとえば credentialSubject.idが両方の検証可能なクレデンシャルで同じだが、オブジェクトが 前の段落で説明した「Jane Doe」形式のオブジェクトを含む可能性がある場合など、 ある検証可能なクレデンシャルの データを別のデータとマージする際には、この点を念頭に置く必要があります。似たような プロパティを持つように見えるが、URLなどのグローバル識別子を使用するid プロパティを含まないオブジェクトをマージしないことが重要です。

5.13 保護メカニズム 仕様

セクション4.12 保護メカニズムで説明したように、 実装者が適合文書を保護する際に使用できる戦略は複数あります。 有用性と相互運用性を最大化するため、適合文書を保護する新しい方法を作成したい仕様作成者には、 このセクションの指針が提供されます。

保護メカニズム仕様は、適合文書にコンテンツ完全性保護を提供する規範的な アルゴリズムを文書化しなければなりません(MUST)。 そのアルゴリズムは一般的な性質のものであってもよく(MAY)、 適合文書以外のデータを保護するために 使用してもよいです(MAY)。

保護メカニズム仕様は、proofやJOSE/COSEヘッダー・パラメーターおよび署名などの 保護メカニズム情報を含めずに、単独で、保護された適合文書内の情報を返す 検証アルゴリズムを提供しなければなりません(MUST)。 検証アルゴリズムは、保護メカニズムの詳細など、(たとえば妥当性確認中またはデバッグ目的で) 役立つ可能性がある追加情報を返してもよいです(MAY)。 検証アルゴリズムは、メディア型(文字列 inputMediaType)と入力データ(バイト列またはマップ inputData)を受け取る インターフェイスを提供しなければなりません(MUST)。 保護メカニズム仕様は、この文書で指定されるものに加えて、アルゴリズムおよびインターフェイスを 提供してもよいです(MAY)。検証アルゴリズムは、少なくとも次の 項目を含む検証結果を返します。

ブール値 verified
検証が成功した場合は値がtrue、成功しなかった場合は falseである検証ステータス。
マップ verifiedDocument
正常に保護された情報のみを含む文書。
文字列 mediaType
[RFC6838]で定義される メディア型。

保護メカニズム仕様は、妥当性確認にとって重要な、URLによって参照される任意の情報に 完全性保護を提供すべきです(SHOULD)。この保護を実現できる メカニズムについては、セクション 5.3 関連リソースの完全性およびセクション B.1 基本コンテキストで説明されています。

新しい種類の埋め込み証明を 作成する保護メカニズム仕様は、検証可能なクレデンシャルまたは 検証可能なプレゼンテーション証明グラフに関連付けるプロパティを指定しなければなりません (MUST)。 保護メカニズムに対する要件は次のとおりです。

注記

最後の要件は、保護メカニズムがデフォルト・グラフを保護し、検証可能なプレゼンテーションについては、 プレゼンテーションの各検証可能なクレデンシャルを、それぞれの 証明グラフと ともに保護することを意味します。9または14も参照してください。

[VC-DATA-INTEGRITY]で定義される proofプロパティは、埋め込み保護メカニズムによって使用してもよいです (MAY)。

保護メカニズム仕様は、検証可能なクレデンシャル拡張文書の 保護メカニズム セクションに、その保護メカニズムを登録すべきです(SHOULD)。

注記: 保護メカニズムの選択はユースケースに依存します

許容される保護メカニズムは複数あり、この仕様は 検証可能なクレデンシャルまたは検証可能なプレゼンテーションで使用する 特定の保護メカニズムを義務付けていません。 この仕様を作成したワーキンググループは、次の2つの保護メカニズムの選択肢を標準化しました。 検証可能なクレデンシャル・データ完全性 1.0 [VC-DATA-INTEGRITY]およびJOSEおよび COSEを使用した検証可能なクレデンシャルの保護 [VC-JOSE-COSE]。 コミュニティに知られているその他の保護メカニズムは、 検証可能なクレデンシャル拡張文書の 保護メカニズム セクションで見つけることができます。

6. 構文

セクション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 有効 期間)。その他すべてのプロパティは、 存在する場合、単一の値または値の配列のいずれかとして表現されます。

6.1 JSON-LD

この仕様では、ここで説明されるデータモデルをシリアライズするために JSON-LD 1.1を使用します。 JSON-LDは、検証可能なクレデンシャルの基盤となる グラフベースのデータモデル機械可読な セマンティクスの表現を可能にし、さらにデータモデルを拡張する際にも有用です(セクション 3. コア・データモデルおよび5.2 拡張性を参照)。

JSON-LDは、リンクトデータを シリアライズするために使用されるJSONベースの形式です。リンクトデータは、 Resource Description Framework(RDF)[RDF11-CONCEPTS]を使用してモデル化されます。 RDFは、文のグラフをモデル化するための技術です。各文は 単一の主体→プロパティ→値エンティティ→属性→値とも呼ばれる) 関係であり、この仕様では 主張と呼ばれます。 JSON-LDは、慣用的なJSONを用いてRDFを表現できるようにする技術であり、 JSONに慣れた開発者がRDFをJSONとして消費するアプリケーションを 記述できるようにします。詳細については JSON-LDとRDFの関係 を参照してください。

注目すべきJSON-LDの機能

一般に、この文書で説明されるデータモデルおよび構文により、 開発者は検証可能なクレデンシャルを概ね JSON文書として扱うことができ、 例をコピーして、軽微な変更を加えて自分たちのソフトウェアシステムへ 貼り付けることができます。このアプローチの設計目標は、 異種のソフトウェアシステム群の間でグローバルな相互運用性を確保しながら、 参入障壁を低くすることです。このセクションでは、 これを可能にするために使用されるJSON-LDの機能のいくつかを説明します。 これらは多くの開発者には気づかれない可能性がありますが、 その詳細は実装者にとって関心の対象となる場合があります。この仕様で使用される JSON-LD 1.1における最も 注目すべき機能には、次のものが含まれます:

  • @idおよび@typeキーワードは、それぞれ idおよびtypeへエイリアス化されており、開発者が この仕様を慣用的なJSONとして使用できるようにします。
  • 整数、日付、測定単位、URLなどのデータ型は、 それらを必要とするユースケースに対してより強い型保証を提供するために、 自動的に型付けされます。
  • verifiableCredential プロパティ は、 JSON-LD 1.1グラフ コンテナとして定義されます。これには、異なるエンティティによって 主張されたデータセットを分離するために使用される名前付き グラフの作成が必要です。これにより、たとえば、 各発行者によって提供されるデータグラフと、 検証可能なクレデンシャルを提示する 保有者によって提供される データグラフとの間で適切な暗号学的分離が確保され、各グラフの情報の来歴が 保持されます。
  • JSON-LD 1.1@protectedプロパティ機能は、この仕様で定義された用語が 上書きされないようにするために使用されます。これは、 検証可能なクレデンシャルまたは検証可能なプレゼンテーションの先頭で同じ @context宣言が行われている限り、 JSON-LD 1.1プロセッサを使用するかどうかに関係なく、データモデルの利用者が理解するすべての用語について 相互運用性が保証されることを意味します。

JSON-LDに関する制限

相互運用性を高めるため、この仕様ではデータモデルのJSON-LD表現の使用を 制限します。application/vcまたはapplication/vpメディア型を使用する データモデルのすべての表現には、JSON-LDの コンパクト化された文書 形式を使用しなければなりません(MUST)。

セクション 6.3 型固有のクレデンシャル処理で詳述されているように、一部のソフトウェア・アプリケーションは 汎用的なJSON-LD処理を行わない場合があります。適合文書の著者は、 @context値内のJSON-LDキーワードを使用して、 検証可能なクレデンシャルまたは検証可能なプレゼンテーション内の値へグローバルに影響を与えると、 相互運用性が低下する可能性があることに注意してください。たとえば、 @baseまたは@vocabキーワードのいずれか、または両方を 設定する場合です。たとえば、これらの値を設定すると、 型固有の クレデンシャル処理を行っており、@baseおよび/または@vocab値が @context値内で表現されることを想定していない実装において、 @context値に対する誤実装されたJSON Schemaテストの失敗を引き起こす可能性があります。

相互運用性を高めるため、適合文書の著者には、 型固有の クレデンシャル処理を行う際に容易に検出できないJSON-LD機能を使用しないことが 強く推奨されます。これらの機能には、次が含まれます:

  • @context値内で、文書の用語および値の処理をグローバルに 変更するJSON-LDキーワードをインライン宣言すること。たとえば、@baseまたは @vocabを設定すること
  • 以前のコンテキスト内の宣言を上書きするJSON-LDコンテキストの使用。たとえば @vocabのリセット
  • @contextプロパティ内でのJSON-LDコンテキストのインライン宣言
  • JSON-LDの用語および型に完全なURLを使用すること(たとえば、 https://www.w3.org/2018/credentials#VerifiableCredentialまたは https://vocab.example/myvocab#SomeNewType)。これは、 JSON-LD @contextマッピング(たとえば https://www.w3.org/ns/credentials/v2内)で明示的に定義されている そのような値の短縮形式(たとえば、VerifiableCredentialまたはSomeNewType) の代わりに使用することを意味します

この仕様では@vocabの使用に注意を促していますが、実験、 開発、およびローカライズされた展開を容易にするためなど、この機能には 正当な用途があります。アプリケーション開発者が本番環境で@vocabを 使用したい場合(用語衝突を減らし、セマンティック相互運用性の利点を活用するためには 推奨されません)、@vocabの使用により「未定義の用語」エラーの報告が 無効になり、後続の使用が以前の@vocab宣言を上書きすることを 理解することが強く推奨されます。@vocabの異なる値は、 文書に含まれる情報のセマンティクスを変更する可能性があるため、 これらの変更が開発中のアプリケーションに影響するかどうか、またどのように 影響するかを理解することが重要です。

リストと配列

JSON-LD 1.1を使用する場合、リスト、配列、さらにはリストのリストも可能です。 リストおよび配列を必要とするユースケースでRDFセマンティクスを求める場合は、 JSON-LD 1.1のリストに関する ガイダンスに従うことを推奨します。

一般に、JSON配列は順序付けられていますが、JSON-LD配列は その配列が@listキーワードを使用していない限り、順序付けられていません。

注記: 配列の順序は重要でない場合がある

型固有のクレデンシャル 処理を行うことでこのデータモデルを使用することは可能ですが、 そのようにして配列を利用する者は、上記のガイダンスに従わない限り、 JSON-LDにおいて配列内の項目の順序は保証されないことを認識する必要があります。 これにより予期しない挙動が生じる可能性があります。

JSON構造または順序がアプリケーションにとって重要な場合は、 ユースケース固有の@contextを通じて、そのような要素を@jsonとして マークすることを推奨します。そのような宣言の例を以下に示します。

33: 行列を埋め込みJSONデータ構造として定義する @contextファイル
{
  "@context":
    {
      "matrix": {
        "@id": "https://website.example/vocabulary#matrix",
        "@type": "@json"
      }
    }
}

上に示したコンテキストを以下の例で使用する場合、 https://website.example/matrix/v1コンテキストを@contextプロパティに 含めることにより、credentialSubject.matrixの値はJSONセマンティクスを保持します。 2次元行列内のすべての要素の正確な順序が保持されます。

34: 埋め込みJSON データ構造を持つ検証可能なクレデンシャル
{
  "@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]
    ]
  }
}

6.2 メディア型

[RFC6838]で定義されるメディア型は、 検証可能なクレデンシャルを表現するために使用される構文、およびその他の有用な 処理ガイドラインを識別します。

この仕様のデータモデルを表現するために使用される構文は、メディア型によって 識別されるべきであり(SHOULD)、検証可能なクレデンシャルでメディア型を定義または使用する場合は、 このセクションに概説された規約に従うべきです(SHOULD)。

コア・データモデルに関連付けられるメディア型は2つあり、 セクションC. IANAに関する考慮事項に listed in the Section application/vcおよびapplication/vpとして列挙されています。

application/vcおよびapplication/vpメディア型は、特定の保護メカニズムを 暗示するものではありませんが、保護メカニズムと組み合わせて使用されることを意図しています。 これらのメディア型の完全性を保護するには、保護メカニズムを適用する必要があります。 伝達に使用されるメディア型に関係なく、コンテンツが安全であると仮定してはなりません。

メディア型の精度

このセクションは非規範的です。

時として、開発者またはシステムは、検証可能なクレデンシャルまたは検証可能なプレゼンテーションを伝達するために、 精度の低いメディア型を使用する場合があります。精度の低いメディア型を使用する理由には、 次のようなものがあります:

  • ファイル拡張子が利用できず、メディア型を判断できない場合、Webサーバーが text/plainまたはapplication/octet-streamを既定値にする。
  • 開発者が、ファイルの内容よりも特定性の低いメディア型につながる ファイル拡張子を追加する。たとえば、.jsonapplication/jsonというメディア型になり、.jsonldapplication/ld+jsonというメディア型になる場合があります。
  • プロトコルが、特定のトランザクションに対してより精度の低いメディア型を要求する。 たとえば、application/vpの代わりにapplication/jsonを使用する場合です。

実装者には、使用されるメディア型が所与のプロトコルで許容される場合に、 ペイロードから意図されたメディア型を判断できるなら、エラーを発生させないことが 強く推奨されます。たとえば、アプリケーションがapplication/vcメディア型に 関連付けられた規則に適合するペイロードのみを受け入れるにもかかわらず、 ペイロードが代わりにapplication/jsonまたはapplication/ld+jsonでタグ付けされている場合、 アプリケーションは、そのペイロードがより高精度のメディア型にも適合するかどうかを 判断するために、次の手順を実行することがあります:

  1. ペイロードをJSON文書として解析する。
  2. @contextプロパティの最初の要素が https://www.w3.org/ns/credentials/v2と一致することを確認する。
  3. JSON文書にVerifiablePresentation要素を含む最上位の typeプロパティがある場合、application/vpメディア型であると仮定する。 そのペイロードが適合する 検証可能なプレゼンテーションを表現していることを確認するため、 (この仕様に従って)追加の後続チェックを行うことが引き続き期待されます。
  4. JSON文書にVerifiableCredential要素を含む最上位の typeプロパティがある場合、application/vcメディア型であると仮定する。 そのペイロードが適合する 検証可能なクレデンシャルを表現していることを確認するため、 (この仕様に従って)追加の後続チェックを行うことが引き続き期待されます。

可能な限り、実装者には、この仕様で定義されるすべてのペイロードに対して 最も精密な(最も高精度な)メディア型を使用することが推奨されます。 また、実装者には、より低い精度のメディア型でタグ付けされたペイロードが、 より高い精度の型でタグ付けするために必要な規則を満たしていないことを意味しない、 と認識することも推奨されます。同様に、より高い精度のメディア型でタグ付けされた ペイロードが、そのメディア型に関連付けられた要件を満たすことを意味するわけではありません。 ペイロードの受信者は、関連付けられたメディア型に関係なく、 所与のシステムでの使用要件にペイロードが適合していることを確認するために、 適切なチェックを行うことが期待されます。

HTTPクライアントおよびサーバーは、acceptヘッダー内、および コンテンツ型を示す際に、検証可能なクレデンシャルおよび検証可能なプレゼンテーションに関連付けられたメディア型を使用します。 実装者には、HTTPサーバーがacceptヘッダーを無視して別のコンテンツ型を返したり、 415 Unsupported Media Typeのような エラーコードを返したりする可能性があることが警告されます。

6.3 型固有のクレデンシャル 処理

このセクションは非規範的です。

JSONはさまざまな種類の情報を表現するために使用できるため、 特定のJSON文書の消費者が著者の意図を適切に解釈するには、 それを文脈化し、他の可能な表現から曖昧性をなくす情報を持っている必要があります。 この解釈を補助する情報は、JSON文書の外部に完全に存在する場合も、 文書内からリンクされる場合もあります。コンパクト化されたJSON-LD文書には、 主張を表現するための文脈情報を内部的に表現する、またはそれへリンクする @contextプロパティが含まれます。これらの機能により、 JSON-LD文書をあるコンテキストから別のコンテキストへ変換する汎用プロセッサを 記述できるようになりますが、消費者が期待するコンテキストおよび形状をすでに使用している JSON-LD文書を受け取る場合には、これは不要です。検証可能なクレデンシャル発行者など、JSON-LD文書の著者は、 相互運用性を促進するために、適切なJSON-LDコンテキストを提供し、 これらの規則に従う必要があります。

以下の本文は、消費者がJSON-LD文書を、自分たちのアプリケーションがすでに理解している コンテキストおよび形状で表現されていることを確認し、その内容を消費するために 変換する必要がないようにする方法を理解する助けとなります。特に、これは 消費者がコンテキストをまったく理解する必要がないことを意味するものではありません。 むしろ、消費アプリケーションは、選択したコンテキストと文書形状の集合のみを 理解して扱う必要があり、その他を扱う必要はないということです。発行者は、 汎用プロセッサを使用しない消費者を支援するために、自らの検証可能なクレデンシャルに関する コンテキストおよび情報を公開できます。これは他のJSON形式データで行えるのと同様です。

全般的な JSON-LD処理は、 JSON-LDソフトウェア・ライブラリを使用して、各種の変換を行うことにより 適合文書を処理するメカニズムとして定義されます。 型固有のクレデンシャル処理は、 JSON-LDソフトウェア・ライブラリを必要としない、適合文書を処理する より軽量なメカニズムとして定義されます。検証可能なクレデンシャルの消費者の中には、 特定の型を持つクレデンシャルだけを消費すればよい場合があります。これらの消費者は、 汎用処理の代わりに型固有のクレデンシャル処理を使用できます。 型固有のクレデンシャル処理が望ましい場合があるシナリオには、次のものが含まれますが、 これらに限定されません:

つまり、消費または生成される文書が適合文書である限り、型固有のクレデンシャル 処理は許可されます。

型固有のクレデンシャル 処理が望ましい場合、実装者には 次の規則に従うことが推奨されます:

@contextプロパティに関連付けられたすべての値が期待される順序であること、 コンテキストファイルの内容が各ファイルについて既知の良好な暗号学的ハッシュと一致すること、 かつドメイン専門家がその内容を意図されたユースケースに適していると判断していることを 確認します。

静的なコンテキストファイルをJSON Schemaとともに使用することは、 上記の規則を実装するための許容可能なアプローチの1つです。これにより、 型固有のクレデンシャル処理を行う際に、 適切な用語識別、型付け、および順序を確保できます。

上記の規則は、@contextメカニズムを介してリテラルJSONキーをURIへマッピングする 2つの処理メカニズム間のセマンティック相互運用性を保証します。 全般的なJSON-LD処理は、 すべての用語が正しく指定されていることを検証するために、 そのアルゴリズムで提供される未見の@context値を使用できますが、 型固有のクレデンシャル処理のみを行う実装は、 実装が事前に理解するよう設計された特定の@context値のみを受け入れ、 JSON-LD APIを呼び出すことなく同じセマンティクスを得ます。言い換えれば、 データ交換が行われるコンテキストは、同じ適合文書セマンティクスにつながる方法で @contextを使用することにより、両方の処理メカニズムについて明示的に 示されます。

7. アルゴリズム

このセクションには、実装が検証などの一般的な操作を行うために使用できる アルゴリズムが含まれています。アルゴリズムとして表現された適合性要件は、 Infra Standard [INFRA]の規範的概念を使用します。 実装要件に関するさらなるガイダンスについては、Infra Standardアルゴリズム適合性に関するセクションを参照してください。

注記: 実装者は追加のチェック、警告、およびエラーを含めることができます。

実装者には、このセクションのアルゴリズムには、この仕様への適合性を テストするために実装が使用する最小限のチェックだけが含まれていることに 注意してください。実装には、潜在的な問題のデバッグを開発者が行うのに役立つ 有用な警告を報告する追加のチェックを提供することが期待されます。 同様に、有害なコンテンツを停止するために報告される新しい種類のエラーに つながる可能性のある追加のチェックを提供する実装もあり得ます。 これらの追加チェックのいずれかは、この仕様の将来のバージョンに 組み込まれる可能性があります。

7.1 検証

このセクションには、適合する検証者実装検証可能なクレデンシャルまたは検証可能なプレゼンテーションを検証する際に 実行しなければならない(MUST)アルゴリズムが含まれています。このアルゴリズムは、 メディア型(文字列 inputMediaType) と保護されたデータ(バイト シーケンス inputData)を取り、次を含むマップを返します:

検証アルゴリズムは次のとおりです:

  1. 次の手順を実行することにより、保護メカニズムが 適合文書を適切に保護していることを確認します:
    1. inputMediaTypeと、Verifiable Credential Extensions文書の 保護メカニズム セクション、または実装が知っているその他のメカニズムを使用して、 保護メカニズムを検証する際に使用する暗号スイートを決定し、 verifyProof関数を設定します。verifyProof関数は、 5.13 保護メカニズム仕様で説明されているインターフェイスを 実装しなければなりません(MUST)。
    2. verifyProof関数がバイトシーケンスを期待する場合は、 inputMediaTypeおよびinputDataをアルゴリズムに渡します。 verifyProof関数が マップを期待する場合は、 inputMediaTypeと、inputDataを与えた JSONバイトを Infra値へ解析する結果を渡します。resultverifyProof関数呼び出しの結果に設定します。呼び出しが成功した場合、resultには statusdocumentmediaTypecontrollercontrolledIdentifierDocumentwarnings、およびerrors プロパティが含まれます。
    3. result.statusfalseに設定されている場合、 CRYPTOGRAPHIC_SECURITY_ERRORresult.errorsに追加します。
  2. result.statustrueに設定されている場合、 result.document適合文書であることを確認します。そうで ない場合は、result.statusfalseに設定し、 resultからdocumentプロパティを削除し、少なくとも 1つのMALFORMED_VALUE_ERRORresult.errorsに追加します。デバッグ処理を支援するために、 その他の警告およびエラーを含めても構いません(MAY)。
  3. resultを返します。

保護メカニズムの状態を検証する手順、および入力文書が 適合文書であることを検証する手順は、 実装が同じ無効な入力に対してエラーを返す限り、上に示した順序とは 異なる順序で実行しても構いません(MAY)。 実装は、上記で説明されたものとは異なるエラーを生成しても構いません(MAY)。

7.2 問題の詳細

実装が文書の処理中に異常を検出した場合、 ProblemDetailsオブジェクトを使用して、その問題を他の ソフトウェアシステムへ報告できます。これらのオブジェクトのインターフェイスは、 データをエンコードするために[RFC9457]に従います。 ProblemDetailsオブジェクトは、次の プロパティで構成されます:

type
type プロパティは存在しなければならず(MUST)、その値は 問題の種類を識別するURLでなければなりません(MUST)。
title
title プロパティは、その問題について短く 具体的な人間可読文字列を提供すべきです(SHOULD)。
detail
detail プロパティは、その問題について より長い人間可読文字列を提供すべきです(SHOULD)。

次の問題記述型がこの仕様で定義されています:

https://www.w3.org/TR/vc-data-model#PARSING_ERROR
入力の解析中にエラーが発生しました。
https://www.w3.org/TR/vc-data-model#CRYPTOGRAPHIC_SECURITY_ERROR
文書の保護メカニズムは、文書の作成後にその内容が 変更されたことを検出しました。改ざんの可能性が検出されました。セクション 7.1 検証を参照してください。
https://www.w3.org/TR/vc-data-model#MALFORMED_VALUE_ERROR
特定のプロパティに関連付けられた値の形式が不正です。 プロパティの名前およびプロパティへのパスは、 ProblemDetailsオブジェクトで提供されるべきです(SHOULD)。セクション 7.1 検証を参照してください。
https://www.w3.org/TR/vc-data-model#RANGE_ERROR
提供された値が、関連付けられた値の期待される範囲外です。 たとえば、配列に対して与えられたインデックス値が、その配列の現在のサイズより 大きい場合などです。

実装は、追加の型またはプロパティを指定することにより、 ProblemDetails オブジェクトを拡張しても構いません(MAY)。 このメカニズムの使用に関するさらなるガイダンスについては、[RFC9457]の Extension Memberセクションを参照してください。

8. プライバシー上の考慮事項

このセクションは非規範的です。

このセクションでは、検証可能なクレデンシャル・データモデルを本番環境へ展開する際の、 一般的なプライバシー上の考慮事項および具体的なプライバシー上の 影響について詳述します。

8.1 プライバシーの範囲

このセクションは非規範的です。

プライバシーには、仮名的なものから強く識別されるものまでの範囲があることを 認識することが重要です。ユースケースによって、人々は提供してもよいと考える情報や、 そこから導出され得る情報について、異なる安心度を持ちます。

左が赤、中央がオレンジ、右が緑の水平バー。赤には「Highly correlatable (global
            IDs), for example, government ID, shipping address, credit card
            number」というテキストがある。オレンジには「Correlatable via collusion
            (personally identifiable info), for example, name, birthday, zip
            code」というテキストがある。緑には「Non-correlatable
            (pseudonyms), for example, age over 21」というテキストがある。
13 仮名的なものから完全に識別されるものまでにわたるプライバシーの範囲。

プライバシー・ソリューションはユースケースに固有です。 たとえば、アルコールを購入する際、規制が購入者が特定の年齢を 超えているかどうかの確認だけであるため、多くの人は匿名のままであることを好みます。 これに対して、医療専門家が患者のために書いた処方箋を調剤する場合、 薬局は、処方者と患者の両方をより強く識別することを法的に要求されます。 すべてのユースケースに適用できる単一のプライバシー・アプローチはありません。

注記: 年齢証明は一部のユースケースでは不十分な場合がある

アルコール購入時に匿名のままでいたい人であっても、商店を適切に安心させるために 写真付き身分証明書を提供する必要がある場合があります。商店は、あなたの名前や、 特定の年齢を超えていること以外の詳細を知る必要はないかもしれませんが、 多くの場合、単純な年齢証明だけでは規制を満たすのに不十分な場合があります。

検証可能なクレデンシャル・データモデルは、プライバシーの全範囲をサポートすることを 目指しており、特定の取引における正しい匿名性レベルについて哲学的な立場を取りません。 以下のセクションは、プライバシーに敵対的な特定のシナリオを回避したい実装者を 導くものです。

8.2 ソフトウェアの信頼境界

このセクションは非規範的です。

この仕様で説明されるエコシステムには、さまざまな信頼関係が存在します。 Webブラウザーを使用する個人は、Webブラウザー(ユーザーエージェントとも呼ばれる)を、 自分の個人情報をデータブローカーへアップロードしないことによってその信頼を維持するものとして信頼します。 同様に、この仕様で説明されるエコシステムの各役割を担うエンティティは、 それらの各役割の代理として動作するソフトウェアを信頼します。 例には次が含まれます:

上記の例は網羅的ではなく、これらの役割のユーザーは、自分たちの目標を達成するために 使用するソフトウェアに対して、その他さまざまなことも期待できます。 要するに、ユーザーはソフトウェアがユーザーの最善の利益のために動作することを期待します。 この期待に対するあらゆる違反は信頼を損ない、ソフトウェアがより信頼できる代替物に 置き換えられることにつながります。実装者には、ユーザーの信頼を保つソフトウェアを 作成することが強く推奨されます。さらに、ユーザーまたは信頼された第三者が、 ソフトウェアが自らの最善の利益に沿って動作していることを検証できるようにする 監査機能を含めることも推奨されます。

読者には、単一の検証者および複数の保有者にサービスを提供するWebサイトのような 一部のソフトウェアは、両方の役割に対してユーザーエージェントとして 動作し得る一方で、必ずしもすべての当事者の最善の利益のために同時に 動作できるわけではないことに注意してください。たとえば、Webサイトが複数の保有者の間で検証可能なクレデンシャルの不正使用の試みを検出したとします。 その場合、そのような異常を検証者に報告する可能性があり、 これはすべての保有者の最善の利益にはならないと考えられるかもしれませんが、 検証者およびそのような違反をしていない保有者の最善の利益にはかなっています。 ソフトウェアがこのように動作する場合には、Webサイト利用ポリシーなどの メカニズムを通じて、そのソフトウェアが誰の最善の利益のために動作しているのかを 明確にすることが不可欠です。

8.3 個人識別 情報

このセクションは非規範的です。

credential.credentialSubjectプロパティに格納される 検証可能なクレデンシャルに関連付けられたデータは、 検証者と共有されるときにプライバシー侵害を受けやすくなります。 政府発行の識別子、配送先住所、または氏名のような個人を識別するデータは、 エンティティを判定、追跡、および相関するために 容易に使用できます。生年月日と郵便番号の組み合わせのように、 個人識別情報には見えない情報であっても、強力な相関および非匿名化の 能力を持ちます。

保有者が使用するソフトウェアの実装者には、 このような特徴を持つデータを共有する際に 保有者へ警告することが強く推奨されます。 発行者には、可能な場合にはプライバシー保護型の検証可能なクレデンシャルを提供することが強く推奨されます。たとえば、 検証者エンティティが18歳以上かどうかを判定したい場合に使用するため、 dateOfBirth 検証可能なクレデンシャルの代わりに ageOver 検証可能なクレデンシャルを発行することです。

検証可能なクレデンシャルにはしばしば個人識別情報(PII)が含まれるため、 実装者には、検証可能なクレデンシャルの保存および転送時に、 そのデータへアクセスすべきでない者からデータを保護するメカニズムを使用することが 強く推奨されます。検討できるメカニズムには、転送中のデータを暗号化する Transport Layer Security(TLS)またはその他の手段、ならびに保存時の 検証可能なクレデンシャル内のデータを保護するための 暗号化またはアクセス制御メカニズムが含まれます。

一般に、個人には、検証可能なクレデンシャルは、 多くの物理的なクレデンシャルと同様に、共有時に個人識別情報を 漏えいさせるものと想定することが推奨されます。そのような漏えいに対抗するため、 検証可能なクレデンシャルおよびその 保護メカニズムは、相関を防ぐよう慎重に設計される必要があります。 個人識別情報の漏えいから保護するよう特別に設計された 検証可能なクレデンシャルが利用可能です。 個人および実装者には、個人識別情報を保護するよう設計されていないものよりも、 これらのクレデンシャル型を選択することが推奨されます。

8.4 識別子に基づく相関

このセクションは非規範的です。

検証可能なクレデンシャルには、個人を相関するために使用され得る 長寿命の識別子が含まれる場合があります。これらの識別子には、 主体 識別子、メールアドレス、政府発行の識別子、組織発行の識別子、住所、 医療上のバイタル情報、およびその他多くの長寿命識別子が含まれます。 保有者向けソフトウェアの実装者には、 個人を相関するために使用され得る検証可能なクレデンシャル内の 識別子を検出し、この情報を共有する前に 保有者へ警告することが推奨されます。 このセクションの残りでは、長寿命識別子の使用に関連するガイダンスを詳述します。

主体 of 検証可能なクレデンシャルは、 セクション4.4 識別子で定義され、 credentialSubject.idプロパティなどで使用されるid プロパティを使用して識別されます。主体を識別するために使用される識別子は、 長寿命である場合や複数のWebドメインにまたがって使用される場合、より大きな相関リスクを生みます。 このカテゴリに該当するその他の種類の識別子には、メールアドレス、政府発行の識別子、 および組織発行の識別子があります。

同様に、( 3のように)クレデンシャル識別子を開示すると、複数の 検証者、または発行者検証者が共謀して 保有者を相関できる状況につながる可能性があります。

相関を減らすことを目指す保有者には、 検証可能なクレデンシャルから、検証可能なプレゼンテーション内の相関識別子を 選択的に開示することをサポートする発行者のものを使用することが推奨されます。 そのようなアプローチでは、保有者が識別子を生成することが期待され、 ブラインド署名のような技術を通じて 発行者から識別子を隠すことさえ可能にしながら、 それでも識別子を検証可能なクレデンシャル内に埋め込み、署名された状態に保ちます。

保護メカニズム仕様の著者には、 選択的に開示できない相関識別子の使用を避けるよう技術を設計することにより、 識別子に基づく相関を可能にしないことが推奨されます。

検証可能なクレデンシャルシステムにおいて 強力な反相関特性が必要な場合、識別子が次の基準の1つ以上を満たすことが不可欠です:

8.5 署名に基づく相関

このセクションは非規範的です。

検証可能なクレデンシャルの内容は、 保護メカニズムを使用して保護されます。保護メカニズムを表す値は、 複数のセッションまたはドメインにわたって同じままである場合、より大きな 相関リスクをもたらします。これらの例には、次の値が含まれます:

強力な反相関特性が必要な場合、発行者には、 署名値およびメタデータを各検証可能なプレゼンテーションごとに 再生成できる検証可能なクレデンシャルを生成することが推奨されます。 これは、Data Integrity BBS Cryptosuites v1.0仕様のような、リンク不能な開示をサポートする 技術を使用して実現できます。可能な場合、検証者には、 保有者および主体のプライバシーを強化するために、 この技術を使用する検証可能なプレゼンテーションを優先することが推奨されます。

注記: リンク不能性は完全な解決策ではない

リンク不能な署名を用いても、検証可能なクレデンシャルには、 使用される暗号の反相関特性を損なうその他の情報が含まれる可能性があります。 セクション8.3 個人識別情報8.4 識別子に基づく相関8.6 メタデータに基づく相関8.11 妥当性確認中の相関、および セクション8. プライバシー上の考慮事項の ほとんどのその他のサブセクションを参照してください。

8.6 メタデータに基づく相関

このセクションは非規範的です。

セクション 4. 基本概念およびセクション5. 高度な 概念で説明されているような異なる拡張ポイントは、 特定の拡張型または型の組み合わせを使用する発行者が比較的少ない場合、 意図せず、または望ましくない形で相関メカニズムとして機能する可能性があります。 たとえば、特定の国家に固有の暗号メソッド、特定の法域に固有の失効形式、 または特定の地域で採用されているクレデンシャル型を使用すると、 保有者検証者へ情報を選択的に開示する際に期待し得る仮名性を 低下させるメカニズムとして機能する可能性があります。

発行者には、仮名的な利用を意図した 検証可能なクレデンシャルを発行する際、 保有者の仮名性を低下させ得る拡張の種類を 制限することにより、メタデータに基づく相関リスクを最小化することが推奨されます。 グローバルに採用されているクレデンシャル型、拡張、および技術プロファイルが 最も望ましく、次に国家単位で使用されているものが続き、ローカルでのみ 使用されるものは最も望ましくありません。

8.7 デバイス追跡と フィンガープリンティング

このセクションは非規範的です。

インターネットおよびWeb上の個人を追跡し相関する、検証可能なクレデンシャルの外部にあるメカニズムが 存在します。これらのメカニズムには、インターネットプロトコル(IP)アドレス追跡、 Webブラウザー・フィンガープリンティング、evercookies、広告ネットワーク・トラッカー、 モバイルネットワーク位置情報、およびアプリ内Global Positioning System(GPS)APIが含まれます。 検証可能なクレデンシャルを使用しても、これらの他の 追跡技術の使用を防ぐことはできません。むしろ、これらの技術を 検証可能なクレデンシャルと併用することで、新たな相関可能情報が 明らかになる可能性があります。たとえば、生年月日とGPS位置を組み合わせると、 複数のWebサイトにわたって個人を強く相関できます。

プライバシーを尊重するシステムは、他の追跡技術と 検証可能なクレデンシャルの組み合わせを 防ぐことを目指すべきです。場合によっては、 保有者に代わって 検証可能なクレデンシャルを送信するデバイス上で、 追跡技術を無効にする必要があるかもしれません。

Oblivious HTTPプロトコル [RFC9458] は、 検証可能なクレデンシャルまたは検証可能なプレゼンテーションに関連付けられた外部リソースを取得する際に、 実装者が使用を検討できるメカニズムの1つです。 Oblivious HTTPにより、クライアントは、オリジンサーバーがそれらの要求を そのクライアントに結び付けることも、それらの要求が単一のクライアントから 来たものであると識別することすらできないようにしつつ、オリジンサーバーへ複数の 要求を行うことができます。その一方で、メッセージの転送に使用されるノードへの信頼は 限定的で済みます。Oblivious HTTPは、デバイス追跡およびフィンガープリンティングの 可能性を低減できる、プライバシー保護メカニズムの1つです。以下は、 Oblivious HTTPがエコシステム参加者にもたらし得る利点の具体例です。

8.8 抽象的な主張を優先する

このセクションは非規範的です。

発行者には、 検証可能なクレデンシャルに含める情報を、 受信者が必要以上の個人識別情報(PII)を開示することなく さまざまな状況でそれらを使用できるよう、意図された目的に必要な最小限の集合に 制限することが推奨されます。PIIを検証可能なクレデンシャルに入れることを避ける 1つの方法は、主体について過度に具体的な情報を提供することなく 検証者のニーズを満たす抽象的な プロパティを使用することです。

たとえば、この文書では、より機微なPIIを表す特定の生年月日の代わりに ageOver プロパティを使用します。 特定の市場の小売業者が購入者に一定の年齢を超えていることを一般的に要求する場合、 その市場で信頼されている発行者は、 顧客の生年月日に関する主張を含む 検証可能なクレデンシャルを提供するのではなく、 主体がその要件を満たしたと主張する 検証可能なクレデンシャルを提供することを選択できます。 この実践により、個々の顧客は必要以上のPIIを開示することなく購入できます。

8.9 データ 最小化の原則

このセクションは非規範的です。

あるコンテキストで開示された情報が別のコンテキストへ漏れると、プライバシー侵害が 発生します。そのような侵害を防ぐための受け入れられたベストプラクティスの1つは、 検証者が、特定の取引に絶対に必要な最小限まで、 要求し受け取る情報を制限することです。米国のHealth Insurance Portability and Accountability Act(HIPAA)や欧州連合のGeneral Data Protection Regulation(GDPR)を含む 複数の法域の規制は、このデータ最小化アプローチを義務付けています。

検証可能なクレデンシャルでは、発行者にとってのデータ最小化とは、 検証可能なクレデンシャルの内容を、 予期される利用に対して潜在的な検証者が必要とする 最小限に制限することを意味します。検証者にとっての データ最小化とは、サービスへのアクセスに要求または必要とされる情報の範囲を 制限することを意味します。

たとえば、運転者ID番号、身長、体重、誕生日、および自宅住所を含む運転免許証が 検証可能なクレデンシャルとして表現される場合、 その人物が一定の年齢を超えていることを立証するために必要な情報よりも 多くの情報が含まれます。

発行者が情報を原子化するか、 選択的開示を可能にする 保護メカニズムを使用することは、ベストプラクティスと見なされます。たとえば、 運転免許証の発行者は、運転免許証に現れるすべてのプロパティを含む 検証可能なクレデンシャルを発行し、 保有者が各プロパティを選択的に開示できるようにすることができます。 また、より抽象的な検証可能なクレデンシャル(たとえば、 ageOverプロパティのみを含む検証可能なクレデンシャル)を発行することもできます。 1つの可能な適応として、発行者が、 検証可能なクレデンシャルの仮名的な利用を促進する 単回使用のベアラー・クレデンシャルを取得するための 安全なHTTPエンドポイントを提供することが考えられます。 これが非現実的または安全でないと考える実装者は、 証明時の発行者への依存をなくし、発行者による時間的相関のリスクを 減らす選択的開示スキームの使用を検討するかもしれません。

検証者には、特定の取引を行うために厳密に必要な情報だけを 要求することが強く推奨されます。これは少なくとも次の2つの理由で重要です:

保有者が使用するソフトウェアの実装者には、 検証者によって要求されている情報を開示し、 保有者が取引に不要な特定の情報の共有を拒否できるようにすることが 推奨されます。保有者が使用するソフトウェアの実装者にはまた、 検証者と共有された情報のログへのアクセスを 保有者に与えることが推奨されます。これにより、 保有者は、情報の過剰要求を受けた、または特定の取引に必要以上の情報を 共有するよう強要されたと考える場合に、その情報を当局へ提供できます。

注記: 最小限の開示でも一意の識別につながる可能性がある

最小開示の原則を実践することは可能ですが、特定のユースケースでは、 単一セッション中または複数セッションにわたって個人を強く識別することを 避けるのが不可能な場合があります。この文書の著者は、現実世界のシナリオで この原則を満たすことがどれほど難しいかを強調してもしきれません。

8.10 ベアラー・クレデンシャル

このセクションは非規範的です。

ベアラー・クレデンシャルは、 コンサートチケットのように、その保有者に、保有者が機微な情報を開示することを要求せずに 特定のリソースへの権利を与える、プライバシー強化型の情報です。 低リスクのシナリオでは、複数の保有者が同じ検証可能なクレデンシャルを提示することが 懸念ではない、または大きな経済的損失や評判上の損失につながらない場合に、 エンティティはしばしばベアラー・クレデンシャルを使用します。

ベアラー・クレデンシャルである 検証可能なクレデンシャルは、 credentialSubject プロパティにネストされた id プロパティを使用して表現される 主体識別子を指定しないことで可能になります。 たとえば、次の検証可能なクレデンシャルベアラー・クレデンシャルです:

35: 発行者プロパティの使用
{
  "@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": {
    // ベアラー・クレデンシャルでは'id'プロパティが指定されていないことに注意
    "degree": {
      "type": "ExampleBachelorDegree",
      "name": "Bachelor of Science and Arts"
    }
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "created": "2025-04-27T17:58:34Z",
    "verificationMethod": "did:key:zDnaebSRtPnW6YCpxAhR5JPxJqt9UunCsBPhLEtUokUvp87nQ",
    "cryptosuite": "ecdsa-rdfc-2019",
    "proofPurpose": "assertionMethod",
    "proofValue": "z5gCBzvpHbsJoeuuy5Z54rKQwkGzBZkmapRZZAKKW4ervhBGGTaygnh4sBG6vV8MHGD8eKhXEmkXr487JwVhZ2WHQ"
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "created": "2025-04-27T17:58:34Z",
    "verificationMethod": "did:key:zDnaerJh8WwyBVVGcZKKkqRKK9iezje8ut6t9bnNChtxcWwNv",
    "cryptosuite": "ecdsa-sd-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0AhVhAOEMucTcwHIY19VxghifeZjhZGFI9buw5OmEiWzSpbStoG5arWcYX6NB2-ftSiNc_CMh-CemG3peCu8ZOrSCHVFgjgCQC1zlBPjThDb-LSIbpc3uzcrjmKdC3xyuQAM8DoT5zv3FYIP13m1SOplZJx47EsonA19WEGnwABCA4hlMlQS96LIQMhVhADxlyJM3iqf_jn__vvJ0KgjL5uKLmVSsOxTFUsIHJ82mS8DAo_WZUmDxMnCAjrrxPQXLaNdfcmqehQOLT4_oiiVhA74UxSBi3EedkNnN5F2WV_Hd1Pr1vPWA_Qx52meKAa0_FhKu-Gm8uk2fFxK28flIbUv5HVQgGT0nrSuSprE4JslhAGl8hwCBGr5KxrUVAcMZE3vW26KrrI6jMTDLPGb81b9-ILrXLIJKb_ZOcmLggwzgbyxE_hUDLL9b88aZ7tE4dOVhACerSusVIq25s-hjms5Ws4Uw3wmgRQp1lp228deojpcavN-n3FNe3AIBgHFbpK2SzdOzvraj-HVkMpQptXrGEhVhAujmfdq6faQbfYn4LUQCy_sDUr1WNbklcyg2XTDQKscMF0VAUU38d50UrmprSKbhrnZpgWMBFg4ibUco_HO4UToFnL2lzc3Vlcg"
  }
}
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"
    }
  },
  "proof": {
    "type": "DataIntegrityProof",
    "verificationMethod": "did:key:zUC78GzFRA4TWh2mqRiKro1wwRb5KDaMJ3M1AD3qGtgEbFrwWGvWbnCzArkeTZCyzBz4Panr2hLaZxsXHiBQCwBc3fRPH6xY4u5v8ZAd3dPW1aw89Rra86CVwXr3DczANggYbMD",
    "cryptosuite": "bbs-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0ChVhQhlm-IXSzQAaXH0xW-NU1t3ikH2xt--sFY-DtoL44DiWf3qv-nuhCc36deovk3t1GLy9JeN-vdeth8XWKMGUcyA4eWD21lxYdvK5Qdzw07ytYQGd_DaMQQsoaryttl5TvxnFT-Vm4SkVx03K9qNJ4jhArdrHmhnEXifHmmlKM3zCnc0pq4l3ZkBkIESZ4DrQomVNYYJVTGbTfcflzyx41E-f9kSqmf10xYzxJrGfC7b7GPY8X7VjMT__ZKSuwdH-5jak-5gkjocsHI6oxIKlLrhW1Wh5yrDCH-QC823TS8NE9VGBzIFAfUt5qazGEcJ8CxeSPxFggOkuR5x7VvZAB-RbcqkcwxkQ7or0tsVOUTPlebfxRUQCBZy9pc3N1ZXI"
  }
}
保護ヘッダー
{
  "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
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaWQiOiJodHRwOi8vdW5pdmVyc2l0eS5leGFtcGxlL2NyZWRlbnRpYWxzL3RlbXBvcmFyeS8yODkzNDc5MjM4NzQ5MjM4NCIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJFeGFtcGxlRGVncmVlQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOiJodHRwczovL3VuaXZlcnNpdHkuZXhhbXBsZS9pc3N1ZXJzLzE0IiwidmFsaWRGcm9tIjoiMjAxNy0xMC0yMlQxMjoyMzo0OFoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJkZWdyZWUiOnsidHlwZSI6IkV4YW1wbGVCYWNoZWxvckRlZ3JlZSIsIm5hbWUiOiJCYWNoZWxvciBvZiBTY2llbmNlIGFuZCBBcnRzIn19fQ .6xC1cZL-ht0EvN7nz2Zs81htECRBp_87csS2IRyRG41wp-4zW0US8rth2KZjQMhsuPy7s0yjVIRWFGb6TQRCdg
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+cose
d28443a10128a05901a27b2240636f6e74657874223a5b2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f7632222c2268747470733a2f2f7777772e77332e6f72672f6e732f63726564656e7469616c732f6578616d706c65732f7632225d2c226964223a22687474703a2f2f756e69766572736974792e6578616d706c652f63726564656e7469616c732f74656d706f726172792f3238393334373932333837343932333834222c2274797065223a5b2256657269666961626c6543726564656e7469616c222c224578616d706c6544656772656543726564656e7469616c225d2c22697373756572223a2268747470733a2f2f756e69766572736974792e6578616d706c652f697373756572732f3134222c2276616c696446726f6d223a22323031372d31302d32325431323a32333a34385a222c2263726564656e7469616c5375626a656374223a7b22646567726565223a7b2274797065223a224578616d706c6542616368656c6f72446567726565222c226e616d65223a2242616368656c6f72206f6620536369656e636520616e642041727473227d7d7d58409ec236d42a81339288605ac9a750f8632dadc2d44bcaae49b2d1431f9d98fded1c01772494c84a0aab75b9ec527ce6dc3fbd4d7f913f6963549cb19c091be521
eyJraWQiOiJFeEhrQk1XOWZtYmt2VjI2Nm1ScHVQMnNVWV9OX0VXSU4xbGFwVXpPOHJvIiwiYWxnIjoiRVMyNTYifQ .eyJpYXQiOjE3NDU3NzY3MTQsImV4cCI6MTc0Njk4NjMxNCwiX3NkX2FsZyI6InNoYS0yNTYiLCJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvZXhhbXBsZXMvdjIiXSwiaXNzdWVyIjoiaHR0cHM6Ly91bml2ZXJzaXR5LmV4YW1wbGUvaXNzdWVycy8xNCIsInZhbGlkRnJvbSI6IjIwMTctMTAtMjJUMTI6MjM6NDhaIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiZGVncmVlIjp7Im5hbWUiOiJCYWNoZWxvciBvZiBTY2llbmNlIGFuZCBBcnRzIiwiX3NkIjpbIl9BT1Y2UkQwSmFobzVaaUgxSUxNd0pXSlE3cS1ueWVveVhIQWoyeVdtUlkiXX19LCJfc2QiOlsiUG9aeVBTUGtzd1AyODdsRU5ZMDJHdzg1Q2NzMjYyWU5fVkZLSEFpOGZ3byIsIlY0Y0k4aDQ5VUt6em5UdGpMQV9NZ3hBblFoeWR0ME45OWVVdjBTZXJibDQiXX0 .71495BlH0xrBlHTp-Y2JqwvTx1u3nu8dS8eiXwxSF-TukGYmbZ0y74RxVQCZ046h7YK2OZ-FZjlVUAcTN0vLvQ ~WyJqVThiaS1zWHk1dzVKNUYtdlhNaUZ3IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvdGVtcG9yYXJ5LzI4OTM0NzkyMzg3NDkyMzg0Il0~WyJlbXBLOFdGNDhHcW56ekVudTJNblV3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d~WyJnTnRsVmhfeVZyWm5aeEVXQUpyaFhRIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0~
{
  "kid": "ExHkBMW9fmbkvV266mRpuP2sUY_N_EWIN1lapUzO8ro",
  "alg": "ES256"
}
{
  "iat": 1745776714,
  "exp": 1746986314,
  "_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": [
        "_AOV6RD0Jaho5ZiH1ILMwJWJQ7q-nyeoyXHAj2yWmRY"
      ]
    }
  },
  "_sd": [
    "PoZyPSPkswP287lENY02Gw85Ccs262YN_VFKHAi8fwo",
    "V4cI8h49UKzznTtjLA_MgxAnQhydt0N99eUv0Serbl4"
  ]
}

主張: id

SHA-256ハッシュ: PoZyPSPkswP287lENY02Gw85Ccs262YN_VFKHAi8fwo

開示: WyJqVThiaS1zWHk1dzVKNUYtdlhNaUZ3IiwgImlkIiwgImh0dHA6Ly91bml2ZXJzaXR5LmV4YW1wbGUvY3JlZGVudGlhbHMvdGVtcG9yYXJ5LzI4OTM0NzkyMzg3NDkyMzg0Il0

内容: [
  "jU8bi-sXy5w5J5F-vXMiFw",
  "id",
  "http://university.example/credentials/temporary/28934792387492384"
]

主張: type

SHA-256ハッシュ: V4cI8h49UKzznTtjLA_MgxAnQhydt0N99eUv0Serbl4

開示: WyJlbXBLOFdGNDhHcW56ekVudTJNblV3IiwgInR5cGUiLCBbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwgIkV4YW1wbGVEZWdyZWVDcmVkZW50aWFsIl1d

内容: [
  "empK8WF48GqnzzEnu2MnUw",
  "type",
  [
    "VerifiableCredential",
    "ExampleDegreeCredential"
  ]
]

主張: type

SHA-256ハッシュ: _AOV6RD0Jaho5ZiH1ILMwJWJQ7q-nyeoyXHAj2yWmRY

開示: WyJnTnRsVmhfeVZyWm5aeEVXQUpyaFhRIiwgInR5cGUiLCAiRXhhbXBsZUJhY2hlbG9yRGVncmVlIl0

内容: [
  "gNtlVh_yVrZnZxEWAJrhXQ",
  "type",
  "ExampleBachelorDegree"
]

ベアラー・クレデンシャルはプライバシーを強化しますが、 発行者はなお、 ベアラー・ クレデンシャル保有者が期待する以上の情報を意図せず開示しないよう、 設計に注意を払う必要があります。たとえば、同じベアラー・クレデンシャルを複数のサイトで 繰り返し使用すると、これらのサイトが共謀して 保有者を不正に追跡または相関することが可能になります。 同様に、生年月日と郵便番号のような、一見識別性がないように見える情報も、 同じベアラー・クレデンシャルまたはセッションで使用されると、 統計的に個人を識別するために組み合わせて使用できます。

ベアラー・ クレデンシャル発行者は、 ベアラー・クレデンシャルが、次のような プライバシー強化の利点を提供することを確保すべきです:

保有者は、機微な情報を含むベアラー・クレデンシャルが発行または要求されたこと、 または1つ以上のセッションにわたる2つ以上のベアラー・ クレデンシャルの組み合わせによって相関リスクが生じることをソフトウェアが検出した場合、 そのソフトウェアによって警告されるべきです。すべての相関リスクを検出することは 不可能かもしれませんが、確実に検出可能なものもあります。

検証者は、 保有者を不正に相関するために使用できる情報を持つことが知られている ベアラー・ クレデンシャルを要求すべきではありません。

8.11 妥当性確認中の相関

このセクションは非規範的です。

検証可能なクレデンシャルを処理する際、 検証者は、それらに依拠する前に関連する 主張を評価します。この評価は、 妥当性確認を行う検証者の要件を満たす限り、 望まれる任意の方法で行えます。多くの検証者は、付録A. 妥当性確認に 列挙されたチェックに加え、次のようなさまざまな具体的な業務プロセス上のチェックを行います:

これらのチェックを行うプロセスは、情報漏えいを引き起こし、 保有者のプライバシー侵害につながる可能性があります。 たとえば、不適切に構成された失効リストを確認するという単純な操作により、 特定の企業が保有者とやり取りしている可能性が高いことを 発行者へ通知する可能性があります。これにより、 発行者が共謀し、個人の知らないところで個人を相関できるようになる可能性があります。

発行者には、プライバシー侵害につながる可能性のある、 クレデンシャルごとに固有の失効リストのような メカニズムを検証プロセスで使用しないことが強く推奨されます。 保有者にソフトウェアを提供する組織は、 クレデンシャルに 検証プロセス中のプライバシー侵害につながる可能性のある情報が含まれる場合、 警告すべきです。検証者には、プライバシー侵害を生じる クレデンシャル、または標準未満のプライバシー慣行を可能にする クレデンシャルの拒否を検討することが強く推奨されます。

8.12 ストレージ・プロバイダーと データマイニング

このセクションは非規範的です。

保有者発行者から検証可能なクレデンシャルを受け取ると、 その検証可能なクレデンシャルはどこかに保存される必要があります (たとえば、クレデンシャル・リポジトリ内)。 保有者は、 検証可能なクレデンシャル内の情報が 機微で高度に個別化されたものであり、データマイニングの主要な標的になり得ることを 認識する必要があります。検証可能なクレデンシャルの「無料」ストレージを提供するサービスは、 個人データをマイニングし、人々や組織に関する個別化されたプロファイルを構築することに 関心のある組織へ販売する可能性があります。

保有者は、自分たちの クレデンシャル・リポジトリの利用規約、 とくにサービスプロバイダーに検証可能なクレデンシャルを保存する者のために設けられている 相関およびデータマイニング保護について認識する必要があります。

データマイニングおよびプロファイリングに対する有効な緩和策には、次の使用が含まれます:

上記の緩和策に加えて、市民社会および規制当局がベンダー分析および監査に参加することで、 個人の最善の利益に沿わない実践によって影響を受ける個人に対し、 法的保護が制定され執行されることを確保する助けになります。

8.13 クレデンシャルの集約

このセクションは非規範的です。

同じ主体に関する2つの情報を持つことは、 それらの2つの情報の組み合わせそのもの以上に、その主体について多くを明らかにすることがよくあります。 たとえそれらの情報が異なるチャネルを通じて提供された場合でも同様です。 検証可能なクレデンシャルの集約はプライバシーリスクをもたらし、 エコシステムのすべての参加者はデータ集約のリスクを認識する必要があります。

たとえば、1つはメールアドレス用、もう1つは保有者が21歳を超えていると述べる、2つの ベアラー・クレデンシャルが、 複数のセッションにわたって同じ検証者へ提供されるとします。 情報の検証者は今や、その個人について 一意の識別子(メールアドレス)と年齢関連(「21歳超」)情報を持っています。 これにより、時間とともに漏れる情報をさらに追加しながら、保有者のプロファイルを 容易に作成できます。そのようなクレデンシャルの集約は、複数のサイトが互いに共謀して行うこともでき、 プライバシー侵害につながります。

技術的観点から、情報の集約を防ぐことは困難なプライバシー問題です。 ゼロ知識証明のような新しい暗号技術が、集約および相関の問題に対する解決策として 提案されていますが、長寿命識別子やブラウザー追跡技術の存在は、 最も現代的な暗号技術でさえ打ち負かします。

相関または集約のプライバシー上の影響に対する解決策は、 技術的な性質ではなく、むしろポリシー駆動型であることが多いです。 したがって、保有者が自分の情報の集約を避けたい場合、 送信する検証可能なプレゼンテーションの中で、 かつその検証可能なプレゼンテーションを送信する先の 保有者および検証者によって、 これを表明する必要があります。

8.14 利用パターン

このセクションは非規範的です。

関係するすべての者がプライバシーを確保するために最善を尽くしても、 検証可能なクレデンシャルの使用は、非匿名化および プライバシーの喪失につながる可能性があります。この相関は、次のいずれかが発生したときに 起こり得ます:

この非匿名化およびプライバシー喪失は、部分的には次によって緩和できます:

残念ながら、これらの緩和技術は、実用的である場合もあれば、 必要な利用と両立しない場合さえあります。相関が要件である場合もあります。

たとえば、一部の処方薬監視プログラムでは、処方薬の使用を監視することが要件です。 執行機関は、個人が管理物質の処方箋を複数取得するためにシステムを 欺いていないことを確認できる必要があります。この法定または規制上の 処方薬使用の相関の必要性は、個人のプライバシー上の懸念に優先します。

検証可能なクレデンシャルは、サービスをまたいで個人を意図的に相関するためにも 使用されます。たとえば、複数のサービスにログインするために共通のペルソナを使用する場合、 それら各サービス上のすべての活動は、同じ個人に意図的にリンクされます。 これは、それらの各サービスが期待される方法で相関を使用する限り、 プライバシー問題ではありません。

検証可能なクレデンシャルの使用に関連するプライバシー侵害は、 それらの検証可能なクレデンシャルの提示から、 意図されていない、または予期されていない相関が生じる場合に発生します。

8.16 誤った相手との 情報共有

このセクションは非規範的です。

保有者検証者と情報を共有することを選択する場合、 その検証者が悪意を持って行動し、 保有者に害を与える可能性のある情報を 要求する場合があります。たとえば、検証者が銀行口座番号を求め、 それが他の情報とともに保有者または銀行を欺くために使用される可能性があります。

発行者は、可能な限り多くの情報をトークン化するよう努めるべきです。 それにより、保有者が誤ってクレデンシャルを 誤った検証者へ送信しても、その状況が壊滅的なものにはなりません。

たとえば、個人の銀行残高を確認するために銀行口座番号を含める代わりに、 検証者が残高が一定額を上回っているかどうかを 確認できるトークンを提供します。この場合、銀行は残高確認トークンを含む 検証可能なクレデンシャル保有者へ発行できます。その後、保有者はその 検証可能なクレデンシャル検証可能なプレゼンテーションに含め、 デジタル署名を用いてそのトークンを信用調査機関へ結び付けます。 その後、検証者はその検証可能なプレゼンテーションを自らの デジタル署名で包み込み、口座残高を動的に確認するため発行者へ返すことができます。

このアプローチを使用すると、保有者が口座残高トークンを 誤った相手と共有した場合であっても、攻撃者は銀行口座番号または口座の正確な値を 知ることができません。また、副署名の有効期間により、攻撃者がそのトークンへアクセスできるのは 数分間だけです。

8.17 データ盗難

このセクションは非規範的です。

検証可能なクレデンシャルおよび 検証可能なプレゼンテーションで表現されるデータは、 信頼された第三者(発行者など)または 個人(保有者または主体など)による真正な 陳述を含むため価値があります。このデータの保存およびアクセス可能性は、悪意のある行為者にとって 機微データのハニーポットを意図せず作り出す可能性があります。これらの敵対者は、 しばしばそのような機微情報の貯蔵庫を悪用し、そのデータを取得して金銭的利益のために 交換することを狙います。

発行者には、保有者検証可能なクレデンシャルを発行し、 それらのクレデンシャルのステータスおよび失効を管理するために必要な最小限のデータのみを 保持することが推奨されます。同様に、発行者には、個人識別情報(PII)またはその他の 機微データを含む公開アクセス可能なクレデンシャルを作成しないことが推奨されます。 ソフトウェア実装者には、堅牢な同意およびアクセス制御手段を用いて 検証可能なクレデンシャルを保護し、 権限のないエンティティがアクセスできない状態を確保することが推奨されます。

保有者には、転送中および保存時のデータを適切に暗号化し、 機微な材料(暗号シークレットなど)をハードウェアまたはその他のデバイスから容易に 抽出できない方法で保護する実装を使用することが推奨されます。さらに、 保有者には、自分が管理するデバイス上でのみデータを 保存および操作し、中央集権システムから離すことが提案されます。これにより、 自分のデータへの攻撃の可能性、または攻撃が成功した場合に大規模な盗難に含まれる可能性を 低減できます。さらに、保有者には、明示的な認可を持つ者にのみアクセスを許可することで、 自分のクレデンシャルおよびプレゼンテーションへのアクセスを厳格に制御することが推奨されます。

検証者には、特定の取引に必要なデータだけを求め、 その特定の取引の必要性を超えてデータを保持しないことが推奨されます。

規制当局には、既存の監査要件を再検討し、同様の執行および監査能力を達成するために よりプライバシーを保護するメカニズムを使用できるようにすることが推奨されます。 たとえば、個人識別情報の収集および長期保持を強く求める監査重視の規制は、 後に同じ情報が侵害され、攻撃者によってアクセスされた場合、個人および組織に 害を及ぼす可能性があります。この仕様で説明される技術により、 保有者は 自分自身および他者に関する性質をより容易に証明できるようになり、 検証者による長期データ保持の必要性を減らします。 代替策には、その情報が収集され確認されたことを示すログを保持することや、 コンプライアンス制度が期待どおりに運用されていることを確認するための ランダムテストが含まれます。

8.18 主張発行の頻度

このセクションは非規範的です。

セクション8.14 利用パターンで詳述されているように、 利用パターンは特定の種類の行動と相関され得ます。この相関は、 保有者発行者の知識なしに検証可能なクレデンシャルを使用する場合に 部分的に緩和されます。しかし、発行者は、 自らの検証可能なクレデンシャルを短寿命にし、 更新を自動化することで、この保護を打ち破ることができます。

たとえば、ageOver 検証可能なクレデンシャルは、バーへの入場に役立ちます。 発行者が、そのような 検証可能なクレデンシャルを非常に短い有効期間と 自動更新メカニズム付きで発行すると、発行者は、保有者の行動を 保有者に悪影響を及ぼす形で 相関できる可能性があります。

保有者にソフトウェアを提供する組織は、 行動相関につながる可能性のある短寿命のクレデンシャルを繰り返し使用している場合、 彼らに警告すべきです。発行者は、利用パターンを相関できるような クレデンシャルの 発行を避けるべきです。

8.19 単回使用クレデンシャルを優先する

このセクションは非規範的です。

理想的なプライバシー尊重型システムでは、検証者とのやり取りに必要な情報のみを 保有者が開示することを要求します。 その後、検証者は開示要件が満たされたことを記録し、 開示された機微な情報を破棄します。多くの場合、規制上の負担などの競合する優先事項により、 この理想的なシステムを採用することは妨げられます。他の場合には、長寿命識別子が 単回使用を妨げます。任意の検証可能なクレデンシャルエコシステムの設計者は、 可能な限り単回使用の検証可能なクレデンシャルを優先することで、 それをできるだけプライバシー尊重型にするよう努めるべきです。

単回使用の検証可能なクレデンシャルを使用すると、 いくつかの利点があります。第一の利点は、検証者検証可能なクレデンシャル内のデータが新鮮であると確信できることです。 第二の利点は、保有者にとって、 検証可能なクレデンシャル内に長寿命識別子がなければ、 その検証可能なクレデンシャル自体をオンラインで 彼らを追跡または相関するために使用できないことを知っていることです。 最後に、攻撃者が盗むものが何もないため、エコシステム全体がより安全に 運用できるようになります。

8.20 プライベート・ブラウジング

このセクションは非規範的です。

理想的なプライベート・ブラウジングのシナリオでは、PIIは一切明らかにされません。 多くのクレデンシャルにはPIIが含まれるため、 保有者にソフトウェアを提供する組織は、 プライベート・ブラウジングモード中にクレデンシャルおよびプレゼンテーションを使用すると、この情報が 明らかになる可能性について彼らに警告すべきです。各ブラウザーベンダーは プライベート・ブラウジングを異なる方法で扱い、一部のブラウザーにはこの機能がない可能性もあるため、 実装者がプライベート・ブラウジングモードに依存してプライバシー保護を提供しないことが 重要です。代わりに、実装者には、プライバシー保証を提供するために自らのソフトウェアで 直接利用できるツールに依拠することが推奨されます。

8.21 発行者の協力が プライバシーに及ぼす影響

このセクションは非規範的です。

検証可能なクレデンシャルは、 発行者への高い信頼度に依存します。 保有者が可能なプライバシー保護をどの程度活用できるかは、 そのような機能に対して発行者が提供する サポートに強く依存することがよくあります。多くの場合、ゼロ知識証明、 データ最小化技術、ベアラー・クレデンシャル、抽象的な主張、および署名に基づく相関に対する 保護を利用するプライバシー保護には、これらの能力を自らが発行する 検証可能なクレデンシャルに組み込む必要がある 発行者による能動的なサポートが必要です。

保有者は、 保有者および主体のプライバシーを保つ助けとなる 検証可能なクレデンシャル能力を提供するために、 発行者の参加に依存するだけでなく、 発行者がこれらのプライバシー保護を意図的に 破壊しないことにも依存していることに注意することが重要です。たとえば、 発行者は、署名に基づく相関から保護する署名スキームを 使用して検証可能なクレデンシャルに署名する可能性があります。 これは、署名値が検証者間で共有される際に、 保有者が署名値によって相関されることを防ぎます。 しかし、発行者が各発行済み クレデンシャルに対して一意の鍵を作成する場合、 検証者がそれを行えないにもかかわらず、 発行者がそのクレデンシャルプレゼンテーションを追跡できる可能性があります。

前述のプライバシー保護に加えて、発行者クレデンシャルを 発行する際に使用する識別子および主張型に関連付けられて漏えいするデータを 認識する必要があります。この例の1つは、発行者が運転免許証を発行し、 管轄権を持つ場所と主体の居住地の両方を明らかにする場合です。 検証者は、 主体が 運転を許可されていることを確認するためにクレデンシャルを要求することで、 実際にはクレデンシャルについてのメタデータ、たとえばどの 発行者がクレデンシャルを発行したかや、 発行者によって漏えいした可能性のある 周辺情報、たとえば主体の自宅住所に関心を持つ形で、 これを利用するかもしれません。このような漏えいを緩和するため、 発行者は、特定の位置情報またはその他の機微なメタデータを 隠すために共通の識別子を使用する場合があります。たとえば、郡、市、町、またはその他の より小さい自治体のレベルではなく、州または国レベルの共有された 発行者識別子を使用することです。さらに、 検証者は、正確な発行者を開示する必要なく、 発行者が信頼されたエンティティの集合内に存在することを 証明することでプライバシーを保つために、保有者証明メカニズムを 使用できます。

9. セキュリティ上の考慮事項

このセクションは非規範的です。

発行者保有者、および検証者は、この仕様で説明される データを処理する際に、数多くのセキュリティ上の考慮事項を認識しておくべきです。 このセクションの影響を無視したり理解しなかったりすると、 セキュリティ脆弱性が生じる可能性があります。

このセクションでは幅広いセキュリティ上の考慮事項を取り上げていますが、これは 部分的な一覧です。この仕様で説明される技術を使用するミッションクリティカルな システムの実装者には、包括的なガイダンスを得るためにセキュリティおよび 暗号の専門家に相談することが強く推奨されます。

9.1 暗号スイートと ライブラリ

このセクションは非規範的です。

暗号は、この仕様で説明されるデータモデルのいくつかの側面を保護できます。 実装者が、クレデンシャルおよび プレゼンテーションの作成と処理に使用される暗号スイートおよび ライブラリを理解することは重要です。暗号システムの実装および監査には、一般に 相当な経験が必要です。効果的な レッドチーミングも、 セキュリティレビューからバイアスを取り除く助けになります。

暗号スイートとライブラリには寿命があり、最終的には新しい攻撃や技術的進歩に 屈します。本番品質のシステムはこれを考慮し、期限切れまたは破損した暗号スイートや ライブラリを容易かつ能動的にアップグレードし、既存の クレデンシャルを無効化して置き換えるメカニズムが存在することを 確保する必要があります。クレデンシャルを処理する システムの長期的な実用性を確保するには、定期的な監視が重要です。

9.2 鍵管理

このセクションは非規範的です。

検証可能なクレデンシャルおよび検証可能なプレゼンテーションを保護するために使用される ほとんどのデジタル署名アルゴリズムのセキュリティは、その 秘密署名鍵の品質と保護に依存します。暗号鍵の管理は、広大で複雑な分野を 包含します。包括的な推奨事項および詳細な議論については、読者は [NIST-SP-800-57-Part-1]を 参照してください。[FIPS-186-5]および [NIST-SP-800-57-Part-1]の 両方で強く推奨されているように、秘密署名鍵は複数の目的に 使用されるべきではありません。たとえば、秘密署名鍵は暗号化と署名の 両方に使用されるべきではありません。

[NIST-SP-800-57-Part-1]は、 秘密署名鍵および 公開検証鍵には限定された暗号期間を持たせることを強く助言しています。 ここで暗号期間とは、「特定の鍵が正当なエンティティによる使用を 認可される期間、または特定のシステムの鍵が有効であり続ける期間」です。 [NIST-SP-800-57-Part-1]は、 さまざまな条件下における異なる鍵種別の暗号期間について広範な ガイダンスを示し、秘密署名鍵については1年から3年の暗号期間を推奨しています。

潜在的な秘密鍵の侵害に対処するため、 [NIST-SP-800-57-Part-1]は、 保護手段、被害軽減、および失効に関する推奨事項を提供しています。 このセクションは主に秘密署名鍵のセキュリティに焦点を当てていますが、 [NIST-SP-800-57-Part-1]は、 すべての検証材料の有効性を使用前に確認することも 強く推奨しています。

9.3 コンテンツ完全性保護

このセクションは非規範的です。

検証可能なクレデンシャルには、しばしば 検証可能なクレデンシャルの外部に存在するデータへのURLが含まれます。 検証可能なクレデンシャルの外部に存在するリンクされたコンテンツ — 画像、JSON-LD拡張コンテキスト、JSONスキーマ、その他の機械可読データなど — は、データが検証可能なクレデンシャル上の 保護メカニズムによる保護の外側に存在するため、 改ざんから保護されません。

この仕様のセクション5.3 関連リソースの完全性は、外部リソースのコンテンツの 完全性を確保するための任意のメカニズムを提供します。このメカニズムは、 検証可能なクレデンシャルのセキュリティに影響しない外部リソースには 必要ありません。しかし、コンテンツの変更が潜在的にセキュリティ脆弱性を もたらし得る外部リソースでは、その実装が極めて重要です。

実装者は、保護されていない外部の機械可読コンテンツのURLに関連する 潜在的なセキュリティリスクを認識する必要があります。そのような脆弱性は、 アプリケーションに対する攻撃の成功につながる可能性があります。 外部リソースへの変更がセキュリティを損なう可能性がある場合、 実装者はこの仕様で概説されるコンテンツ完全性保護メカニズムを採用することで 利益を得られます。

9.4 署名されていない主張

このセクションは非規範的です。

この仕様は、署名または証明のないクレデンシャルの作成を可能にします。 これらのクレデンシャルクラスは、Webページ上のフォームに記入することに 類似して、中間的な保存や自己主張情報にしばしば有用です。実装者は、 これらのクレデンシャル型は、 著作者が不明であるか信頼できないため、 検証可能ではないことを認識すべきです。

9.5 中間者(MITM)、リプレイ、および複製攻撃

このセクションは非規範的です。

データモデルは、本質的には 中間者(MITM)リプレイ、および なりすまし攻撃を防ぎません。 オンラインおよびオフラインのユースケースは、敵対者が送信中または保存中の 検証可能なクレデンシャルデータを傍受、変更、再利用、および/または複製する これらの攻撃を受けやすい可能性があります。

9.5.1 中間者 (MITM)攻撃

検証者は、自分が 検証可能なプレゼンテーションの意図された受信者であり、 中間者攻撃の標的ではないことを確認する必要があるかもしれません。 JOSEおよびCOSEを使用した検証可能なクレデンシャルの保護 [VC-JOSE-COSE]や Verifiable Credential Data Integrity 1.0 [VC-DATA-INTEGRITY]などの一部の 保護メカニズムは、 プレゼンテーションの意図された対象者またはドメインを 指定するオプションを提供し、このリスクの低減に役立ちます。

トークンバインディング [RFC8471]など、 検証可能なプレゼンテーションの要求と応答を結び付ける その他のアプローチは、プロトコルの保護に役立ちます。 保護されていないプロトコルはすべて中間者攻撃を受けやすいです。

9.5.2 リプレイ攻撃

検証者は、 検証可能なプレゼンテーションを使用できる回数を制限したいと考える 場合があります。たとえば、イベントチケットを表す同じ 検証可能なクレデンシャルを 複数の個人が提示してイベントへの入場を許可されると、その 発行者の観点からチケットの目的が損なわれる可能性があります。 そのようなリプレイ攻撃を防ぐため、 検証者は、保有者に対して、 自分たちの検証可能なプレゼンテーションに追加のセキュリティ手段を 含めることを要求します。例には次が含まれます:

9.5.3 なりすまし攻撃

検証者は、保有者検証可能なプレゼンテーション内の 主張を提示する権限を持っていることを知ることに 既得の関心を持つ場合があります。データモデルは 検証可能なクレデンシャルに必要な構造およびデータ要素を 概説していますが、提示されたクレデンシャルの認可を確認する メカニズムは含みません。この懸念に対処するため、実装者は 検証可能なクレデンシャルを強力な認証メカニズムに結び付ける、 または制御の証明を可能にするために検証可能なプレゼンテーション内で 追加のプロパティを使用するなど、補助的な方法を探る必要があるかもしれません。

9.6 依存する主張の束ね合わせ

このセクションは非規範的です。

発行者クレデンシャル内の情報を原子化するか、選択的開示を可能にする 署名スキームを使用することは、ベストプラクティスと見なされます。情報を原子化する際、 発行者によって安全に行われない場合、 保有者は、 異なるクレデンシャルからの 主張を、発行者が意図しなかった 方法で束ね合わせる可能性があります。

ある大学が個人に2つの検証可能なクレデンシャルを発行する場合を 考えてみてください。各クレデンシャルには、組み合わせると特定の「部門」における その人物の「役割」を示す2つのプロパティが含まれます。たとえば、1つの クレデンシャルの組は 「Department of Computing」の「Staff Member」を指定し、別のものは 「Department of Economics」の「Post Graduate Student」を示すかもしれません。 これらの検証可能なクレデンシャルを原子化すると、 大学はその個人に4つの別個のクレデンシャルを発行することになります。各クレデンシャルには、 「Staff Member」、「Post Graduate Student」、「Department of Computing」、または「Department of Economics」という単一の指定が含まれます。 その後、保有者は、 「Staff Member」と「Department of Economics」の検証可能なクレデンシャル検証者へ提示する可能性があり、それらは合わせて虚偽の 主張を構成します。

9.7 非常に動的な情報

このセクションは非規範的です。

検証可能なクレデンシャルに非常に動的な情報が含まれる場合、 有効期間を慎重に検討することが極めて重要になります。意図された利用を超えて延びる 有効期間を持つ検証可能なクレデンシャルを発行すると、 悪意のある行為者が悪用できる潜在的なセキュリティ脆弱性が生じます。 検証可能なクレデンシャルによって表現される情報が 使用されると期待される期間より短い有効期間は、 保有者および検証者に負担を もたらします。したがって、検証可能なクレデンシャルの有効期間を、 ユースケースおよび検証可能なクレデンシャルに含まれる情報の期待される寿命に 適したものに設定することが重要です。

9.8 デバイス盗難となりすまし

このセクションは非規範的です。

検証可能なクレデンシャルをデバイスに保存することは、 そのデバイスが紛失または盗難された場合にリスクをもたらします。そのようなデバイスを 入手した攻撃者は、被害者の検証可能なクレデンシャルを使用するシステムへの 不正アクセスを潜在的に取得します。この種の攻撃を緩和する方法には、次が含まれます:

さらに、なりすましの事例は、エンティティが自らの行為を否認しようとする 状況を含め、さまざまな形で現れる可能性があります。 検証可能なクレデンシャルの領域における信頼とセキュリティを高めることは、 なりすましを回避する以上のことを含みます。それには、否認防止メカニズムの実装も 含まれます。これらのメカニズムは、エンティティの 行為または取引に対する責任を確固たるものにし、説明責任を強化し、 悪意のある行動を抑止します。否認防止の達成は多面的な取り組みであり、 保護メカニズム、所持証明、 および信頼と信頼性を促進するために設計されたさまざまなプロトコルにおける 認証スキームを含む、多様な技術を包含します。

9.9 許容される利用

このセクションは非規範的です。

エンティティの行為 — プレゼンテーションなど — と、 それらの行為の意図された目的との整合性を確保することは不可欠です。 これには、検証可能なクレデンシャルを使用する 認可を持つこと、および指定された範囲と目的に従う方法で クレデンシャルを使用することが含まれます。この文脈における 2つの重要な側面は、不正利用不適切な利用です。

9.9.1 不正利用

検証可能なクレデンシャルおよび検証可能なプレゼンテーションを、 それらの意図された目的を超えて使用するエンティティは、不正な活動に関与しています。 不正利用の一類型は機密性違反です。自分の年齢および居住ステータスを 立証するために、保有者検証可能なプレゼンテーション検証者と共有する場合を考えてください。 その後、検証者が、 データをデータブローカーへ販売するなど、適切な同意なしに 保有者のデータを利用するなら、それはデータの不正利用を構成し、 その取引において保有者が持つ可能性のある プライバシー期待に違反します。

同様に、発行者は、termsOfUse プロパティを使用して、保有者クレデンシャルをどのように、いつ使用することを 許可され、期待されるかを指定できます。termsOfUseで定義された 範囲外でクレデンシャルを使用する 保有者は、 不正であると見なされます。

注記: デジタル著作権管理は範囲外

保有者プレゼンテーション後に自らのデータの認可された利用を どのように主張し、強制できるかを判断するには、さらなる研究が必要です。

9.9.2 不適切な利用

有効な暗号署名および成功したステータスチェックは クレデンシャルの信頼性を示しますが、 すべてのクレデンシャルがすべての文脈で交換可能であることを 示すものではありません。検証者が関連する任意の 主張妥当性確認し、 保有者クレデンシャルを 提示する目的とともに、主張の出所および性質を考慮することも 極めて重要です。

たとえば、認定された医学的診断が必要なシナリオでは、必要なデータを持つ 自己主張されたクレデンシャルでは不十分な場合があります。 なぜなら、権威ある医療情報源からの妥当性を欠いているからです。適切な クレデンシャル利用を確保するため、利害関係者は 意図された適用の具体的な文脈において、クレデンシャルの 関連性および権威性を評価する必要があります。

9.10 コードインジェクション

このセクションは非規範的です。

検証可能なクレデンシャル内のデータには、注入可能なコードや スクリプト言語のコードが含まれる可能性があります。 検証可能なクレデンシャルの著者は、 必要な場合を除き、かつ関連するリスクを可能な限り最大限に緩和した後にのみ、 そのような包含を避けることで利益を得ます。

たとえば、複数の言語または注釈を含む単一の自然言語文字列は、正しく 表示するために追加の構造またはマークアップを必要とすることがよくあります。 HTMLなどのマークアップ言語は、異なる言語のテキスト範囲にラベルを付けたり、 双方向テキストを適切に表示するために 必要な文字列内部のマークアップを提供したりできます。 そのような値をJSON-LDで正確にエンコードするために、rdf:HTMLデータ型を 使用することも可能です。

情報をHTMLとしてエンコードできるにもかかわらず、実装者には次の理由から そうしないことが強く推奨されます:

実装者が特定のユースケースに対処するために、HTMLまたは実行可能スクリプトを含み得る その他のマークアップ言語を使用する必要があると感じる場合、攻撃者がそのマークアップを どのように使用して、マークアップの利用者に対するインジェクション攻撃を仕掛けることが できるかを分析することが推奨されます。この分析の後には、ネットワークへアクセスできない サンドボックス内でHTMLレンダリングエンジンを実行するなど、特定された攻撃に対する 緩和策を能動的に展開すべきです。

10. アクセシビリティ上の考慮事項

このセクションは非規範的です。

この仕様で説明されるデータを処理する際に、実装者が認識しておくべき アクセシビリティ上の考慮事項が数多くあります。あらゆるWeb標準またはプロトコルの 実装と同様に、アクセシビリティ上の問題を無視すると、この情報は 人口の大きな部分にとって利用できないものになります。[WCAG21]などの アクセシビリティ・ガイドラインおよび標準に従い、能力にかかわらずすべての人が このデータを利用できるようにすることが重要です。 これは、暗号を使用するシステムを確立する場合に特に重要です。 暗号は歴史的に支援技術に問題を生じさせてきたためです。

このセクションでは、このデータモデルを使用する際に考慮すべき 一般的なアクセシビリティ上の考慮事項について詳述します。

10.1 データ・ファーストのアプローチ

このセクションは非規範的です。

政府発行の身分証明カードなど、今日使用されている多くの物理的な クレデンシャルは、小さな文字、小さく高解像度な画像への依存、 視覚障害のある人々のためのアフォーダンスがないことなどを含むがこれらに限られない、 不十分なアクセシビリティ特性を持っています。

このデータモデルを使用して検証可能なクレデンシャルを作成する場合、 データモデル設計者にはデータ・ファーストのアプローチを使用することが 提案されます。たとえば、クレデンシャルを表すためにデータまたはグラフィカル画像の どちらを使用するかを選択できる場合、設計者は、機関の名称や専門職 クレデンシャルなど、 画像のすべての要素を、閲覧者の画像解釈に頼ってこの情報を伝えるのではなく、 機械可読な方法で表現すべきです。データ・ファーストのアプローチを使用することが 推奨されるのは、さまざまな能力を持つ人々のために異なるインターフェイスを 構築する基礎的要素を提供するためです。

11. 国際化上の 考慮事項

このセクションは非規範的です。

実装者には、この仕様で説明されるデータを公開する際に、数多くの国際化上の 考慮事項を認識しておくことが推奨されます。 あらゆるWeb標準またはプロトコルの実装と同様に、国際化を無視すると、 多様な言語や社会にまたがってデータを生成および消費することが困難になり、 その仕様の適用可能性が制限され、標準としての価値が大きく損なわれます。

実装者には、W3C Internationalization Activityによって 公開された Strings on the Web: Language and Direction Metadata文書 [STRING-META]を読むことが 強く推奨されます。この文書では、国際化を支援するためにテキストに関する 信頼できるメタデータを提供する必要性について詳述しています。国際化上の 考慮事項に関する最新情報については、実装者にはVerifiable Credentials Implementation Guidelines [VC-IMP-GUIDE]文書を 読むことも強く促されます。

このセクションでは、このデータモデルを使用する際に考慮すべき 一般的な国際化上の考慮事項を概説し、実装者が読むことに関心を持つ可能性のある Strings on the Web: Language and Direction Metadata 文書 [STRING-META]の 特定の部分を強調することを意図しています。

11.1 言語と基底方向

データ公開者には、[JSON-LD11]、[JSON]、 およびCBOR [RFC7049]などの 複数の表現構文にまたがって、言語および基底 方向情報の表現が可能であることを確保するため、 Strings on the Web: Language and Direction Metadata文書 [STRING-META]の Cross-Syntax Expressionに関するセクションを読むことが強く推奨されます。

一般的な設計パターンは、言語、および任意で特定の基底方向がタグ付けされた テキスト文字列を表現する際に、次のマークアップ・テンプレートを使用することです。

36: 自然言語文字列の設計パターン
"myProperty": {
  "@value": "The string value",
  "@language": "LANGUAGE"
  "@direction": "DIRECTION"
}

言語値オブジェクトが文字列値の代わりに使用される場合、そのオブジェクトは 値が文字列である@valueプロパティを含まなければならず(MUST)、[BCP47]で定義される 整形式のLanguage-Tagを含む文字列を値とする @languageプロパティを含むべきであり(SHOULD)、 [JSON-LD11]の@direction プロパティで定義される基底方向文字列を値とする @direction プロパティを含んでもかまいません(MAY)。言語値オブジェクトは、 @value@language、および@direction以外の キーを含めてはなりません(MUST NOT)。

上記の設計パターンを使用して、次の例は、テキスト方向を指定せずに 英語の書籍タイトルを表現します。

37: 自然言語テキストを英語として表現する
"title": {
  "@value": "HTML and CSS: Designing and Creating Websites",
  "@language": "en"
}

次の例では、類似したタイトルをアラビア語で、右から左への基底方向とともに 表現します。

38: 右から左への基底方向を持つ アラビア語テキスト
"title": {
  "@value": "HTML و CSS: تصميم و إنشاء مواقع الويب",
  "@language": "ar",
  "@direction": "rtl"
}
注記: 国際化されたテキストを適切にレンダリングすることは難しい

多くのシステムはテキスト文字列の最初の文字を使用してその基底方向を判断するため、 言語と方向を明示的に表現しない場合、上記のテキストは左から右として 誤ってレンダリングされる可能性が高いです。

複数の言語値オブジェクトを、そのプロパティの配列値として提供してもかまいません(MAY):

39: titleに提供される複数の言語テキスト
"title": [
  {
    "@value": "HTML and CSS: Designing and Creating Websites",
    "@language": "en"
  },
  {
    "@value": "HTML و CSS: تصميم و إنشاء مواقع الويب",
    "@language": "ar",
    "@direction": "rtl"
  }
]
40: 二言語クレデンシャルの例
{
  "@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."
        }
      }
    }
  }
}

11.2 デフォルトの 言語と方向の提供

各自然言語文字列プロパティ値の言語および基底方向は、各プロパティ値の 言語値構造を通じて、またはクレデンシャル全体のすべての値に対する デフォルトの言語および基底方向を通じて、提供されるべきです(SHOULD)。値ごとの言語値構造を使用することが推奨されます。 これは、文書のデフォルトを使用すると、下流の処理系が本来は任意である JSON-LD展開ベースの変換を実行する必要が生じる可能性があるためです。詳細については、 [JSON-LD11]仕様の 文字列国際化セクションを参照してください。 言語が関連付けられていない自然言語文字列値は、言語値が undefined (言語タグ「und」)であるかのように扱われるべきです(SHOULD)。基底方向が関連付けられていない自然言語文字列値は、 方向値が「auto」であるかのように扱われるべきです(SHOULD)。

A. 妥当性確認

このセクションは非規範的です。

この仕様は、妥当性確認のプロセス、すなわち検証可能なクレデンシャルまたは 検証可能なプレゼンテーションの 妥当性確認について適合基準を提供していませんが、読者は、このデータモデルの 情報が検証者によって 妥当性確認のプロセス中にどのように使用されることが 期待されているかに関心を持つかもしれません。このセクションは、この仕様のプロパティが 検証者によって期待どおりに使用されることに 関して、ワーキンググループで行われた会話の一部を記録しています。

A.1 クレデンシャル型

このセクションは非規範的です。

検証者保有者に1つ以上の検証可能なクレデンシャルを要求する場合、 受け取りたいクレデンシャルのを指定できます。 クレデンシャル型、ならびに各型およびその各主張に対する妥当性確認スキーマは、 仕様著者によって定義され、Verifiable Credential Extensionsのような 場所で公開されます。

クレデンシャルの型は、type プロパティを通じて表現されます。特定の型の検証可能なクレデンシャルには、 特定の プロパティ(深くネストされている場合があります)が含まれ、それらは プレゼンテーションが、検証者が実行する一連の処理規則を満たすかどうかを 判断するために使用できます。特定の type検証可能なクレデンシャルを要求することで、 検証者は、各検証可能なクレデンシャル発行者に由来する特定の情報を 保有者から収集でき、それにより検証者保有者とのやり取りの次の段階を判断できます。

検証者が特定の型の検証可能なクレデンシャルを要求する場合、 その型に関連付けられた必須および任意の主張の集合があります。 必須の主張が含まれていない場合、検証者による検証可能なクレデンシャルの妥当性確認は失敗し、 特定の型に関連付けられていない主張は すべて無視されます。言い換えれば、検証者は、受け取った検証可能なクレデンシャルに対して入力妥当性確認を行い、 クレデンシャル型仕様に基づいて形式不正な入力を拒否します。

A.2 クレデンシャル主体

このセクションは非規範的です。

保有者によって提示された検証可能なクレデンシャルにおいて、各 credentialSubjectid プロパティに関連付けられた値は、 検証者に対して 主体を識別します。保有者主体でもある場合、 検証者は、その保有者に関連する検証 メタデータを持っていれば、保有者を認証できます。その後、検証者は、 検証可能なプレゼンテーションに含まれる 保有者によって生成された署名を使用して、 保有者を認証できます。id プロパティは任意です。検証者は、 検証可能なクレデンシャル内の他の プロパティを使用して、 主体を一意に識別することもできます。

注記: 認証は範囲外

認証およびWebAuthnが検証可能なクレデンシャルとどのように機能するかについては、 Verifiable Credentials Implementation Guidelines 1.0文書を参照してください。

A.3 発行者

このセクションは非規範的です。

issuer プロパティに関連付けられた値は、 検証者に対して発行者を識別します。

issuer プロパティに関連するメタデータは、 セクション7.1 検証で定義される 検証アルゴリズムを通じて、 検証者が利用できます。 このメタデータには、各検証可能なクレデンシャルまたは検証可能なプレゼンテーションを保護するために 保護メカニズムによって使用された検証メソッドの、検証済みコントローラーの識別が含まれます。 そのコントローラーは通常、それぞれのissuerまたはholderです。

一部のエコシステムでは、発行者と 検証メソッドのコントローラーとの関係がより複雑である可能性があり、上記の対応付けに 加えて、またはその代わりに、検証済み発行者の一覧を使用する場合があります。

A.4 保有者

このセクションは非規範的です。

holder プロパティに関連付けられた値は、 検証者に対して 保有者を識別するために使用されます。

holder プロパティの値によって識別される 保有者に関する関連メタデータは、しばしば 検証者が利用可能、または取得可能です。たとえば、 保有者は、 検証可能なプレゼンテーションを保護するために使用される 検証材料を含む情報を公開できます。この メタデータは、検証可能なプレゼンテーション上の証明を確認する際に 使用されます。一部の暗号識別子は、必要なすべてのメタデータを識別子自体に 含みます。そのような場合、追加のメタデータは不要です。他の識別子は、 そのようなメタデータが保有者による追加の行為なしに、 検証者による利用のために自動的に公開される 検証可能データ・レジストリを使用します。

主体および保有者に関する追加例については、 Verifiable Credentials Implementation Guidelines 1.0および Verifiable Credentials Use Casesを 参照してください。

注記: 妥当性確認はビジネスルールを適用するプロセスである

妥当性確認とは、検証者がビジネスルールを適用して、特定の 検証可能なクレデンシャルの利用の適切性を 評価するプロセスです。

検証者は、与えられた検証可能なプレゼンテーションを 複雑なビジネスルールに照らして妥当性確認する必要があるかもしれません。たとえば、 検証者は、保有者検証可能なクレデンシャル主体と同じエンティティであるという確信を必要とする場合があります。 そのような状況では、次の要因により、含まれる検証可能なクレデンシャルにおいて、 その識別子に関して表現される主張が実際に現在の提示者に関するものであるという 妥当な確信を検証者に与えることができます:

A.5 発行日

このセクションは非規範的です。

validFromは、検証者にとって期待される範囲内にあることが期待されます。 たとえば、検証者は、 検証可能なクレデンシャルの 有効期間の開始が未来でないことを確認できます。

A.6 証明(署名)

このセクションは非規範的です。

検証可能なクレデンシャルまたは検証可能なプレゼンテーション内の情報が 改ざんされていないことを証明するために使用される保護メカニズムは、 暗号学的証明と呼ばれます。暗号学的証明には、デジタル署名や ゼロ知識証明を含むがこれらに限られない、多くの種類があります。 一般に、暗号学的証明を検証する際、実装には次を確保することが期待されます:

一般に、デジタル署名を検証する際、実装には次を確保することが期待されます:

A.7 有効期間

このセクションは非規範的です。

検証者は、validFromおよび validUntilプロパティが一定の範囲内にあることを期待します。たとえば、 検証者は、検証可能なクレデンシャルの有効期間の終了が過去でないことを 確認できます。一部のクレデンシャルは、元の有効期間が 期限切れになっていても二次的な目的に有用な場合があるため、 validFromおよびvalidUntilプロパティを使用して表現される有効期間は、 常に検証のに行われる妥当性確認の構成要素と見なされます。

A.8 ステータス

このセクションは非規範的です。

credentialStatusプロパティが利用可能である場合、 検証可能なクレデンシャルのステータスは、 検証者によって、検証可能なクレデンシャルに対する credentialStatus 定義、および 検証者自身のステータス評価基準に従って評価されることが 期待されます。たとえば、検証者は、 検証可能なクレデンシャルのステータスが 「発行者によって理由付きで撤回された」ものではないことを 確保できます。

A.9 スキーマ

このセクションは非規範的です。

credentialSchemaプロパティが利用可能である場合、 検証可能なクレデンシャルのスキーマは、 検証者によって、検証可能なクレデンシャルに対する credentialSchema 定義、および 検証者自身のスキーマ評価基準に従って評価されることが 期待されます。たとえば、credentialSchematype 値が[VC-JSON-SCHEMA]である場合、 検証者は、クレデンシャルのデータが 指定されたJSONスキーマに対して有効であることを確認できます。

A.10 目的への適合性

このセクションは非規範的です。

目的への適合性とは、検証可能なクレデンシャル内のカスタム プロパティが、検証者の目的に適しているかどうかに関するものです。 たとえば、検証者主体が21歳を超えているかどうかを判断する必要がある場合、 特定のbirthdate プロパティ、またはageOverなどのより抽象的な プロパティに 依拠するかもしれません。

発行者は、当面の主張を行う者として、 検証者に 信頼されています。たとえば、フランチャイズのファストフード店舗は、そのフランチャイズの 本部によって行われた割引クーポンの主張を信頼します。 検証可能なクレデンシャル内で 発行者によって表現された ポリシー情報は、そのポリシーを無視する責任を受け入れる場合を除き、 保有者および 検証者によって尊重されるべきです。

A.11 「人工 知能」と「機械学習」

このセクションは非規範的です。

今日一般に「人工知能」および/または「機械学習」と呼ばれているものを使用する システムは、人間の能力を満たす、または上回る水準で複雑なタスクを実行できる 可能性があります。これには、検証可能なクレデンシャルの取得および 使用などのタスクが含まれる場合があります。したがって、そのようなタスクを使用して、 今日CAPTCHAで一般的に行われているように、 人間と自動化された「ボット」活動を区別することは、十分または受け入れ可能な 保護を提供しなくなる可能性があります。

検証可能なクレデンシャルを使用し、 かつ/またはその内容に対して妥当性確認を行うセキュリティアーキテクチャの 実装者には、今日一般に「人工知能」と呼ばれているような、他のシステムとの やり取りで使用するための検証可能なクレデンシャルを正当に保有する可能性のある 機械ベースの行為者の存在を考慮することが促されます。実装者はまた、 脅威行為者がそのような「人工知能」システムと検証可能なクレデンシャルを組み合わせ、 システムとやり取りする際に人間になりすます可能性についても考慮するかもしれません。 そのようなシステムには、ソーシャルメディア、選挙、エネルギー配給、 サプライチェーン、自律走行車システムなどのグローバルなインフラが含まれるが、 これらに限られません。

B. コンテキスト、 語彙、型、およびクレデンシャル・スキーマ

B.1 基底コンテキスト

実装は、https://www.w3.org/ns/credentials/v2にある基底コンテキスト値を、 すでに取得済みとして扱わなければなりません(MUST)。 次の値は、基底コンテキスト・ファイルの16進数で符号化されたSHA2-256ダイジェスト値です: 59955ced6697d61e03f2b2556febe5308ab16842846f5b586d7f1f7adec92734. 現代的なUnixコマンド・インターフェイス行から次のコマンドを実行することで、 上記の暗号学的ダイジェストを確認できます: curl -s https://www.w3.org/ns/credentials/v2 | openssl dgst -sha256.

アプリケーションで使用されるすべてのJSON-LD Context URLは、エンドツーエンドの セキュリティを確保するために、同じメカニズム、または機能的に同等のメカニズムを 使用することが強く推奨されます。リソースの暗号学的ハッシュ値が期待される ハッシュ値と一致しない場合、実装はエラーを投げることが期待されます。

上記の基底コンテキスト、および任意の@contextプロパティ内のその他の コンテキストと値を、 JSON-LD展開または RDFへの変換などの操作中に適用する実装は、エラーを経験することなく それを行うことが期待されます。そのような操作が実行され、エラーが発生した場合、 検証可能なクレデンシャルまたは検証可能なプレゼンテーションは検証失敗と ならなければなりません(MUST)。

注記: ハッシュ値の変更が検出された場合は正誤表を参照

この仕様で暗号学的ハッシュ値が関連付けられているファイルが変更される可能性は 極めて低いです。しかし、仕様に重大な正誤が見つかり、エコシステムの 安定性を確保するために修正が必要となった場合、暗号学的ハッシュ値が 変更される可能性があります。そのため、ファイルのHTTPキャッシュ時間は無限には 設定されておらず、暗号学的ハッシュ値の変更が検出された場合、実装者には 正誤表を確認することが推奨されます。

このセクションは、検証可能なクレデンシャルおよび検証可能なプレゼンテーションを検証する際に、 検証者が、発行者 または保有者クレデンシャルまたはプレゼンテーションを保護したときに持っていたものと 一貫した情報を持つことを確保する重要性を思い起こさせるものです。 この情報には、少なくとも次が含まれる可能性があります:

  1. クレデンシャル自体の内容。これは 検証可能なクレデンシャルおよび検証可能なプレゼンテーションにおいて、 保護メカニズムを使用することで保護されます。詳細については、セクション4.12 保護メカニズムを参照してください。
  2. JSON-LD Contextなど、外部URLへのリンクに意味が依存するクレデンシャル内の内容。 これは、ローカルの静的コピーまたはファイルの暗号学的ダイジェストを使用して 保護できます。詳細については、セクション 5.3 関連リソースの完全性を参照してください。

検証者には、URLを介してリンクされるリソースなど、 クレデンシャル内から参照されるその他のデータは、 デフォルトでは暗号学的に保護されないことが警告されます。 永続的にキャッシュされたファイルおよび/または暗号学的ハッシュを使用して、 検証可能なクレデンシャルの セキュリティにとって重要な任意のURLに同種の保護が提供されるようにすることは、 ベストプラクティスと見なされます。最終的には、リンクされた外部コンテンツの 暗号学的ダイジェストを知ることで、検証者は、 そのコンテンツが発行者または保有者 が意図したものと同じであることを確認できます。

B.2 語彙

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ダイジェスト: 689af6f393b55c9b35c37cfad59d13cc421e0c89ce97cf0e8234f9b4a3074104

上記に列挙された暗号学的ダイジェストは、現代的なUNIX風OSの コマンドライン・インターフェイスを通じて、<DOCUMENT_URL>を 適切な値に置き換え、次のようなコマンドを実行することで確認できます: curl -sL -H "Accept: application/ld+json" <DOCUMENT_URL> | openssl dgst -sha256

注記: schema.orgは定期的に変更されるが、安定していると見なされる

実装者および文書著者は、schema.orgの暗号学的ダイジェストが 提供されていないことに気づくかもしれません。これは、schema.org語彙が 定期的に変更されるためです。提供された任意のダイジェストは、公開から数週間以内に 古くなってしまいます。ワーキンググループはこの懸念について議論し、 この仕様で使用されるschema.org由来の語彙用語は、何年にもわたって 安定しており、その意味論的意味が変更される可能性は極めて低いと結論しました。

次の基底クラスは、そのような定義から利益を得る処理系およびその他の仕様のために、 この仕様で定義されています:

基底クラス 目的
CredentialEvidence evidenceプロパティに配置される特定の証拠型の スーパークラスとして機能します。
CredentialSchema credentialSchemaプロパティに配置される特定のスキーマ型の スーパークラスとして機能します。
CredentialStatus credentialStatusプロパティに配置される特定のクレデンシャル・ステータス型の スーパークラスとして機能します。
ConfidenceMethod confidenceMethodプロパティに配置される特定の信頼度メソッド型の スーパークラスとして機能します。
RefreshService credentialRefreshプロパティに配置される特定の更新サービス型の スーパークラスとして機能します。
RenderMethod renderMethodプロパティに配置される特定のレンダリング・メソッド型の スーパークラスとして機能します。
TermsOfUse termsOfUseプロパティに配置される特定の利用条件型の スーパークラスとして機能します。

B.3 データ型

このセクションでは、この仕様で使用されるデータ型を定義します。

B.3.1 sriString データ型

sriStringデータ型は、Subresource Integrity 仕様で指定された方法を使用して、リソースの完全性情報を提供するために値と 関連付けられます。sriStringデータ型は次のように定義されます:

このデータ型を表すURL
https://www.w3.org/2018/credentials#sriString
字句空間
文字列形式の制約については、[SRI] 仕様におけるintegrity属性を定義する ABNF 文法を参照してください。
値空間
(空である可能性のある)(alg,val)ペアの一覧です。ここでalgは ハッシュ関数を識別し、valは標準的な数学概念としての整数です。
字句から値への写像
字句空間の任意の要素は、[SRI]仕様における ABNF 文法に基づく メタデータ解析アルゴリズムに 従うことで値空間に写像されます。
正準写像
正準写像は、字句から値への写像で構成されます。

B.4 コンテキスト、型、CredentialSchemasの違い

このセクションは非規範的です。

検証可能なクレデンシャルおよび検証可能なプレゼンテーションのデータモデルは、 [JSON-LD11]および [VC-JSON-SCHEMA]を含む さまざまな基盤技術を活用します。このセクションでは、 @contexttype、およびcredentialSchema プロパティの比較を提供し、データモデルのこれらの機能を使用できる、より具体的な ユースケースのいくつかを取り上げます。

typeプロパティは、それが現れる 検証可能なクレデンシャルの型を一意に識別するため、 すなわち、その検証可能なクレデンシャルが含む 主張の集合を示すために使用されます。このプロパティ、およびその値の集合内の VerifiableCredential値は必須です。この検証可能な クレデンシャルの一意なサブタイプを表す追加値を1つ含めることは 良い実践ですが、配列内の追加の型値を省略することも、含めることも許可されています。 多くの検証者は特定のサブタイプの検証可能な クレデンシャルを要求するため、サブタイプ値を省略すると、検証者が保有者に 必要な検証可能なクレデンシャルを伝えることが より困難になる可能性があります。検証可能なクレデンシャルに 複数のサブタイプがある場合、それらすべてをtypeプロパティに列挙することは 理にかなっています。[JSON-LD11]表現において 検証可能なクレデンシャルtype プロパティを使用すると、機械が意味論を確認できるため、検証可能な クレデンシャルの意味論を強制できます。[JSON-LD11]では、この技術は 主張の集合の分類を説明するだけではなく、グラフ内のプロパティのサブグラフの 構造と意味論も伝えます。[JSON-LD11]では、これはグラフ内の ノードの型を表します。そのため、一部の検証可能な クレデンシャルの[JSON-LD11]表現では、検証可能なクレデンシャル内の多くのオブジェクトで typeプロパティが使用されます。

[JSON-LD11]の 観点から見た@contextプロパティの主な目的は、 検証可能なクレデンシャル内のデータの意味と データの用語定義を、機械可読な方法で伝えることです。 @contextプロパティは、検証可能なクレデンシャルおよび検証可能なプレゼンテーション内の プロパティのグローバルに一意なURLを短い別名へ写像し、[JSON-LD11]表現を 人間にとって読みやすくするために使用されます。[JSON-LD11]の 観点からは、この写像により、クレデンシャル内のデータを機械可読データのネットワーク内で モデル化することも可能になります。これは、検証可能なクレデンシャルまたは 検証可能なプレゼンテーション内のデータが、 より大きな機械可読データグラフとどのように関係するかを強化することによって行われます。 これは、当事者が調整できないエコシステムにおいて、データの意味を 他のデータにどのように関連付けるかを機械に伝えるのに有用です。このプロパティは、 集合内の最初の値がhttps://www.w3.org/ns/credentials/v2であることを含め、 必須です。

@contextプロパティはデータをグラフ・データモデルに写像するために使用され、 [JSON-LD11]における typeプロパティはグラフ内のノードを説明するために使用されるため、 これら2つのプロパティを組み合わせて使用する場合、typeプロパティは さらに重要になります。たとえば、[JSON-LD11]を使用する 解決済みの@contextリソース内にtypeプロパティが含まれていない場合、 検証可能なクレデンシャルの生成および 消費中に、主張が失われたり、その完全性がもはや保護されなくなったりする可能性があります。 あるいは、検証可能なクレデンシャルの生成または消費中に エラーが発生する可能性もあります。これは実装の設計上の選択に依存し、 今日の実装では両方の経路が使用されているため、検証可能なクレデンシャルまたは検証可能なプレゼンテーションの [JSON-LD11]表現を使用する際には、これらのプロパティに 注意を払うことが重要です。

credentialSchemaプロパティの主な目的は、 検証可能なクレデンシャルの構造、および 現れる各プロパティの値のデータ型を定義することです。credentialSchemaは、 検証可能なクレデンシャル内の主張の集合の 内容と構造を定義するのに有用です。一方で、[JSON-LD11]および 検証可能なクレデンシャル内の@contextは、 データの意味論および用語定義を伝えるためだけに使用するのが最適ですが、 検証可能なクレデンシャルの構造を定義するためにも 使用できます。

検証可能なクレデンシャルの内容を 示唆するために一部の[JSON-LD11]機能を使用することは可能ですが、 一般には、データモデルのデータ型を制約するために@contextを使用することは 推奨されません。たとえば、"@type": "@json"は、意味論を開放的なままにし、 厳密に定義しないために有用です。実装者がクレデンシャル内の 主張のデータ型を制約しようとしている場合、これは危険であり、使用されないことが 期待されます。

credentialSchemaおよび@contextプロパティを組み合わせて 使用すると、生成者と消費者の双方は、検証可能なクレデンシャル および検証可能なプレゼンテーションの期待される内容と データ型について、より高い確信を持つことができます。

C. IANAに関する考慮事項

このセクションは非規範的です。

このセクションは、IANAでのレビュー、承認、および登録のために Internet Engineering Steering Group(IESG)へ提出されます。

C.1 application/vc

この仕様は、検証可能なクレデンシャル形式に適合する文書を 識別するために、application/vcメディア型を具体的に登録します。

型名: application
サブタイプ名: vc
必須パラメーター: なし
符号化に関する考慮事項: application/vcメディア型を使用するリソースは、 application/ld+jsonメディア型のすべての要件に適合する必要があり、 したがって、The JavaScript Object Notation (JSON) Data Interchange Formatのセクション11で指定されるものと同じ 符号化に関する考慮事項の対象となります。
セキュリティに関する考慮事項: Verifiable Credentials Data Model v2.0で定義されるとおりです。
連絡先: W3C Verifiable Credentials Working Group 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 Headerを介してリンクされた コンテキスト(JSON-LD 1.1セクション6.1 を参照)は無視されます。

C.2 application/vp

この仕様は、検証可能なプレゼンテーション形式に適合する 文書を識別するために、application/vpメディア型を具体的に登録します。

型名: application
サブタイプ名: vp
必須パラメーター: なし
符号化に関する考慮事項: application/vpメディア型を使用するリソースは、 application/ld+jsonメディア型のすべての要件に適合する必要があり、 したがって、The JavaScript Object Notation (JSON) Data Interchange Formatのセクション11で指定されるものと同じ 符号化に関する考慮事項の対象となります。
セキュリティに関する考慮事項: Verifiable Credentials Data Model v2.0で定義されるとおりです。
連絡先: W3C Verifiable Credentials Working Group 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 Headerを介してリンクされた コンテキスト([JSON-LD11]のセクション6.1 を参照)は無視されます。

D. 検証可能な プレゼンテーションの追加図

このセクションは非規範的です。

下記の14は、9の変形です。すなわち、2つの検証可能なクレデンシャルを参照し、 [VC-DATA-INTEGRITY]に基づく 埋め込み証明を使用する 検証可能なプレゼンテーションです。各検証可能なクレデンシャル・グラフは、それぞれ自身の 別個の証明グラフに接続されています。 verifiableCredentialプロパティは、検証可能なプレゼンテーション検証可能なクレデンシャル・グラフに接続するために使用されます。 プレゼンテーション証明グラフは、検証可能なプレゼンテーション・グラフ、両方の検証可能なクレデンシャル・グラフ、および検証可能なクレデンシャル・グラフからリンクされる 証明グラフのデジタル署名を表します。 この場合、完全な検証可能なプレゼンテーションは、6つの情報 グラフで構成されます。


上部に「verifiable presentation graph」があり、下部の「verifiable presentation proof graph」に
「proof」を介して接続された図。verifiable presentation graphには「Presentation ABC」というオブジェクトがあり、
値「VerifiablePresentation」を持つ「type」、値「Do Not Archive」を持つ「termsOfUse」、および
下に詳述される「verifiableCredential」の2つのインスタンスという3つのプロパティがある。
このグラフには「(the default graph)」という括弧付き注記が付いている。このグラフは、
「verifiableCredential」を通じて、図6の2つの変形(一方は同一、もう一方は有効日、人物名、
nonceおよびsignatureの値を参照するラベルに小さな違いがある)から成る図の部分に接続されるが、
これらのverifiable credential graphはデフォルト・グラフではなく名前付きグラフであると注記されている。
verifiable presentation proof graphには「Signature 8920」とラベル付けされたオブジェクトがあり、
値「DataIntegrityProof」を持つ「type」、値「Example Presenter Public Key 11」を持つ
「verificationMethod」、値「2024-01-02T12:43:56Z」を持つ「created」、値「hasdkyruod87j」を持つ
「nonce」、値「zpewJHoan87=」を持つ「proofValue」という5つのプロパティがある。このグラフには
「(a named graph)」という括弧付き注記が付いている。
14 9の変形: Verifiable Credential Data Integrity 1.0 [VC-DATA-INTEGRITY]に基づく 埋め込み証明を使用し、2つの 検証可能なクレデンシャルを参照する検証可能なプレゼンテーションに関連付けられた情報 グラフ

下記の15は、14と同じ 検証可能なプレゼンテーションを示しますが、 [VC-JOSE-COSE]に基づく 包み込み証明を使用しています。 各検証可能なクレデンシャル・グラフは、単一の EnvelopedVerifiableCredential インスタンスを含み、data: URL [RFC2397]を介して、包み込み証明によって保護された 検証可能なクレデンシャルを参照します。


左側に「JWT (Decoded)」とラベル付けされたボックスがあり、その中に縦に積み重なった
3つのテキストラベル、すなわち「Header」「Payload」「Signature」がある図。「Header」ラベルは
矢印で右側の別の長方形に接続され、その長方形には6つのテキストフィールド
「kid: aB8J-_Z」「alg: ES384」「cty: vc」「iss:
https://example.com」「iat: 1704690029」「typ: vp+sd-jwt」が含まれる。
左側の「Payload」ラベルは矢印で別の長方形に接続され、その長方形は3つの関連グラフ
(縦に積み重ねられている)で構成され、上部グラフから開始してそれぞれ2つの他のグラフへ接続する
「verifiableCredential」とラベル付けされた2本の矢印で接続されている。上部グラフには
「verifiable presentation graph (serialized in JSON)」というラベルがあり、他の2つはいずれも
「verifiable credential graph (serialized in JSON)」とラベル付けされている。長方形内の上部グラフには
オブジェクト「Presentation ABC」があり、値VerifiablePresentationの「type」、値「Do Not Archive」の
「termsOfUse」という3つのプロパティがある。下部グラフの1つには、主語として
「data:application/vc+sd-jwt,QzVjV...RMjU」があり、単一のプロパティとして
値`EnvelopedVerifiableCredential`の「type」がある。最後の下部グラフは、主語が
「data:application/vc+sd-jwt,RkOyT...KjOl」とラベル付けされていることを除き同一である。
最後に、左側の「Signature」ラベルは矢印で別の長方形に接続され、その長方形には単一の
テキストフィールド「cYjaSdfIoJH45NIqw3MYnasGIba...」が含まれる。
15 10の変形: JOSE [VC-JOSE-COSE]に基づく 包み込み証明を使用し、2つの 検証可能なクレデンシャルを参照する検証可能なプレゼンテーションに 関連付けられた情報グラフ

E. 改訂履歴

このセクションには、この仕様に時間の経過とともに加えられた実質的な変更が含まれています。

v2.0第2候補勧告以降の変更:

v2.0第1候補勧告以降の変更:

v1.1勧告以降の変更:

v1.0勧告以降の変更:

F. 謝辞

このセクションは非規範的です。

ワーキンググループは、この文書の内容への貢献だけでなく、多様な意見の海の中で 変更、議論、および合意を推進したこの標準化コミュニティにおける献身的な働きについて、 次の個人に感謝します: David Chadwick, Dave Longley, Ted Thibodeau Jr., Brent Zundel, Ivan Herman, Joe Andrieu, and 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, and Shigeya Suzukiが 促進したRebooting the Web of Trustコミュニティによって支援されてきました。 Phil Windley, Kaliya Young, Doc Searls, and Heidi Nobantu Saulが促進した Internet Identity Workshopの参加者も、この仕様について教育し、議論し、改善することを 目的とした多数の作業セッションを通じて、この作業の洗練を支援しました。

ワーキンググループはまた、ワーキンググループ議長であるDan Burnett, Matt Stone, Brent Zundel, Wayne Chang, and Kristina Yasuda、ならびにW3Cスタッフ・コンタクトである Kazuyuki Ashimura and 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, and 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, and Yancy Ribbens.

G. 参考文献

G.1 規範的参考文献

[i18n-glossary]
Internationalization Glossary. Richard Ishida; Addison Phillips. W3C. 17 October 2024. W3C Working Group Note. URL: https://www.w3.org/TR/i18n-glossary/
[INFRA]
Infra Standard. Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL: https://infra.spec.whatwg.org/
[JSON-LD11]
JSON-LD 1.1. Gregg Kellogg; Pierre-Antoine Champin; Dave Longley. W3C. 16 July 2020. W3C Recommendation. URL: https://www.w3.org/TR/json-ld11/
[JSON-LD11-API]
JSON-LD 1.1 Processing Algorithms and API. Gregg Kellogg; Dave Longley; Pierre-Antoine Champin. W3C. 16 July 2020. W3C Recommendation. URL: https://www.w3.org/TR/json-ld11-api/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119
[RFC2397]
The "data" URL scheme. L. Masinter. IETF. August 1998. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc2397
[RFC6838]
Media Type Specifications and Registration Procedures. N. Freed; J. Klensin; T. Hansen. IETF. January 2013. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc6838
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc8174
[RFC9457]
Problem Details for HTTP APIs. M. Nottingham; E. Wilde; S. Dalal. IETF. July 2023. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc9457
[SRI]
Subresource Integrity. Devdatta Akhawe; Frederik Braun; Francois Marier; Joel Weinberger. W3C. 23 June 2016. W3C Recommendation. URL: https://www.w3.org/TR/SRI/
[URL]
URL Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://url.spec.whatwg.org/
[VC-DATA-INTEGRITY]
Verifiable Credential Data Integrity 1.0. Ivan Herman; Manu Sporny; Ted Thibodeau Jr; Dave Longley; Greg Bernstein. W3C. 15 May 2025. W3C Recommendation. URL: https://www.w3.org/TR/vc-data-integrity/
[VC-JOSE-COSE]
Securing Verifiable Credentials using JOSE and COSE. Michael Jones; Gabe Cohen; Michael Prorock. W3C. 15 May 2025. W3C Recommendation. URL: https://www.w3.org/TR/vc-jose-cose/
[XMLSCHEMA11-2]
W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes. David Peterson; Sandy Gao; Ashok Malhotra; Michael Sperberg-McQueen; Henry Thompson; Paul V. Biron et al. W3C. 5 April 2012. W3C Recommendation. URL: https://www.w3.org/TR/xmlschema11-2/

G.2 参考情報文献

[BCP47]
Tags for Identifying Languages. A. Phillips, Ed.; M. Davis, Ed. IETF. September 2009. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc5646
[CID]
Controlled Identifiers v1.0. Michael Jones; Manu Sporny. W3C. 15 May 2025. W3C Recommendation. URL: https://www.w3.org/TR/cid-1.0/
[DEMOGRAPHICS]
Simple Demographics Often Identify People Uniquely. Latanya Sweeney. Data Privacy Lab. URL: https://dataprivacylab.org/projects/identifiability/paper1.pdf
[DID]
Decentralized Identifiers (DIDs) v1.0. Manu Sporny; Amy Guy; Markus Sabadello; Drummond Reed. W3C. 19 July 2022. W3C Recommendation. URL: https://www.w3.org/TR/did-core/
[ETSI-TRUST-LISTS]
Electronic Signatures and Infrastructures (ESI); Trusted Lists. ETSI. ETSI. ETSI Standard TS 119 612 V2.1.1 (2015-07). URL: https://www.etsi.org/deliver/etsi_ts/119600_119699/119612/02.01.01_60/ts_119612v020101p.pdf
[FIPS-186-5]
FIPS PUB 186-5: Digital Signature Standard (DSS). U.S. Department of Commerce/National Institute of Standards and Technology. 3 February 2023. National Standard. URL: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-5.pdf
[JSON]
The JavaScript Object Notation (JSON) Data Interchange Format. T. Bray, Ed. IETF. December 2017. Internet Standard. URL: https://www.rfc-editor.org/rfc/rfc8259
[LD-BP]
Best Practices for Publishing Linked Data. Bernadette Hyland; Ghislain Auguste Atemezing; Boris Villazón-Terrazas. W3C. 9 January 2014. W3C Working Group Note. URL: https://www.w3.org/TR/ld-bp/
[LINKED-DATA]
Linked Data Design Issues. Tim Berners-Lee. W3C. 27 July 2006. W3C-Internal Document. URL: https://www.w3.org/DesignIssues/LinkedData.html
[NIST-SP-800-57-Part-1]
Recommendation for Key Management: Part 1 – General. Elaine Barker. National Institute of Standards and Technology. May 2020. URL: https://doi.org/10.6028/NIST.SP.800-57pt1r5
[RDF-SCHEMA]
RDF Schema 1.1. Dan Brickley; Ramanathan Guha. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/rdf-schema/
[RDF11-CONCEPTS]
RDF 1.1 Concepts and Abstract Syntax. Richard Cyganiak; David Wood; Markus Lanthaler. W3C. 25 February 2014. W3C Recommendation. URL: https://www.w3.org/TR/rdf11-concepts/
[RFC7049]
Concise Binary Object Representation (CBOR). C. Bormann; P. Hoffman. IETF. October 2013. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc7049
[RFC7159]
The JavaScript Object Notation (JSON) Data Interchange Format. T. Bray, Ed. IETF. March 2014. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc7159
[RFC7231]
Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content. R. Fielding, Ed.; J. Reschke, Ed. IETF. June 2014. Proposed Standard. URL: https://httpwg.org/specs/rfc7231.html
[RFC8471]
The Token Binding Protocol Version 1.0. A. Popov, Ed.; M. Nystroem; D. Balfanz; J. Hodges. IETF. October 2018. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc8471
[RFC9110]
HTTP Semantics. R. Fielding, Ed.; M. Nottingham, Ed.; J. Reschke, Ed. IETF. June 2022. Internet Standard. URL: https://httpwg.org/specs/rfc9110.html
[RFC9458]
Oblivious HTTP. M. Thomson; C. A. Wood. IETF. January 2024. Proposed Standard. URL: https://www.rfc-editor.org/rfc/rfc9458
[SCHEMA-ORG]
Schema.org. W3C Schema.org Community Group. W3C. 6.0. URL: https://schema.org/
[STRING-META]
Strings on the Web: Language and Direction Metadata. Richard Ishida; Addison Phillips. W3C. 17 October 2024. W3C Working Group Note. URL: https://www.w3.org/TR/string-meta/
[VC-DATA-MODEL-2.0]
Verifiable Credentials Data Model v2.0. Ivan Herman; Michael Jones; Manu Sporny; Ted Thibodeau Jr; Gabe Cohen. W3C. 15 May 2025. W3C Recommendation. URL: https://www.w3.org/TR/vc-data-model-2.0/
[VC-DI-BBS]
Data Integrity BBS Cryptosuites v1.0. Greg Bernstein; Manu Sporny. W3C. 3 April 2025. CRD. URL: https://www.w3.org/TR/vc-di-bbs/
[VC-EXTENSIONS]
Verifiable Credential Extensions. Manu Sporny. W3C Verifiable Credentials Working Group. W3C Editor's Draft. URL: https://w3c.github.io/vc-extensions/
[VC-IMP-GUIDE]
Verifiable Credentials Implementation Guidelines 1.0. Andrei Sambra. W3C. 24 September 2019. W3C Working Group Note. URL: https://www.w3.org/TR/vc-imp-guide/
[VC-JSON-SCHEMA]
Verifiable Credentials JSON Schema Specification. Gabe Cohen; Orie Steele. W3C Verifiable Credentials Working Group. FPWD. URL: https://www.w3.org/TR/vc-json-schema/
[VC-OVERVIEW]
Verifiable Credentials Overview. Ivan Herman. W3C. 12 February 2025. W3C Working Group Note. URL: https://www.w3.org/TR/vc-overview/
[VC-USE-CASES]
Verifiable Credentials Use Cases. Shane McCarron; Joe Andrieu; Matt Stone; Tzviya Siegman; Gregg Kellogg; Ted Thibodeau Jr. W3C. 24 September 2019. W3C Working Group Note. URL: https://www.w3.org/TR/vc-use-cases/
[WCAG21]
Web Content Accessibility Guidelines (WCAG) 2.1. Michael Cooper; Andrew Kirkpatrick; Joshue O'Connor; Alastair Campbell. W3C. 12 December 2024. W3C Recommendation. URL: https://www.w3.org/TR/WCAG21/