twitterlinkedinmail

Conoscere e comprendere le caratteristiche della tecnologia Blockchain dalle basi

La Blockchain negli ultimi tempi si è guadagnata l’attenzione dei media, oltre che degli addetti ai lavori, in relazione alle possibilità che tale tecnologia sembrerebbe promettere, al punto che molti già parlano di una prossima “rivoluzione” digitale, sulla stessa falsariga (se non addirittura superiore) alla rivoluzione rappresentata dalla diffusione di internet.

Nata a supporto dei bitcoin, e con essa assurta alla ribalta delle cronache, la Blockchain costituirebbe a detta di molti la soluzione a diversi annosi problemi che hanno a che fare con il concetto di “fiducia”, intesa come elemento necessario a garantire non soltanto l’affidabilità delle transazioni finanziarie, ma in generale la garanzia della fede pubblica in ogni relazione tra parti contrapposte.

Innumerevoli sono quindi gli scenari e i possibili impieghi della Blockchain, a detta dei suoi entusiasti sostenitori, dalla tracciatura della filiera agro-alimentare, fino a ricomprendere il contrasto delle Fake News.

Quante di queste altisonanti promesse costituiscono scenari e casi d’uso reali per i quali la Blockchain può effettivamente costituire un punto di svolta, e quanto invece influisce il marketing nella scelta di adottare tale tecnologia?

Per avere un quadro complessivo, che consenta di valutare in maniera consapevole gli effettivi vantaggi ritraibili dalla Blockchain, è necessario comprenderne i meccanismi e il funzionamento di tale tecnologia.

Malgrado molti dei dettagli implementativi della Blockchain assumano un aspetto esoterico, comprensibile solo dagli “iniziati”, al punto da intimidire i “profani”, in realtà le logiche di fondo su cui essa si basa possono essere comprese anche da chi non abbia conoscenze tecniche di programmazione.

A chi si rivolge

“Blockchain Fundamentals” si rivolge pertanto a tutti coloro (siano essi aziende, professionisti) i quali sono interessati a conoscere e comprendere dalle basi le caratteristiche della tecnologia blockchain.

I contenuti proposti sono fruibili anche da un pubblico che non dispone di specifiche competenze tecniche, nè è richiesta una precedente esperienza in ambito blockchain.

Introduzione - Che cosa è la Blockchain

Essenzialmente, la Blockchain è un

  • archivio distribuito

  • basato su reti peer-to-peer

  • implementato mediante crittografia

In qualità di archivio distribuito e decentralizzato, finalizzato alla gestione dei trasferimenti di assets digitali, la Blockchain consente agli utenti di scambiarsi reciprocamente valori digitali sotto forma di transazioni.

In questo modo non è necessario ricorrere a terze parti in funzioni di garanzia delle transazioni.

Obiettivi della Blockchain

La tecnologia Blockchain è stata originariamente introdotta a supporto di Bitcoin.

Il fine principale era quello di prevenire il fenomeno del double spending delle criptovalute, vale a dire la possibilità di spendere più volte la stessa moneta.

Tuttavia, il ruolo della Blockchain non è limitato al settore delle transazioni finanziarie.

In generale, ogni transazione di valori digitali può essere oggetto di registrazione all'interno di un ledger distribuito.

Scarica le slides

Blockchain - I principi basilari

Introduciamo adesso i principi basilari su cui si fonda la tecnologia blockchain.

Archiviazione Distribuita

La possibilità di archiviare i dati all'interno di un database distribuito permette ad ogni partecipante di accedere alla cronologia completa delle transazioni.

Inoltre l'archiviazione distribuita impedisce che una singola entità possa assumere pieno controllo sulle informazioni archiviate.

L'archiviazione distribuita consente ai singoli nodi la possibilità di verificare direttamente e in autonomia l'integrità delle informazioni archiviate.

Non è quindi necessario ricorrere ad intermediari per effettuare la verifica.

La verifica dell'integrità delle informazioni viene infatti implementata mediante le funzioni di hashing.

Reti di comunicazione Peer-to-Peer

Per implementare l'archiviazione distribuita la blockchain fa ricorso alle reti peer to peer.

In questa tipologia di reti nessun nodo assume il ruolo di server centrale.

Al contrario, in una rete P2P ogni nodo assume di volta in volta il ruolo di client e di server.

