Skip to content
All projects
2025 Shipped Architecture, smart contracts, dApp

Blockchain Digital Voting System

A nine-contract Ethereum voting system behind upgradeable proxies, with O(1) vote deduplication and Merkle-proof eligibility verification.

  • 9

    Upgradeable contracts

  • 96%

    Less on-chain storage

  • O(1)

    Vote deduplication

  • O(log n)

    Eligibility proofs

An end-to-end digital voting system where correctness has to be provable rather than promised — every eligibility check, every deduplication rule and every upgrade path is enforced on-chain.

Upgradeable without state migration

The system is composed of nine contracts sitting behind EIP-1967 upgradeable proxies, so logic can be replaced in place as the rules of an election evolve — without migrating a single byte of state or invalidating votes already cast.

Deduplication that does not grow with the electorate

Naively, preventing double votes means a mapping entry per voter. Instead, eligibility and voting status are packed into bitwise arrays, giving O(1) deduplication and cutting on-chain storage by 96% against the mapping-based baseline. At election scale, that is the difference between a viable deployment and an unaffordable one.

Proving eligibility off-chain, verifying it on-chain

Voter rolls never touch the chain. A Merkle proof pipeline generates proofs off-chain in O(log n), and the contract verifies membership against a single committed root. The React dApp issues proof-carrying transactions and drives an RBAC-aware interface that shows each participant only the actions their role actually permits.