Voter-to-Voter Internet Voting
A fully on-chain, threshold-encrypted election protocol. Voters encrypt their choices under a distributed key held jointly by a set of talliers — no single party can decrypt, and no trusted authority is required.
Protocol Phases
- Deploy & Pin Params — the Organiser anchors the election (eid, time windows, eligible set) on-chain.
- FDKG Generation — Talliers post partial public keys + encrypted Shamir shares before voting opens. The contract aggregates them into the election public key E.
- Casting — Voters encrypt their choice under E and submit with a one-time nullifier. Duplicate nullifiers are rejected.
- Decryption — after voting closes, talliers post partial decryptions; guardians cover offline talliers via SSS reconstruction.
- Tally — anyone computes the tally off-chain and submits it once sufficient decryption material is posted.
Current limitations
- ZK proofs — contract accepts empty bytes; full verifiers are replaceable drop-ins.
- Eligibility — on-chain allowlist instead of Merkle ZK proof.
- Tally — off-chain computation submitted on-chain without re-verification.
Quick links
Contract: 0x93AEE675a8388fA19B63C1968143784F6E6ca334 · Base Sepolia