ストーリーで学ぶ 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章: 就職活動での提出
┌─────────────────────────────────────────────────────────────┐
│ △△株式会社の採用サイト │
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ 最終面接書類の提出 │ │
│ │ │ │