メインコンテンツまでスキップ

ストーリーで学ぶ Verifiable Credentials

このドキュメントでは、具体的なストーリーを通じて VC の仕組みを理解します。登場人物と一緒に、VC がどのように使われるかを見ていきましょう。


ストーリー1: 太郎さんの運転免許証

登場人物

  • 太郎さん: 25歳の会社員。スマホで何でも済ませたい
  • 公安委員会: 運転免許証を発行する機関
  • 居酒屋の店員: 年齢確認が必要
  • レンタカー会社: 免許証の確認が必要

第1章: デジタル免許証の取得

太郎さんは運転免許証の更新に来ました。

┌─────────────────────────────────────────────────────────────┐
│ 運転免許センター │
│ │
│ 職員: 「更新完了です。デジタル免許証も発行しますか?」 │
│ │
│ 太郎: 「お願いします!」 │
│ │
│ 職員: 「スマホの Wallet アプリを開いてください」 │
│ │
│ [太郎さんのスマホ] │
│ ┌─────────────────────────────────────────┐ │
│ │ 🆔 Wallet │ │
│ │ │ │
│ │ 新しいクレデンシャルを追加しますか? │ │
│ │ │ │
│ │ 発行者: 東京都公安委員会 │ │
│ │ 種類: 運転免許証 │ │
│ │ │ │
│ │ [ 追加する ] [ キャンセル ] │ │
│ └─────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

裏側で起きていること:

1. 公安委員会が太郎さんの情報を VC として作成
{
"氏名": "山田太郎",
"生年月日": "1999-03-15",
"住所": "東京都...",
"免許種別": ["普通自動車", "原付"],
"有効期限": "2029-03-15"
}

2. 公安委員会の秘密鍵でデジタル署名

3. 署名付き VC を太郎さんのスマホに転送

4. スマホの安全な領域(Secure Element)に保存

ポイント:

  • VC は太郎さんのスマホにだけ保存される
  • 公安委員会は「発行した」という記録だけを持つ
  • 秘密鍵はスマホから取り出せない

第2章: 居酒屋での年齢確認

太郎さんは友人と居酒屋に来ました。

┌─────────────────────────────────────────────────────────────┐
│ 居酒屋の入口 │
│ │
│ 店員: 「年齢確認をお願いします」 │
│ │
│ 太郎: (スマホを取り出す) │
│ │
│ [店員のタブレット] [太郎さんのスマホ] │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ 年齢確認リクエスト │◄────────│ 🆔 Wallet │ │
│ │ │ │ │ │
│ │ 確認項目: │ │ 開示しますか? │ │
│ │ ☑ 20歳以上か │ │ │ │
│ │ │ │ ✓ 20歳以上か │ │
│ │ 発行者: │ │ │ │
│ │ 公安委員会のみ │ │ 以下は開示しません│ │
│ │ │ │ ✗ 氏名 │ │
│ └──────────────────┘ │ ✗ 住所 │ │
│ │ ✗ 生年月日 │ │
│ │ │ │
│ │ [ 許可 ] [拒否] │ │
│ └──────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

太郎さんが「許可」をタップすると...

┌─────────────────────────────────────────────────────────────┐
│ [店員のタブレット] │
│ ┌──────────────────────────────────────────┐ │
│ │ │ │
│ │ ✅ 年齢確認完了 │ │
│ │ │ │
│ │ 20歳以上: はい │ │
│ │ │ │
│ │ 発行者: 東京都公安委員会 │ │
│ │ 署名: ✅ 有効 │ │
│ │ 有効期限: ✅ 期限内 │ │
│ │ │ │
│ └──────────────────────────────────────────┘ │
│ │
│ 店員: 「確認できました。どうぞ!」 │
│ │
└─────────────────────────────────────────────────────────────┘

裏側で起きていること:

1. 店員のタブレットが「20歳以上か」のみを要求

2. 太郎さんのスマホが VC から該当部分だけを抽出
{
"20歳以上": true
}
+ 公安委員会の署名(この部分だけでも検証可能)

3. 店員のタブレットが署名を検証
- 公安委員会の公開鍵で署名をチェック
- 有効期限をチェック
- 失効していないかチェック

4. すべて OK なので「確認完了」

従来との違い:

項目従来(物理免許証)VC
店員が見る情報全部「20歳以上か」のみ
氏名見える見えない
住所見える見えない
生年月日見える見えない
確認方法目視デジタル署名検証

