返回 Expert 笔记
Expert Day 24

链上身份方案 (DID / VC)

系统理解去中心化身份(Decentralized Identifier, DID)和 Verifiable Credentials(VC)的 W3C 标准、SSI(Self-Sovereign Identity)原则、ZK 证明在身份系统中的作用,以及主流方案:Polygon ID / Privado ID(Iden3 protocol)、World ID(Worldcoin)、Civic、Dis

2026-05-25
Phase 1 - 监管与合规框架 (Day 15-28)
监管合规DIDVCIdentityPolygonIDWorldID

日期: 2026-05-25 方向: 机构DeFi / RWA 阶段: Phase 1 - 监管与合规框架 (Day 15-28) 标签: #监管 #合规 #DID #VC #Identity #PolygonID #WorldID


今日目标

类型内容
学习系统理解去中心化身份(Decentralized Identifier, DID)和 Verifiable Credentials(VC)的 W3C 标准、SSI(Self-Sovereign Identity)原则、ZK 证明在身份系统中的作用,以及主流方案:Polygon ID / Privado ID(Iden3 protocol)、World ID(Worldcoin)、Civic、Disco.xyz、ENS、Lens Profile、Soulbound Tokens(SBT)
实操在 Polygon ID 测试网部署一个简单 DID demo:发行方(Issuer)创建 KYC VC,钱包持有人接收,验证方(Verifier)做 ZK 证明检查
产出"链上身份方案对比"决策矩阵(隐私 / 监管认可 / 用户体验 / 集成成本 / 合规适用性)

一、SSI 与 W3C DID 标准

1.1 SSI 七大原则

Self-Sovereign Identity 由 Christopher Allen 2016 年提出:

  1. Existence(存在性):用户必须独立存在
  2. Control(控制权):用户控制自己的身份
  3. Access(访问性):用户可访问自己的数据
  4. Transparency(透明):系统必须开放
  5. Persistence(持久性):身份长期有效
  6. Portability(可移植):身份跨平台可携带
  7. Interoperability(互操作):广泛使用 (Allen 后补充 Consent、Minimization、Protection)

1.2 W3C DID Core 1.0

  • 2022-07-19 W3C 正式推荐
  • DID URI 格式:did:method:identifier
    • did:ethr:0x742d35Cc...(以太坊地址作为 DID)
    • did:key:z6Mko...(公钥)
    • did:web:example.com:user:alice
    • did:polygonid:polygon:mumbai:2qP...

1.3 DID Document

每个 DID 解析(resolve)后得到 DID Document:

{
  "@context": "https://www.w3.org/ns/did/v1",
  "id": "did:ethr:0x742d35Cc...",
  "verificationMethod": [{
    "id": "did:ethr:0x742...#key-1",
    "type": "EcdsaSecp256k1VerificationKey2019",
    "controller": "did:ethr:0x742d35Cc...",
    "publicKeyHex": "04ab..."
  }],
  "authentication": ["did:ethr:0x742...#key-1"],
  "service": [{
    "id": "did:ethr:0x742...#vc-store",
    "type": "VerifiableCredentialService",
    "serviceEndpoint": "https://creds.example.com"
  }]
}

二、Verifiable Credentials(VC)

2.1 W3C VC 数据模型 v2.0(2023-05)

VC 三方模型(Trust Triangle):

       Issuer(发行方,如 KYC 服务商)
         │  签发 VC
         ▼
       Holder(持有人,用户钱包)
         │  Present VC
         ▼
       Verifier(验证方,如 DEX)

2.2 VC JSON 结构

{
  "@context": ["https://www.w3.org/2018/credentials/v1"],
  "id": "https://credentials.example.com/vc-001",
  "type": ["VerifiableCredential", "KYCCredential"],
  "issuer": "did:web:sumsub.com",
  "issuanceDate": "2026-05-25T00:00:00Z",
  "credentialSubject": {
    "id": "did:ethr:0x742d35Cc...",
    "kycLevel": "L2",
    "country": "US",
    "ageOver18": true,
    "isAccreditedInvestor": true,
    "isOFACClean": true
  },
  "proof": {
    "type": "Ed25519Signature2020",
    "created": "2026-05-25T00:00:00Z",
    "proofPurpose": "assertionMethod",
    "verificationMethod": "did:web:sumsub.com#key-1",
    "proofValue": "z3..."
  }
}

