What is basic Aggios?
Aggios is an aggregator-based (proxy) voting protocol. Voters do not post votes on-chain; instead each voter delegates to exactly one aggregator of their choice. Aggregators collect votes, publish a tally, and prove the tally correct with an EPA proof — a succinct proof that a committed vector of voter tokens is partitioned into disjoint, labeled subsets of publicly claimed sizes (one subset per candidate, plus internal NO_VOTE and PAD subsets). Validators verify the proofs; the final result sums only verified aggregators.
Cryptography in this demo
- BLS delegation signatures — voters sign
"AGGIOS_DELEGATION" || election_id || aggregator_idbinding them to one aggregator. - Registration tokens — τi = skvi · Bi, where Bi is the KZG commitment to the voter's Lagrange slot; validators rebuild the committed vector as Σ τi.
- EqLog proofs — cross-group proof that τi and the voting key pkvi use the same secret scalar.
- EPA proof of partition — the existing EPA implementation, used strictly as a black box, proves the tally partitions the committed token vector.
Demo caveats: the KZG SRS is generated from a fixed seed (no trusted setup), the backend simulates voters' wallets and private channels, and voter receipts are unavailable because the black-box EPA implementation exposes no partition-opening API.
Current election
Create election
Phases & actions
Aggregator operations
Demo voters
The backend simulates each voter's wallet: it holds the voter's signing key, signs the delegation, and sends skv to the chosen aggregator over a simulated private channel. skv never appears on the bulletin board.