Vada al contenuto
Condorcet.vote Alpha
Blockchain

Una blockchain per elezione, fatta per essere riconteggiata.

Ogni elezione pubblica la propria blockchain sul proprio registro pubblico: blocchi JSON concatenati per hash, firmati dalla piattaforma e marcati temporalmente nella blockchain Bitcoin. Il protocollo di base basta a verificare un'elezione; la blockchain si aggiunge sopra e permette a chiunque di controllare l'integrità e l'immutabilità del registro, senza dipendere da noi.

Livello 1 · Il principio

Perché pubblicare una blockchain?

In un seggio elettorale, la fiducia viene dalla sala: l'urna è sotto gli occhi di tutti. Online, la sostituiamo con qualcosa di più esigente: pubblicare l'urna stessa, in una forma che nessuno, nemmeno noi, può riscrivere discretamente.

Un registro per elezione

Ogni elezione produce la propria catena, pubblicata sul proprio registro pubblico: la configurazione dello scrutinio, le chiavi autorizzate a votare, le schede, poi la chiusura. Nient'altro vi entra, e il risultato non vi figura: si ricalcola a partire dalle schede pubblicate.

Qualsiasi riscrittura è rilevabile

Ogni blocco contiene l'impronta crittografica del precedente. Modificare una scheda vecchia rompe tutte le impronte successive: chiunque abbia conservato una copia del registro può dimostrarlo.

Firmata, e datata fuori dalle nostre mura

Ogni blocco è firmato dalla piattaforma, poi marcato temporalmente nella blockchain Bitcoin tramite OpenTimestamps: la sua esistenza a una data determinata si dimostra senza doverci fidare.

Ciò che non è

Né criptovaluta, né mining, né consenso decentralizzato: un registro ad aggiunta soltanto, che chiunque può copiare. L'immutabilità viene dalle copie indipendenti e dall'ancoraggio Bitcoin, non da una rete di miner.

Livello 2 · Lo svolgimento

La vita di una catena, dall'apertura alla chiusura.

Quattro tipi di blocchi, un ciclo fisso, un'aggiunta strettamente sequenziale. La catena viene pubblicata fin dall'apertura dello scrutinio e resta consultabile dopo l'elezione.

Blocco 0

Configurazione: la genesi

All'apertura, il primo blocco congela ciò che non cambierà più: titolo, candidati, tipo di scrutinio, regole della scheda, opzioni di anonimato e ponderazione, e la dimensione della lista elettorale all'apertura (gli elettori possono ancora essere aggiunti durante il voto; la lista del blocco di chiusura mostra la dimensione finale, quindi il numero di aggiunte è pubblico). Il suo previous_hash è nullo: è l'origine della catena.

Blocco 1

Anelli: le chiavi autorizzate

Il blocco di anelli pubblica le chiavi pubbliche ammesse a votare, raggruppate in anelli di firma. Una sostituzione d'emergenza durante lo scrutinio aggiunge un nuovo blocco di anelli in coda alla catena. Nulla viene mai inserito né riscritto.

Blocchi successivi

Voti: le schede, a lotti

Le schede firmate vengono pubblicate a lotti durante lo scrutinio (mai una per una, per non marcare temporalmente i singoli voti) e ordinate per key image all'interno di ciascun blocco. Alla chiusura, il residuo viene pubblicato qualunque sia la sua dimensione.

Ultimo blocco

Chiusura: totali e registro di partecipazione

Un unico blocco di chiusura sigilla la catena: i totali (blocchi, schede, partecipazione, pesi) e il registro di partecipazione, pseudonimo per impostazione predefinita. Nulla può essere aggiunto dopo di esso.

In continuo

Ancoraggio in Bitcoin

Non appena pubblicato, ogni blocco viene sottoposto ai calendari OpenTimestamps. La sua prova .ots viene completata una volta confermata la transazione nella blockchain Bitcoin; si verifica poi con gli strumenti standard, senza doverci dare fiducia.

In piena trasparenza

Ciò che questa blockchain non pretende di essere.

La parola «blockchain» a volte promette più di quanto dica. Ecco precisamente dove si fermano le nostre garanzie, e da dove provengono realmente.

Nessun consenso decentralizzato

La piattaforma è l'unica scrivente del registro: né miner, né validatori. La struttura garantisce che nessuna riscrittura possa passare inosservata, non che sia fisicamente impossibile.

La firma dimostra l'autenticità

Siamo noi a detenere la chiave di firma. Essa stabilisce che un blocco proviene realmente dalla piattaforma e non è stato falsificato da un terzo. Non rende il blocco immutabile.

L'immutabilità viene dalle copie

Essa poggia sulle copie indipendenti del registro (la Sua, quella di un contestatore) e sull'ancoraggio Bitcoin, che rendono dimostrabile a posteriori qualsiasi riscrittura.

Un registro che si verifica, non che si crede.

Il resto del protocollo (anonimato, firme ad anello, anti-duplicazione) è spiegato nella pagina Sicurezza; il libro bianco ne offre la versione di riferimento.