bnb-chain / tss-lib

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

Can I use tss-lib to sign sequentially? #102

Closed JacksonRGB closed 3 years ago

JacksonRGB commented 4 years ago

threshold = 2, full = 3 After signing by user A, the signing result is sent to user B, and user B completes the final signature. Can tss-lib achieve this function?

omershlo commented 3 years ago

Yes, Once user B gets all the messages from the other party it has enough info to compute the signature and it can at that point compute it alone and not send its partial /full signature to the rest of the parties. This probably require small modification to the code

JacksonRGB commented 3 years ago

@omershlo Thank you.

I still have a few questions. Could you help me?

  1. The number of secrets used for signing must be threshold+1? https://github.com/binance-chain/tss-lib/blob/master/ecdsa/signing/local_party_test.go#L42

  2. Can the ECDSA private key be recovered?

omershlo commented 3 years ago

Hi,

  1. Do you mean - what happens if you have more than threshold + 1? how it is handled ?
  2. If you have threshold + 1 you can combine the secrets to form the ECDSA secret key, although I don't think it is implemented