Votare su Blockchain: la soluzione

in #blockchain6 years ago

blockchain-3438501_640.jpg
Foto di Pete Linforth da Pixabay

Questo è il terzo e ultimo post della serie "Votare su Blockchain".
Con i primi due:

Votare su Blockchain: utopia o realtà?
Votare su Blockchain: e-vote / i-vote

si sono evidenziate le caratteristiche che deve avere un sistema di voto per essere universalmente accettato e le difficoltà connesse nel realizzare un sistema di voto elettronico.

La ricerca

Mi sono interessato a questo argomento diversi mesi fa e tutti i papers, interviste, opinioni, analisi che leggevo non davano speranza alla tecnologia blockchain: in qualsiasi modo si affrontasse il problema mancava sempre un tassello per completare il puzzle.
Non riuscendo ad accettare questo fatto mi sono messo a studiare in dettaglio una parte della blockchain di Bitcoin: le transazioni. Comprendendo a fondo i meccanismi, sarei forse riuscito a impostare le basi per un sistema di voto che utilizzasse la blockchain.

Il risultato

Solo recentemente ho concluso questo lavoro da autodidatta producendo questo white paper:

Sistema di voto on-line con la blockchain di Bitcoin

L'appello

social-media-3846597_640.png
Foto di Gordon Johnson da Pixabay

Ero in dubbio se mettere il punto interrogativo o meno al titolo del post ma per scaramanzia o fiducia nella tecnologia in questione o deciso di ometterlo.
Dentro di me però rimane perché è stato un lavoro in solitaria e su temi di cui non posso definirmi esperto. Per questo ho bisogno di un confronto, di punti di vista diversi dal mio, di critiche costruttive per rendere questa idea una realtà.
Quando ho conosciuto Steem e la possibilità di condividere i propri interessi con una platea di persone che utilizza una tecnologia blockchain consapevolmente o meno, ho realizzato che questo potesse essere un buon terreno per sviluppare l'idea.
Oltretutto ho avuto la fortuna di imbattermi nella comunità italiana di @SteemPostItalia che mi ha fin da subito messo a mio agio in questo ambiente sconosciuto.
Il sistema di voto descritto nel white paper è in alcuni punti abbastanza tecnico ma cercherò più avanti in questo post di illustrarlo più chiaramente.
Tuttavia sono sicuro che ognuno di voi, anche chi non è esperto del settore, può fare la sua parte, se lo vuole, in questo progetto. Non si guadagnano Steem, Manneqoin, Pal o altro purtroppo. Si può avere la consapevolezza di aver contribuito ad un progetto che potrebbe dare inizio ad un concetto di democrazia radicalmente differente dall'attuale: riuscendo ad applicare la blockchain per votare in una democrazia attualmente rappresentativa, la facilità, i tempi e costi ridotti per ogni elezione o referendum potrebbero agevolare il passaggio ad una democrazia più diretta e partecipata.
Io stesso non ci guadagno nulla, ma vedo con preoccupazione le mosse che vuole intraprendere l'attuale governo su questo tema, dove è palese che non sa dove stia di casa la blockchain ma volendo a tutti i costi sventolare alta la bandiera del voto on line sta pensando di adottare il sistema estone con tutti i problemi annessi e connessi.
Se vi riconoscete in uno dei profili seguenti e volete dimostrare la vostra partecipazione vi chiederei di commentare con l'hashtag così da individuare più agevolmente ogni contributo. Poi se volete scrivere un post a riguardo inserite l'hashtag tra i tag.
#crypto-vote : esperto in crittografia per valutare la correttezza e sicurezza nel sistema proposto;
#opensource-vote : sviluppatore in grado di contribuire alla realizzazione della Dapp open source per interfacciarsi con la blockchain di Bitcoin;
#cybersecurity-vote : esperto in sicurezza informatica per la gestione sicura delle chiavi e delle trasmissioni di dati
#translation-vote : chiunque abbia dimestichezza con un' altra lingua, non solo inglese, per tradurre il whitepaper aggiungendo il suo nome come contributo, in quanto il sistema ha validità in qualsiasi nazione in cui vige un sistema elettorale democratico.
#spreadtheword-vote : per coloro che non si riconoscono nei ruoli precedenti ma vogliono divulgare l'idea a amici, social, stampa, ecc.

Concludo questo appello ringraziando tutti i steemians, comunque vada!

Proseguiamo ora con la descrizione di questo sistema di voto.

Il sistema di voto

concept-2844812_640.png
Foto di Gordon Johnson da Pixabay

Una Dapp funge da interfaccia tra l'elettore e la blockchain di Bitcoin.
L'elettore effettua il login nel sistema con le sue credenziali SPID e procede con la creazione di una private key personale spostando casualmente il mouse, o il dito su un touchscreen, per un sufficiente numero di volte allo scopo di ottenere una sequenza casuale di caratteri alfanumerici.
Procede poi con la votazione seguendo le indicazioni dell'interfaccia. Una volta confermata la scelta, gli viene inviata via mail la private key personale insieme a un indirizzo wallet pubblico pre-generato e scelto casualmente tra quelli disponibili dal sistema.
La private key personale non deve essere diffusa, ma se qualcuno ne venisse a conoscenza non ci sarebbero conseguenze come vedremo più avanti.
Il voto, o la lista di preferenze espressa, viene opportunamente criptata tramite una private key combinata di cui solo una parte è la private key personale. L'altra parte è una private key di sezione tenuta segreta dal sistema informatico e legata alla sezione elettorale associata all'elettore. Dalla private key combinata si ottiene un indirizzo wallet pubblico combinato.
I due indirizzi wallet pubblici pre-generato e combinato sono visibili a tutti nel sito online ma non come coppia, bensì insieme ad altri indirizzi wallet analoghi prodotti e associati ad altri elettori.
Quando si è formato un sufficiente numero di voti, la Dapp avvia una transazione nella blockchain con multipli ingressi (indirizzi wallet pre-generati) e multiple uscite (indirizzi wallet combinati); la transazione sarà di tipo coinjoin con l'impossibilità di attribuire ad un ingresso una particolare uscita, e quindi di fatto dissociare l'elettore dal proprio voto.
La presenza nella blockchain di una transazione tra i cui ingressi ci sia il suo indirizzo wallet pre-generato assicura all'elettore la presa in carico del proprio voto dal sistema.
Queste transazioni pubbliche nella blockchain non rivelano i voti effettuati, ma solo che sono state effettuate delle votazioni.
L'elettore nel corso delle elezioni può procedere ad effettuare una nuova votazione, che sostituisce la precedente. Questo per evitare episodi di coercizione in quanto il voto non è presidiato. In questo caso non gli sarà permesso di creare una nuova chive privata, ma dovrà inserire quella ricevuta via mail precedentemente. Il sistema memorizza la nuova preferenza espressa codificando il voto con le stesse chiavi usate precedentemente, senza però effettuare alcuna nuova transazione nella blockchain.
A chiusura delle votazioni si procede con lo spoglio. Il sistema non è più accessibile all'utenza e procede analizzando la blockchain in cerca degli indirizzi wallet combinati validati. Ad avvenuta conferma della validità della transazione decripta la preferenza a suo tempo criptata con la chiave privata associata. Ciò avviene per tutte le transazioni e tutti i voti vengono raggruppati in modo tale da preparare delle nuove transazioni da inviare nella blockchain con ingressi i wallet pubblici combinati e indirizzati ad un wallet prestabilito e all'interno della transazione sarà presente con l'opzione prevista da Bitcoin OP_RETURN la preferenza che accomuna tutti quei wallet. Contando gli ingressi per quella preferenza si hanno i voti effettivi.
In tutto questo, nonostante la natura pubblica della blockchain, ciò che si vede sono delle transazioni che rappresentano i votanti e a seguire delle transazioni che mostrano i wallet che hanno espresso determinate preferenze. Tuttavia dai quei wallet non si può capire chi siano gli elettori, perchè sono derivate da una chiave privata combinata, realizzata da due "metà" chiavi private: una è in possesso dell'elettore, l'altra è nel sistema informatico.
L'elettore stesso, se volesse verificare autonomamente che il voto che ha espresso sia stato effettivamente contato, non è in grado di farlo, perché dalla sola chiave privata parziale a disposizione non riuscirebbe a ricavare il wallet pubblico combinato.
In questo modo si evita la possibilità di esercitare il voto di scambio, in quanto non può dimostrare quale sia stata la sua preferenza.
Tuttavia recandosi presso un ufficio competente, può combinare la sua chiave con l'altra metà e verificare che il voto associato alla sua chiave sia effettivamente quello espresso.
C'è da precisare che tutti i wallet coinvolti nelle transazioni sono di un unico proprietario, in questo caso lo Stato e anche se può sembrare anomalo che il mittente e il destinatario coincidano, questo metodo, unito agli accorgimenti riferiti alle chiavi parziali, assicura il rispetto totale dei principi e standard previsti per un sistema di voto online.
I costi sostenuti sono dovuti alle commissioni che sono una spesa di gran lunga inferiore a quella sostenuta per le tradizionali elezioni del 2013, che si riflette in un risparmio per la collettività.