第3章: レンタカーの予約

太郎さんは旅行のためレンタカーを借ります。

┌─────────────────────────────────────────────────────────────┐
│ レンタカー会社のカウンター │
│ │
│ スタッフ: 「運転免許証の確認をお願いします」 │
│ │
│ [太郎さんのスマホ] │
│ ┌─────────────────────────────────────────┐ │
│ │ 🆔 Wallet │ │
│ │ │ │
│ │ レンタカー会社が以下を要求しています: │ │
│ │ │ │
│ │ ✓ 氏名 │ │
│ │ ✓ 生年月日 │ │
│ │ ✓ 運転免許種別 │ │
│ │ ✓ 有効期限 │ │
│ │ │ │
│ │ 以下は開示しません: │ │
│ │ ✗ 住所 │ │
│ │ ✗ 免許証番号 │ │
│ │ │ │
│ │ [ 許可 ] [ 拒否 ] │ │
│ └─────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

ポイント:

  • レンタカー会社は住所を必要としない(契約時に別途取得するため)
  • 太郎さんは必要な情報だけを開示
  • 検証者(レンタカー会社)ごとに開示する情報を変えられる

第4章: もしスマホを失くしたら

太郎さんがスマホを失くしてしまいました。

┌─────────────────────────────────────────────────────────────┐
│ 太郎さんの対応 │
│ │
│ 1. 公安委員会のウェブサイトにアクセス │
│ (別のデバイスから) │
│ │
│ 2. 本人確認後、デジタル免許証の失効を申請 │
│ │
│ [公安委員会のシステム] │
│ ┌─────────────────────────────────────────┐ │
│ │ │ │
│ │ デジタル運転免許証を失効しますか? │ │
│ │ │ │
│ │ 対象: 山田太郎 │ │
│ │ 発行日: 2024-03-15 │ │
│ │ │ │
│ │ ⚠️ 失効後は再発行が必要です │ │
│ │ │ │
│ │ [ 失効する ] [ キャンセル ] │ │
│ └─────────────────────────────────────────┘ │
│ │
│ 3. 失効完了 │
│ → 古い VC は検証時に「無効」と判定される │
│ │
│ 4. 新しいスマホで再発行 │
│ │
└─────────────────────────────────────────────────────────────┘

失効の仕組み:

失効リスト(Status List):

公安委員会が管理するリスト
┌────────────────────────────────────────────┐
│ 免許証ID │ 状態 │
├────────────┼────────────────────────────────┤
│ ... │ 有効 │
│ 太郎のID │ 失効 ← 追加された! │
│ ... │ 有効 │
└────────────────────────────────────────────┘

検証時:
1. VC の署名を検証 → OK
2. 失効リストを確認 → 失効している!
3. 結果: 無効

ストーリー2: 花子さんの大学卒業証明書

登場人物

  • 花子さん: 就職活動中の大学4年生
  • ○○大学: 花子さんの大学
  • △△株式会社: 花子さんが応募した会社

第1章: 卒業証明書の発行

┌─────────────────────────────────────────────────────────────┐
│ 大学の証明書発行システム │
│ │
│ 花子さん: 「卒業証明書を発行してください」 │
│ │
│ システム: 「デジタル証明書(VC)で発行できます」 │
│ │
│ [花子さんのスマホ] │
│ ┌─────────────────────────────────────────┐ │
│ │ 🆔 Wallet │ │
│ │ │ │
│ │ 📜 卒業証明書 │ │
│ │ │ │
│ │ 発行者: ○○大学 │ │
│ │ 氏名: 田中花子 │ │
│ │ 学部: 経済学部 │ │
│ │ 学科: 経済学科 │ │
│ │ 卒業日: 2024-03-25 │ │
│ │ 学位: 学士(経済学) │ │
│ │ │ │
│ │ ✅ 大学のデジタル署名付き │ │
│ └─────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

第2章: 就職活動での提出

