swisspost-evoting-go-poc/pkg/party
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
..
ceremony.go Voting cards: distributed return-code generation + confidential delivery 2026-07-06 15:15:38 +02:00
ceremony_test.go Add party layer scaffolding: PKI bootstrap + signed handshake 2026-07-06 15:07:31 +02:00
codes.go Cast-as-intended return codes: CC extraction + voter check 2026-07-06 15:52:30 +02:00
codes_test.go Voting cards: distributed return-code generation + confidential delivery 2026-07-06 15:15:38 +02:00
e2e_test.go Tally + verification: full multi-party ceremony runs end-to-end 2026-07-06 15:23:56 +02:00
parties.go Voting cards: distributed return-code generation + confidential delivery 2026-07-06 15:15:38 +02:00
phases.go Cast-as-intended return codes: CC extraction + voter check 2026-07-06 15:52:30 +02:00
returncode_extract.go Cast-as-intended return codes: CC extraction + voter check 2026-07-06 15:52:30 +02:00
setup.go Add evote cockpit --tmux: one terminal pane per stakeholder 2026-07-07 15:43:05 +02:00
setup_test.go Distributed key generation over signed transport + validated wire layer 2026-07-06 15:11:34 +02:00
state.go Ballot carries E2 + plaintext-equality proof, CC-verified 2026-07-06 15:47:53 +02:00
tally.go Instrument the deep Bayer-Groth layers: commitments, sub-arguments, decryption 2026-07-07 16:26:03 +02:00
trace_test.go Instrument the deep Bayer-Groth layers: commitments, sub-arguments, decryption 2026-07-07 16:26:03 +02:00
transcript.go Ballot carries E2 + plaintext-equality proof, CC-verified 2026-07-06 15:47:53 +02:00
verify.go Add evote cockpit --tmux: one terminal pane per stakeholder 2026-07-07 15:43:05 +02:00
voting.go Instrument real crypto ops to emit live LaTeX events 2026-07-07 14:06:08 +02:00
voting_test.go Cast-as-intended return codes: CC extraction + voter check 2026-07-06 15:52:30 +02:00
wire.go Ballot carries E2 + plaintext-equality proof, CC-verified 2026-07-06 15:47:53 +02:00