The eVRF paper details a one-round DKG. It does not detail how secret shares are communicated. If incorrect shares are communicated, participants would have to engage in a blame protocol (mandating at least one additional round of communication). We remove the ability for incorrect shares to be communicated via a verifiable encryption scheme (detailed in the following), removing the need for post-DKG confirmation rounds (assuming a consistent view of the transcript of the protocol).
We also only require t
participants to generate a key in order to achieve robustness. This does mean the generated key is biased, unless there's a fixed selection of which t
participants will complete the protocol (which wouldn't be robust). For the intended use case, participation in FROST where the public key is represented as a 256-bit value, this is fine (as FROST itself was written with a biased DKG, and the ability to bias a 256-bit representation of a public key should only enable finding a collision with 2**128 bits of effort (assumed hard)).
We presume two elliptic curves,
The message recipient samples a private key
The message sender, with scalar message
This ZK proof, in practice, would be built as an eVRF premised on the ECDH would be. The eVRF paper details scaling private points by public scalars, yet a Bulletproof circuit can also be constructed for scaling public points (
Verifying the encryption assumes the verifier has a commitment to the expected scalar
Decryption is done by calculating
Is the randomness
Do the participants need to publish Proofs of Knowledge for their keys? The Bulletproofs itself is a Proof of Knowledge for those who participate, yet this scheme proposes not everyone participate (meaning not everyone provides Proofs of Knowledge). While a participant can set their discrete log to another recipient's, they should only be able perform decryption if they actually know the discrete logarithm (at worst causing a recipient to have more shares than intended). If the byte-encoding from the context string is invalid (due to a complete lack of validation), a random point with an unknown discrete logarithm could be sampled. This avoids the context needing any validation performed for the contained keys.
Are there any benefits to performing the deterministic derivation of secret shares in the robust variant? The resulting key can still be biased by the decision of which potential participants participate. It does make arbitrary bias harder in practice (as likely sufficient to prevent a participant from performing a Taproot-tweak to add an arbitrary script spend path, though that should be explicitly handled by tweaking the result of the DKG with an unspendable script path).
- Exponent-VRFs and Their Applications by Dan Boneh, Iftach Haitner, and Yehuda Lindell.