axelarnetwork / tofn

A threshold cryptography library in Rust
Apache License 2.0
107 stars 22 forks source link

Distributed Key Generation? #206

Open kingsleyh opened 1 year ago

kingsleyh commented 1 year ago

Hi,

Maybe I'm not understanding the code very well - but I thought the point of splitting up a private key into multiple keyshares was to increase security and that distributed key generation was the way to do this - by passing a context back and forth between the parties so that each party ends up with a keyshare and all the keyshares are never available together at any point. And that the approach using Samir secret sharing was non secure because all the keyshares are available at a point of time on a single machine which could be compromised.

This codebase looks to me like it generates all the keyshares on the same server and then broadcasts them to the parties e.g.:

let keygen_shares = keygen::initialize_honest_parties(&party_share_counts, threshold);

Can you clarify if this is the case or if I'm not understanding the code properly?

Thanks