OlaoluwaSoftware Engineer
Projects

ZK Voting

Author · 2025

A full-stack anonymous voting platform for student elections, built on the Semaphore ZKP protocol. Voters prove eligibility without revealing identity.

The Problem

Student union government elections at OOU ran on Google Forms, matriculation number + candidate selection. No anonymity, no tamper resistance, trivially fraudable.

What I Built

I started from Fazekas' zkDemocracy and extended it significantly. Voters authenticate anonymously through MetaMask using ZK identity commitments, and Merkle trees handle group membership so eligibility is tied to your department or class without exposing who you are.

A nullifier system stops double-voting while keeping anonymity intact. On top of that I built a React/TypeScript frontend, an Express.js backend backed by MySQL storing commitments, proofs and nullifiers, and checkpoint hashing across the stored proof chain so any tampering is detectable.

Result

A student voter can cast a ballot, and even if the entire database is leaked, their identity cannot be linked to their vote. Wrote an academic paper on it for my CS final year project at OOU.