Add DKLs23 key generation protocol example#21
Closed
sridhar-panigrahi wants to merge 1 commit intoLFDT-Lockness:mfrom
Closed
Add
DKLs23 key generation protocol example#21sridhar-panigrahi wants to merge 1 commit intoLFDT-Lockness:mfrom
sridhar-panigrahi wants to merge 1 commit intoLFDT-Lockness:mfrom
Conversation
Implements the n-of-n Distributed Key Generation protocol from "Threshold ECDSA from ECDSA Assumptions: The Multiparty Case" (Doerner, Kondi, Lee, Shelat, IEEE S&P 2023, eprint 2023/765) as a round-based example protocol. The 3-round protocol follows the paper's DKG specification: Round 1: commit to public share + Schnorr nonce via domain-separated hash Round 2: decommit and verify all commitments Round 3: Schnorr proof-of-knowledge under joint random challenge (rid = XOR) Uses generic-ec for curve-generic EC arithmetic and generic-ec-zkp for Schnorr proofs, demonstrating how round-based can host real cryptographic protocols beyond toy examples. Tested with round_based::sim (sync + async) across secp256k1 and secp256r1, verifying public key agreement and secret share reconstruction. Signed-off-by: Shridhar Panigrahi <sridharpanigrahi2006@gmail.com>
Author
Contributor
|
Hello @sridhar-panigrahi, what you submit should be a separate crate, not an "example" in round-based. Note that in contribution guidelines we ask all contributors to contact us before doing any work. It's usually a good reflex to talk to the maintainers before engaging into any development, at least to make sure your views are aligned. Assuming that you did it in anticipation of mentorship program, this is a protocol that is supposed to be developed during the program, after having discussed a plan with us, in a incremental way with regular feedback, and not submitted in one commit as an example to round-based crate. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This adds a complete
implementation of the DKLs23 n-of-n distributed key generation protocol
as an example, alongside the existing random-generation-protocol.
The protocol follows Section 5 of eprint 2023/765 — three rounds of
commit, decommit, and Schnorr proof-of-knowledge under a joint random
challenge. It uses generic-ec for curve-generic EC arithmetic and
generic-ec-zkp for Schnorr proofs, showing how round-based handles a
real cryptographic protocol with reliable broadcast, domain-separated
hashing via udigest, and constant-time verification.
Tested with round_based::sim (both sync and async) across secp256k1 and
secp256r1 — all tests verify public key agreement and secret share
reconstruction.
This is groundwork toward a full DKLs23 threshold ECDSA implementation
in the Lockness ecosystem. Happy to adjust anything based on your
feedback.