目次

DID/VC
技術

W3C標準に準拠したDecentralized Identity(DID)とVerifiable Credentials(VC)の
実装リファレンスと技術検証プラットフォーム

DID/VCとは

個人がデジタルアイデンティティを完全に自己管理し、必要な情報のみを選択的に開示できる分散型認証基盤

従来システム
graph TD A[ユーザ] --> B[中央認証サーバ] B --> C[サービス] B -.-> D1[全情報開示必須] B -.-> D2[ベンダーロックイン]
DID/VCシステム
graph TD H[Holder] I[Issuer] V[Verifier] I -.-> |VC発行| H H -.-> |VP提示| V H -.-> D3[選択的開示] H -.-> D4[自己管理]

※ 実際の認証フローは概念的に簡略化して表示

自己主権型

中央機関に依存せず完全にコントロール

プライバシー保護

必要最小限の情報のみを選択的に開示

検証可能

暗号学的証明により真正性を保証

相互運用性

W3C標準準拠で異システム間連携

従来システムとの違い

従来方式
  • • 中央集権型認証基盤
  • • プラットフォーム事業者によるデータ独占
  • • 全属性情報の一括開示
  • • ベンダーロックイン問題
DID/VC
  • • 分散型認証基盤
  • • 利用者による完全な自己管理
  • • 選択的属性開示
  • • 標準準拠による相互運用性

主要な利用場面

学術・資格認証

学位、専門資格、研修修了証明の偽造防止と迅速な検証

職歴・スキル証明

職務経歴、技能認定の信頼性確保と転職時の効率化

年齢・資格確認

具体的な年齢を開示せずに成人証明や資格要件の確認

公的証明書

政府発行の身分証明書、住民票、印鑑証明のデジタル化

デモ体験

実際に動くデモでDID/VCの仕組みを体験

Basic Demo

VC発行からVP提示、検証まで一通りの流れを体験するシンプルなデモ

体験できる機能
VC発行 VP生成 QR認証 選択的開示

追加デモ(開発予定)

より高度なDID/VC機能を体験できる追加デモを開発中

開発予定機能
ブロックチェーン統合 Zero-Knowledge Proofs BBS+ Signatures DID Methods
開発中

Basic Demo 使い方ガイド

スマートフォンとPCを使ったVC発行から認証までの実際の手順

スマートフォンでのアクセス

Basic DemoはモバイルデバイスでのVC管理・VP提示を前提に設計
右のQRコードをスマートフォンで読み取ってデモサイトにアクセス。

Basic Demo QRコード

スマートフォンで読み取り

01_holder_home.png

STEP 1 ホルダーアプリにアクセス

スマートフォンでBasic Demoサイトを開くと、ホルダー(証明書保有者)のトップページが表示される 主要な機能として以下の2つのメニューがある:

  • VC管理: 証明書の発行申請と管理
  • VP提示: 検証者に対して証明書を提示

DID/VCでは、個人が自分のデジタル証明書を完全に管理

STEP 2 VC管理メニューを選択

「VC管理」をタップして証明書管理画面に移動
初回アクセス時は、まだ証明書が発行されていないため、発行申請フォームが表示される

発行された証明書はブラウザのローカルストレージに安全に保存

02_vc_management_menu.png
03_vc_application_form.png

STEP 3 必要情報を入力

証明書発行に必要な個人情報を入力:

  • 氏名: 証明書に記載される氏名
  • 生年月日: 年齢認証等で使用
  • 住所: 居住地証明で使用
  • 性別: 任意入力項目

入力した情報は必要な項目のみを選択的に開示

STEP 4 VC発行申請・完了

「VC発行申請」ボタンをタップすると、証明書が発行される
デモでは発行者(Issuer)の認証プロセスは省略

実際の運用では: 発行者が本人確認・審査を実施した後、証明書にデジタル署名を付与して発行

発行が完了すると、デジタル身分証明書カードが表示され、ウォレットに保存される

04_vc_issued_success.png
05_verifier_home.png

STEP 5 PC で検証アプリを開く

PCで認証・検証を行うアプリケーションを開く
このアプリはスマートフォンから提示される証明書(VP)のQRコードを読み取り、真正性を検証

検証アプリURL:
https://takuya-motoshima.github.io/did-vc-dist/basic/verifier/

PC の大きな画面でQRコードリーダーを起動し、スマートフォンのQRコードを読み取る

STEP 6 認証シナリオを選択してQRリーダー起動

検証したい情報に応じてシナリオを選択すると、自動的にカメラが起動してQRコード読み取り待機状態になる:

本人確認

氏名・生年月日・住所を含む完全な身元認証を実行

