Ne parliamo con il professor dell’Università di Cagliari, Michele Marchesi.
Il 2024 è stato già battezzato come il grande anno elettorale, dagli Stati Uniti all’India più di 4 miliardi di persone sono chiamate alle urne. Tra il 6 e il 9 giugno 2024 saranno 400 milioni gli europei che potranno votare tra cui studenti italiani fuori sede che, per la prima volta, potranno utilizzare il sistema di voto elettronico a distanza.
Per questa ragione sono state de-materializzazione le liste elettorali e ne è stata completata la migrazione nell’Anagrafe nazionale della popolazione residente. A dicembre 2023 è stata quindi realizzata una simulazione di voto digitale a cui hanno partecipato gli italiani residenti in alcune circoscrizioni estere, come dichiara il Ministero dell’Interno.
Queste elezioni a distanza sfruttano ancora una tecnologia web2, centralizzata, ci siamo chiesti quali siano le opportunità e le eventuali criticità del voto elettronico web3, in blockchain e lo abbiamo chiesto a Michele Marchesi professore di Ingegneria del Software dell’Università di Cagliari che, nel 2018, ha realizzato in Sardegna il progetto Cripto-voting, un innovativo sistema di voto elettronico integrato, basato su tecnologia Blockchain.
Il programma “Cripto-voting” è stato realizzato nel 2018 con i finanziamenti di Sardegna Ricerche nell’ambito del Por-Fesr Sardegna 2014-2020, da NetService spa, società che progetta e sviluppa sistemi informativi integrati per pubbliche amministrazioni centrali e locali, in collaborazione con l’Università degli studi di Cagliari.
Professore buongiorno,
Ci descrive il progetto Cripto-voting il cui test è stato realizzato in Sardegna nel 2018?
MARCHESI: Si, questo è un progetto di ricerca applicata per imprese anche in collaborazione con Enti pubblici e di ricerca, finanziato da Sardegna Ricerche, quindi dalla Regione Autonoma della Sardegna. Il progetto aveva come scopo quello di realizzare sistemi di voto utilizzando la tecnologia blockchain ed è stato svolto da Net Service, ditta basata a Bologna ma con una sede anche a Cagliari e con l’Università di Cagliari, presso cui insegno. L’Università di Cagliari è stata la prima Università di Italia ad occuparsi di blockchain dal punto di vista informatico, come corso di laurea di informatica, abbiamo un corso di blockchain partito nell’anno accademico 2017-2018 che ho messo in piedi io; anche Net Service ha cominciato molto presto su questi argomenti.
L’obiettivo del progetto era quello di studiare e realizzare prototipi di votazioni elettroniche basate su blockchain; in particolare sono stati realizzati due schemi, piuttosto indipendenti per la verità, perché i problemi sono diversi.
Uno è un sistema per votazioni assembleari, orientato ad organizzazioni in cui il voto non deve essere anonimo; è un voto chiaramente anche remoto in qualche modo certificato ma non anonimo, quindi assemblee di società, elezioni di amministratori, consigli di Dipartimento e via, giusto per dare alcuni esempi. Il secondo filone era per le votazioni anonime, pensando anche alle votazioni politiche su larga scala. Il primo filone ha portato a sistemi di B- voting che sono commercializzati da NetService; ne sono state fatte già varie applicazioni. Tuttavia, il messaggio che è arrivato dal mercato è che in effetti un sistema basato su blockchain funziona benissimo, è sicuro, a prova di qualsiasi tipo di manomissione, ma è ancora troppo avanti; il mercato preferisce soluzioni più economiche non particolarmente protette dal punto di vista del sistema informatico, ma più economiche.
Per quanto riguarda il sistema anonimo, è stata fatta una sperimentazione su una votazione nel concorso “Contamination Lab” per start-up, che viene fatto a Cagliari ogni anno da gruppi di studenti e dottorandi che lavorano su un’idea imprenditoriale. I più votati ricevono bonus da società di venture capital per realizzare il progetto presentato. Quella è stata una prova, durante l’assemblea in cui presentavano il progetto, i presenti potevano collegarsi con il cellulare al sistema e tramite blockchain votare in maniera anonima e sicura. Dal punto di vista della ricerca, abbiamo anche prodotto un sistema, non sperimentato, orientato a votazioni politiche, quindi, anonime su cui è in corso una richiesta di brevetto; è un sistema interessante ma non è stato ancora testato.
Quali sono le criticità per l’applicazione della blockchain al voto?
I sistemi di voto correnti di web2 funzionano ma, come tutti i sistemi centralizzati, hanno bisogno di fidarsi di chi sviluppa il sistema e di chi lo amministra; in realtà, tutti i sistemi su internet sono di questo tipo. Tutti si fidano del proprio conto bancario online, non succedono quasi mai problemi grossi, a parte problemi di rete. In linea di principio, dietro c’è qualcosa che noi non conosciamo, non sappiamo chi lo ha fatto, come è scritto, ma funziona; questi sono i sistemi che vengono proposti adesso per la votazione elettronica. Non c’è una vera garanzia assoluta che il sistema funzioni bene, che non ci siano modi per alterarlo da parte di gente interna al sistema. Gli attacchi esterni sono più difficili, ma internamente la garanzia non c’è. E’ vero che quando si parla di un sistema bancario o di prenotazioni aeree, è interesse della banca e della compagnia aerea che funzioni bene e se c’è qualche problema, pur di non perdere clienti, si interviene per sanarlo.
Le votazioni politiche sono molto critiche per quanto riguarda i sistemi tradizionali. La blockchain permette invece di realizzare sistemi in linea di principio non alterabili e sicuri. Sicuri nel senso che sia le votazioni, che il sistema stesso, ovvero i programmi che girano in una blockchain, sono inalterabili e sicuri, questa è una situazione che in informatica non si era mai verificata. I programmi che girano su blockchain, che si chiamano smart contract, girano lì sopra e una volta installati sono trasparenti e siamo sicuri che non possano essere modificati perché sono univocamente individuati. Quindi abbiamo che non solo il dato una volta scritto è sicuro e non può essere alterato, ma anche il programma una volta scritto non può essere alterato, cosa che non era mai accaduta prima nell’informatica. Quindi hanno una garanzia potenzialmente elevatissima, ma è chiaro che i sistemi blockchain non sono sistemi per gestire grandi masse di dati. Volendo votare su blockchain bisogna partizionare i voti per sezioni e ogni sezione avrà la sua copia del programma specifica per la gestione, non è possibile che la blockchain di oggi ma anche quella di domani possa gestire centinaia di migliaia o milioni di voti; dopo domani non lo so. Però sin d’oggi la blockchain può dare una garanzia praticamente assoluta e questo è il vantaggio. Lo svantaggio è che sono comunque sistemi complessi, costosi e quindi vanno ancora provati.
Un altro potenziale vantaggio/svantaggio è che permettono al votante di verificare che il proprio voto sia stato correttamente conteggiato, che non ci sia stata alterazione; questo se si attiva la funzionalità, ma dà anche la possibilità ad uno che vende il voto o che è ricattato in un certo modo di provare a chi lo ricatta e a chi lo compra che effettivamente ha votato in quel modo, che non è bello da un punto di vista politico. Questa è una funzionalità che si può attivare o meno e che ha i suoi vantaggi o svantaggi, dipende. Il sistema su blockchain può arrivare a un livello di sicurezza molto maggiore rispetto ai sistemi tradizionali, che necessitano della fiducia in chi lo gestisce.
Ci spiega la decentralizzazione del sistema blockchain quali vantaggi può avere per il voto?
Nel caso del voto, si possono usare le blockchain pubbliche (come ethereum e bitcoin), ma soprattutto le blockchain permissioned, utilizzate in applicazioni industriali, che possono scalare e hanno prestazioni superiori e costi inferiori rispetto a quelle pubbliche. Inoltre, queste possono essere ancorate alle blockchain pubbliche e quindi possedere la stessa garanzia di immutabilità. E’ chiaro che la blockchain, perché sia funzionante e abbia senso, deve essere gestita da più organizzazioni indipendenti, in questo senso resta decentralizzata. Non ha molto senso che sia gestita da una unica organizzazione, altrimenti torniamo alla situazione precedente, ma nella nostra idea almeno 7/10 organizzazioni indipendenti e ovviamente reputate: regioni e ministeri, università, associazioni di categoria, ciascuna può gestire un nodo della blockchain e tutte creano la blockchain con il loro nodo e contribuiscono al suo funzionamento. La superficie di attacco diventa più vasta e per poter alterare in qualche modo il sistema, non la blockchain che rimane comunque inalterabile, bisogna attaccare tante organizzazioni indipendenti, e quindi diventa praticamente impossibile. In questo senso è decentralizzata, il sistema di voto non è di per sé decentralizzato se non nel senso che chi vota si connette al nodo più vicino, in questo senso è decentralizzato. Il sistema gira su blockchain e alla fine ci saranno diversi responsabili: uno all’inizio per distribuire i certificati elettorali, una seconda entità separata dalla prima incaricata di ricevere i voti, decodificarli, lì entra in campo la crittografia, raccogliere i voti e dare i risultati tutti aggregati. Ogni singolo voto rimane crittato ed è impossibile sapere chi ha votato cosa, in questo senso è decentralizzato. Bisogna scollegare chi dà i certificati, che conosce i votanti, da chi riceve i voti, token crittografici, e non sa chi ha votato, ma sa che chi lo ha fatto era autorizzato e può farlo una sola volta.
Quali sono i costi in termini economici e ecologici della blockchain?
Il problema dell’energia è dibattuto e in giro ci sono informazioni sbagliate. Le blockchain che consumano energia sono quelle pubbliche simili al Bitcoin; in questi giorni stiamo assistendo ad un’ascesa del prezzo del bitcoin dopo qualche anno di depressione, quello effettivamente consuma molta energia elettrica anche se meno di quello che si dice, perché la gran parte di energia consumata è energia che sarebbe dispersa comunque. Le blockchain per il voting sono blockchain permissioned, quindi sono blockchain gestite da organizzazioni che non hanno gli stessi algoritmi di consenso di bitcoin e quindi consumano praticamente quanto qualsiasi altro sistema informativo: non hanno un consumo particolare superiore.
I nodi per il cripto-voting sono su server di proprietà o cloud di proprietà o sui pc di chiunque?
In una blockchain pubblica chiunque può collegarsi e aprire un nodo se ha abbastanza potenza di calcolo e spazio su disco. Invece, nelle blockchain permissioned private ma con più di un singolo gestore, un nodo blockchain è un programma, può girare sia su macchine dell’organizzazione che essere messo su cloud; non è che chiunque può partecipare, chiunque può chiedere il permesso di partecipare, e se lo accettano a quel punto partecipa, se non ha i requisiti di partecipazione non partecipa. Il nodo può essere posto presso l’organizzazione che lo gestisce o anche in cloud, non è un problema questo.
Ci descrive l’attività del laboratorio FlossLab e il b-voting?
Flosslab è uno spin off dell’Università di Cagliari, fondata anche da me nel 2007; nel 2018 è entrata nel gruppo Net Service. Il b-voting è una proposta commerciale per il voto, ma, in questo momento, non sta avendo una grande risposta dal mercato perché è molto più sofisticata e anche più costosa, e nel campo del voto assembleare di un’organizzazione si cerca più di spender poco che di avere una sicurezza assoluta del voto. Il campo politico è anch’esso un settore difficile, anche qui di soldi ce ne sono pochi. Noi partecipiamo a bandi ma su questo argomento non è uscito molto, la blockchain funziona soprattutto per certificare prodotti e supply chain; sul voting, il messaggio che voglio dare è che sono sistemi sofisticati e il mercato non sta rispondendo in maniera sufficiente.
Il Crypto-voting quale wallet utilizza?
Le blockchain possono sfruttare diverse tecnologie a seconda di chi le mette in piedi, noi usiamo tecnologia Ethereum, sempre permissioned. Nella nostra blockchain, la blockchain pubblica è poi utilizzata per ancorare la nostra in modo da garantirne l’inalterabilità. Abbiamo sperimentato due modelli. Il primo prevede che la blockchain di Net Service Etherna possa gestire una sua criptovaluta, un suo token, non una cripto commerciabile con valore di mercato, ma un token che serve per far funzionare la rete, che si può comprare per fare transazioni. La seconda soluzione, che è quella prevalente, è pagare un abbonamento o pagare a consumo. Sono comunque scelte commerciali. Nelle blockchain permissioned i costi sono molto più bassi che nelle blockchain pubbliche; in queste, inviare le transazioni costa non poco, e soprattutto il costo non è garantito (in passato, è aumentato in poco tempo da pochi centesimi a 50 euro nel caso di ethereum, per poi tornare ai valori iniziali): c’è sempre il problema dell’imprevedibilità. Nelle blockchain permissioned il prezzo è certo, e dipende dai volumi che si intende mettere in campo.
Sicurezza e blockchain?
A livello di applicazioni che girano su pc e smartphone, i problemi sono quelli esistenti, come dicevo. Una volta che un dato viene registrato sulla blockchain, questa registrazione è assolutamente sicura e non può essere alterata. Se la blockchain è permissioned si ottiene l’inalterabilità scrivendo su una blockchain pubblica il codice dell’ultimo blocco validato su tale blockchain permissioned. Questo, poiché la blockchain pubblica per definizione è assolutamente inalterabile, rende inalterabile tutta la blockchain permissioned, quindi da questo punto di vista una blockchain permissioned dà la stessa garanzia di quella pubblica. Il dato, una volta scritto, non può essere alterato e se il gestore del sistema lo alterasse, , essendo la blockchain permissioned ancorata a quella pubblica, a un controllo la truffa sarebbe evidente. La blockchain, oltre a rendere sicuri i dati registrati, rende sicuri i programmi che su di essa girano, con le stesse caratteristiche di inalterabilità e trasparenza. Per le votazioni, ciò può essere un problema perché se il voto viene registrato in chiaro io posso sapere chi ha votato cosa e questo può essere un grave difetto per le elezioni. Si risolve andando a registrare dati crittografati di cui solo il votante stesso conosce le chiavi; chi raccoglie il voto può decodificarlo ma non sa chi lo ha mandato, l’anonimato può quindi essere così garantito.
E’ possibile oscurare una blockchain pubblica?
Una blockchain pubblica permette a chiunque di collegarsi e partecipare al mining della cripto per costruzione, chi c’è dietro le macchine che fanno mining non è una cosa che interessa alla blockchain: non c’è nessuna autorità in grado di controllarlo o impedirlo.
Le app che fanno vedere dove avviene il mining derivano dal fatto che quando un miner riesce a validare un blocco e guadagna il compenso, quello che si può conoscere è l’indirizzo blockchain, ed eventualmente l’indirizzo IP da cui arriva la transazione; da quello si può risalire a chi è il provider dietro quell’indirizzo IP, che però può essere alterato da un hacker. Questi grafici non fanno parte del software che gestisce la blockchain, sono applicazioni create che tracciano le transazioni in base agli indirizzi IP ma hanno un valore scollegato dall’andamento della blockchain.
Ringraziamo il prof. Marchesi per la testimonianza di use case.
Stay Tuned!
di R. Bonani