The blockchain giant-impact: YouVote

La risposta alla domanda: “Chi ha davvero vinto X-Factor?”

Gispp
vivido-it
3 min readMar 5, 2020

--

Nonostante per alcune blockchain non sia ancora arrivata la prima fase, per altre è cominciata la seconda, quella dell’implementazione di un caso d’uso.

Premessa: non avrei mai voluto che questa serie prendesse una piega trash.

Ma come facciamo a essere certi che dal nostro reality preferito venga eliminato o vinca effettivamente il concorrente che abbiamo votato? Come facciamo a essere certi che le nomination non siano sabotate? Si è pensato di implementare uno dei casi d’uso più diffusi nell’ambito delle blockchain, preso come esempio per la maggior parte di queste: la votazione.

Idea di partenza

YouVote è un’applicazione di votazioni su IPFS che permette di creare elezioni, partecipare ad esse e verificarne i risultati scegliendo tra l’altro quale blockchain utilizzare tra quelle che testeremo.

Partiamo dal voler consentire un numero arbitrario di candidati e voti disponibili, ogni indirizzo/elettore potrà votare una volta e alla scadenza verrà mostrata la classifica risultante; vedremo se queste caratteristiche sono applicabili o bisogna scendere a compromessi e.g. limitare il numero di candidati.

Il programma dovrà fornire un livello di astrazione tra il caso d’uso in questione e l’utilizzo delle varie blockchain.

Effettivamente quanto è fattibile realizzarlo? Quanto Ethereum, Scrypta, Quadrans e altre si prestano e quali sono i loro confini? Uno smart contract è necessario? Ne vale la pena in termini di costi?

Implementazione

YouVote è una PWA sviluppata in Vuejs, utilizzando il framework Ionic. Elemento essenziale sarà il blockchainTool, oggetto che astrae dalla blockchain in uso e fornirà delle funzioni specifiche che verranno implementate secondo le API a disposizione:

  • getAccountAddress(…)
  • createElection(…)
  • verify(…)
  • vote(…)

Front-end

L’interfaccia è strutturata su tre sezioni principali:

  • Discover: in cui selezionando la blockchain desiderata è possibile partecipare a elezioni messe in evidenza
  • Partecipate: dove inserendo l’hash IPFS della votazione è possibile parteciparvi
  • Create New: in cui si ha la possibilità di selezionare la blockchain desiderata e creare la propria elezione

Nella pagina di votazione verranno mostrate le informazioni necessarie quali:

  • Candidati
  • Indirizzo della votazione
  • Scadenza
  • Voti disponibili

Back-end: Interazione YouVote-IPFS-Blockchain

Ogni elezione sarà salvata come JSON in un apposita cartella all’interno di un nodo IPFS, uno degli attributi di questo file sarà l’indirizzo blockchain di riferimento attraverso il quale poter verificare nell’explorer le transazioni eseguite.

L’intera applicazione sarà salvata su IPFS e accessibile da un indirizzo IPNS, comunicherà con la blockchain di riferimento tramite le API fornite ed eventualmente integrate da estenzioni browser.

Sarà possibile partecipare o verificare i risultati di un’elezione attraverso il suo CID: da qui YouVote scaricherà il JSON, chiederà alla blockchain lo stato della votazione e informazioni sull’elettore, dopodichè restituirà i risultati o visualizzarà l’elezione.

Riferimenti bibliografici

--

--