Skip to content

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 核心目标

  1. W3C DID v2.0: 完整实现W3C DID v2.0规范,支持多种DID方法(did:key, did:web, did:chain)
  2. 可验证展示: 组合多个可验证凭证(VC)为可验证展示(VP),支持零知识证明集成
  3. 社交恢复: 基于信任联系人的密钥恢复机制,无需中心化托管
  4. 身份漫游: 跨平台、跨链身份迁移,保持声誉和凭证连续性
  5. 声誉聚合: 从多个来源聚合声誉分数,构建统一信用画像

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, CHAIN
  • CREDENTIAL_STATUS: ACTIVE, REVOKED, EXPIRED, SUSPENDED
  • RECOVERY_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.jsDID v2.0核心(DID创建/解析、VP展示、社交恢复、漫游、声誉聚合)
src/main/did/did-v2-ipc.jsIPC接口层(8个handler)
src/renderer/stores/didV2.tsPinia 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上下文

基于 MIT 许可发布