Close

30 gennaio 2020

Blockchain Azure – Proof Of Concept

Azure_Blockchain_Service_Featured_Image_3

Introduzione

In questo articolo vedremo una possibile applicazione basata sulla blockchain privata di Microsoft, che a sua volta è basata su Ethereum, che ci offre la possibilità di caricare degli Smart Contract (contratti intelligenti). Questi contratti non sono altro che accordi digitali presenti sulla blockchain che operano automaticamente in base ai dati forniti loro (per approfondimenti clicca qua). I contratti intelligenti possono essere programmati per svolgere vari compiti, come per esempio:

  • Eseguire complesse espressioni matematiche;
  • Salvare vari tipi di dati e trasferire somme di denaro.

Inoltre gli Smart Contracts possono caricare o comunicare con altri contratti nella rete.  Questo ci dà la possibilità di poter creare a tutte gli effetti Applicazioni decentralizzate (DApp), anche molto intelligenti. Un insieme di contratti, ad esempio, potrebbero gestire autonomamente un piccolo hotel. Vediamo questo case study ed altri nel prossimo capitolo.

Casi di Studio

Ecco alcuni esempi di utilizzo della blockchain e degli Smart Contract nella vita comune:

Gestione di un hotel

Uno Smart Contract può mettere a disposizione delle camere, una volta che una di queste viene prenotata può prelevare i soldi dagli utenti richiedenti il servizio, se questi poi non volessero più prendere quella camera i soldi gli sarebbero restituiti sicuramente ed istantaneamente direttamente dal contratto. Questo è garantito dal codice stesso dello Smart Contract, che è immutabile proprio perché in una blockchain. Infine un altro contratto potrebbe inviare una chiave d’accesso per la stanza all’utente e allo stesso tempo ad un lucchetto intelligente che una volta, ricevuta la chiave giusta, si apre. Finito il pernottamento, quest’ultimo contratto, può cambiare le varie chiavi così da rendere libera la camera per un altro cliente.

Scuola e mondo accademico

La Holbertson School of Software Engineering, con sede a San Francisco, in California, ha annunciato di voler utilizzare la tecnologia blockchain per autenticare i titoli e i certificati accademici. Questo farà sì che gli studenti che sostengono di aver superato i corsi del suo programma di studi non siano in grado di vantare crediti che non abbiano legittimamente guadagnato. Anche altre università hanno iniziato a implementare strumenti basati sulla tecnologia dei registri distribuiti per assicurare una maggior trasparenza della gestione dei certificati accademici e nella trascrizioni di lauree e diplomi. Ecco perché le frodi afferenti questo tipo di applicazioni potrebbero essere più facilmente combattute, senza contare il risparmio a livello di tempo e costi legato alla possibilità di poter evitare controlli manuali di migliaia di documenti cartacei ogni anno.

Gift card e programmi di fidelizzazione

Le blockchain posso rappresentare un aiuto concreto per i retailer che offrono tessere regalo (gift card) e programmi di fidelizzazione, per rendere questi sistemi meno costosi e più sicuri. Con il minor numero di intermediari necessari per elaborare l’emissione delle carte e le operazioni di vendita, il processo di acquisto e utilizzo delle carte regalo risulta più efficiente e conveniente. Allo stesso modo, aumenterà la capacità di prevenire i tentativi di frode, per il fatto che il sistema basato su blockchain permette di garantire la veridicità del titolare della carta in modo automatico e univoco, di fatto impedendo ai malintenzionati di riuscire a utilizzare in maniera fraudolenta gli account indebitamente sottratti. Gyft, per esempio, ha creato il programma Gyft Block, una piattaforma online per l’acquisto, l’invio e l’utilizzo di carte regalo basata sulla tecnologia dei distributed ledger.

Proof Of Concept QILAB

Il nostro progetto è basato tutto su un singolo contratto. Questo contratto ha il compito di salvare dei dati di un cliente nella blockchain, questi dati possono essere caricati solo attraverso l’invio di una transazione da un nostro nodo nella blockchain Azure. Una volta che il dato è stato caricato da un account, solo quest’ultimo può riaccendervi in futuro richiamando il corretto indice della transazione.

Per caricare e gestire questo contratto abbiamo usato vari meccanismi che lavorano insieme tra loro, che adesso andremo ad analizzare nei prossimi capitoli. Intanto ecco una rappresentazione dell’architettura implementata.

 

Architettora_PoC (1)

Azure Blockchain Services

Quest’ insieme di servizi hanno lo scopo di facilitare la distribuzione, gestione, controllo di sicurezza di una rete Blockchain privata basata su protocollo Ethereum. Questi servizio sono ancora in “anteprima” quindi magari in futuro verranno aggiunte nuove funzioni, ma per il momento posso dire che i servizi offerti hanno una maturazione tale per  basarci un progetto.

Possiamo interagire con questi servizi sia dall’Azure portal che scaricando un SDK per Visual Studio Code. In tutti e due i casi è veramente semplice creare la propria blockchain. Una volta creata è anche possibile affidare la gestione di alcuni nodi della rete a specifici utenti. Per la gestione della rete blockchain sono a supporto i seguenti servizi:

Ethereum Connector

Con un software Node.js siamo in grado di comunicare con la blockchain Ethereum fornita da Azure. Questo comunica con l’apposito nodo utilizzando la libreria Web3, la quale utilizza il servizio HDWallet per gestire gli account. Ecco un link per vedere alcune librerie che sono presenti nel pacchetto Azure Blockchain Services -> https://www.trufflesuite.com/.

Invece adesso vediamo uno snippet di una possibile versione di questo microservizio in Node.js.

scriptScreenshot

FrontEnd

Questa parte del progetto serve per comunicare con il microservizio che abbiamo visto prima. Il framework utilizzato per scrivere questi due FrontEnd è Angular. Le funzionalità implementate sono sostanzialmente due:

  • Post Transazione
    • Desktop, per inviare un dato da certificare;
    • Usato ad esempio dai vari attori di una filiera da certificare. Oppure, semplicemente, un’evento di vendita.
  • Get Transazioni
    • Mobile, per recuperare una transazione;
    • Usato per garantire all’utente finale un’informazione (es. la certificazione di un prodotto o di una filiera).

Ecco una versione 1.0 del flow che include entrambi gli attori.

 

 

Fe-blockchain

 

Domande/osservazioni/commenti a l.calvaresi{at}quidinfo.it

One Comment on “Blockchain Azure – Proof Of Concept

Sandra
30 gennaio 2020 a 12:20

Grande Luca molto chiaro nelle spiegazioni interessanti i contenuti

Rispondi

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *