bnb-chain / tss-lib

Threshold Signature Scheme, for ECDSA and EDDSA
MIT License
790 stars 271 forks source link

Feature/adding deterministic key generation #170

Closed mahdiidarabi closed 9 months ago

mahdiidarabi commented 2 years ago
yycen commented 2 years ago

What's the intention of the PR, or what's the usage? The user still need to input his u_i when running keygen.

yycen commented 2 years ago

What's the intention of the PR, or what's the usage? The user still need to input his u_i when running keygen.

mahdiidarabi commented 2 years ago

What's the intention of the PR, or what's the usage? The user still need to input his u_i when running keygen.

with this feature, a user will be able to generate the same wallet (public key) in the case of losing partial private keys, for example a user wants to create a TSS wallet with 5 parties, and if provides the "u" for these 5 parties, will get the same wallet (public key) no matter what the threshold is, by this feature users can provide the "u" for each party by a deterministic way, like HD (Hirarchical Deterministic) and can revive their wallet by having the deterministic "u". the deterministic "u" for each party can be derived independently from other parties, furthermore only all parties together are able to recreate the same wallet (public key) in the case of losing all partial secrets of all parties.

yycen commented 2 years ago

This changes the api, merging into master could cause problems. Could you push into a new branch instead?

mahdiidarabi commented 2 years ago

This changes the api, merging into master could cause problems. Could you push into a new branch instead?

Sure, if it's possible please create a branch for this feature (feature/deterministic-keygen-tss)

ZhAnGeek commented 9 months ago

creating https://github.com/bnb-chain/tss-lib/tree/feature/deterministic-keygen-tss and need to be rebased.