Self zkID verification

🛂 零知识护照验证,隐私合规两不误

基于零知识证明的隐私优先身份验证协议,支持护照/身份证 NFC 扫描验证年龄、国籍等属性,无需暴露个人数据。

收藏
2.1k
安装
1k
版本
1.0.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

Self Protocol 综合评估

核心用法

Self Protocol 是一个隐私优先的去中心化身份验证解决方案,允许用户通过零知识证明(ZKP)从护照或身份证 NFC 芯片中证明特定属性(如年龄 ≥18、国籍、人类证明),而无需暴露任何原始个人数据。

主要集成模式:

  • 链下验证(推荐):通过 SelfBackendVerifier 在服务器端验证证明,适合 Web 应用和 API
  • 链上验证:在 Celo 智能合约中继承 SelfVerificationRoot 进行验证,适合 DeFi、空投、代币门控等无需许可场景
  • 深度链接:移动优先流程,直接唤起 Self 应用而非扫码

技术栈@selfxyz/qrcode(前端 QR 组件)+ @selfxyz/core(后端验证),要求版本 ≥ 1.1.0-beta.1。

显著优点

1. 隐私保护核心:采用零知识证明,验证方仅获知「满足条件」的布尔结果,无法获取姓名、证件号、照片等原始数据
2. 真实世界身份锚定:基于政府签发的 ICAO 9303 标准电子护照/身份证,Sybil 抵抗性强于纯链上方案

3. 合规友好:支持 OFAC 筛查、年龄验证、国籍限制等监管常见需求,无需中心化 KYC 服务商

4. 多链部署:Celo 主网 + 测试网合约已部署,生态整合成熟

5. 开发者体验:提供 React 组件 SelfQRcodeWrapper 和完整的 TypeScript SDK,快速集成

潜在局限性与风险

1. 硬件依赖:用户需持有带 NFC 芯片的护照/身份证及支持 NFC 的智能手机,覆盖面受限
2. 配置严格性:前后端披露配置(disclosures)必须完全匹配,否则静默失败,调试难度高

3. 网络限制:Self 应用需直接向开发者端点发送证明,要求公网可访问,本地开发需 ngrok 等工具

4. 国家代码限制:排除列表最多 40 个国家,ISO 3 位代码易出错

5. 版本碎片化:当前为 beta 版本(1.1.0-beta.1),API 可能变动

适合人群

  • DeFi 协议:需抗女巫攻击的空投、流动性挖矿资格验证
  • GameFi / SocialFi:年龄分级内容访问、一身份一账号限制
  • 合规 DApp:需满足 AML/OFAC 要求但拒绝中心化 KYC 的隐私敏感项目
  • DAO 治理:国籍/居住地限制投票资格的链上治理

常规风险

  • 智能合约风险:继承 SelfVerificationRoot 的合约需审计,自定义 customVerificationHook 可能引入漏洞
  • 配置错误风险mockPassport 误用于主网或真实护照用于测试网会导致验证失败
  • 端点安全:验证端点需防重放攻击,建议结合 userId 和 nonce 机制
  • 依赖风险:协议依赖 Self 移动应用和中心化 Hub 合约,存在单点故障可能

安全建议

  • 生产环境严格禁用 mockPassport
  • 使用 DefaultConfigStore 确保前后端配置一致性
  • 链上验证时确保 scope 唯一性(Poseidon 哈希防止跨合约重放)
  • 监控 ScopeMismatchInvalidIdentityCommitmentRoot 等常见错误日志

Self zkID verification 内容

references文件夹
手动下载zip · 9.3 kB
backend.mdtext/markdown
请选择文件