tangle-network / cggmp-threshold-ecdsa

MPC protocols for threshold ECDSA
GNU General Public License v3.0
47 stars 10 forks source link

[SPEC] Presigning and Signing #10

Closed akileshtangella closed 1 year ago

akileshtangella commented 2 years ago

Presigning and Signing SPEC

Ring-Pedersen Parameters

Unlike in the key refresh presented in the CGGMP '21 paper, FS-DKR does not result in each party having ring-Pedersen parameters. So this is something we have to append to our protocol.

It makes sense to append this to FS-DKR itself. We also need a ZK that the parameters are generated properly:

image

Presigning and Signing SPECs

The steps for pre-signing and signing are specified clearly in the CGGMP '21 paper.

image image

What is missing from these SPECs

What is missing from these screenshots is how actually to implement the non-interactive zero-knowledge proofs (NIZKs), but this is also given in the paper. So we provide more screenshots.

In pre-signing round 1, we need:

image

In pre-signing rounds 2 and 3 we additionally need:

image image

In pre-signing round 4, we additionally need:

image

In signing, we additionally need:

image

How to make these zero-knowledge proofs non-interactive:

All of the ZKs screenshotted above are three-move protocols. That is, they are interactive. We need to make them non-interactive.

image

ZKP Checklist

drewstone commented 2 years ago

If we are going to need ring pedersen parameters, then we should replace those with the current PDL parameters we're using. AFAIK they are quite similar. Also, we may be able to swap the Ring-pedersen proof with the PDL proof too, unless those params are strictly used as is throughout the protocol.