W3C VC仕様
W3C Verifiable Credentials Data Model仕様の概要と、VeriCerts Zeroでの実装について説明します。
Verifiable Credentials仕様とは
Verifiable Credentials(VC)は、W3Cが策定した検証可能な資格情報の国際標準仕様です。デジタル証明書の発行・保持・検証のための相互運用可能なフォーマットを定義しています。
- 仕様名: Verifiable Credentials Data Model v2.0
- 策定団体: W3C (World Wide Web Consortium)
- ステータス: W3C Recommendation(勧告)
- 公式URL: https://www.w3.org/TR/vc-data-model-2.0/
VCの構造
Verifiable Credentialは以下の要素で構成されます:
┌─────────────────────────────────────────┐
│ Verifiable Credential │
│ ┌───────────────────────────────────┐ │
│ │ Credential Metadata │ │
│ │ (issuer, issuanceDate, etc.) │ │
│ └───────────────────────────────────┘ │
│ ┌───────────────────────────────────┐ │
│ │ Claim(s) │ │
│ │ (credentialSubject) │ │
│ └───────────────────────────────────┘ │
│ ┌───────────────────────────────────┐ │
│ │ Proof(s) │ │
│ │ (Digital Signature) │ │
│ └───────────────────────────────────┘ │
└─────────────────────────────────────────┘VCの例
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "https://example.com/credentials/123",
"type": ["VerifiableCredential", "CopyrightCredential"],
"issuer": {
"id": "did:web:example.com",
"name": "Example Organization"
},
"validFrom": "2024-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:web:example.com:users:alice",
"workTitle": "My Creative Work",
"workType": "photograph",
"creationDate": "2023-12-01"
},
"proof": {
"type": "DataIntegrityProof",
"cryptosuite": "eddsa-rdfc-2022",
"created": "2024-01-01T12:00:00Z",
"verificationMethod": "did:web:example.com#key-1",
"proofPurpose": "assertionMethod",
"proofValue": "z3FXQjecWufY46..."
}
}主要なプロパティ
| プロパティ | 必須 | 説明 |
|---|---|---|
@context | ✅ | JSON-LDコンテキスト |
type | ✅ | 資格情報の種類(VerifiableCredential必須) |
issuer | ✅ | 発行者(DIDまたはオブジェクト) |
credentialSubject | ✅ | 資格情報の主体と主張内容 |
id | - | 資格情報の一意識別子 |
validFrom | - | 有効開始日時 |
validUntil | - | 有効終了日時 |
credentialStatus | - | 失効確認用エンドポイント |
proof | - | デジタル署名(VCの場合必須) |
トラストモデル
VCエコシステムには3つの主要な役割があります:
┌──────────┐
│ Issuer │ ─── VCを発行
│ 発行者 │
└────┬─────┘
│ VC発行
▼
┌──────────┐
│ Holder │ ─── VCを保持・提示
│ 保持者 │
└────┬─────┘
│ VP提示
▼
┌──────────┐
│ Verifier │ ─── VCを検証
│ 検証者 │
└──────────┘| 役割 | 説明 | VeriCerts Zeroでの例 |
|---|---|---|
| Issuer(発行者) | VCを発行する組織 | 組織(Organization) |
| Holder(保持者) | VCを保持する主体 | VeriCertsアプリユーザー |
| Verifier(検証者) | VCを検証する主体 | 検証API利用者 |
Verifiable Presentation
Holderが複数のVCをまとめて提示する場合、Verifiable Presentation(VP)を使用します。
{
"@context": ["https://www.w3.org/ns/credentials/v2"],
"type": "VerifiablePresentation",
"holder": "did:web:example.com:users:alice",
"verifiableCredential": [
{ /* VC 1 */ },
{ /* VC 2 */ }
],
"proof": { /* Holderの署名 */ }
}署名方式
VeriCerts Zeroは、以下の署名方式をサポートしています:
| 署名方式 | 説明 |
|---|---|
| Data Integrity Proof | W3C標準の署名形式 |
| EdDSA (Ed25519) | 高速で安全な楕円曲線署名 |
失効管理
VCには失効メカニズムを含めることができます:
"credentialStatus": {
"id": "https://example.com/status/123",
"type": "BitstringStatusListEntry",
"statusPurpose": "revocation",
"statusListIndex": "123",
"statusListCredential": "https://example.com/status-list/1"
}VeriCerts Zeroでの実装
VeriCerts Zeroは、W3C VC Data Model 2.0に準拠したVCを発行します。
対応機能
- ✅ JSON-LD形式のVC発行
- ✅ Data Integrity Proof署名
- ✅ 失効管理(Bitstring Status List)
- ✅ 選択的開示(SD-JWT VC)※ 今後対応予定
関連リンク
- DID/VCとは - DID/VCの基本概念
- W3C DID仕様 - DID Core仕様
- W3C VC Data Model 2.0(原文) - 公式仕様書
- VC実装ガイドライン - 実装者向けガイド
Last updated on