project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

Time to Vote, Anon

TTVA is a modular voting system for conducting elections in a verifiable and anonymous manner. Made of 2 systems: registration + voting. Registration verifies eligibility + register participants onchain using EAS. Voting collects encrypted ballots + tallies results using a FHEVM

Time to Vote, Anon

Created At

ETHGlobal Paris

Project Description

This project is building a modular voting system that can be used to conduct elections in a secure and anonymous manner. It's comprised of a registration system and a voting system. The registration system is used to verify eligibility and register participants on chain and the voting system is used to collect ballots and tally the results in using a FHE (Fully Homomorphic Encryption) compatible smart contract.

Registration is aimed to be widely compatible with various credentials and identity systems (both on and off-chain). The voting contract is designed to be modular and allow for different voting schemes to be implemented. The first implementation will be a simple single choice vote, but the contract is designed to be extensible to support more complex voting schemes.

The main goal is for digital elections that are straightforward to conduct and easy to verify. The system is designed to be as simple as possible, while still being secure and anonymous.

Some potential use cases:

  • A media organization running a vote limited to digital passport holders of a specific country
  • Holders of a certain professional credential voting on a proposal that affects the industry
  • Member of a network state voting on a proposal that affects the network
  • Code contributors to an open source project voting on a proposal
  • People with a specific diagnosis being able to vote on whether a specific medicine should be approved by a regulator

How it's Made

This project deploys a smart contract to a FHEVM Devnet built by Zama. Fully Homomorphic encryption is a technique that allows you perform a mathematical operation on encrypted data without revealing the data. This contract has functions for submitting an encrrypted ballot. This function checks to see if you are registered against a registration contract, checks the validity of the ballot and saves your ballot. It also has a tally function that adds the encrypted votes and determined who the winner is.

The registration contract uses Ethereum Attestation Service to allow for on-chain attestations that a user meets the requirements to vote. The attestation is posted by a worker server that gets presentations of proofs from the user. In order to post attestations, the EAS contract was required-to be deployed to the FHEVM testnet

The flow ends up being registerin, then being able to cast your vote and the contract owner being able to tally up an election

background image mobile

Join the mailing list

Get the latest news and updates