MCPF DID/VC基础设施
    
MCPF的完整DID/VC基础设施 -基于W3C标准和Veritrust的生产实施的去中心化标识符、可验证凭据和StatusList2021撤销。
🌟 特性
- 🔐 DID管理 -生成并解决
did:web和did:key标识符 - ✅ 可验证的凭据 -发布符合W3C VC数据模型v2.0的凭据
- ⚡ 立即撤销 -用于5ms以下撤销检查的比特串状态列表
- 🔑 加密签名 -支持ES256K(secp256k1)和ES256(P-256)
- 📜 OID4VCI兼容 -用于可验证凭证颁发端点的OpenID
- 🔍 验证 -完整的凭证和证明验证
- 🏗️ 生产就绪 -基于Veritrust的实时基础设施
📚 标准符合性
✅ W3C DID核心v1.0\ ✅ W3C VC数据模型v2.0\ ✅ W3C比特串状态列表v1.0\ ✅ OpenID4VCI\ ✅ 约瑟夫/JWT(RFC 7515,RFC 7519)\ ✅ Ed25519(RFC 8032)
🚀 快速开始
安装
pip install mcpf-did-vc或者从源代码安装:
git clone https://github.com/MCPTrustFramework/MCPF-did-vc.git
cd MCPF-did-vc
pip install -e .基本用法
1.生成DID
from mcpf_did_vc import DIDManager
# Create DID manager
did_manager = DIDManager()
# Generate did:web identifier
did = did_manager.create_did(method="web", domain="example.com")
print(f"DID: {did}")
# Output: did:web:example.com
# Resolve DID to get DID Document
did_doc = did_manager.resolve_did(did)
print(did_doc)2.签发可验证凭证
from mcpf_did_vc import VCIssuer
from datetime import datetime, timedelta
# Initialize issuer
issuer = VCIssuer(
issuer_did="did:web:veritrust.vc",
private_key_path="keys/issuer_private_key.pem"
)
# Create credential
credential = issuer.issue_credential(
subject_did="did:key:zQ3sheoYG5PVbQSoPQUJvQwtgWNu3zQNAavWQbPFCYZRYHvpt",
credential_type="AgentOwnershipCredential",
claims={
"type": "Agent",
"controller": "did:web:neksus.ai",
"permissions": ["query_data", "execute_tasks"]
},
valid_from=datetime.utcnow(),
valid_until=datetime.utcnow() + timedelta(days=365)
)
print(credential)3.验证凭证
from mcpf_did_vc import VCVerifier
# Initialize verifier
verifier = VCVerifier()
# Verify credential
result = verifier.verify_credential(credential)
if result.valid:
print("✓ Credential is valid")
print(f" Issuer: {result.issuer}")
print(f" Subject: {result.subject}")
print(f" Not revoked: {result.revocation_status == 'active'}")
else:
print(f"✗ Verification failed: {result.error}")4.管理状态列表(撤销)
from mcpf_did_vc import StatusListManager
# Create status list manager
status_mgr = StatusListManager(
issuer_did="did:web:veritrust.vc",
status_list_id="agents-2025"
)
# Create status list (16,384 credentials capacity)
status_list = status_mgr.create_status_list(size=16384)
# Revoke a credential
status_mgr.revoke_credential(
status_list_index=17596,
reason="Agent compromised"
)
# Check status
is_revoked = status_mgr.check_status(status_list_index=17596)
print(f"Credential revoked: {is_revoked}") # True📖 文档
🏗️ 建筑
┌─────────────────────────────────────┐
│ DID Manager │
│ • did:web resolution │
│ • did:key generation │
│ • DID Document creation │
└──────────────┬──────────────────────┘
│
┌──────────────┴──────────────────────┐
│ VC Issuer │
│ • W3C VC 2.0 generation │
│ • JSON-LD contexts │
│ • JWT proof (ES256K/ES256) │
│ • Status list integration │
└──────────────┬──────────────────────┘
│
┌──────────────┴──────────────────────┐
│ Status List Manager │
│ • Bitstring management │
│ • Revocation API │
│ • Gzip compression │
│ • <5ms status checks │
└──────────────┬──────────────────────┘
│
┌──────────────┴──────────────────────┐
│ VC Verifier │
│ • Signature verification │
│ • Status check │
│ • Expiration validation │
│ • Trust chain verification │
└─────────────────────────────────────┘🔧 组件
DID经理(src/mcpf_did_vc/did_manager.py)
管理去中心化标识符:
- 创建
did:web和did:key标识符 - 使用验证方法生成DID文档
- 将DID解析为DID文档
- JWKS端点生成
VC发行人(src/mcpf_did_vc/vc_issuer.py)
发布符合W3C标准的可验证凭据:
- 代理商所有权证书
- MCP服务器凭据
- 自定义凭据类型
- 自动校对生成(JwtProve2020)
- 状态列表集成
状态列表管理器(src/mcpf_did_vc/status_list.py)
管理凭据吊销:
- 创建位串状态列表(每个列表16K+凭据)
- 撤销/暂停凭据(\<5ms)
- Gzip压缩+base64编码
- 多种状态目的(撤销、暂停)
VC验证器(src/mcpf_did_vc/verifier.py)
验证凭据和演示文稿:
- 签名验证(ES256K、ES256、Ed25519)
- 状态列表检查
- 到期验证
- 信任链验证
- DID文档解析
📦 例子
完整示例
| 示例 | 描述 | 文件 |
|---|---|---|
| 基本DID | 创建和解析DID | basic_did.py |
| 颁发凭证 | 发行代理人所有权VC | issue_凭证.py |
| 验证凭据 | 完整的验证流程 | verify_credential.py |
| 撤销 | 管理状态列表 | 撤销.py |
| OID4VCI服务器 | OpenID发布端点 | oid4vci_server.py |
| 信任链 Veritrust→Nexos→代理→ trust_chain.py |
运行示例
# Basic DID example
python examples/basic_did.py
# Issue a credential
python examples/issue_credential.py
# Verify a credential
python examples/verify_credential.py
# Revocation workflow
python examples/revocation.py🧪 测试
运行测试套件:
# Install dev dependencies
pip install -e ".[dev]"
# Run all tests
pytest
# Run with coverage
pytest --cov=mcpf_did_vc --cov-report=html
# Run specific test
pytest tests/test_vc_issuer.py -v🔒 安全
密码算法
- 主要的,重要的 ES256K(secp256k1)-由Veritrust/Neksus使用
- 备选方案: ES256(P-256)-美国国家标准与技术研究院批准
- 未来: Ed25519-高性能
密钥管理
发展:
# Generate keys
from mcpf_did_vc.crypto import generate_keypair
private_key, public_key = generate_keypair(curve="secp256k1")生产:
- 使用HSM(AWS CloudHSM、Azure密钥库)
- 每90-180天旋转一次按键
- 存储静态加密密钥
- 使用最低权限访问
最佳实践
- 从不提交私钥 到版本控制
- 使用环境变量 用于敏感配置
- 定期旋转按键 (代理人90天,发行人180天)
- 监视器状态列表 未经授权的更改
- 验证所有输入 证书颁发前
🌐 生产部署
Docker部署
# Build image
docker build -t mcpf-did-vc .
# Run container
docker run -p 8000:8000 \
-e ISSUER_DID=did:web:example.com \
-e PRIVATE_KEY_PATH=/keys/issuer.pem \
mcpf-did-vcDocker Compose
cd examples/docker
docker-compose up -d看 部署.md 获取完整的部署指南。
📊 演出
标准硬件(4 CPU,8GB RAM)上的基准测试:
| 操作 | 性能 | 注意事项 |
|---|---|---|
| DID分辨率 | \<10ms | 缓存 |
| VC发行 | ~50ms | 包括签署 |
| VC验证 | ~30ms | 带状态检查 |
| 状态检查 | \<5ms | 位串查找 |
| 状态列表更新 | ~100ms | 包括压缩 |
🤝 贡献
我们欢迎捐款!看 贡献.md 作为指导方针。
需要帮助的领域:
- 其他DID方法(DID:ion,DID:ethr)
- 性能优化
- 其他凭据架构
- 文档改进
📝 许可证
MIT许可证-请参阅 许可证 了解详情。
📞 联系
- 网站: https://mcpf.dev
- github: https://github.com/MCPTrustFramework/MCPF-did-vc
- 问题: https://github.com/MCPTrustFramework/MCPF-did-vc/issues
- 讨论: https://github.com/MCPTrustFramework/MCPF-did-vc/discussions
🔗 相关项目
- MCPF规范 -MCPF的SSOT
- MCPF python -完整的Python SDK
- MCPF注册表 -MCP信托登记处
- MCPF安 -代理名称服务
🙏 致谢
基于生产实施:
- 威瑞信股份有限公司。 (https://veritrust.vc)-信任锚和DID/VC提供商
- Neksus AI (https://neksus.ai)-代理商制造商和所有者
符合W3C、OpenID基金会和IETF标准。
______________________________________________________________________
版本: 1.0.0-alpha\ 最后更新时间: 2025年12月31日\ 状态: 积极发展
