我们提出了一种解决方案,允许互联网用户使用MPC-TLS私密地证明对真实网络账户(如Uber或GitHub)的控制权,而不泄露任何个人数据。通过将这些凭证转换为不可链接的零知识群体证明,我们可以在不损害用户隐私的情况下解锁防女巫攻击的空投、治理和访问控制。
协议概述:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐│ 用户浏览器 │ │ TLS公证人 │ │ 网络服务 ││ 扩展 │ │ │ │ (如Uber) │└─────────────────┘ └─────────────────┘ └─────────────────┘│ │ ││←──── MPC协议 ───→│ ││ │ ││←──────── MPC-TLS会话─────────────────────→││ (联合客户端) ││ │ ││──── 加密TLS ───→│ ││ 传输记录 │ ││ │ ││←─── 证明 ─────┤ ││ (混淆电路) │ ││ │ │▼┌─────────────────┐│ 信号量 ││ 群组 ││ 承诺 │└─────────────────┘该协议工作原理如下(为清晰起见已简化):
阶段1:私密凭证验证
- 用户的浏览器扩展和TLS公证人协作与网络服务建立MPC-TLS会话
- 公证人使用混淆电路验证密文完整性,对承诺字段签名
- 公证人仅看到加密数据,永不看到明文账户信息
- 用户获得凭证的加密证明,无需暴露账户详情
阶段2:不可链接的承诺生成
承诺 = 哈希(主密钥 || 凭证群组ID || 账户ID哈希)- 用户使用私密主密钥生成不可链接的身份承诺
- 承诺发布到对应的信号量群组(GitHub凭证 → GitHub群组,以此类推)
- 每种凭证类型映射到单独群组,实现精细的证明定位
阶段3:提供零知识群体证明
- 为验证,用户生成信号量群组成员身份的零知识证明
- 证明确认凭证拥有权,不泄露具体账户
- 验证方可组合多个群组证明以构建可组合的信任评分
隐私保证:
- 不可链接:无法将不同网络账户连接到同一用户
- 群组匿名:单个验证不会泄露凭证群组中具体哪个成员正在生成证明
- 不可追踪:无法跨不同应用追踪用户
- 可组合:可同时证明多个群组的成员资格
实施
我们正在构建BringID以在实践中验证这些加密技术。该实施利用现有基础设施(TLSN用于MPC-TLS,信号量用于零知识群体证明)以最大限度地减少新的加密假设。
当前设计假设有一个可信的TLS公证人进行证明验证。我们正在探索各种去中心化方法,以在未来最大限度地减少这种信任要求,包括可信执行环境(TEE)支持的基础设施和分布式验证器网络。
经济安全模型
我们的方法并不从密码学上阻止女巫攻击,而是使其在经济上变得不可行。安全假设是:
每个已验证账户的奖励价值 < 生成一个女巫身份的成本
网络账户需要真实世界活动(Uber乘车、GitHub提交、Airbnb住宿),时间投入(账户陈化、声誉建立),并且通常还有金钱成本(服务使用费)。应用程序可以组合多个凭证群组并应用时间限制验证,以进一步提高伪造成本。



