You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+9-3Lines changed: 9 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -94,7 +94,7 @@ The cryptographic threshold is derived internally from the accepted registration
94
94
95
95
There is no supported `n-of-n` mode and no supported public `k-of-n` configuration.
96
96
97
-
Transcript verification requires key-derivation confirmations from every qualified participant.
97
+
Transcript verification requires `key-derivation-confirmation` payloads from every qualified participant. In the current design those unanimous confirmations are part of verifier soundness: the library does not implement a public post-Feldman complaint/reconstruction phase, so the DKG verifier is participant-confirmed rather than fully public-data-only. Lowering confirmation acceptance to threshold-many is out of scope unless that missing public consistency machinery is added.
98
98
99
99
See [Honest-majority voting flow](https://tenemo.github.io/threshold-elgamal/guides/three-participant-voting-flow/) for the full phase-by-phase transcript.
The example uses `0..5` only as one concrete score range. The supported rule is
149
+
one manifest-declared contiguous range with non-negative bounds and
150
+
`scoreRange.max <= 100`.
151
+
148
152
If your application consumes a complete public board, start with [Verifying a public board](https://tenemo.github.io/threshold-elgamal/guides/verifying-a-public-board/) and then move directly to the verifier entry point:
Pass the full published `ballot-close` slot in `ballotClosePayloads`, even when the normal case is one organizer payload. The verifier audits that slot, collapses only exact retransmissions, and requires exactly one accepted close record.
181
+
176
182
The root package exposes the builders and lower-level helpers required for the documented ceremony, including:
Use `verifyElectionCeremony(...)` when you want the same checks but prefer exceptions over a structured result.
56
+
Use `verifyElectionCeremony(...)` when you want the same checks but prefer exceptions over a structured result. Pass the full published `ballot-close` slot in `ballotClosePayloads`, even when that slot only contains one organizer payload.
This example uses `0..5` only as sample data. The supported rule is one
76
+
manifest-declared contiguous score range with non-negative bounds and
77
+
`scoreRange.max <= 100`.
78
+
75
79
The manifest does not carry `participantCount`, `reconstructionThreshold`, publication floors, or deadline metadata. It does carry one explicit global `scoreRange`. The verifier derives `n` from the accepted registration roster and derives `k` internally as `ceil(n / 2)`.
Copy file name to clipboardExpand all lines: docs/src/content/docs/guides/verifying-a-public-board.md
+13-2Lines changed: 13 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,10 +15,12 @@ The full verifier consumes one `VerifyElectionCeremonyInput` bundle:
15
15
-`sessionId`
16
16
-`dkgTranscript`
17
17
-`ballotPayloads`
18
-
-`ballotClosePayload`
18
+
-`ballotClosePayloads`
19
19
-`decryptionSharePayloads`
20
20
-`tallyPublications` if you want published tally records checked against the recomputed tallies
21
21
22
+
`ballotClosePayloads` must contain the full published `ballot-close` board slot, not a prefiltered close record. The verifier audits that slot, collapses only exact retransmissions, and requires exactly one accepted close payload after audit.
23
+
22
24
If `tallyPublications` is omitted or empty, the verifier still replays the DKG, ballot, and decryption-share flow and still recomputes per-option tallies locally.
This is usually the best application entry point because it gives you a stable `stage`, `code`, and `reason` without exception handling.
57
59
60
+
## What the DKG verifier assumes
61
+
62
+
`verifyElectionCeremony(...)` delegates DKG validation to `verifyDKGTranscript(...)`, which currently consumes:
63
+
64
+
- the public signed DKG transcript
65
+
-`key-derivation-confirmation` payloads from every qualified participant
66
+
67
+
This verifier does not implement a public post-Feldman complaint/reconstruction phase. That means the current DKG check is participant-confirmed transcript verification, not the stronger fully public-data-only variant sometimes described in the GJKR literature. Lowering confirmation acceptance to threshold-many is out of scope unless that missing public consistency machinery is added.
68
+
58
69
## Use the throwing verifier when failure should abort immediately
0 commit comments