Skip to content

Add DKLS23 soft-spoken presignatures - #269

Open
toufic0710 wants to merge 4 commits into
bronlabs:masterfrom
toufic0710:feature/dkls23-presignatures
Open

toufic0710 wants to merge 4 commits into
bronlabs:masterfrom
toufic0710:feature/dkls23-presignatures

Conversation

@toufic0710

@toufic0710 toufic0710 commented Jun 17, 2026

Copy link
Copy Markdown

Description

Resolves #255

Previously, all final signing logic lived in pkg/mpc/signatures/ecdsa/dkls23/signing_softspoken/rounds.go, inside Round5: it computed the message-independent values, hashed the message, and returned a partial signature.

This PR splits that logic across the following files:

  • pkg/mpc/signatures/ecdsa/dkls23/presignature.go Defines the shared dkls23.PreSignature type, its CBOR encoding/ decoding, and Finalise, which turns a presignature into a partial signature once the message is known.

  • pkg/mpc/signatures/ecdsa/dkls23/signing_softspoken/ presignature.go Contains the soft-spoken PreSign logic extracted from the old Round5. This is the message-independent part of round 5.

  • pkg/mpc/signatures/ecdsa/dkls23/signing_softspoken/rounds.go Keeps the existing Round5 API, now implemented as PreSign followed by Finalise.

  • pkg/mpc/signatures/ecdsa/dkls23/presign_softspoken/runner.go Adds a high-level runner that executes the soft-spoken signing rounds up to PreSign, producing a presignature before the message is known.

  • Tests cover both the round-level split and the presignature runner path.

We don't need additive key derivation or "raw signing", so we did not implemented rerandomization.

Pull Request Checklist

Scope

  • Summary and description are provided.
  • Changes are focused and scoped to one purpose.

Testing (select all that apply)

  • Unit tests
  • Property tests
  • Test vectors tests
  • Benchmarks
  • Not run (explain why)

Documentation / Spec (if relevant)

  • Updated/added docs or comments
  • Spec updated or linked

Notes

  • Additional context is provided (if needed)

@toufic0710

toufic0710 commented Jun 17, 2026

Copy link
Copy Markdown
Author

Open questions:

  • presign_softspoken.NewRunner mirrors most of signing_softspoken.NewRunner and differs mainly at the final step (PreSign instead of Round5). Would you prefer the runner logic to be factored to reduce duplication, or is the explicit separate runner acceptable?
  • would you like BBOT presigning to be inside this PR, or handled in a follow-up PR?

@toufic0710
toufic0710 force-pushed the feature/dkls23-presignatures branch from 9e625b4 to 6bf6ffa Compare July 14, 2026 13:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add DKLS23 presignatures

1 participant