2.3 ZK Verifiable Presentation

VP(Verifiable Presentation)= 持有人选择性披露的 VC 子集,配合 ZK 证明:

传统披露:
  Holder → Verifier: 整个 VC(年龄=35, 国籍=US, 资产=$5M, 姓名=Alice)

ZK 选择性披露:
  Holder → Verifier: 仅证明"年龄 > 18 AND 国籍 != Iran AND 资产 > $1M"
  不暴露:具体年龄、姓名、其他信息

三、主流 DID/VC 方案

3.1 Polygon ID / Privado ID

  • 底层:Iden3 protocol(开源 ZK 身份框架)
  • 2024-05 重命名为 Privado ID(仍保持 Polygon ID 品牌)
  • 特点
    • 完全 ZK(Groth16 / PLONK 证明)
    • 链上 verification(智能合约 Query-based)
    • 离线可证明
  • 使用流程
    1. 用户在 Polygon ID 钱包(Privado ID Wallet)创建 DID
    2. KYC 提供商(如 Fractal)发行 KYC VC(claim)
    3. DApp(Verifier)发起 query:例如"持有 KYC L2 + age > 18"
    4. 用户钱包生成 ZK 证明(仅证明满足条件,不泄露具体值)
    5. 链上 / 链下验证 ZK proof

3.2 World ID(Worldcoin)

  • 类型:Proof of Personhood(PoP)
  • 机制
    • 用户在物理 Orb(虹膜扫描设备)注册
    • 生成虹膜 IrisCode
    • 链上 nullifier,每个 application 独立
  • 隐私
    • 虹膜数据本地处理(不上传原始)
    • 通过 ZK 证明独特性(每人仅一个 World ID)
  • 覆盖:~10M+ 注册(截至 2024)
  • 应用
    • Sign in with World ID(Web3 应用通用 SSO)
    • Worldcoin (WLD) 空投发放
    • 反女巫工具

3.3 Civic

  • 类型:KYC-as-a-Service + DID
  • 历史
    • 2017 ICO 项目,转型 KYC 服务
    • 推出 Civic Pass(NFT-style KYC 凭证)
  • 集成:Solana 生态深度合作(如 Solend、Mango Markets)

3.4 ENS(Ethereum Name Service)

  • 不是 DID 标准 但实质履行身份功能
  • ENS 名(如 vitalik.eth)→ 钱包地址 + 多元数据(Twitter handle、Avatar 等)
  • 与 DID:web 集成可能
  • 5M+ 注册(2024)

3.5 Lens Profile

  • 类型:去中心化社交身份
  • 底层:Polygon
  • 特点:每个 Profile = NFT
  • 通过 NFT 实现"社交图谱"可携带

3.6 Soulbound Tokens(SBT)

  • 概念:Vitalik 等 2022-05 论文 "Decentralized Society"(DeSoc)
  • 特征:不可转让的 NFT
  • 应用:学历、工作履历、信誉评级
  • 实现:Binance 2022-09 推出 BAB(Binance Account Bound Token)KYC SBT

3.7 Disco.xyz

  • 类型:综合 DID 钱包("Data Backpack")
  • 整合:Ceramic Network + ENS + Bright ID
  • 用户聚合多个发行方的 VC

四、五大方案对比矩阵

维度Polygon IDWorld IDCivicENSSBT
标准W3C DID + ZK自有 PoP自有 + W3CDNS 类ERC 5114
隐私⭐⭐⭐⭐⭐ ZK⭐⭐⭐⭐ ZK + 物理⭐⭐⭐ NFT 可见⭐⭐ 全公开⭐⭐ 全公开
监管认可中(合规导向)低(新事物)中(KYC 整合)
UX复杂(需要钱包 + ZK)简单(扫虹膜)极简
集成成本极低
Polygon, EthereumOptimism + 链下Solana 主, EVMEthereumEVM 通用
适用场景KYC + 复杂凭证反女巫KYC通用身份信誉

五、Polygon ID Demo 实操

5.1 准备工作

  1. 安装 Privado ID Wallet(iOS/Android 应用)
  2. 部署 Polygon Mumbai 测试网钱包
  3. 注册 Issuer 账户(Polygon ID Studio)

5.2 Issuer 端:发行 KYC VC

// 使用 @0xpolygonid/js-sdk
import { CredentialWallet, IssuanceFlow } from '@0xpolygonid/js-sdk';

