Skip to content

Inconsistent coordinator role between DKG and signing #187

Description

@jCabala

In DKG, the coordinator automatically participates — the dkg command contributes key material and -S/--participants lists only the other participants. The coordinator ends up in the group as a full participant with their own key share.

In signing, the coordinator does not participate — the coordinator command is purely an orchestrator. It creates the session, waits for commitments from everyone in -S/--signers, builds the signing package, and aggregates signatures. It does not contribute its own commitment or signature share. -S must list all signers, including the coordinator if they are a signer.

This means that when the coordinator is also a group member (which is always the case after DKG), they must run participant in parallel with coordinator to contribute their own signature share. This is undocumented and surprising given the DKG behaviour.

  • src/cli/dkg.rs — DKG coordinator automatically participates, -S = others only
  • src/cli/coordinator.rs:200num_signers = signers.len(), waits for exactly this many commitments
  • src/coordinator/coordinate_signing.rs:33-40 — collects commitments only from signers in -S, does not self-sign
  • src/cli/args.rs:176-178--signers on coordinator = all signers to wait for

Originally created in: https://github.com/Nori-zk/mina-multi-sig-example/blob/main/FEEDBACK.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions