Documentation technique
Le protocole, tel qu'il est spécifié.
Pour les vérificateurs, les auditeurs et les curieux : le livre blanc, les spécifications du protocole et les schémas qui font foi.
Pour comprendre les garanties sans entrer dans la cryptographie, la page Sécurité suffit.
La sécurité, sans jargon
Livre blanc
Le protocole, de bout en bout.
Cryptographie, registre public, modèle de menace et arbitrages, dans un seul document. La version anglaise fait référence ; la version française en est la traduction.
Spécifications · Protocole v1
Du bulletin à la vérification.
Le protocole de base se suffit à lui-même : bulletins signés, registre public, recompte. La blockchain vient par-dessus, pour rendre l'intégrité et l'immuabilité du registre contrôlables par n'importe qui.
- Protocole de base Bulletin signé Le bulletin tel que le votant le signe : charge utile, signature en anneau, image de clé, condensé d'anneau.
- Protocole de base Registre public Ce que chaque élection publie, indépendamment de son transport : définition, anneaux, émargement, bulletins.
- Sur-protocole Blockchain Le sur-protocole qui scelle le registre : enveloppe, quatre types de blocs, sérialisation, chaînage, signature, horodatage.
- Sur-protocole Horodatage OpenTimestamps L'ancrage de chaque bloc dans la blockchain Bitcoin : ce qu'il prouve, le cycle pending → completed, les fichiers .ots et leur vérification.
- Côté votant Fichiers du votant Les fichiers que le votant peut télécharger : le reçu de vote et la clé privée de vote.
- Côté votant Preuve de vote L'enveloppe cvproof/1 : prouver, à sa seule initiative, qu'un bulletin publié est le sien, ce qui révèle son vote.
- Résultat Dépouillement & recompte Recalculer le résultat à partir du registre : méthode, version du contrat de dépouillement, export CEF.
- Tiers de confiance Plateforme de confiance Le fonctionnement interne de la plateforme : ses règles de base de données, de transport, de gestion des secrets et d'hébergement.
- Sur-protocole Clés de la plateforme Les certificats OpenPGP v6 qui signent les blocs, leur rotation et leur point d'accès machine.
- Vérification Procédure de vérification Vérifier une élection de bout en bout : à partir du registre seul, ou avec la blockchain.
Schémas JSON
Les fichiers qui font foi.
Les mêmes fichiers que ceux qui valident chaque bloc avant son scellement, servis à l'URL de leur identifiant ($id).
block.configuration.schema.json
Bloc 0, la définition gelée de l'élection : titre, type, sièges, options, plafond de taille d'anneau, taille de la liste à l'ouverture, règles de bulletin, candidats.
Télécharger
↓
block.rings.schema.json
Bloc 1 et chaque anneau d'urgence : la liste complète des clés publiques autorisées à signer, par anneau.
Télécharger
↓
block.votes.schema.json
Les lots de bulletins : anneau, image de clé, signature en anneau et charge utile signée telle quelle.
Télécharger
↓
block.closure.schema.json
Le bloc final : totaux de tête de chaîne et registre d'émargement pseudonyme.
Télécharger
↓
signed-payload.schema.json
L'enveloppe de la chaîne de caractères que signe un votant : version, élection, expression du bulletin, poids, identifiant de votant optionnel.
Télécharger
↓