const credential = await issuer.createCredential({
  type: ['KYCAgeCredential', 'KYCCountryOfResidenceCredential'],
  credentialSubject: {
    id: holderDID,
    birthday: '1990-01-15',
    countryCode: 840 // US
  },
  expiration: '2027-12-31'
});

// 生成二维码,holder 用钱包扫描接收
const qr = await issuer.generateOfferQR(credential.id);

5.3 Verifier 端:发起 Query

import { proofRequestService } from '@0xpolygonid/js-sdk';

const request = {
  id: 1,
  circuitId: 'credentialAtomicQuerySigV2',
  query: {
    allowedIssuers: ['did:polygonid:polygon:mumbai:...'],
    type: 'KYCAgeCredential',
    credentialSubject: {
      birthday: { $lt: 20060525 } // age >= 18
    }
  }
};

const qr = await verifier.generateRequestQR(request);

5.4 Verification 链上调用

import "@iden3/contracts/interfaces/IZKPVerifier.sol";

contract MyDeFiPool {
    IZKPVerifier public zkpVerifier;
    
    function depositWithKYC(
        uint64 requestId,
        uint256[] memory inputs,
        uint256[2] memory a,
        uint256[2][2] memory b,
        uint256[2] memory c
    ) external {
        zkpVerifier.submitZKPResponse(requestId, inputs, a, b, c);
        // ZK 验证通过后处理 deposit
    }
}

六、TradFi 监管 → Web3 映射

6.1 传统 KYC 与链上身份对照

TradFiDID/VC 对应
银行 KYC 表单KYC VC(Issuer 签发)
护照National ID VC
信用报告Credit VC(如 Spectral)
Accredited Investor 认证Accredited VC(Reg D 用)
FATCA W-8BENTax Status VC
CDD 文件多个 VC 组合

6.2 监管认可路径

DID 在监管层面"自下而上"采纳:

  • eIDAS 2.0(欧盟,2024-05 通过):欧盟数字身份钱包(EUDI Wallet)必须使用 DID/VC 标准
  • MAS Project Greenprint:新加坡探索绿色金融 DID
  • NIST Digital Identity Guidelines (SP 800-63-4):美国联邦身份指南,正考虑 DID
  • GDPR:选择性披露符合 data minimization 原则

6.3 KYC NFT 与 KYC VC 的演进

2021-2022: KYC NFT
  - 一个 NFT 代表用户已 KYC(如 Quadrata)
  - 缺点:完全公开(链上可见)、无选择性披露

2023-2024: SBT(Soulbound)
  - 改进:不可转让,但仍公开
  - 例:Binance BAB Token

2024+: ZK VC(Polygon ID 等)
  - 完全隐私(ZK 证明)
  - 选择性披露
  - 监管友好(合规可解开)

6.4 链上身份在 RWA 中的应用

  • BlackRock BUIDL:通过 Securitize 平台 KYC,链上 token 仅持有 KYC 钱包能转移
  • Maple Finance:机构借贷,KYC 通过 Centrifuge 等
  • Aave Arc:KYC 白名单(中心化 admin 维护)
  • 未来:替换为 DID/VC 链上自动化

七、关键速查 Cheat Sheet

数值 / 引用
W3C DID Core2022-07-19 v1.0
W3C VC Data Model2023-05 v2.0
Polygon ID 启动2022-04
Privado ID 重命名2024-05
World ID 启动2023-07
Worldcoin Orb 数1000+(2024)
World ID 注册数10M+
ENS 域名数5M+
Lens Protocol Profile1M+
eIDAS 2.0EU Regulation 2024/1183
EUDI Wallet 实施日2026-12
ZK 证明算法Groth16, PLONK, STARK
知名 ZK 库snarkjs, circom, halo2
BAB Token2022-09 Binance
Quadrata Passport2022 上线

八、面试题(资深级)

Q1: 一家 RWA 协议(代币化美债)需要 KYC,应选择哪种链上身份方案?

