Speaker
Description
La Blockchain è una tecnologia che permette di memorizzare in modo trasparente e immutabile informazioni attraverso un sistema di registri distribuiti e decentralizzati. Sebbene questa tecnologia sia diventata famosa principalmente per lo sviluppo di cryptovalute, come Bitcoin, le sue applicazioni si possono estendere in progetti in cui si opera con dati sensibili, confidenziali o ad accesso limitato. In quest’ottica abbiamo esplorato tale tecnologia con l’obiettivo di implementare un sistema di Blockchain permissioned che garantisca l’immutabilità dei dati, la tracciabilità delle operazioni effettuate e la riproducibilità dei workflow. Questi aspetti sono diventati cruciali in molteplici settori privati e pubblici.
In questo lavoro presentiamo la nostra implementazione di un servizio di Blockchain as a Service (BaaS) permissioned in Cloud, on demand, basato su Hyperledger Fabric (HF), un software open source che offre una serie di funzionalità tra le quali: generare o importare certificati digitali in formato x.509 per autenticare e autorizzare i partecipanti; sviluppare smart contract usando diversi linguaggi di programmazione tra cui Go, Javascript a Java; far comunicare servizi off-chain con la Blockchain usando REST APIs. L’approccio che abbiamo definito ed implementato permette di operare sui metadati associati al dato piuttosto che sul dato nella sua interezza. Questo approccio ci permette di conservare solo le informazioni essenziali sulla blockchain gestendole in modo efficiente, ottimizzando lo spazio di archiviazione utilizzato e consentendo la potenziale eliminazione dei dati salvati off-chain. È importante sottolineare, infatti, che le informazioni salvate sulla blockchain non sono cancellabili.
Indipendentemente dal sistema di archiviazione, l’uso di REST API permette di interagire con il sistema blockchain e di archiviare i metadati relativi ai nuovi dati prodotti. Per ogni operazione effettuata sul dato, vengono registrati dettagli come timestamp dell’operazione, identità dell'utente che l’ha eseguita e tipologia di operazione svolta. Questo approccio permette di facilitare i controlli di validità sulle operazioni effettuate, sullo stato dei dati salvati off-chain e la ricostruzione completa del workflow.