Une blockchain par élection, faite pour être recomptée.
Chaque élection publie sa blockchain sur son registre public : des blocs JSON liés par hachage, signés par la plateforme et horodatés dans la blockchain Bitcoin. Le protocole de base suffit à vérifier une élection ; la blockchain vient par-dessus et rend l'intégrité et l'immuabilité du registre contrôlables par n'importe qui, sans dépendre de nous.
Pourquoi publier une blockchain ?
Dans un bureau de vote, la confiance vient de la salle : l'urne est sous les yeux de tous. En ligne, nous la remplaçons par quelque chose de plus exigeant : publier l'urne elle-même, sous une forme que personne, pas même nous, ne peut réécrire discrètement.
Un registre par élection
Chaque élection produit sa propre chaîne, publiée sur son registre public : la configuration du scrutin, les clés autorisées à voter, les bulletins, puis la clôture. Rien d'autre n'y entre, pas même le résultat : il se recalcule à partir des bulletins publiés.
Toute réécriture est détectable
Chaque bloc contient l'empreinte cryptographique du précédent. Modifier un bulletin ancien casse toutes les empreintes qui suivent : quiconque a conservé une copie du registre peut le démontrer.
Signée, et datée hors de nos murs
Chaque bloc est signé par la plateforme, puis horodaté dans la blockchain Bitcoin via OpenTimestamps : son existence à une date donnée se prouve sans nous faire confiance.
Ce que ce n'est pas
Ni cryptomonnaie, ni minage, ni consensus décentralisé : un registre à ajout seul, que chacun peut copier. L'immuabilité vient des copies indépendantes et de l'ancrage Bitcoin, et non d'un réseau de mineurs.
La vie d'une chaîne, de l'ouverture à la clôture.
Quatre types de blocs, un cycle fixe, un ajout strictement séquentiel. La chaîne est publiée dès l'ouverture du scrutin et reste consultable après l'élection.
Configuration : la genèse
À l'ouverture, le premier bloc fige ce qui ne changera plus : titre, candidats, type de scrutin, règles de bulletin, options d'anonymat et de pondération, et la taille de la liste électorale à l'ouverture (des électeurs peuvent encore être ajoutés pendant le vote ; la liste du bloc de clôture donne la taille finale, le nombre d'ajouts est donc public). Son previous_hash est nul : c'est l'origine de la chaîne.
Anneaux : les clés autorisées
Le bloc d'anneaux publie les clés publiques admises à voter, groupées en anneaux de signature. Un remplacement d'urgence en cours de scrutin ajoute un nouveau bloc d'anneaux au bout de la chaîne. Rien n'est jamais inséré ni réécrit.
Votes : les bulletins, par lots
Les bulletins signés sont publiés par lots pendant le scrutin (jamais un par un, pour ne pas horodater les votes individuels) et triés par empreinte de clé au sein de chaque bloc. À la fermeture, le reliquat est publié quelle que soit sa taille.
Clôture : totaux et émargement
Un unique bloc de clôture scelle la chaîne : les totaux (blocs, bulletins, participation, poids) et le registre d'émargement, pseudonyme par défaut. Rien ne peut être ajouté après lui.
Ancrage dans Bitcoin
Dès sa publication, chaque bloc est soumis aux calendriers OpenTimestamps. Sa preuve .ots est complétée une fois la transaction confirmée dans la blockchain Bitcoin. Elle se vérifie ensuite avec les outils standard, sans nous faire confiance.
Vérifiez, sans demander la permission.
Tout est téléchargeable en clair, sans compte ni API. Le format exact de chaque bloc, les clés qui les signent et la procédure de vérification, contrôle par contrôle, sont publiés dans la documentation technique.
- Blockchain Le sur-protocole qui scelle le registre : enveloppe, quatre types de blocs, sérialisation, chaînage, signature, horodatage.
- Procédure de vérification Vérifier une élection de bout en bout : à partir du registre seul, ou avec la blockchain.
- Clés de la plateforme Les certificats OpenPGP v6 qui signent les blocs, leur rotation et leur point d'accès machine.
Ce que cette blockchain ne prétend pas être.
Le mot « blockchain » promet parfois plus qu'il ne dit. Voici précisément où s'arrêtent nos garanties, et d'où elles viennent vraiment.
Pas de consensus décentralisé
La plateforme est l'unique écrivain du registre : ni mineurs, ni validateurs. La structure garantit qu'aucune réécriture ne peut passer inaperçue, non qu'elle soit physiquement impossible.
La signature prouve l'authenticité
C'est nous qui détenons la clé de signature. Elle établit qu'un bloc émane bien de la plateforme et n'a pas été forgé par un tiers. Elle ne rend pas pour autant le bloc immuable.
L'immuabilité vient des copies
Elle repose sur les copies indépendantes du registre (la vôtre, celle d'un contestataire) et sur l'ancrage Bitcoin, qui rendent toute réécriture démontrable a posteriori.
Un registre qui se vérifie, pas qui se croit.
Le reste du protocole (anonymat, signatures en anneau, anti-doublon) est expliqué sur la page Sécurité ; le livre blanc en donne la version de référence.