INTEROPERABILITY BLOCKCHAIN CENTER

#INNOVAZIONE #INTEROPERABILITA

SMARTUNION modello e-voting

  • Home
  • SMARTUNION modello e-voting

Un sistema decentralizzato di partecipazione con certificazione delle tessere e voto segreto 

Questa è un modello di una piattaforma che consenta ad una organizzazione di: 

– certificare l’adesione di ciascun membro (tessera) 

– indire sessioni di voto segreto, in presenza o da remoto, tra i membri 

La certificazione dell’appartenenza di un membro all’associazione deve consentire ad es. l’accredito ad un evento o consesso tramite sistemi digitali. Il sistema di voto serve per la governance dell’organizzazione o per altri scopi e il voto è segreto. 

Tale piattaforma deve avere le caratteristiche di decentralizzazione, resistenza alla censura e fiducia che la blockchain promette. 

Negli ultimi anni sono nate diverse decentralized autonomous organization (DAO), organizzazioni la cui governance è decentralizzata e gestita tramite smart contract sulla rete Ethereum. I membri partecipano alla vita dell’organizzazione concorrendo alle decisioni secondo il potere di voto detenuto. I diritti di voto sono associati alle identità dei membri o stabiliti in base al possesso di token. Il progetto di INTEROPERABILITY è simile a tali progetti in quanto si propone una governance decentralizzata ma se ne discosta per due motivi: il primo è legato all’esperienza utente che si vuole alla portata di tutti e il secondo è legato al voto segreto. Le DAO in genere non hanno nessuna di queste due caratteristiche. 

Anche i sistemi di voto digitale sono stati oggetto di diverse proposte e test negli ultimi anni. Le ultime evoluzioni hanno visto l’impiego di strumenti crittografici di nuova generazione che hanno permesso di risolvere in maniera sicura problemi finora rimasti ostici. Questi utilizzano una o entrambe di due tecnologie crittografiche: 

– homomorphic encryption 

– zero knowledge proof 

HOMOMORPHIC ENCRYPTION 

La crittografia omomorfica è una tecnica di crittografia speciale che ha la proprietà di rispettare alcune operazioni matematiche. Ve ne sono diverse. Ad es. scegliendone una che rispetta l’addizione si ottiene una proprietà che è comoda nel caso del voto, quando si debba calcolare la somma di tutti i voti espressi. Questa proprietà dice che cifrando ciascun voto e sommando si ottiene il risultato del voto in forma cifrata. 

Nel nostro caso, il servizio di censimento che organizza il voto stabilisce un sistema di cifratura, genera le chiavi di cifratura e diffonde la chiave pubblica. Ciascun votante invia il proprio voto dopo averlo cifrato. Chi  raccoglie i voti non ha necessità di decifrare ciascun voto, gli è sufficiente fare la somma dei voti cifrati. Il risultato ottenuto è l’esito del voto, espresso in forma cifrata. A quel punto va effettuata la decifratura. 

Supponiamo siano 

v1, v2 e v3 

i voti che i votanti 1, 2 e 3 esprimono. Ciascuno di essi effettua la cifratura del proprio voto usando la chiave pubblica e lo invia. Il sevizio di censimento riceve: 

E(v1), E(v2) e E(v3) 

Per la particolarità del sistema adottato si ha che 

E(v1) + E(v2) + E(v3) = E(v1 + v2 + v3) 

Questo mette al riparo il voto da occhi indiscreti ma non lo mette al riparo da gestori disonesti dell’ufficio responsabile del voto.  Per mitigare questa debolezza, in questi sistemi la chiave di decifratura non è in mano ad una sola persona ma è spezzettata e posta in mano a più persone. Se almeno una di esse è onesta si rifiuterà di fornire il proprio pezzo per decifrare singoli voti e invece coopererà per decifrare la somma dei voti che corrisponde all’esito della votazione. 

Le zero knowledge proof consentono invece di rimuovere del tutto questa debolezza. 

ZERO KNOWLEDGE PROOF 

Inventate dall’italiano Silvio Micali insieme a Shafi Goldwasser e Charles Rekkofom, sono arrivate alla ribalta solo di recente e stanno rivoluzionando le applicazioni della crittografia.  Sono dei sistemi crittografici in cui un attore è in grado di dimostrare ad un altro di possedere un segreto senza rivelarlo o meglio di avere effettuato correttamente una computazione che coinvolge il segreto senza rivelarlo.

Nel nostro caso l’idea è che il votante, manda il proprio voto, in maniera anonima ma aggiungendo ad esso la prova che egli ha diritto al voto. L’ufficio che riceve il voto non conosce l’identità del votante, e questo  preserva la segretezza del voto, ma è in grado di determinare se il voto è valido ossia proviene da una persona che aveva diritto di votare.  L’elenco degli aventi diritto può essere un elenco di identità ethereum su blockchain o anche un merkle tree di address ethereum depositato su IPFS con root depositata in blockchain. Il votante deve provare di possedere la chiave privata associata all’address ethereum a lui associato e deve provare che tale address è presente nell’elenco degli aventi diritto al voto. 

