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:200 — num_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
In DKG, the coordinator automatically participates — the
dkgcommand contributes key material and-S/--participantslists 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
coordinatorcommand 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.-Smust 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
participantin parallel withcoordinatorto contribute their own signature share. This is undocumented and surprising given the DKG behaviour.src/cli/dkg.rs— DKG coordinator automatically participates,-S= others onlysrc/cli/coordinator.rs:200—num_signers = signers.len(), waits for exactly this many commitmentssrc/coordinator/coordinate_signing.rs:33-40— collects commitments only from signers in-S, does not self-signsrc/cli/args.rs:176-178—--signersoncoordinator= all signers to wait forOriginally created in: https://github.com/Nori-zk/mina-multi-sig-example/blob/main/FEEDBACK.md