Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Crypto-Project-ENSTA/front-end/llms.txt

Use this file to discover all available pages before exploring further.

Evoting is a cryptographically secure anonymous electronic voting system built as a SaaS platform. It is designed so that every vote is counted accurately and publicly verifiable — without revealing who voted for what, and without trusting any single party to run the election honestly.

Key security properties

Evoting is built on four core security guarantees that together ensure a trustworthy election:
  • Blind signatures — the administrator signs each ballot without seeing its content, so voter privacy is preserved even during the signing step.
  • End-to-end encryption — votes are encrypted with the counter’s public key before they leave the voter’s browser. No one can read the ballot contents until the counter decrypts after voting ends.
  • Public verifiability — after counting, all (N2, vote) pairs are published. Any voter can check that their ballot was included and tallied correctly.
  • Role separation — no single entity holds enough information to alter or trace a vote. Each of the four independent entities controls only its own piece of the process.

The four independent entities

Each entity in Evoting has a distinct and limited role:
EntityResponsibility
VoterRegisters, authenticates with N1, submits an encrypted ballot using N2
AdministratorVerifies voter eligibility via the commissioner, issues blind-signed ballots, manages election phases
CommissionerHolds the list of valid N1 codes, validates voter eligibility, stores N2 hashes
CounterHolds the private decryption key, decrypts and tallies all ballots after voting ends
How N1 and N2 codes work: When a voter registers, the system generates two unique codes. The N1 code is an authentication token — it proves voter eligibility and is consumed when the voter casts their ballot. The N2 code is a verification token — a hash of it is stored by the commissioner and is used after the election to confirm that a specific ballot was counted.

Three voting lifecycle phases

Every election in Evoting moves through three sequential phases:
  1. Registration — voters sign up and the administrator configures the election (candidates, voter count, theme). No votes can be cast yet.
  2. Voting — the administrator opens the vote. Registered voters authenticate with N1, encrypt their choice, and submit their ballot signed with N2. The administrator can monitor live participation status.
  3. Results — the administrator ends the vote. The counter decrypts the tally, results are published, and voters can verify their individual ballot using their N2 code.

Quickstart

Register as a voter or set up an election in a few steps.

Voter guide

Step-by-step instructions for registering, voting, and verifying your ballot.

Admin guide

Configure an election, manage voting phases, and view results.

Security overview

Deep dive into the cryptographic protocols that secure every vote.

Build docs developers (and LLMs) love