Trust-Machines / wsts

Weighted Schnorr Threshold Signatures
Apache License 2.0
27 stars 12 forks source link

Make `DkgPrivateShares` publicly verifiable #58

Open xoloki opened 7 months ago

xoloki commented 7 months ago

Currently only the recipients of DkgPrivateShares can verify that they have received correct shares. This is because the shares are encrypted to the recipients using symmetric encryption, with a Diffie-Hellman shared secret key. The protocol allows recipients to prove that a share is bad using a Chaum-Pedersen proof of the shared secret, which then allows anyone to verify that the share does not match the public polynomial of the sender.

It would be better if the DkgPrivateShares were publicly verifiable; this would allow the Coordinator to verify DkgPrivateShares before sending DkgEndBegin, so byzantine actors will be quickly marked as malicious and prevented from slowing the protocol. DKG can be robust in the face of anything but bad connectivity or non-participation.