Delegated Proving (co-SNARKs)
Offload zero-knowledge proof generation to a distributed prover network without revealing the witness. The user secret-shares their witness across several proving nodes; the nodes jointly run an MPC protocol to compute a single SNARK proof; no individual node ever reconstructs the full witness. The resulting proof is identical to one produced client-side and is verified on-chain or off-chain with no changes on the verifier side.
Offload zero-knowledge proof generation to a distributed prover network without revealing the witness. The user secret-shares their witness across several proving nodes; the nodes jointly run an MPC protocol to compute a single SNARK proof; no individual node ever reconstructs the full witness. The resulting proof is identical to one produced client-side and is verified on-chain or off-chain with no changes on the verifier side.
This pattern covers delegated proving for a single prover's witness. For multi-party joint computation over shared secret inputs (e.g. a consortium ledger), see pattern-private-shared-state-cosnark.
- User or application holds the witness and wants a proof generated without exposing the witness.
- Share-distribution layer splits the witness using secret-sharing (additive or Shamir) and routes shares to proving nodes.
- Distributed prover network runs the MPC protocol to jointly compute the SNARK. Each node sees only its share.
- Coordinator sequences MPC rounds and assembles the final proof. Can be one of the proving nodes or a separate role.
- Verifier checks the final proof exactly as it would check a client-side SNARK. No changes on the verification side.
Guarantees:
- The witness stays hidden from every individual prover and from the verifier.
- Verification cost is identical to a client-side SNARK for the same circuit.
- Preserves trade secrets, user balances, or model weights under honest-majority assumptions.
Threat model:
- Soundness of the underlying SNARK, including any trusted-setup ceremony.
- Honest-majority assumption across proving nodes. A colluding majority can recover the witness and, in some constructions, forge proofs.
- Non-censoring coordinator. A malicious coordinator can refuse to finalize or selectively drop requests.
- Authenticated and confidential channels between nodes. Metadata about participation and timing is out of scope.
- Heavy communication overhead. Round count and bandwidth scale with both the number of provers and circuit size.
- New infrastructure requirements: MPC nodes, share routing, key management.
- Liveness depends on all designated nodes remaining online through the proving session. Dropouts typically force a restart.
- Latency is higher than client-side proving because of MPC round trips; not suitable for sub-second proving budgets.
- A user holds a shielded balance and wants to prove a spend on a mobile device. The wallet secret-shares the spending witness across three independent proving operators. The operators jointly produce a Groth16 proof. None of them sees the balance or the spend amount. The user submits the proof to the shielded pool contract.