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.

Attestato in formato Open Badge

Sostenendo e superando con successo il Test di Autovalutazione riceverai l’Open Badge che attesta le competenze conseguite.

Indice dei Contenuti

Introduzione alla 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

I Principi su cui si basa la Blockchain

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

La Blockchain e il Networking

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 nella Blockchain

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

Le transazioni nella Blockchain

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.

Hashing e integrità delle transazioni

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.

I Consensus protocols e la Trust

Conseguire la Trust in un ambiente distribuito

Uno dei compiti più interessanti della Blockchain riguarda l'obiettivo di conseguire il consenso condiviso della rete sulle transazioni registrate nel ledger distribuito.

Quello del consenso condiviso rappresenta uno dei problemi classici della computer science relativo ai sistemi distribuiti.

Poiché come abbiamo visto, la Blockchain non è altro che una particolare implementazione di un sistema di archiviazione distribuito, molte delle soluzioni adottate dalla Blockchain riproducono le soluzioni adottate dai sistemi distribuiti.

Innanzitutto, tutti i sistemi distribuiti devono fornire un protocollo che sia "fault-tolerant", vale a dire che sia robusto e in grado di tollerare gli eventuali malfunzionamenti, per garantire la possibilità di raggiungere un consenso comune sullo stato del sistema nel suo complesso.

Raggiungendo il consenso sullo stato globale delle transazioni archiviate nel ledger, tutti gli attori del sistema distribuito condividono di conseguenza una "verità" comune, su cui riporre la propria "fiducia" (trust).

Il raggiungimento del consenso è fondamentale in un sistema distribuito, al fine di condividere una "verità" comune, cui attribuire "fiducia" (trust).

Vediamo adesso le più comuni tipologie di consensus protocols.

Il problema dei Generali Bizantini

Il problema dei Generali Bizantini

Uno dei problemi classici di coordinamento, più studiati nell'ambito della computer science edei sistemi distribuiti, è noto come problema dei "Generali Bizantini".

Il problema riguarda il raggiungimento del consenso da parte dei Generali che hanno accerchiato il nemico, sul momento in cui sferrare l'attacco tutti insieme, per garantire il successo dell'operazione militare.

Il problema risiede nel fatto che i Generali possono comunicare tra di loro a distanza, mediante lo scambio reciproco di messaggi.

Ogni Generale decide se attaccare o ritirarsi, comunicando agli altri la propria decisione inviando dei messaggeri.

Tra questi possono esservi però dei "traditori", che impediscono con il loro comportamento, di raggiungere il consenso condiviso e unanime, inviando messaggi contraddittori agli altri.

Lo scopo finale, infatti, è quello di raggiungere un consenso condiviso sull'azione da intraprendere tutti insieme, attaccare o ritirarsi, evitando un comportamento scomposto, che determinerebbe un sicuro insuccesso.

Vediamo adesso quale ruolo assume il problema dei Generali Bizantini all'interno della Blockchain e in che modo esso viene affrontato all'interno della rete.

Lo scopo del Mining

Lo scopo del Mining

Le modalità con cui si ottiene il consenso all'interno della rete variano a seconda dei diversi tipi di blockchain.

Di conseguenza, non tutti i meccanismi di consenso sono adatti per tutte le blockchain.

Nel caso della blockchain di Bitcoin, il meccanismo per ottenere il consenso si basa sull'incentivo economico.

I nodi sono incoraggiati a contribuire al raggiungimento del consenso sulle transazioni attraverso la loro attività di mining, che viene ricompensata sotto forma di bitcoin (come abbiamo visto parlando del PoW).

Questo sistema di incentivi economici è particolarmente importante per le blockchain pubbliche, poichè consente loro di raggiungere e mantenere la sostenibilità dell'architettura stessa.

Le diverse tipologie di Blockchain

Le differenti tipologie di Blockchain

Vi sono differenti implementazioni della tecnologia Blockchain, che offrono differenti caratteristiche e funzionalità.

Le blockchains si possono differenziare infatti non solo in base al consensus protocol adottato, ma anche per altre funzionalità, come ad esempio la capacità di eseguire smart contracts.

Vediamo quindi le principali tipologie di blockchain attualmente esistenti.

Test di Autovalutazione

Sostenendo e superando il Test di Autovalutazione, riceverai l’Attestato in formato Open Badge.

Inserisci il Codice d'Accesso che trovi nell'Ebook: