Secure Blockchain E-Voting Platform

University research project delivering verifiable elections with Solidity contracts, React dashboards, and GDPR-aligned data trails.

Role: Research engineerTimeframe: Final-year capstoneStack: React • Node.js • Express • MySQL • Solidity • Hardhat
SolidityReactNode.jsMySQLEthereumSecurity TestingGDPR
Secure Blockchain E-Voting Platform
At a glance
  • Problem
    University research project delivering verifiable elections with Solidity contracts, React dashboards, and GDPR-aligned data trails.
  • Role
    Research engineer
  • Timeframe
    Final-year capstone
  • Stack
    React • Node.js • Express • MySQL
  • Focus
    Solidity • React • Node.js
  • Impact
    Double voting: Detected: 0
Double voting
Detected: 0
Audit findings
0 critical
Voter throughput
500/min sim

Problem

University research project delivering verifiable elections with Solidity contracts, React dashboards, and GDPR-aligned data trails.

Context

S — Digital voting pilots often trade transparency for convenience. My dissertation explored whether blockchain could deliver both without overwhelming administrators. T — Prototype an end-to-end election: voter registration, ballot casting, tally verification, and observing, all hardened against tampering and privacy leaks.

Blockchain e-voting prototype with Solidity and React

End-to-end flow covers registration, casting, tallying, and audit.

A PoA network keeps testing costs low while preserving integrity.

GDPR-aware auditability with security testing

Privacy is preserved with hashed IDs and data minimization.

Smart contracts are tested with MythX and manual audits.

Architecture

  1. Implemented a three-tier stack: React voting UI, Node.js/Express middleware for orchestration, and Solidity contracts on an Ethereum PoA network.
  2. Enforced voter registration via hashed IDs + off-chain verification, issuing short-lived JWTs to interact with the contract.
  3. Wrote solidity modules for ballot issuance, casting, and tallying with explicit role-based modifiers and event logs for every action.
  4. Applied MoSCoW prioritization in DSDM sprints, balancing cryptographic purity with UX for first-time voters.
  5. Ran penetration testing (MythX, Ganache fork fuzzing, manual audit) targeting overflow, reentrancy, and timestamp manipulation vectors.
  6. Mapped all data flows to GDPR principles, deleting personal fields post-election while keeping anonymized tallies immutable on-chain.

Security / Threat Model

  • Replay and reentrancy attacks on Solidity contracts.
  • Insecure voter onboarding exposing identities.
  • Admins tampering with tallies off-chain.
  • GDPR violations from storing personal data permanently.

Tradeoffs & Lessons

Trustworthy civic tech depends on pairing cryptography with pragmatic governance. Guarding privacy while delivering transparency forced me to think like a regulator and an adversary simultaneously.

Results

Simulation with 5k synthetic voters completed without double votes or integrity breaches. External reviewers found zero critical smart-contract flaws, and the on-chain audit trail let observers reproduce tallies independently. The project became a teaching asset at the University of Greenwich for applied blockchain security.

Stack

ReactNode.jsExpressMySQLSolidityHardhat

FAQ

How is integrity ensured?

On-chain logs, role-based controls, and verifiable tallies prevent tampering.

How is voter privacy protected?

Hashed identifiers and minimal PII reduce exposure and comply with GDPR.

What testing was performed?

Static analysis, fuzzing, and manual smart-contract reviews.

    Secure Blockchain E-Voting Platform — Case Study