Sort:  
Questo post è stato selezionato, votato e condiviso dal team curatori di discovery-it in collaborazione con la community di C-Squared Curation Collective. Puoi utilizzare il tag #discovery-it per rendere i tuoi post di facile reperibilità agli occhi dei curatori. Ti invitiamo inoltre a votare @c-squared come witness per supportare questo progetto.

This post was selected, voted and shared by the discovery-it curation team in collaboration with the C-Squared Curation Collective. You can use the #Discovery-it tag to make your posts easy to find in the eyes of the curator. We also encourage you to vote @c-squared as a witness to support this project.

Grazie per il supporto!

Congratulations @massrado! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You made more than 50 comments. Your next target is to reach 100 comments.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Io credo che tu abbia posto una enfasi esagerata sulla questione della segretezza del voto.
Sistemi di votazione avanzati prescindono da questo constraint, anzi, fanno della pubblicità del voto il punto di forza.
In passato ho partecipato al testing e all'utilizzo di vari sistemi e credo che il voto palese sia essenziale per definire una vera democrazia, infatti, contrariamente a quanto si possa supporre, il voto è manipolabile e vendibile proprio in ragione della sua segretezza parziale.

Quello che intendo è che i voti vengono venduti e comprati perché l'informazione di chi ha votato per chi è parzialmente segreta, cioè sconosciuta a tutti tranne che a chi ha votato e a chi ha comprato il voto.
Una volta che il voto diventa palese, oltre alla assunzione diretta di responsabilità che ne deriva sul singolo, c'è anche una oggettiva difficoltà a venderlo e comprarlo.
Nel campo della democrazia diretta non c'è molto spazio per il voto segreto, anzi, al contrario le proposte e le votazioni devono necessariamente essere palesi.
Leggiti magari qualcosa sul metodo del consenso, del consenso meno uno, del consenso approssimato.
Leggiti anche come funziona LiquidFeedback

La segretezza del voto è un requisito fondamentale per l'art. 48 della Costituzione, quindi se si vuole realizzare un sistema di voto on-line accettato per elezioni pubbliche bisogna mantenere segreto il voto. Qui il voto non è parzialmente segreto come dici tu, la chiave segreta è parziale, che è ben diverso. Senza una chiave segreta completa nemmeno chi ha votato può dare prova del suo voto a chi vuole comprare il voto, il quale desisterà perchè non può ricevere nessuna prova oggettiva.

Con parzialmente segreto mi riferivo al sistema attuale, non al tuo.
La costituzione è emendabile, il voto segreto è assolutamente necessario quando la democrazia è per delega.
Passando ad una democrazia diretta non solo non è necessario il voto segreto, ma non è nemmeno auspicabile.

Ok. La democrazia diretta è il passo successivo. Per l'attuale sistema democratico la segretezza del voto è un MUST.

Congratulations @massrado!
Your post was mentioned in the Steem Hit Parade for newcomers in the following category:

  • Upvotes - Ranked 9 with 337 upvotes

I also upvoted your post to increase its reward
If you like my work to promote newcomers and give them more visibility on the Steem blockchain, consider to vote for my witness!