Phase 90 — 去中心化身份2.0设计
版本: v4.2.0 创建日期: 2026-03-10 状态: ✅ 已实现 (v4.2.0)
一、模块概述
Phase 90 将去中心化身份升级至2.0版本,基于W3C DID v2.0规范,支持可验证展示(Verifiable Presentations)、社交恢复、身份漫游和声誉聚合。实现跨平台、跨链的统一身份管理,让用户完全掌控自己的数字身份。
1.1 核心目标
- W3C DID v2.0: 完整实现W3C DID v2.0规范,支持多种DID方法(did:key, did:web, did:chain)
- 可验证展示: 组合多个可验证凭证(VC)为可验证展示(VP),支持零知识证明集成
- 社交恢复: 基于信任联系人的密钥恢复机制,无需中心化托管
- 身份漫游: 跨平台、跨链身份迁移,保持声誉和凭证连续性
- 声誉聚合: 从多个来源聚合声誉分数,构建统一信用画像
1.2 技术架构
┌──────────────────────────────────────────────────────┐
│ DID v2.0 Manager (Phase 90) │
│ │
│ ┌─────────────────────┐ ┌────────────────────────┐ │
│ │ DIDv2Core │ │ PresentationEngine │ │
│ │ W3C DID v2.0解析 │ │ VP组合+选择性披露 │ │
│ │ 多方法支持 │ │ ZKP集成 │ │
│ └─────────────────────┘ └────────────────────────┘ │
│ ┌─────────────────────┐ ┌────────────────────────┐ │
│ │ SocialRecovery │ │ IdentityRoaming │ │
│ │ 信任联系人+分片 │ │ 跨平台迁移 │ │
│ │ 门限恢复 │ │ 凭证+声誉保持 │ │
│ └─────────────────────┘ └────────────────────────┘ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ ReputationAggregator — 多源声誉聚合+信用画像 │ │
│ └──────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ DID v2.0 IPC Layer (8 handlers) │ │
│ └──────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────┘二、核心模块设计
2.1 DIDv2Manager (did/did-v2-manager.js)
去中心化身份2.0核心管理器。
常量:
DID_METHOD: KEY, WEB, CHAINCREDENTIAL_STATUS: ACTIVE, REVOKED, EXPIRED, SUSPENDEDRECOVERY_STATUS: PENDING, THRESHOLD_MET, RECOVERED, FAILED
核心方法:
initialize()— 初始化DID v2.0管理器,加载已有DID文档和凭证create({ method, options })— 创建新的DID v2.0文档(支持did:key/did:web/did:chain方法)resolve(did)— 解析DID文档,返回完整的DID Document(含publicKey、service、authentication)present({ credentials, holderDid, recipientDid, disclosedFields })— 组合可验证凭证为可验证展示(VP)verify({ presentation })— 验证可验证展示的真实性和有效性recover({ did, guardians, recoveryShares })— 通过社交恢复机制恢复DID控制权(门限分片重组)roam({ did, targetPlatform, migrationProof })— 身份漫游至目标平台,保持凭证和声誉aggregateReputation({ did, sources })— 从多个来源聚合声誉分数export({ did, format })— 导出DID文档和关联凭证(JSON-LD/JWT格式)
三、核心文件
| 文件路径 | 说明 |
|---|---|
src/main/did/did-v2-manager.js | DID v2.0核心(DID创建/解析、VP展示、社交恢复、漫游、声誉聚合) |
src/main/did/did-v2-ipc.js | IPC接口层(8个handler) |
src/renderer/stores/didV2.ts | Pinia Store — DID列表、凭证、展示记录、声誉 |
src/renderer/pages/DIDv2Page.vue | 前端页面 — DID管理/凭证/展示/恢复/漫游 |
四、数据库设计
sql
-- Phase 90: DID v2.0 Documents
CREATE TABLE IF NOT EXISTS did_v2_documents (
id TEXT PRIMARY KEY,
did TEXT NOT NULL UNIQUE,
method TEXT NOT NULL,
document TEXT NOT NULL,
public_key TEXT,
authentication TEXT,
service_endpoints TEXT,
recovery_guardians TEXT,
recovery_threshold INTEGER DEFAULT 3,
reputation_score REAL DEFAULT 0.0,
status TEXT DEFAULT 'active',
created_at INTEGER,
updated_at INTEGER
);
-- Phase 90: DID v2.0 Verifiable Credentials
CREATE TABLE IF NOT EXISTS did_v2_credentials (
id TEXT PRIMARY KEY,
holder_did TEXT NOT NULL,
issuer_did TEXT NOT NULL,
type TEXT NOT NULL,
credential_subject TEXT,
proof TEXT,
issuance_date INTEGER,
expiration_date INTEGER,
status TEXT DEFAULT 'active',
revocation_reason TEXT,
created_at INTEGER,
FOREIGN KEY (holder_did) REFERENCES did_v2_documents(did)
);
-- Phase 90: DID v2.0 Verifiable Presentations
CREATE TABLE IF NOT EXISTS did_v2_presentations (
id TEXT PRIMARY KEY,
holder_did TEXT NOT NULL,
recipient_did TEXT,
credential_ids TEXT,
disclosed_fields TEXT,
proof TEXT,
zkp_proof_id TEXT,
verified INTEGER DEFAULT 0,
verification_time_ms REAL,
created_at INTEGER,
expires_at INTEGER
);五、IPC接口设计
DID v2.0 IPC (8 handlers)
| 通道 | 说明 |
|---|---|
did-v2:create | 创建DID v2.0文档 |
did-v2:resolve | 解析DID文档 |
did-v2:present | 创建可验证展示 |
did-v2:verify | 验证可验证展示 |
did-v2:recover | 社交恢复DID |
did-v2:roam | 身份漫游 |
did-v2:aggregate-reputation | 声誉聚合 |
did-v2:export | 导出DID和凭证 |
六、前端集成
Pinia Store
didV2.ts— DID文档列表、凭证管理、展示记录、恢复状态、声誉数据
Vue Page
DIDv2Page.vue— DID创建/解析/凭证管理/可验证展示/社交恢复/身份漫游/声誉面板
Route
/did-v2— 去中心化身份2.0
七、配置选项
javascript
didV2: {
enabled: false,
defaultMethod: 'key',
supportedMethods: ['key', 'web', 'chain'],
recoveryThreshold: 3,
recoveryGuardianCount: 5,
reputationSources: ['on-chain', 'social', 'marketplace'],
credentialCacheTTLMs: 1800000,
zkpIntegrationEnabled: true,
},八、测试覆盖
- 测试文件:
src/main/did/__tests__/did-v2-manager.test.js - 测试数量: 22 tests
- 覆盖范围:
- DID创建(did:key/did:web/did:chain方法/重复创建校验)
- DID解析(有效DID/无效DID/过期文档)
- 可验证展示(单凭证/多凭证组合/选择性披露/ZKP集成)
- 展示验证(有效VP/篡改VP/过期VP/撤销凭证)
- 社交恢复(门限达成/门限不足/无效分片/恢复超时)
- 身份漫游(跨平台迁移/凭证保持/声誉迁移)
- 声誉聚合(多源聚合/权重计算/异常源处理)
- 导出(JSON-LD格式/JWT格式)
九、Context Engineering
- step 5.3:
setDIDv2Context()— 注入去中心化身份2.0上下文
