BBS+签名:隐私保护数字身份背后的密码学密钥

GitHub June 2026
⭐ 127
来源:GitHub归档:June 2026
mattrglobal 最新开源的 BBS+ 签名实现,将这一强大的隐私保护密码学原语带入 Node.js 与浏览器环境。作为 W3C 候选标准,它支持对已签名文档进行选择性披露,有望重塑数字身份与可验证凭证在数据最小化原则上的实践方式。

mattrglobal/bbs-signatures 代码库实现了 BBS+ 签名方案,这是一种支持选择性披露与零知识证明的多消息签名技术。该方案基于 BLS12-381 椭圆曲线密码学构建,允许持有者仅出示已签名凭证中的部分属性,同时仍能证明签名的有效性,而无需泄露其余信息。它是 W3C 可验证凭证数据模型与去中心化身份(DID)标准的基础工具。该库专为 Node.js 和浏览器环境设计,使其适用于基于 Web 的身份钱包与验证器。其意义在于解决了数字身份的核心矛盾:密码学完整性的需求与数据最小化原则之间的张力。通过启用一种密码学机制,让用户只披露必要信息,BBS+ 签名在隐私与安全之间架起了一座桥梁,为政府、金融和企业级身份系统提供了可落地的技术方案。

技术深度解析

BBS+ 签名最初由 Boneh、Boyen 和 Shacham(故称 BBS)提出,后经 Au 等人扩展(即 + 号),是一种支持高效知识证明的多消息数字签名形式。其核心创新在于:单个签名可认证多条消息(属性),而证明者随后能生成一个零知识证明,表明这些消息的子集已被签名,同时不泄露其他消息或原始签名本身。

mattrglobal/bbs-signatures 架构

该代码库使用 BLS12-381 椭圆曲线实现 BBS+ 方案,这是一条由互联网工程任务组(IETF)标准化、广泛应用于区块链和身份系统的配对友好曲线。库采用 TypeScript 编写,编译为 CommonJS 和 ESM 模块,并通过 `ffi` crate 与 Rust 核心进行原生绑定。这种混合方法使其在保持 JavaScript 级别易用性的同时,性能接近原生代码。

关键组件:
- 密钥生成:生成一个私钥 `sk` 和一个公钥 `pk`(G2 中的一个群元素)。
- 签名:接收一组消息 `m_1, ..., m_n`,生成单个签名 `(A, e, s)`,其中 `A` 是 G1 中的一个群元素,`e` 是一个随机素数,`s` 是一个随机标量。该签名是对私钥和消息的知识证明。
- 选择性披露证明:持有者选择要披露的消息子集。利用签名和隐藏消息,持有者计算一个零知识证明 `π`,以证明:(a) 披露的消息在签发者的公钥下已被签名,且 (b) 隐藏消息存在且与签名一致。该证明是一个使用 Fiat-Shamir 启发式的非交互式零知识(NIZK)证明。
- 验证:验证者根据公钥和披露的消息检查证明。证明大小恒定(几百字节),与隐藏消息的数量无关。

性能特征

| 操作 | 时间 (ms) | 证明大小 (字节) | 备注 |
|---|---|---|---|
| 密钥生成 | 5.2 | — | 单线程,BLS12-381 |
| 签名(10 条消息) | 8.7 | 112 | 包括哈希到曲线 |
| 创建证明(5 隐藏,5 披露) | 12.4 | 256 | 证明大小恒定 |
| 验证证明(5 披露) | 6.1 | — | 配对检查 |

*基准测试来自 mattrglobal/bbs-signatures v0.6.0,运行于 Node.js 20,Apple M2。时间为 100 次运行的中位数。*

数据要点:证明生成是最昂贵的操作,但仍低于 15ms,使其适用于实时移动钱包。证明大小恒定且小巧,这是相对于 Merkle 树方法的关键优势,后者的证明大小随属性数量呈对数增长。

与替代方案比较

| 方案 | 选择性披露 | 证明大小 | 属性数量 | 密码学假设 |
|---|---|---|---|---|
| BBS+ | 是 | 恒定(约 256B) | 无限制 | q-SDH, LRSW |
| CL 签名 | 是 | 与隐藏属性线性相关 | 有限(实际 <20) | 强 RSA |
| Merkle 树(基于哈希) | 是 | O(log n) | 无限制 | 抗碰撞哈希 |
| JSON-LD 签名(如 Ed25519) | 否 | 固定 | 单条消息 | 离散对数 |

数据要点:BBS+ 在多属性凭证的证明大小与灵活性之间提供了最佳权衡。CL 签名较旧,对于大型属性集效率较低。Merkle 树更简单,但需要预先提交属性位置,且无法隐藏属性数量。

相关开源生态系统

- mattrglobal/bbs-signatures:本文讨论的主要实现,拥有 127 颗星。API 成熟,文档完善,已在 MATTR 身份平台的生产环境中使用。
- hyperledger/aries-framework-go:为 Hyperledger Aries 生态系统实现 BBS+,用于去中心化身份代理。
- zkcrypto/bbs:zkcrypto 团队的 Rust 实现,专注于形式化验证与可审计性。拥有约 80 颗星。
- microsoft/VerifiableCredentials:微软的 ION 和 Entra Verified ID 在其 DID 实现中使用 BBS+ 进行选择性披露。

关键参与者与案例研究

MATTR(新西兰身份公司)


MATTR 是该代码库的主要企业支持者。他们提供商业身份平台(MATTR VII),在政府和金融服务领域使用 BBS+ 进行可验证凭证。其策略是提供全栈解决方案:签发者、持有者钱包和验证者,全部利用 BBS+ 保护隐私。他们已在新西兰政府的数字驾驶执照试点以及澳大利亚银行的 KYC 验证中部署。

微软


微软的 Entra Verified ID 将 BBS+ 作为其 W3C 可验证凭证的签名方案之一。其基于比特币区块链构建的 ION(Identity Overlay Network)DID 方法支持 BBS+ 证明。微软的做法是将 BBS+ 集成到其现有身份基础设施中,瞄准企业级应用。

更多来自 GitHub

Vanna AI:开源Text-to-SQL工具,让您与数据库“对话”Vanna AI 托管于 GitHub 仓库 vanna-ai/vanna,凭借其创新的 Agentic RAG 架构迅速走红,已获得超过 23,650 颗星标,彰显了市场对易用型自然语言转 SQL 工具的强烈需求。该项目的核心突破在于:它SQL Chat:对话式AI如何重塑数据库查询工具SQL Chat 托管在 GitHub 上的 sqlchat/sqlchat 仓库,已获得超过 5,800 颗星且仍在增长,它代表了数据库工具领域的一次范式转变。用户不再需要手动编写 SQL 语法,而是与一个 LLM 进行对话,该模型能理解VidBee:开源视频下载器挑战大厂流媒体霸权,单日狂揽近万星VidBee 是一款新近爆红的开源视频下载器,凭借单日近万 GitHub 星标的成绩迅速抓住了开发者社区的眼球。该工具由开发者 nexmoe 打造,提供跨平台解决方案,支持从海量网站下载视频,包括那些采用复杂流媒体协议和加密技术的平台。其核查看来源专题页GitHub 已收录 2836 篇文章

时间归档

June 20261938 篇已发布文章

延伸阅读

W3C 可验证凭证 v2.0:去中心化身份的隐形脊梁W3C 正式定稿可验证凭证 v2.0,这一基础性标准为去中心化身份体系定义了通用数据模型与验证协议,有望取代传统身份孤岛。AINews 深入解析其技术革新、关键参与方,以及围绕数字信任未来展开的高风险博弈。Hyperledger Aries RFC:去中心化身份未来的技术蓝图Hyperledger Aries 并非又一个身份项目,而是新一代信任互联网的协议骨架。AINews 深入剖析 Aries RFC 仓库,解读其点对点架构、ACA-Py 等真实世界实现,以及这对中心化与去中心化身份系统之争意味着什么。Cheqd Node:基于Cosmos的自主身份层,能否颠覆传统PKI?Cheqd-node是去中心化身份网络Cheqd的核心,基于Cosmos SDK构建。它融合了W3C兼容的SSI标准、IBC跨链互操作性以及原生代币经济激励,使其成为企业级DPKI和可验证凭证管理领域的有力竞争者。凭证处理器Polyfill:为浏览器去中心化身份架桥铺路一项针对W3C凭证处理器API的新Polyfill方案,旨在为缺乏原生支持的浏览器赋予去中心化身份能力。这一开源项目有望降低开发者构建可验证凭证与DID应用的门槛,但其对Service Worker的依赖以及尚处早期的生态系统,也引发了值得

常见问题

GitHub 热点“BBS+ Signatures: The Cryptographic Key to Privacy-Preserving Digital Identity”主要讲了什么?

The mattrglobal/bbs-signatures repository implements the BBS+ signature scheme, a multi-message signature technology that supports selective disclosure and zero-knowledge proofs. B…

这个 GitHub 项目在“How to implement BBS+ signatures in Node.js for verifiable credentials”上为什么会引发关注?

BBS+ signatures, originally proposed by Boneh, Boyen, and Shacham (hence BBS) and later extended by Au et al. (the +), are a form of multi-message digital signature that supports efficient proofs of knowledge. The core i…

从“BBS+ vs CL signatures for selective disclosure performance comparison”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 127,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。