swisspost-evoting-go-poc/pkg/mixnet
saymrwulf c24650885e Instrument the deep Bayer-Groth layers: commitments, sub-arguments, decryption
Take the live-math cockpit down to the level of the Swiss Post crypto-primitives
class structure. The shuffle proof is no longer one line — you can now watch it
being constructed:

- Pedersen matrix commitment (CommitmentService analog): c_A = Comm(A; r),
  c_{A,j} = h^{r_j} Π g_i^{A_ij}, emitted from CommitMatrix.
- All five Bayer-Groth sub-arguments, mirroring the *ArgumentService classes:
  ShuffleArgument (composition + x,y,z challenges), ProductArgument,
  HadamardArgument (entrywise product), ZeroArgument (bilinear star-map),
  SingleValueProductArgument, MultiExponentiationArgument — each emits its
  defining relation as LaTeX with live dimensions.
- Partial decryption + decryption proof (DecryptionProofService analog):
  φ'_i = φ_i·γ_i^{-sk} with the ZK proof that log_g(pk) = log_γ(γ^sk).

New trace.KindArgument. Low-level Commit stays uninstrumented (called in
verification too — would flood the stream); CommitMatrix is the semantic step.

Test: a 6-voter ceremony (N=6 → 2×3 shuffle matrix, so m>1 and the full argument
tree runs) captures 345 live events across 8 kinds, and asserts all five named
sub-arguments appear.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 16:26:03 +02:00
..
commitment.go Instrument the deep Bayer-Groth layers: commitments, sub-arguments, decryption 2026-07-07 16:26:03 +02:00
hadamard_argument.go Instrument the deep Bayer-Groth layers: commitments, sub-arguments, decryption 2026-07-07 16:26:03 +02:00
hash_helpers.go Swiss Post E-Voting Go PoC 2026-02-13 19:53:09 +01:00
multiexp_argument.go Instrument the deep Bayer-Groth layers: commitments, sub-arguments, decryption 2026-07-07 16:26:03 +02:00
multiexp_test.go Swiss Post E-Voting Go PoC 2026-02-13 19:53:09 +01:00
permutation.go Swiss Post E-Voting Go PoC 2026-02-13 19:53:09 +01:00
product_argument.go Instrument the deep Bayer-Groth layers: commitments, sub-arguments, decryption 2026-07-07 16:26:03 +02:00
shuffle.go Swiss Post E-Voting Go PoC 2026-02-13 19:53:09 +01:00
shuffle_argument.go Instrument the deep Bayer-Groth layers: commitments, sub-arguments, decryption 2026-07-07 16:26:03 +02:00
shuffle_test.go Due-diligence hardening + Rust transport-security layer 2026-07-06 14:42:34 +02:00
starmap.go Swiss Post E-Voting Go PoC 2026-02-13 19:53:09 +01:00
svp_argument.go Instrument the deep Bayer-Groth layers: commitments, sub-arguments, decryption 2026-07-07 16:26:03 +02:00
trace_hooks.go Instrument the deep Bayer-Groth layers: commitments, sub-arguments, decryption 2026-07-07 16:26:03 +02:00
verifiable_shuffle.go Instrument real crypto ops to emit live LaTeX events 2026-07-07 14:06:08 +02:00
zero_argument.go Instrument the deep Bayer-Groth layers: commitments, sub-arguments, decryption 2026-07-07 16:26:03 +02:00