技术深度解析
Ed25519Signature2020套件构建于Ed25519椭圆曲线之上,这是Edwards曲线数字签名算法(EdDSA)的一种具体实现。Ed25519由Daniel J. Bernstein等人设计,旨在解决NIST P-256等早期曲线在性能和安全性上的不足。该曲线采用了一条带有大素数域的扭曲Edwards曲线,提供128位安全级别——相当于RSA-3072或使用256位曲线的ECDSA——但签名和验证速度显著更快。基准测试显示,在现代CPU上,Ed25519可在50微秒内完成消息签名,在100微秒内完成验证;相比之下,RSA-2048签名需要1-2毫秒,验证需要0.1-0.2毫秒。这种速度优势对于高吞吐量的凭证签发场景至关重要,例如政府签发数百万张数字身份证。
该套件与链接数据证明(LDP)规范集成,该规范定义了如何将加密证明附加到JSON-LD文档上。证明对象包含签名值、验证方法(DID或公钥URL)以及证明目的(例如assertionMethod、authentication)。算法使用RDF数据集规范化算法(URDNA2015)在签名前对JSON-LD文档进行规范化处理,确保语义等价的文档无论语法差异如何(例如键顺序、空白符),都能产生相同的签名。这是与更简单的基于JWT的签名的一个关键区别,后者对格式变化非常敏感。
一个值得注意的技术特性是该套件与零知识证明(ZKP)的兼容性。虽然Ed25519本身并非ZKP友好型曲线(与BLS12-381或BN254不同),但该套件的签名格式可以封装在ZKP友好的容器中。例如,使用Ed25519签名的可验证凭证可以通过支持选择性披露的BBS+签名方案进行呈现。这是通过一种称为“签名聚合”的技术将Ed25519签名转换为BBS+证明,或者通过在零知识电路中使用Ed25519密钥材料作为承诺来实现的。开源社区,特别是Hyperledger Aries项目,已经探索了这种集成。GitHub仓库digitalbazaar/ed25519-signature-2020(每日13颗星,状态稳定)提供了JavaScript和TypeScript的参考实现,并包含Node.js和浏览器的绑定。代码库相对较小(约2000行),易于审计和嵌入。
基准对比:Ed25519 vs. RSA vs. ECDSA (P-256)
| 算法 | 签名时间(微秒) | 验证时间(微秒) | 密钥大小(字节) | 安全级别(位) | ZKP兼容性 |
|---|---|---|---|---|---|
| Ed25519 | 45 | 85 | 32 | 128 | 部分(通过封装) |
| RSA-2048 | 1,200 | 150 | 256 | 112 | 否 |
| ECDSA (P-256) | 120 | 200 | 32 | 128 | 否 |
| BLS12-381 | 1,500 | 2,000 | 48 | 128 | 是(原生) |
数据要点: 在常见的非ZKP算法中,Ed25519提供了最佳的签名速度,非常适合高吞吐量的凭证签发。然而,对于需要原生ZKP支持的应用(例如,在不泄露签发者签名的情况下进行选择性披露),BLS12-381仍然是黄金标准,尽管需要付出性能代价。
关键参与者与案例研究
该套件的主要维护者是Digital Bazaar,一家专注于去中心化身份和可验证凭证基础设施的公司。他们还维护着核心依赖库jsonld-signatures。Digital Bazaar的首席执行官Manu Sporny是W3C可验证凭证规范的联合编辑,也是基于链接数据的方法相对于更简单的基于JWT的方法的积极倡导者。他们的策略是构建一个模块化、符合标准的堆栈,以便政府和大型企业能够采用。
其他关键参与者包括:
- Hyperledger Aries(Linux基金会):在其didcomm和凭证签发工作流中使用Ed25519Signature2020。Aries框架支持多种签名套件,但出于性能原因,Ed25519是默认选项。
- Microsoft ION:一个基于Sidetree的DID网络,使用Ed25519密钥进行DID文档更新。虽然ION使用JWT进行签名,但底层密钥材料是Ed25519,并且该团队已经探索了LDP兼容性。
- 欧洲区块链服务基础设施(EBSI):欧盟委员会的一项跨境可验证凭证倡议。EBSI强制要求Ed25519作为其符合eIDAS标准的数字身份钱包的主要签名算法。
- Sovrin基金会:一个早期的SSI网络,最初使用Ed25519,但后来为了隐私功能迁移到了BLS签名。
主要SSI框架中签名套件采用情况对比
| 框架 | 默认签名套件 | ZKP支持 | 主要用例 | GitHub星标(相关仓库) |
|---|---|---|---|---|
| Hyperledger Aries | Ed25519Signature2020 | 通过BBS+扩展 | 企业级凭证交换 | 1200+ (aries-framework-go) |
| Veramo(去中心化身份框架) | Ed25519Signature2020 | 通过插件支持 | 通用身份管理 | 500+ |