FDKG-Vote-BC — Proof of Concept
This demo implements the FDKG-Vote-BC protocol: a fully on-chain, threshold-encrypted election using Federated DKG.
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.
Mocked pieces (PoC)
- ZK proofs — contract accepts empty bytes; see README for replacement hooks.
- Eligibility — on-chain allowlist instead of Merkle ZK proof.
- Tally — off-chain computation submitted on-chain without re-verification.
Quick links
Contract: (not configured) · RPC: http://localhost:8545