Tag

, , , , , ,

* Autori: Emanuele pagliara, Michele Cappelletti

 

Le blockchain stanno rapidamente prendendo piede come architetture rivoluzionarie che aprono la strada a nuove opportunità di business basate su interazioni sicure e decentralizzate.

Nell’ultimo periodo si è lavorato molto nel cercare di integrare all’interno dei processi business queste architetture, per cercare di sfruttarne al meglio le qualità, in particolare l’immutabilità delle transazioni e la decentralizzazione delle informazioni.

Questo articolo si focalizza sulle modalità di integrazione software con la blockchain, analizzandone le peculiarità. Ogni possibile soluzione di integrazione viene categorizzata e valutata secondo una serie di requisiti; lo scopo è intuire quali possano essere i contesti di maggiore applicabilità, dei quali riportiamo alcuni esempi in scenari molto diversi tra loro.

 

Modalità di integrazione tra client e Blockchain

La blockchain è di fatto una rete composta da nodi server che costituiscono il punto di ingresso per software che desiderano interagire con la blockchain con il ruolo di client. Un nodo è un software che implementa tutte le funzionalità relative alla blockchain, in particolare è in grado di mantenere tutto lo storico dei blocchi e delle transazioni ossia la blockchain e ha la capacità di comunicare nel protocollo nativo con gli altri nodi della rete.

Le principali tipologie di client software sono le seguenti:

  • Full client: software che utilizza un nodo dedicato della blockchain, è la modalità con maggiori funzionalità ma anche un maggior impiego di risorse. Fondamentale in applicazioni che necessitano di massima verificabilità delle informazioni scambiate;
  • Lightweight client con accesso diretto alla blockchain: si tratta di una modalità innovativa che sfrutta una validazione parziale delle informazioni scambiate, permette una connessione diretta ai nodi della blockchain ma si adatta all’utilizzo su dispositivi dalle ridotte capacità;
  • Lightweight client con accesso intermediato alla blockchain: il software client non si connette alla blockchain, bensì utilizza funzionalità intermediate da un server dedicato o di terze parti;

Full client

In questo scenario il client software si collega tramite le api esposte da un’istanza del nodo ad uso esclusivo, sfruttando così la capacità del nodo di validare lo storico dei blocchi e delle transazioni, raggiungendo il massimo grado di confidenza delle informazioni scambiate. Chiaramente eseguire un full node comporta alcuni accorgimenti su cui ragioniamo più avanti in questo articolo.

Lightweight client

Lo scenario del Lightweight client si distingue per l’assenza di un nodo della blockchain dedicato per il client.

Lightweight client con accesso diretto alla blockchain

In letteratura viene chiamato Thin client un software in grado di collegarsi a una serie più o meno prestabilita di nodi della blockchain possibilmente sotto il controllo di terzi con cui comunicare nel protocollo nativo.

Questa modalità è anche conosciuta come Simplified Payment Verification (SPV): prevede che il software e non il nodo si occupi della verifica di una piccola parte delle transazioni, in particolare delle sole transazioni relative al wallet dell’utente che utilizza il software. Inoltre, il processo di verifica si concentra sulla consistenza dei soli header dei blocchi anziché sul loro contenuto come nel caso del nodo full.

In alternativa è possibile istruire il client a consumare le api esposte da uno o più nodi mantenuti in remoto da terzi per recuperare le informazioni necessarie alla propria operatività, esattamente come faceva nel caso del Full client. La differenza è che in questa modalità la verifica dell’attendibilità delle informazioni riguardanti le transazioni è complicata dal fatto che i nodi non sono sotto il controllo del client e le api non rendono disponibili informazioni sul contenuto dei blocchi.

Lightweight client con accesso intermediato alla blockchain

L’intermediazione del server nell’accesso alla blockchain implica un forte disaccoppiamento tra il client software e la blockchain, con un forte scarico di responsabilità sul server, il quale espone le funzionalità tramite api; ne sono esempi Electrum e Blockcypher.

Electrum è un progetto di wallet basato sullo Stratum Protocol, una specifica per la comunicazione client/server utilizzata originariamente nel corso del 2012 per la creazione di reti di mining tramite lo Stratum Mining Protocol.

Blockcypher è più noto come motore di indicizzazione e ricerca per le transazioni, principalmente sulle blockchain di Bitcoin e Ethereum. Il servizio offerto prevede inoltre le funzionalità esposte tramite api per la creazione e la gestione di wallet.

 

Considerazioni sulle modalità di integrazione con la Blockchain

Di seguito ragioniamo sulle principali implicazioni relative alle modalità di integrazione appena descritte: nel farlo, non si vuole però legarsi ad alcuno specifico caso di applicazione dei quali si parla più avanti in questo articolo.

In generale, i principali aspetti da considerare sono i seguenti:

  • Verificabilità delle informazioni scambiate relativamente a blocchi e transazioni
  • Assenza di vincoli sulle risorse, sia hardware che software
  • Connessione diretta a uno o più nodi della blockchain
  • Maturità degli strumenti
  • Complessità di implementazione del client

Si può notare come l’utilizzo di un full client dia le maggiori garanzie in termini di affidabilità delle informazioni scambiate: questa soluzione è quasi obbligata in uno scenario in cui il rischio di frodi implichi la perdita di ingenti valori.

Indicatori di qualità e complessità delle diverse modalità di integrazione

L’utilizzo di un nodo locale, come nel caso del full client, può però implicare un utilizzo non trascurabile di banda dovuto alla comunicazione costante con gli altri nodi della rete. Inoltre, la persistenza di tali informazioni può superare le decine di GigaByte.

Queste caratteristiche, che dipendono fortemente dalla blockchain scelta, mal si adattano quindi a dispositivi con limitazioni di risorse come smartphone o tablet.

Sono comunque in via di sviluppo soluzioni orientate a rendere sostenibile l’interazione diretta con la blockchain da parte di dispositivi IoT, come ad esempio IOTA.

Attualmente i più diffusi software di pagamento in criptovaluta per smartphone e tablet fanno utilizzo di lightweight client.

L’utilizzo di risorse come banda e disco è ridotto considerevolmente, con un potenziale impatto sull’affidabilità dell’informazione; tipicamente però questo è ritenuto accettabile considerando la bassa entità dei valori scambiati.

Il disaccoppiamento dalla blockchain è un aspetto che potrebbe essere importante nello scenario di un client improntato alla gestione di molteplici account e/o wallet su diversi circuiti di pagamento. In questo caso l’utilizzo di un client ad accesso diretto potrebbe rivelarsi uno svantaggio in quanto alzerebbe la complessità di implementazione del client, determinando un possibile aumento di prezzo del prodotto per l’utente finale e una maggiore fragilità del software.

 

Applicazioni dei client Blockchain

Le modalità di integrazione così descritte trovano crescenti casi di applicazione, cui attualmente i principali scenari sono:

Pagamenti, trading e Intrattenimento

Nell’ambito del trading sono ormai consolidate varie piattaforme di exchange, quali Coinbase. Si registrano inoltre novità nel campo dell’intrattenimento, dove l’adozione della blockchain porta significativi vantaggi nella movimentazione di valuta, abilitando interazioni più veloci e migliorando l’esperienza dell’utente.

In particolare, l’adozione della blockchain nel mondo del gioco d’azzardo ha una serie di implicazioni importanti, anche se non sempre in linea con le legislazioni vigenti:

  • La circolazione della valuta non dipende da tempi e costi dei circuiti bancari, il che è ideale specialmente per micro transazioni tipiche del mondo del gioco d’azzardo;
  • L’utilizzo di criptovaluta permette al giocatore di rimanere nell’anonimato, se la piattaforma lo consente, aggirando censure governative o vincoli di legge.

Emblematico il caso Cryptokitties, simile al famoso Tamagotchi, è uno dei primi tentativi di utilizzo della blockchain a scopo ludico. I gattini cresciuti e scambiati tra gli utenti della piattaforma hanno portato ad un incremento di traffico senza precedenti sulla blockchain Ethereum. Dal momento del lancio a novembre 2017 fino a gennaio 2018, sono stati scambiati oltre 18 milioni di dollari nella criptovaluta ether. Questo incremento di traffico ha causato a dicembre 2017 un rallentamento sulla blockchain di Ethereum, quando le transazioni dei Cryptokitties hanno raggiunto il 15% del traffico totale.

Asset management, pubblica amministrazione e notarizzazione

Senza precedenti il progetto Dubai Blockchain Strategy che prevede la migrazione di tutti i sistemi della pubblica amministrazione di Dubai su una versione privata della blockchain di Ethereum: i cittadini gestiranno pagamenti e altre scadenze fiscali tramite smart contract dedicati direttamente sulla blockchain.

“Under the directives of @HHShkMohd,Dubai will become the first government in the world to execute all its transactions on Blockchain by2020” Hamdan bin Mohammed, Prince of Dubai Emirate

La notarizzazione, ossia la blockchain come depositaria del tracciamento di eventi di vario tipo, non ha invece avuto lo stesso impatto mediatico e tale utilizzo è rimasto fino ad ora sottovalutato. Esempi di servizi di questo tipo sono EternityWall e ProofOfExistence.

Anche Imola Informatica, tramite la tecnica della notarizzazione, ha ideato un sistema di tracciamento della filiera di rigenerazione delle cartucce toner per EcoRecuperi, società di servizi specializzata nel recupero e trattamento di rifiuti sul territorio italiano.

 

Conclusioni

Nella nostra esperienza di consulenza, lo sviluppo di casi d’uso della blockchain è tra i principali temi che i nostri clienti ci chiedono di approfondire: questione comprensibile considerato l’elevato grado di innovazione introdotto. In generale, i casi di applicazione descritti in questo articolo dimostrano quanto la blockchain sia effettivamente utilizzabile con grande versatilità.

Il crescente tasso di introduzione della blockchain in una tale varietà di scenari applicativi costituisce una grande opportunità per sperimentare soluzioni architetturali e di integrazione. Un ruolo importante viene giocato dalle crescenti risorse sia pubbliche che private investite nella ricerca e che permettono di consolidare e far evolvere tecnologia e strumenti ad oggi gestite da grandi vendor e community, con un livello di maturità e usabilità crescente ma con margini di miglioramento.

Ad Imola Informatica sperimentiamo da tempo tecniche e strumenti per l’integrazione con le blockchain, creando soluzioni dedicate a sistemi informativi di livello enterprise. Ne è un esempio la realizzazione di un’architettura di wallet blockchain pensato per servizi IT basati su blockchain.