Questo è un sistema di voto decentralizzato: 

– ciascun votante può verificare che il suo voto è stato preso in considerazione per determinare l’esito del voto 

  • ogni utente che voglia può verificare in autonomia l’esito del voto 

Proposta 

I sistemi di voto segreti decentralizzati sono nella loro fase di infanzia. E quelli di self sovereign identity sono variegati. Occorre mettere insieme privacy e sicurezza, identità e anonimato. Partendo dallo stato dell’arte della teoria crittografica e delle tecnologie esistenti delineiamo l’architettura di una piattaforma che consenta: 

– gestione dell’identità dei partecipanti all’organizzazione, dei loro ruoli e delle capacità di azione 

– verifica dell’identità tramite provider KYC 

– verifica dell’identità durante manifestazioni e convegni 

– creazione di sessioni di voto segreto 

Il sistema finale dovrà avere le qualità di decentralizzazione, sicurezza, affidabilità e fiducia ed economicità. Per ottenere queste qualità si impiegheranno tecnologie decentralizzate, e blockchain. 

Come il committente vedrà, data la delicatezza del tema e la giovinezza delle tecnologie molti aspetti rimarranno vaghi e la loro implementazione dovrà essere oggetto di una attività di ricerca che si va proponendo. 

L’utente dovrà disporre di una dApp (decentralized application) verosimilmente funzionante su web che gli consenta di esprimere la propria identità digitale per essere ammesso a convegni e gli consenta di partecipare alle votazioni. Tale dApp realizzata opportunamente potrà essere convertita in app mobile facilmente (ad es. usando React e React-mobile). La tecnologia di zero proof per il voto va scelta correttamente per rendere la computazione sul client utente adeguata ai dispositivi attuali. 

Va determinata una tecnologia di self sovereign identity adeguata a tutta l’architettura, e che semplifichi l’esperienza utente. Tale tecnologia verrà impiegata per la “tessera digitale” che certifica l’utente come membro dell’organizzazione. 

Un provider esterno da collegare fornirà i servizi di KYC per la prima registrazione degli utenti. 

L’integrità dei dati sarà garantita da una blockchain pubblica, scegliamo di utilizzare Ethereum, perché è quella con l’ecosistema più ricco. 

La disponibilità dei dati verrà invece garantita da una tecnologia decentralizzata di storage da determinare tra IPFS o Swarm o simili. Servirà come repository per la dApp e come deposito di alcuni metadati. 

Per ogni voto il reparto di censimento dovrà determinare una lista di aventi diritto. Tale lista sarà depositata su storage decentralizzato ma l’integrità di tali informazioni sarà sempre garantita da Ethereum. Tipicamente su storage si mette un merkle tree di address aventi diritto al voto e su Ethereum si registra il root hash di tale tree. 

Per la parte di gestione delle sessioni di voto si pensa di impiegare una side-chain per rendere il processo economico. Si valuterà se utilizzare una side-chain esistente o mettere in campo una side chain specializzata con Proof-of-Authority basata su Tendermint. Questa chain avrà il compito di raccogliere i voti, validarli, determinare l’esito del voto. Anche in questo caso l’integrità del processo sarà garantita da Ethereum. 

Il reparto di censimento/voto e gli uffici di governance saranno dotati di una applicazione di interfacciamento e controllo della piattaforma per esplicare i compiti previsti. 

Per le comunicazioni fra le componenti si adotterà un distributed message protocol come quello messo a disposizione da Swarm o da Whisper. 

Sarà prevista anche una applicazione decentralizzata per la validazione degli utenti all’ingresso di fiere e convegni che si accoppi con la dApp utente che fornisce la prova di membership. 

Altre decisioni da prendere nella fase di ricerca riguardano: 

– tecnologie di self sovereign identity adeguate 

– metodi di prova dell’identità all’ingresso di convegni 

– tecnologie zero proof leggere per il client utente (zk-Snarks, Linkable Ring Signature, …) 

– funzionalità della piattaforma di governance 

Offerta 

L’attività che si propone al committente è una attività mista di ricerca & sviluppo e di progettazione e realizzazione di un MVP. Prevede: 

1) fase di ricerca & sviluppo architetturale e tecnologica il cui output è un progetto di architettura dettagliato dove i punti sospesi di cui sopra sono stati determinati 

2) fase di raccolta delle specifiche per alcune parti come dApp utente, app di governance e app per convegni; individuazione con il cliente dei contorni dell’MVP 

3) progettazione e sviluppo delle varie componenti software a livello di MVP 

4) deploy, test e avvio del sistema MVP 

Il team di sviluppo che seguirà il progetto è composto da: 

  • un crittografo 
  • due ingegneri informatici 
  • due sviluppatori 
  • due esperti di tecnologia blockchain 
  • un esperto di problemi legali 

Modello creato dalla startup INTEROPERABILITY in partnership con la società di consulenza DEEPIT