P2P network

L'archiviazione distribuita consente di conseguire la trasparenza nonchè la irreversibilità delle transazioni.

Scarica le slides

Reti centralizzate e decentralizzate

Come abbiamo visto, uno dei principi basilari della Blockchain prevede l'utilizzo di un protocollo di comunicazione di rete Peer-to-peer, al fine di conseguire l'archiviazione decentralizzata delle informazioni.

Per comprendere i vantaggi associati alle reti decentralizzate, introdurremo prima le tradizionali reti centralizzate, analizzandone le caratteristiche principali, per poi confrontarle con le reti decentralizzate peer-to-peer.

Reti centralizzate (Client-Server)

Nell'immagine che segue, mostriamo un tipico esempio di rete centralizzata:

Centralized network

La caratteristica principale di tali tipologie di rete è costituita dalla presenza di un nodo centrale, che ricopre il ruolo di server.

I nodi client possono connettersi esclusivamente al server centrale per ottenere le informazioni di cui hanno bisogno.

Scarica le slides

I blocchi - Gli elementi costitutivi della Blockchain

La Blockchain non è altro che una catena di blocchi.

L'unità più semplice di una blockchain è infatti costituita dal blocco.

Ogni blocco contiene al suo interno un certo numero di transazioni che rappresentano i trasferimenti di valori tra le controparti, realizzate all'interno della blockchain.

I blocchi e le transazioni

Ogni blocco contiene lotti di transazioni con i relativi hash.

Il numero di transazioni contenute in un blocco dipende dalla dimensione del blocco.

La dimensione media di un blocco è di circa 1 MB, ma può raggiungere anche dimensioni superiori, come nel caso di Ethereum.

In Bitcoin un blocco contiene in media più di 500 transazioni.

Scarica le slides

Blockchain transactions - Natura e caratteristiche delle transazioni

Una transazione rappresenta un trasferimento di valore da un indirizzo nella blockchain a un altro indirizzo.

In Bitcoin, mediante una transazione si trasferiscono Bitcoin da un indirizzo a un altro indirizzo.

Tutte le transazioni realizzate all'interno della blockchain vengono registrate nel ledger in sequenza, a partire dalla prima fino a quella più recente, e il ledger delle transazioni viene condiviso all'interno della rete P2P.

In Bitcoin, la transazione è confermata dai miners, che vengono ricompensati economicamente per il loro lavoro.

Ogni transazione in una blockchain deve passare attraverso una serie di conferme. Senza conferma, nessuna transazione può essere convalidata.

Blockchain process

Transazioni e Ledger

Una delle caratteristiche delle Blockchain è che rende superfluo l'intervento degli intermediari nelle transazioni.

Le persone possono realizzare le transazioni senza che siano coinvolte terze parti. Il ledger condiviso rappresenta il libro mastro delle transazioni e garantisce l'integrità e l'affidabilità delle transazioni tra le parti.

Il ledger viene mantenuto e aggiornato in maniera distribuita da tutti i partecipanti alla blockchain, che in questo modo verificano l'attendibilità delle transazioni senza ricorrere a terze parti fidate, garantendo la trust della rete.

Garantire l'integrità delle transazioni

In che modo viene garantita l'integrità delle transazioni all'interno della Blockchain?

È ciò di cui ci occuperemo ora, analizzando le diverse funzionalità crittografiche, come lo hashing e gli hash digests, sottolineando le differenze esistenti con gli algoritmi di crittografia veri e propri.

Mostreremo infine un esempio pratico di calcolo di un hash digest utilizzando la classe di algoritmi SHA impiegata nella implementazione della Blockchain, ricorrendo a dei semplici tools disponibili online.

Partiamo subito mostrando gli hash digests, considerati le "impronte digitali" dei blocchi della Blockchain.

Hash digests: le impronte digitali dei blocchi

Come abbiamo detto, l'integrità delle transazioni all'interno della blockchain viene conseguita mediante l'uso delle hash functions.

Le hash functions costituiscono una classe di algoritmi che rendono computazionalmente improbabile che stringhe alfanumeriche differenti diano origine a uguali valori degli hash.

Gli algoritmi di hashing sono specificamente progettati per essere sensibili perfino alle minime variazioni nei dati di input.