MPC 托管钱包技术如何选型(建议性文档)
一.概述
我们都知道,主流的 MPC 算法有一下几种
-
GG18: Gennaro and Goldfeder, 2018
-
GG20: Gennaro and Goldfeder, 2020
-
DKLS: 分布式密钥生成
-
DKLS19: 改进版 DKLS
-
CGGMP: 分布式密钥生成
-
CCLST: 跨链轻量级协议
-
DMZ+21: 高效密钥生成和签名
-
Stinson and Strobl:鲁棒门限加密
-
FROST: Schnorr 门限签名, 主要使用在比特币网络,Web3 钱包
主流的开源库
-
Zengo
- 支持 ECDSA 和 EDDSA
- 支持 GG18 和 GG20
-
CoinBase kryptology
- 支持 ECDSA 和 EDDSA
- GG20 和 DKLS
-
Binance tss-lib
- 支持 ECDSA 和 EDDSA
- 仅仅支持 GG18
- SwingBy Protocol fork tss-lib 支持 GG20
-
Fireblocks
- 支持 CMP 和 CGGMP
- 仅仅支持 ECDSA
-
AMIS
- 支持 ECDSA 和 EDDSA
- 支持 GG18, GG20, CCLST 和 CGGMP
二. MPC 开源代码库简介
下面是开源的门限签名(Threshold Signature Scheme)库,以及它们所支持的特性。
1.Threshold ECDSA
ECDSA 签名在区块链应用非常广泛,比如 Bitcoin 和 Ethereum 都使用它进行签名。下表中列出一些开源的 ECDSA 门限签名库,以及这些库所支持的一些特性。
2.Threshold Schnorr (Ed25519, Taproot)
Schnorr 签名在区块链中也有广泛应用,Bitcoin 的 Taproot 就是一种 Schnorr 签名。此外,Schnorr 签名的变种 EdDSA(Ed25519)被 Solana/Cardano/Stellar/Near/Algorand/Tezos/Sui/Aptos 等采用。下表列出一些开源的 Schnorr 门限签名库,以及这些库所支持的一些特性。
三.底层代码库选型
从算法支持度,商用许可,代码库的安全性等多角度考量,最终我们建议选型如下
-
Go 技术团队
- ECDSA
- AMIS 的 alice 和币安的 tss-lib 库
- alice: https://github.com/getamis/alice
- tss-lib: https://github.com/bnb-chain/tss-lib
EDDSA AMIS 的 alice: https://github.com/getamis/alice
Taurus 的 multi-party-sig fork 库: https://github.com/multisig-labs/multi-party-sig
-
Rust 技术团队
- ECDSA
- ZenGo 的 multi-party-ecdsa: https://github.com/ZenGo-X/multi-party-ecdsa
- EDDSA
- Zengo 的 multi-party-eddsa: https://github.com/ZenGo-X/multi-party-eddsa
- Zcash 的 frost: https://github.com/ZcashFoundation/frost
版权声明
本文仅代表作者观点,不代表区块链技术网立场。
本文系作者授权本站发表,未经许可,不得转载。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。