- ProblemUniversity research project delivering verifiable elections with Solidity contracts, React dashboards, and GDPR-aligned data trails.
- RoleResearch engineer
- TimeframeFinal-year capstone
- StackReact • Node.js • Express • MySQL
- FocusSolidity • React • Node.js
- ImpactDouble voting: Detected: 0
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
- Implemented a three-tier stack: React voting UI, Node.js/Express middleware for orchestration, and Solidity contracts on an Ethereum PoA network.
- Enforced voter registration via hashed IDs + off-chain verification, issuing short-lived JWTs to interact with the contract.
- Wrote solidity modules for ballot issuance, casting, and tallying with explicit role-based modifiers and event logs for every action.
- Applied MoSCoW prioritization in DSDM sprints, balancing cryptographic purity with UX for first-time voters.
- Ran penetration testing (MythX, Ganache fork fuzzing, manual audit) targeting overflow, reentrancy, and timestamp manipulation vectors.
- 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
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.
