Corso Blockchain Fundamentals

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.

Corso “Blockchain Fundamentals”

Il Corso “Blockchain Fundamentals” si rivolge a tutti coloro (Aziende, Enti, liberi Professionisti, Studenti) i quali siano 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.

La Blockchain come tecnologia

La tecnologia Blockchain può assumere forme e implementazioni differenti.

Pertanto, essa rappresenta più un concetto di natura architetturale, che una tecnologia specifica e ben definita.

Ogni implementazione differente è inoltre in grado di fornire caratteristiche e funzionalità specifiche, come ad esempio l’esecuzione di smart contracts.

Elementi essenziali della Blockchain sono:

  • le transazioni;

  • i blocchi;

  • il ledger;

Vediamone adesso nel dettaglio le caratteristiche.

Le Transazioni

Lo scambio di valori tra le controparti all’interno della Blockchain avviene mediante la realizzazione di transazioni.

Le transazioni vengono validate dalla rete dei nodi della blockchain, prima di essere inserite all’interno del ledger.

Una volta accodate alle transazioni preesistenti all’interno del ledger, esse divengono inalterabili e immodificabili.

I blocchi della Blockchain

Per sua natura, la Blockchain non è altro che una catena di blocchi.

Ogni blocco al suo interno contiene una o più transazioni.

L’aggiunta di nuovi blocchi alla Blockchain avviene sulla base di prefissate frequenze temporali.

In questo modo, è possibile mantenere lo storico delle transazioni tracciando la sequenza delle registrazioni effettuate sui blocchi.

Il ledger distribuito

Contabilmente, la blockchain può essere considerata un libro mastro distribuito e decentralizzato, noto appunto come ledger distribuito.

La gestione del ledger avviene mediante l’impiego di consensus protocols, che sono progettati per conseguire il consenso della rete sulle transazioni registrate all’interno del ledger.

I consensus protocols sono molteplici, e caratterizzano le differenti implementazioni della blockchain.

Tra i consensus protocols più comuni possiamo ricordare il Proof of Work (PoW), il Proof of Stake (PoS) e il Proof of Authority (PoA).

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
P2P network (image credits: wikipedia)


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

Trasparenza delle transazioni

Ogni transazione e il valore ad essa associata sono visibili pubblicamente a tutti i partecipanti alla rete.

Le controparti di una transazione sono individuati dai loro rispettivi indirizzi, costituiti da sequenze alfanumeriche.

Ogni transazione viene sottoposta ad un numero di conferme da parte dei nodi miners, prima di essere validata ed essere inserita all’interno del ledger.

Irreversibilità delle transazioni

Ecco alcune delle caratteristiche che determinano l’irreversibilità delle transazioni nella Blockchain:

  • dopo essere state inserite all’interno di un blocco e aggiunte nella blockchain, le transazioni non sono più modificabili;

  • tale risultato è ottenuto proprio concatenando tra di loro i diversi blocchi che compongono la blockchain;

  • una eventuale modifica alle transazioni già archiviate comporterebbe infatti l’alterazione degli hash calcolati in precedenza.

Tale alterazione sarebbe immediatamente evidente a tutti i nodi della rete che ne impedirebbero la conferma.

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
Centralized network (image credits: wikipedia)


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.

Vediamo adesso alcuni esempi di reti centralizzate, analizzandone i rispettivi limiti che rendono indispensabile l’adozione del modello di rete decentralizzato (Peer-to-peer) nell’implementazione delle funzionalità della Blockchain.

Reti centralizzate: esempi

Un tipico esempio di rete centralizzata è reppresentato dalle tradizionali connessioni client-server del web.

Il vantaggio principale di una rete centralizzata è rappresentato dalla semplicità di implementazione, mantenimento e aggiornamento di tale modello architetturale.

Le informazioni necessarie vengono archiviate e aggiornate in un unico nodo centrale (il server) che le mette a disposizione dei client.

Reti centralizzate: limiti

