Contexte
S — Les pilotes de vote digital sacrifient souvent la transparence pour la commodité. Ma thèse explorait si la blockchain pouvait offrir les deux sans submerger les administrateurs. T — Prototyper une élection de bout en bout : inscription, bulletin, dépouillement et observation, le tout durci contre la manipulation et les fuites de données.
Menaces
- Attaques de relecture ou de ré-entrance sur les contrats Solidity.
- Onboarding voter non sécurisé exposant les identités.
- Admins capables de truquer les résultats hors chaîne.
- Violation RGPD si les données perso restaient stockées définitivement.
Approche
- Implémenté une stack trois tiers : UI React, middleware Node.js/Express et contrats Solidity sur réseau Ethereum PoA.
- Enregistré les votants via IDs hashés + vérification off-chain, puis émission de JWT courts pour interagir avec le contrat.
- Écrit des modules Solidity pour émission, vote et dépouillement avec modifiers RBAC et logs d’événements exhaustifs.
- Appliqué MoSCoW en sprints DSDM pour équilibrer rigueur crypto et UX débutant.
- Mené pentests (MythX, fuzz Ganache fork, audit manuel) ciblant overflow, reentrancy et manipulations temporelles.
- Cartographié tous les flux de données contre les principes RGPD, supprimant les champs perso post-scrutin mais conservant les totaux anonymisés on-chain.
Résultats
La simulation avec 5k électeurs synthétiques s’est déroulée sans double vote ni brèche d’intégrité. Les reviewers externes n’ont trouvé aucune faille critique et l’audit trail on-chain a permis de reproduire les résultats. Le projet sert de support pédagogique à l’Université de Greenwich.
Retours d’expérience
La confiance civique dépend de l’alliance entre cryptographie et gouvernance pragmatique. Protéger la vie privée tout en livrant de la transparence oblige à penser à la fois comme régulateur et adversaire.
