ZKSNARK SIMULATOR Back to Portal

zkSNARK Simulator

Zero-Knowledge Proofs: Prove validity without revealing secrets

What are Zero-Knowledge Proofs?

Mathematical Magic: Prove Without Revealing

Zero-knowledge proofs (zkSNARKs) allow you to prove a statement is true without revealing any information about why it's true. In voting, this means:

  • Prove you're eligible to vote — without revealing your identity
  • Prove your vote is valid — without revealing how you voted
  • Prove you haven't voted before — without linking votes to voters
  • Prove the count is correct — without decrypting individual votes

The power: Complete transparency and verifiability while preserving perfect privacy. It's cryptographic proof you can trust, without surveillance.

Cast a Vote with zkSNARK

Proof Generation Process

Attack Scenarios

Attempt to Forge a Proof

An attacker tries to create a valid proof without knowing the private inputs (voter ID, secret, or vote choice).

Defense: Requires solving the discrete logarithm problem on elliptic curves — computationally infeasible. Would take longer than the age of the universe with current computers.

Attempt to Extract Vote from Proof

An observer analyzes the proof to determine how someone voted.

Defense: Zero-knowledge property guarantees no information leakage. Even with unlimited computing power, the vote cannot be extracted from the proof.

Attempt to Vote Twice

An attacker tries to cast multiple votes using the same identity.

Defense: Each proof includes a unique "nullifier" derived from voter identity. Duplicate nullifiers are instantly detected and rejected.

Attempt to Replay a Proof

An attacker copies someone else's valid proof and tries to resubmit it.

Defense: Proofs include timestamps and unique nullifiers. Each proof can only be used once, and timestamps prevent old proofs from being replayed.