STAR-T

  • Situation:协议在欧美机构市场,需 KYC + Accredited Investor 检查
  • Task:选择最合适的链上身份方案
  • Action
    1. 核心方案:Polygon ID / Privado ID
      • ZK 隐私(机构投资者偏好不暴露持仓)
      • 监管友好(Issuer 受监管,可解开)
      • 选择性披露(仅证"是 Accredited",不暴露资产)
    2. 集成:与 KYC 服务商(Sumsub、Onfido)合作做 Issuer
    3. 链选择:在 Polygon、Ethereum、Optimism 多链部署
    4. 备份方案:传统 KYC(链下数据库)作 fallback
    5. Audit:Issuer 责任明确(合规法律意见书)
  • Result:完整合规 + 用户隐私,开发周期 6 个月,预算 $1M
  • Trade-off:用户 UX 比 KYC NFT 复杂,需教育

Q2: World ID(Worldcoin)的 Proof of Personhood 与 KYC 的差异和关系?

回答

  • PoP 解决"独一性":每个人仅一个身份(防女巫)
  • KYC 解决"合规性":身份与法律实体绑定
  • 差异
    • PoP 不暴露姓名、地址、国籍
    • KYC 完整识别真实身份
  • 互补关系
    • 反女巫(DApp 准入)→ PoP 足够
    • 资金往来(合规)→ 必须 KYC
    • 高价值机构 RWA → PoP + KYC 双层
  • 架构启示
    ┌─ Tier 1: 人类验证 → World ID
    ├─ Tier 2: 法律身份 → KYC VC
    └─ Tier 3: 财务能力 → Accredited VC
    

Q3: 链上身份方案如何与 GDPR 兼容?

回答

  • GDPR 关键挑战
    1. 被遗忘权(Right to Erasure):链上数据不可删除
    2. 数据最小化:链上完整 KYC 数据违反
  • 解决方案
    1. 链下存储 + 链上证明
      • VC 存储在用户钱包(个人持有)
      • 链上仅 ZK 证明(不含 PII)
    2. Issuer 可撤销
      • VC 有 expiration + revocation list
      • 用户可请求删除 Issuer 端记录
    3. Pseudonymization
      • 链上 DID 是 pseudonym,非直接 identifier
      • GDPR Article 4(5) 允许 pseudonymized data
    4. Data Minimization
      • ZK proof 仅证明充分必要条件
      • 不在链上存原始数据
  • 欧盟 eIDAS 2.0 明确支持这种模式

Q4: 比较 Lens Profile(社交身份)vs Polygon ID(KYC 身份)的设计哲学?

回答

  • Lens Profile(社交)
    • NFT 化身份(可转让,但 Lens V2 引入 non-transferable Profile)
    • 公开为主(社交关系是公共品)
    • 价值:声誉、关注者
  • Polygon ID(KYC)
    • VC + ZK(隐私)
    • 选择性披露
    • 价值:合规、隐私
  • 共同点:都是去中心化身份层
  • 差异:场景驱动
    • 社交:可见性 = 价值
    • 合规:隐私 = 价值
  • 架构启示:未来用户钱包同时持有多种身份组件
    User Wallet:
      - Lens Profile(公开社交)
      - ENS Name(公开域名)
      - Polygon ID Bag(私有 KYC + Accredited)
      - World ID Nullifier(PoP)
      - SBT 学历凭证
    

Q5: 如果监管要求"在合法授权下解开 ZK KYC 证明",技术上如何实现?

回答

  • 挑战:ZK 证明本质上"不可解开"——只证明断言为真,不暴露原始数据
  • 解决路径
    1. Escrow Mode
      • Issuer 保留原始 VC + 加密版本
      • 法院命令下,Issuer 解密提供给监管
    2. Threshold Cryptography
      • 加密 KYC 用密钥分片(n-of-m)
      • 多个监管者持有分片
      • 法律授权下重组解密
    3. Trusted Execution Environment(TEE)
      • 在 Intel SGX 等 TEE 内部存原始 KYC
      • 仅在合法请求下输出
    4. 链上加密 KYC
      • 用监管公钥加密 KYC 上链
      • 法律授权时监管解密
  • 实例
    • eIDAS 2.0 规定 EUDI Wallet 必须支持 lawful access
    • Polygon ID 提供 Issuer revocation + selective disclosure
  • 架构启示:完全无解的 ZK 在合规市场不可行;需"可控隐私"

九、明日预告

明日(Day 25)我们继续身份合规专题:KYC 代币化与可重用合规凭证。研究 Quadrata、Civic Pass、Aave Arc 的 KYC 流程、Permissioned DeFi 的白名单机制、KYC NFT vs KYC VC 的设计权衡,以及"KYC Once, Use Many"(一次 KYC,多协议复用)的架构。