Il limite fondamentale delle reti centralizzate è rappresentato dal fatto che in caso di malfunzionamento o di compromissione del nodo centrale (a seguito ad esempio di attacchi informatici), le informazioni in esso contenute non sono più disponbili e accessibili da parte della intera rete.

Inoltre, nelle reti centralizzate il nodo server assume il ruolo di autorità di controllo esclusivo sulle informazioni.

A causa di questi limiti, la Blockchain adotta un protocollo di comunicazione di rete di tipo decentralizzato per realizzare le proprie funzionalità.

Reti decentralizzate (Peer-to-peer)

In una rete decentralizzata per definizione non esiste un nodo centrale che assume il ruolo di autorità di controllo e di condivisione autoritativa delle informazioni.

Al contrario, in un protocollo di rete peer to peer ogni singolo nodo è in grado di svolgere tale ruolo.

Il modello decentralizzato consente quindi ad ogni nodo della rete di contribuire alla condivisione e alla verifica delle informazioni.

Decentralized network (peer to peer)
Decentralized network (peer to peer) (image credits: wikipedia)


Tale modello rende pertanto superflua la presenza di una autorità centrale di controllo sulle informazioni.

Reti decentralizzate e Blockchain

Le caratteristiche delle reti decentralizzate sono essenziali per realizzare le funzionalità della blockchain.

Uno dei vantaggi chiave della blockchain è costituito infatti dal decentramento decisionale sulla verifica, la validazione e l’inserimento delle transazioni all’interno della blockchain.

Tali decisioni vengono poi condensate all’interno dei blocchi, che costituiscono gli elementi costitutivi della 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.

Blockchain block time

Ogni blockchain ha un suo tempo di blocco caratteristico, vale a dire la quantità approssimativa di tempo richiesta per aggiungere un nuovo blocco alla Blockchain.

Il block time influenza il numero di transazioni che vengono inserite all’interno del singolo blocco.

Se ad esempio la blockchain avesse un tempo di blocco di cinque minuti, e ci fossero solo quattro transazioni portate a termine durante quei cinque minuti, il blocco conterrà di conseguenza soltanto quelle quattro transazioni.

Vediamo adesso come vengono gestite le transazioni sulla base del block time e della struttura dei blocchi.

Block time e numero di transazioni

Nel caso in cui ci fossero troppe transazioni rispetto a quante il blocco ne possa ospitare, sulla base della sua dimensione, in questo caso le transazioni dovrebbero attendere di essere inserite all’interno di un blocco ancora aperto, che abbia spazio rimanente a sufficienza per ospitarle.

Sempre nel caso di Bitcoin, il tempo di blocco è pari a 10 minuti, e deriva dai limiti prefissati nel codice sorgente di Bitcoin.

Tali limiti a loro volta derivano dall’obiettivo di emettere non più di 21 milioni di bitcoins nel periodo tra il 2009 e il 2024, con remunerazioni per i miners che si riducono della metà ogni quattro anni.

La struttura dei blocchi

Ogni blocco è costituito da una intestazione, detta header, e da una lista di transazioni.

Ogni blocco include l’hash del blocco precedente, e in questo modo i blocchi nel loro insieme vanno a costituire una catena (blockchain appunto) che collega tutti i blocchi tra loro.

Il primo blocco della Blockchain si chiama “genesis block”.

Block header

La struttura dei blocchi è rappresentata dal block header, ovvero intestazione del blocco.

Block header structure
Block header structure (image credits: wikipedia)


Tale struttura dati contiene una serie di informazioni relative ai blocchi, informazioni anche dette metadata.

  • Hash del blocco precedente: tale valore è richiesto per computare il corrispondente hash del nuovo blocco da aggiungere alla blockchain;

  • Merkle root: è il valore hash associato al nodo radice dell’albero delle transazioni, che funge da controllo della validità del blocco;

  • Timestamp: marcatura temporale assegnata al blocco;

  • Nonce: valore arbitrario che viene utilizzato in fase di mining del blocco.

I blocchi sono memorizzati in una struttura ad albero, nota come Merkle tree.