Closed bergkvist closed 6 months ago
Correct, this is by design and not likely to change soon.
Instead of supporting T<N
, this library supports "K
different groups, each of them having T=N
players".
This decision has several benefits:
Unlike threshold signatures, this model supports "Additive secret key sharing" which has other benefits of its own.
Its always possible to securely & seamlessly add more groups.
N
becomes a security parameter, whereas the number of groups (K
) can always grow.
It is possible revoke, or disable, any single group, by disabling just one player in that group.
Signing mandates full collaboration & approval of all N
players.
The decision on which players belong into each group, or how you map groups & players into real-world entities, is external to this library, and results from larger design decisions in any application using this library.
It seems like you don't support threshold ECDSA signatures:
https://github.com/fireblocks/mpc-lib/blob/84b7fb83502a998703b6ceb113273fc20fa55b7b/src/common/cosigner/cmp_setup_service.cpp#L54-L58