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
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:
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