┌─────────────────────────────────────────────────────────────┐
│ △△株式会社の採用サイト │
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ 最終面接書類の提出 │ │
│ │ │ │
│ │ 以下の書類を提出してください: │ │
│ │ ☑ 履歴書(アップロード済み) │ │
│ │ ☐ 卒業証明書 │ │
│ │ │ │
│ │ 卒業証明書の提出方法: │ │
│ │ ○ PDF をアップロード │ │
│ │ ● デジタル証明書(VC)を提示 ← 選択 │ │
│ │ │ │
│ │ [ QRコードを表示 ] │ │
│ └─────────────────────────────────────────┘ │
│ │
│ 花子さん: スマホで QR コードを読み取り │
│ │
│ [花子さんのスマホ] │
│ ┌─────────────────────────────────────────┐ │
│ │ △△株式会社が以下を要求しています: │ │
│ │ │ │
│ │ ✓ 大学名 │ │
│ │ ✓ 学部・学科 │ │
│ │ ✓ 卒業年月 │ │
│ │ ✓ 学位 │ │
│ │ │ │
│ │ 以下は開示しません: │ │
│ │ ✗ 学籍番号 │ │
│ │ ✗ 成績(GPA) │ │
│ │ │ │
│ │ [ 許可 ] [ 拒否 ] │ │
│ └─────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

従来の方式との比較:

項目従来(紙の証明書)VC
発行大学窓口で申請、数日待つ即時発行
費用有料(数百円)無料または低コスト
提出郵送または PDFスマホから即時提出
検証企業が大学に問い合わせデジタル署名で即時検証
偽造リスクあり数学的に不可能

第3章: 企業側の検証

┌─────────────────────────────────────────────────────────────┐
│ △△株式会社の採用システム │
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ 田中花子さんの卒業証明書 │ │
│ │ │ │
│ │ ✅ 検証完了 │ │
│ │ │ │
│ │ 発行者: ○○大学 │ │
│ │ 署名: ✅ 有効(○○大学の公開鍵で検証) │ │
│ │ 発行日: 2024-03-25 │ │
│ │ 失効: ✅ されていない │ │
│ │ │ │
│ │ 内容: │ │
│ │ 大学名: ○○大学 │ │
│ │ 学部: 経済学部 │ │
│ │ 学科: 経済学科 │ │
│ │ 卒業日: 2024-03-25 │ │
│ │ 学位: 学士(経済学) │ │
│ │ │ │
│ └─────────────────────────────────────────┘ │
│ │
│ 人事担当: 「大学に問い合わせなくても本物と確認できた!」 │
│ │
└─────────────────────────────────────────────────────────────┘

ストーリー3: 健一さんのオンライン銀行口座開設

本人確認(KYC)での VC 活用

┌─────────────────────────────────────────────────────────────┐
│ オンライン銀行の口座開設 │
│ │
│ 従来の方法: │
│ ┌─────────────────────────────────────────┐ │
│ │ 1. 免許証の写真をアップロード │ │
│ │ 2. 自撮り写真を撮影 │ │
│ │ 3. 銀行が目視で照合(数日かかる) │ │
│ │ 4. 問題があれば再提出依頼 │ │
│ └─────────────────────────────────────────┘ │
│ │
│ VC を使った方法: │
│ ┌─────────────────────────────────────────┐ │
│ │ 1. スマホで VC を提示 │ │
│ │ 2. 即時検証・完了 │ │
│ └─────────────────────────────────────────┘ │
│ │
│ 健一さん: 「5分で口座開設できた!」 │
│ │
└─────────────────────────────────────────────────────────────┘

銀行が確認すること:

VC から得られる情報:
✓ 氏名: 本人確認に必要
✓ 住所: 本人確認に必要
✓ 生年月日: 年齢確認に必要

VC の検証:
✓ 発行者の署名が有効
✓ 発行者が信頼できる機関(公安委員会)
✓ 失効していない
✓ 有効期限内

→ 銀行の KYC 要件を満たす!

まとめ: VC がもたらす変化

ユーザー(保持者)のメリット

従来VC
証明書ごとに物理的な書類が必要スマホ1つで全て管理
全ての情報を見せる必要がある必要な情報だけ開示
発行に時間がかかる即時発行
郵送や窓口提出スマホから即時提出
紛失したら再発行失効+再発行が即時

検証者(企業・店舗)のメリット

従来VC
目視確認(偽造リスク)デジタル署名で確実
発行元に問い合わせ問い合わせ不要
時間がかかる即時検証
紙の保管が必要デジタルで管理

発行者(政府・大学・企業)のメリット

従来VC
照会対応の負担照会不要
偽造される可能性偽造不可能
紙・印刷コストデジタルで低コスト

次のステップ

ドキュメント内容
VC Data ModelVC の技術的な構造
DID分散型識別子の仕組み
VC フォーマット比較JWT, SD-JWT, mdoc の違い
用語集専門用語の解説