Open Source Threshold Signature Libraries

  • cig01
  • 发布于 2024-03-04 22:53
  • 阅读 7

该文章介绍了开源的门限签名(Threshold Signature Scheme)库,包括 ECDSA 和 Schnorr 两种签名算法的门限签名库,并列出了各个库所支持的特性,例如 HD 钱包、Resharing、审计情况、实现语言和 License 等,可以帮助开发者选择合适的密码学库。

Created: <2024-03-03 Sun>

Last updated: <2025-04-28 Mon>

Open Source Threshold Signature Libraries

1. 简介

本文介绍一些开源的门限签名(Threshold Signature Scheme)库,以及它们所支持的特性。由于很多库一直在演进过程中,调查结论可能过时,请注意甄别。

2. Threshold ECDSA

ECDSA 签名在区块链应用非常广泛,比如 Bitcoin 和 Ethereum 都使用它进行签名。表 1 中列出一些开源的 ECDSA 门限签名库,以及这些库所支持的一些特性。

开发者 实现论文 支持 HD Wallets (BIP32) 支持 Resharing 是否审计 实现语言 License 说明
ZenGo multi-party-ecdsa GG18/GG20 有 fork 库支持 Rust GPL-3.0 官方明确说已不再维护,没有 Range Proof
Coinbase kryptology GG20/DKLS Golang Apache-2.0 官方明确说已不再维护
Coinbase cb-mpc https://eprint.iacr.org/2018/987 ✅(支持 HD,但和 BIP32 不兼容) C++ MIT License
Binance tss-lib GG18 ✅(仅 Unhardened Derivation) Golang MIT License
THORChain tss-lib GG20 Golang MIT License fork 自 Binance 库
ING Bank threshold-signatures GG18 Rust MIT License 官方明确说已不再维护,实现了 Range Proof
Taurus multi-party-sig CGGMP ✅(仅 Unhardened Derivation) ✅(但不支持 Dynamic Group) Golang Apache-2.0 它自己没审计,但它的 fork 库提交了审计
SwingBy Protocol tss-lib GG20 ✅(仅 Unhardened Derivation) Golang MIT License fork 自 Binance 库
Axelar NetworkZcash tofn GG20 Rust MIT or Apache-2.0 官方明确说已不再维护,其 GG20 代码已从 main 分支删除
LatticeX-Foundation opentss DMZ+21 Rust GPL-3.0
neucrypt (Jack Doerner) mpecdsa DKLS19 Rust BSD 3-Clause License
Safeheron multi-party-sig-cpp GG18/GG20/CMP ✅(但不支持 Dynamic Group) C++ 不能商用
AMIS alice GG18/GG20/CCLST/CGGMP ✅(仅 2-party Hardened Derivation) ✅(但不支持 Dynamic Group) Golang Apache-2.0 属于 Hierarchical TSS
Fireblocks mpc-lib CMP/CGGMP ✅(但不支持 Dynamic Group) C++ GPL-3.0
Dfns cggmp21 CGGMP ✅(仅 Unhardened Derivation) ✅(但不支持 Dynamic Group) Rust MIT or Apache-2.0

Table 1: Multi-Party Threshold ECDSA Libraries

一些 Two Parties ECDSA 库并没有在表格中列出,比如:

https://github.com/unboundsecurity/blockchain-crypto-mpc

https://github.com/okx/threshold-lib

3. Threshold Schnorr (Ed25519, Taproot)

Schnorr 签名在区块链中也有广泛应用,Bitcoin 的 Taproot 就是一种 Schnorr 签名。此外,Schnorr 签名的变种 EdDSA(Ed25519)被 Solana/Cardano/Stellar/Near/Algorand/Tezos/Sui/Aptos 等采用。表 2 中列出一些开源的 Schnorr 门限签名库,以及这些库所支持的一些特性。

开发者 实现论文 支持 Ed25519 支持 Taproot (BIP340) 支持 HD Wallets (BIP32) 支持 Resharing 是否审计 实现语言 License 说明
ZenGo multi-party-eddsa Stinson and Strobl 2001 Rust GPL-3.0
Coinbase kryptology FROST Golang Apache-2.0 官方明确说已不再维护
Coinbase cb-mpc https://ia.cr/2022/374 C++ MIT License
Binance tss-lib 内部文档 Golang MIT License 仅 ECDSA 门限模块支持 BIP32
Taurus frost-ed25519 FROST Golang Apache-2.0
Taurus multi-party-sig FROST ✅(仅 Unhardened Derivation) ✅(但不支持 Dynamic Group) Golang Apache-2.0 它自己没审计,但它的 fork 库提交了审计
Serai DEX frost FROST Rust MIT or AGPL-3.0
Zcash frost FROST ✅(在 PR 中支持的) Rust MIT or Apache 2.0
AMIS alice FROST ✅(仅 2-party Hardened Derivation) ✅(但不支持 Dynamic Group) Golang Apache-2.0
bancaditalia secp256k1-frost FROST C MIT License

Table 2: Multi-Party Threshold Schnorr Libraries

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
cig01
cig01
https://aandds.com/