年齢認証

成人年齢のみを認証(プライバシー保護・個人情報非開示)

年齢認証では具体的な生年月日を開示せずに成人証明のみ行う

シナリオ選択後、カメラが自動起動してスマートフォンのQRコードを読み取る準備が完了

06_scenario_selection.png
07_vp_presentation_scenario.png

STEP 7 スマートフォンでVP提示

スマートフォンでホルダーアプリの「VP提示」メニューを開き、
PC画面で選択したシナリオと同じものを選択

  • 本人確認の場合:「本人確認」を選択
  • 年齢認証の場合:「年齢認証」を選択

シナリオに応じて、必要最小限の情報のみが自動選択されVPが生成される

STEP 8 QRコード生成・読み取り

シナリオを選択すると、選択的に開示された情報を含むVP(Verifiable Presentation)が生成され、
QRコードとして表示されます

このQRコードをPCの検証アプリのカメラにかざして読み取らせる

QRコードの内容: 暗号化された証明書情報とデジタル署名が含まれている
08_qr_generated_scanning.png

STEP 9 QRコード読み取りと認証成功

スマートフォンのQRコードをPCのカメラにかざすと、自動的に読み取りが行われ、検証処理が実行されます

QRコード読み取り中 QRコード読み取り中
認証成功画面 認証成功画面

成功時には以下の情報が確認できます:

  • 本人確認の場合: 氏名、生年月日、住所の真正性確認
  • 年齢認証の場合: 成人年齢であることの確認(具体的な年齢は非開示)

デモ完了

DID/VCシステムの基本的なフローが完了
このデモンストレーションでは以下の技術的特徴を確認できる:

自己主権型

個人が証明書を完全に管理し、必要に応じて提示

選択的開示

シナリオに応じて必要最小限の情報のみを開示

暗号学的保証

デジタル署名により証明書の真正性を確保

モバイル対応

スマートフォンを使った直感的な操作

アーキテクチャ

DID/VCエコシステムの三つの主要な役割

DID/VCアーキテクチャ関係図

graph TD H[Holder
証明書保有者] I[Issuer
証明書発行者] V[Verifier
証明書検証者] H -.-> |1. 証明書申請| I I -.-> |2. VC発行| H H -.-> |3. VP提示| V V -.-> |4. 検証結果| H I -.-> |信頼関係| V

Holder

証明書保有者。DIDを生成・管理し、VCを保管。認証時にVPを生成・提示

  • DID生成・管理
  • VC保管
  • VP生成・提示
  • QRコード認証

Issuer

証明書発行者。信頼ある機関として、VCを発行しデジタル署名で真正性を保証

  • VC発行
  • デジタル署名
  • 証明書管理
  • 公開鍵配布

Verifier

証明書検証者。提示されたVPの真正性を検証し、証明書の有効性を判定

  • VP検証
  • 署名確認
  • 属性検証
  • 失効確認

VC発行から検証までの詳細フロー

sequenceDiagram participant H as Holder participant I as Issuer participant V as Verifier Note over H: 1. DID生成フェーズ H->>H: 鍵ペア生成 H->>H: DID作成 H->>H: DID Document作成 Note over H,I: 2. VC発行フェーズ H->>I: 証明書発行申請 I->>I: 本人確認・審査 I->>I: VC生成・署名 I->>H: VC送付 H->>H: VC保存 Note over H,V: 3. VP提示フェーズ V->>H: 認証要求 H->>H: 必要属性選択 H->>H: VP生成・署名 H->>V: VP提示(QR等) Note over V: 4. 検証フェーズ V->>V: VP構造検証 V->>V: 署名検証 V->>V: 発行者信頼性確認 V->>H: 検証結果通知

簡易フローステップ

DID生成

鍵ペア生成、DID作成、レジストリ登録

VC発行

申請、審査、VC生成・署名、送付

VP提示

認証要求、属性選択、VP生成、QR提示

VP検証

構造検証、署名検証、属性確認

技術詳細

実装で使用している暗号技術と国際標準への準拠状況

データ形式・標準
  • DID: did:key方式、 Ed25519 楕円曲線暗号
    高性能なEdDSA署名アルゴリズムを採用
  • VC/VP: JSON-LD形式、W3C勧告準拠
  • 証明形式: Linked Data Proofs、JWS両対応
  • 署名方式: EdDSA、ECDSA P-256
セキュリティ・暗号
  • デジタル署名: Ed25519、ECDSA P-256、RSA
  • ハッシュ関数: SHA-256、SHA-3、BLAKE2b
  • 鍵管理: ローカルストレージ(検証用)
  • 本番推奨: HSMTEE による秘密鍵保護
    HSM: 専用ハードウェアによる鍵の物理的保護
    TEE: プロセッサ内蔵の信頼できる実行環境
DID Methods比較図
graph TB subgraph Methods["DID Methods"] Key["did:key
オフライン生成
シンプル・高速"] Web["did:web
DNS基盤
既存PKI活用"] Ethr["did:ethr
Ethereum
スマートコントラクト"] ION["did:ion
Bitcoin Layer2
Sidetree Protocol"] end subgraph Characteristics["特徴"] Simple[シンプル] Scalable[スケーラブル] Decentralized[分散型] Enterprise[エンタープライズ] end Key -.-> Simple Web -.-> Enterprise Ethr -.-> Decentralized ION -.-> Scalable
did:key

公開鍵直接埋込方式、オフライン生成、軽量実装

暗号化:Ed25519、secp256k1
did:web

既存DNS/PKI基盤活用、企業導入容易

基盤:DNS + HTTPS証明書
did:ethr

Ethereum基盤、スマートコントラクト管理

標準:ERC-1056準拠
did:ion

Bitcoin Layer2、高スケーラビリティ

実装:Microsoft ION Network
本プロジェクトでのW3C標準対応状況
DIDコア仕様 1.0(DID Core 1.0)
実装済み

did:key方式による基本的なDID生成・管理機能

検証可能証明書データモデル 1.1(VC Data Model 1.1)
フル対応

JSON-LD形式によるVC発行・検証・提示機能

DID解決仕様(DID Resolution)
部分実装

did:key方式のみ対応、他のDID Methodsは今後追加予定

検証可能提示データモデル(VP Data Model)
対応済み

選択的開示機能を含むVP生成・検証機能

データ構造関係図
graph TD subgraph DID_Doc["DID Document"] DID["DID
did:key:z6Mk..."] VM["Verification Method
公開鍵情報"] Auth["Authentication
認証方法"] end subgraph VC_Structure["Verifiable Credential"] Context["@context
JSON-LD"] Type["type
VerifiableCredential"] Issuer["issuer
発行者DID"] Subject["credentialSubject
証明内容"] Proof1["proof
デジタル署名"] end subgraph VP_Structure["Verifiable Presentation"] Context2["@context
JSON-LD"] Type2["type
VerifiablePresentation"] VC["verifiableCredential
提示するVC"] Proof2["proof
Holder署名"] end DID --> Issuer DID --> Subject VC_Structure --> VC VM --> Proof1 VM --> Proof2
DID Document例
{
  "@context": "https://www.w3.org/ns/did/v1",
  "id": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
  "verificationMethod": [{
    "type": "Ed25519VerificationKey2020",
    "controller": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
  }]
}
VC例
{
  "@context": ["https://www.w3.org/2018/credentials/v1"],
  "type": ["VerifiableCredential"],
  "issuer": "did:demo:issuer-001",
  "credentialSubject": {
    "id": "did:key:z6Mk...",
    "name": "山田太郎",
    "birthDate": "1985-04-15"
  },
  "proof": {
    "type": "Ed25519Signature2020",
    "jws": "eyJ0eXAiOiJKV1Q..."
  }
}

実装ガイド

実稼働環境への移行と導入戦略

段階的導入戦略
Phase 1: 社内導入
  • • 社員認証システムとの統合
  • • アクセス管理の統一化
  • • パイロット運用・フィードバック収集
Phase 2: パートナー連携
  • • 取引先企業との相互認証
  • • サプライチェーン管理
  • • 業界標準化への参加
Phase 3: 公的機関連携
  • • 政府・自治体システムとの統合
  • • 国際的な相互運用性確保
  • • 大規模展開・運用最適化
技術要件・課題
インフラ要件
  • • 分散台帳基盤(Ethereum、Hyperledger Indy等)
  • • DIDレジストリ(Universal Resolver対応)
  • • デジタルウォレット(モバイル・ブラウザ拡張)
  • • 証明書失効管理(Status List 2023準拠)
セキュリティ考慮
  • HSMTEEによる暗号鍵管理
  • • 耐量子暗号への段階的移行準備
  • • ゼロトラスト・セキュリティモデル
法的・社会的対応
  • • GDPRなどプライバシー規制への対応
  • • 各国法制度・規制要件への適合
  • • 利用者教育・普及啓発活動
  • • アクセシビリティ・インクルーシブデザイン

About

週末ものづくり部
週末ものづくり部

平日は会社員エンジニア、個人では別ジャンルの事業をゆるっと運営中。AIでやりたかったことに挑戦中。