Blockchain
15 Febbraio 2026Capire la blockchain senza essere esperti
Immagina un registro condiviso
Per capire la blockchain, partiamo da un esempio concreto.
Immagina un quaderno su cui ogni giorno un intero villaggio annota le proprie transazioni: chi ha venduto cosa, chi ha pagato chi, quante pecore ha comprato Tizio da Caio. Questo quaderno è custodito dal notaio del villaggio, che è l’unico a poterlo modificare. Se il notaio sbaglia — o peggio, imbroglia — nessuno se ne accorge facilmente.
La blockchain funziona in modo radicalmente diverso: non c’è nessun notaio. Quel quaderno non è custodito da una persona sola, ma distribuito in migliaia di copie identiche su computer sparsi in tutto il mondo. Ogni volta che qualcuno vuole aggiungere una voce, la rete intera la verifica e la approva. Una volta scritta, quella voce non può essere modificata né cancellata da nessuno.
Questo è il cuore della blockchain: un registro distribuito, trasparente e immutabile.
Perché si chiama “catena di blocchi”
Il nome è descrittivo: i dati vengono raggruppati in blocchi, e ogni blocco è collegato al precedente formando una catena (chain). Ogni blocco contiene:
- un insieme di transazioni o dati
- un riferimento al blocco precedente
- un’impronta digitale univoca (l’hash)
Se qualcuno cercasse di modificare un blocco passato, la sua impronta digitale cambierebbe, rompendo la catena e rendendo evidente la manomissione. Per alterare un singolo blocco, bisognerebbe ricalcolare tutti i blocchi successivi — e farlo più velocemente di migliaia di computer nel mondo. Nella pratica, è computazionalmente impossibile.
A cosa serve la blockchain
La blockchain è nata nel 2008 con Bitcoin, ideata da un misterioso personaggio (o gruppo) noto con lo pseudonimo di Satoshi Nakamoto. L’idea originale era creare una valuta digitale che non richiedesse banche o intermediari: chiunque potesse inviare denaro a chiunque altro nel mondo, in pochi minuti, senza commissioni bancarie.
Ma presto ci si è resi conto che questa tecnologia poteva andare ben oltre le criptovalute. Oggi la blockchain viene usata per:
- criptovalute: Bitcoin, Ethereum, e migliaia di altre
- smart contract: contratti che si eseguono automaticamente al verificarsi di condizioni prestabilite
- supply chain: tracciare l’origine di prodotti alimentari, farmaci, diamanti
- arte e collezionismo digitale: gli NFT (Non-Fungible Token)
- sanità: gestione sicura delle cartelle cliniche
- voto elettronico: elezioni trasparenti e verificabili
- identità digitale: documenti e credenziali auto-sovrane
Come funziona davvero: il meccanismo interno
La struttura di un blocco
Ogni blocco della catena contiene tre componenti principali:
1. L’intestazione (Header) Contiene i metadati del blocco: il timestamp (data e ora di creazione), il riferimento al blocco precedente tramite il suo hash, e il risultato del processo di validazione (nonce, di cui parleremo tra poco).
2. Il corpo (Body) Contiene le transazioni o i dati veri e propri. In Bitcoin, questo significa un elenco di trasferimenti di valore tra indirizzi. In Ethereum, può contenere anche l’esecuzione di codice.
3. L’hash È l’impronta digitale del blocco: una stringa alfanumerica di lunghezza fissa (256 bit nel caso di Bitcoin, che usa l’algoritmo SHA-256) che rappresenta in modo univoco tutto il contenuto del blocco. Cambia anche un solo carattere nei dati e l’hash cambia completamente.
Le funzioni hash: il pilastro crittografico
Una funzione hash è un algoritmo matematico che trasforma qualsiasi quantità di dati in una stringa di lunghezza fissa. Le proprietà fondamentali sono:
- deterministica: lo stesso input produce sempre lo stesso output
- veloce da calcolare: in una direzione
- irreversibile (one-way): dall’hash è impossibile risalire ai dati originali
- resistente alle collisioni: è computazionalmente impossibile trovare due input diversi con lo stesso hash
- effetto valanga: una minima variazione nell’input produce un hash completamente diverso
Esempio pratico con SHA-256:
Input: "Ciao mondo"
Output: 9d4e47a7c37909ade8b9d0bf3f60e36e2a2c1e9b3c2d5a8f1e6b7c4d3a2f1e0
Input: "Ciao Mondo" ← solo la M maiuscola è diversa
Output: 3f9a2c8e1b4d7f6e2a1c5b8d4e9f3a7c2e6b1d4f8a3c7e2b5d9f1a4c8e3b6d
I due output sono completamente diversi nonostante la differenza minima nell’input. Questa proprietà rende la blockchain estremamente sicura.
Il consenso distribuito: chi decide cosa è vero?
In un sistema centralizzato, un’autorità centrale (una banca, un governo) decide quale versione dei fatti è quella corretta. In una blockchain decentralizzata, questo ruolo è svolto da un meccanismo di consenso: un insieme di regole che permette a migliaia di computer sconosciuti tra loro di accordarsi su un’unica versione della verità.
I principali meccanismi di consenso sono:
Proof of Work (PoW) — Il lavoro come prova
Usato da Bitcoin, è il meccanismo originale. I partecipanti alla rete (chiamati miner, minatori) competono per risolvere un problema matematico complesso: trovare un numero (il nonce) tale che, combinato con i dati del blocco, produca un hash che inizi con un certo numero di zeri.
Il processo è bruteforce: bisogna provare miliardi di combinazioni finché non si trova quella giusta. È volontariamente difficile e costoso in termini computazionali ed energetici. Chi lo trova per primo aggiunge il blocco alla catena e riceve una ricompensa in criptovaluta.
Perché funziona come meccanismo di sicurezza? Perché per riscrivere la storia della blockchain, un attaccante dovrebbe ricalcolare tutti i blocchi successivi a quello che vuole modificare, e farlo più velocemente di tutta la rete onesta messa insieme. Questo richiede possedere oltre il 50% della potenza computazionale totale della rete: il cosiddetto attacco del 51%, teoricamente possibile ma economicamente devastante per chi lo tenta.
Il difetto principale: il Proof of Work consuma enormi quantità di energia. La rete Bitcoin consuma annualmente circa quanto la Norvegia.
Proof of Stake (PoS) — La posta come prova
Usato da Ethereum (dal 2022, dopo “The Merge”), Cardano, Solana e molte altre blockchain moderne. Invece di competere con potenza computazionale, i validatori “mettono in gioco” (staking) una quota della criptovaluta nativa come garanzia.
Il diritto di aggiungere il prossimo blocco viene assegnato in modo pseudo-casuale, con probabilità proporzionale alla quantità di criptovaluta bloccata in staking. Se un validatore tenta di approvare transazioni fraudolente, perde la propria posta (meccanismo di slashing).
Vantaggi: riduzione del consumo energetico del 99,95% rispetto al PoW, maggiore scalabilità.
Critiche: potenziale tendenza alla centralizzazione (chi ha più criptovaluta ha più potere) e minore battle-tested security rispetto al PoW.
Altri meccanismi degni di nota
- Delegated Proof of Stake (DPoS): gli utenti delegano il proprio potere di voto a rappresentanti eletti (EOS, TRON)
- Proof of Authority (PoA): validatori pre-approvati e identificati, usato in blockchain permissioned aziendali
- Proof of History (PoH): usato da Solana, crea un registro crittografico del tempo per ordinare le transazioni senza necessità di comunicazione tra nodi
- Byzantine Fault Tolerance (BFT) e varianti (pBFT, Tendermint): algoritmi di consenso che tollerano un certo numero di nodi malevoli, usati in Cosmos e Hyperledger
La rete peer-to-peer (P2P)
La blockchain non esiste su un server centrale: risiede su una rete di migliaia di nodi (computer) distribuiti globalmente. Ogni nodo mantiene una copia completa della blockchain e comunica direttamente con gli altri nodi senza intermediari.
Esistono diversi tipi di nodi.
- Full node: scaricano e verificano l’intera blockchain dall’inizio (il cosiddetto “genesis block”)
- Light node (SPV): scaricano solo le intestazioni dei blocchi, sufficienti per verificare le proprie transazioni
- Mining/Validator node: partecipano attivamente al processo di creazione dei nuovi blocchi
- Archive node: conservano tutti gli stati storici della blockchain, non solo lo stato attuale
Ethereum e gli Smart Contract: la blockchain diventa programmabile
Dal registro al computer mondiale
Bitcoin ha dimostrato che si possono trasferire valori senza intermediari. Vitalik Buterin, un giovane programmatore russo-canadese, nel 2013 ha avuto un’idea più ambiziosa: e se la blockchain potesse eseguire non solo transazioni, ma qualsiasi tipo di programma?
Ethereum, lanciato nel 2015, è una blockchain programmabile. Al suo cuore c’è la Ethereum Virtual Machine (EVM): un computer virtuale decentralizzato che esiste simultaneamente su tutti i nodi della rete e che può eseguire codice arbitrario.
Cosa sono gli smart contract?
Uno smart contract è un programma scritto sulla blockchain che si esegue automaticamente quando vengono soddisfatte determinate condizioni. Non richiedono fiducia nelle parti coinvolte, né l’intervento di un intermediario: il codice è la legge.
Un esempio semplice:
“Se entro il 31 dicembre Mario invia 10 ETH a questo contratto, rilascia l’atto di proprietà digitale a Mario. Se non lo fa, restituisci i fondi a Luigi.”
Una volta distribuito sulla blockchain, nessuno — nemmeno chi lo ha scritto — può modificarne il comportamento. Si esegue esattamente come programmato.
Gli smart contract sono scritti principalmente in Solidity, un linguaggio simile a JavaScript creato appositamente per Ethereum. Esempio di un contratto elementare:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleStorage {
uint256 private storedValue;
event ValueChanged(uint256 newValue);
function set(uint256 value) public {
storedValue = value;
emit ValueChanged(value);
}
function get() public view returns (uint256) {
return storedValue;
}
}
Questo contratto permette di salvare e leggere un numero sulla blockchain: un esempio minimale, ma che illustra la struttura di base.
Il problema della scalabilità: il trilemma della blockchain
Vitalik Buterin ha formalizzato un concetto fondamentale noto come Blockchain Trilemma: è impossibile ottimizzare simultaneamente tutte e tre queste proprietà:
Sicurezza
/\
/ \
/ \
/ \
Decentraliz. ── Scalabilità
- Sicurezza: la rete resiste agli attacchi
- Decentralizzazione: nessuna entità ha il controllo
- Scalabilità: la rete processa molte transazioni al secondo
Bitcoin sacrifica la scalabilità (7 transazioni al secondo contro le 65.000 di Visa). Ethereum ha cercato di migliorare la scalabilità senza sacrificare sicurezza e decentralizzazione attraverso soluzioni innovative.
Layer 2: scalare senza compromessi
Le soluzioni Layer 2 (L2) sono protocolli costruiti sopra la blockchain principale (Layer 1) che eseguono le transazioni fuori dalla catena principale e ne registrano solo il risultato compresso sulla L1. Esistono diversi approcci:
Rollup Ottimistici (Optimistic Rollups)
Usati da Optimism e Arbitrum. Assumono che le transazioni siano valide per default (ottimismo), pubblicano il batch sulla mainnet e aprono una finestra temporale (tipicamente 7 giorni) in cui chiunque può presentare una “fraud proof” per contestare una transazione fraudolenta.
- Pro: compatibilità totale con l’EVM, bassi costi
- Contro: ritardi nei prelievi verso la mainnet
ZK-Rollup (Zero-Knowledge Rollup)
Usati da zkSync, StarkNet, Polygon zkEVM. Invece di assumere la validità, generano una prova crittografica (ZK-Proof) matematicamente verificabile che certifica la correttezza di tutte le transazioni del batch.
- Pro: finalità istantanea, massima sicurezza
- Contro: computazionalmente pesanti da generare, compatibilità EVM più complessa
Crittografia avanzata: il motore nascosto della blockchain
Crittografia a chiave pubblica (asimmetrica)
Ogni utente della blockchain possiede una coppia di chiavi.
- Chiave privata: un numero casuale di 256 bit, noto solo al proprietario. Va tenuta segreta come una password master.
- Chiave pubblica: derivata matematicamente dalla chiave privata tramite moltiplicazione su curve ellittiche. È condivisibile pubblicamente.
- Indirizzo: versione compressa e hash-izzata della chiave pubblica (in Ethereum, gli ultimi 20 byte del Keccak-256 della chiave pubblica).
Il meccanismo si basa su operazioni matematicamente facili in una direzione ma computazionalmente impossibili nell’altra:
Chiave privata → (moltiplicazione su curva ellittica) → Chiave pubblica ✓ Facile
Chiave pubblica → (logaritmo discreto su curva ellittica) → Chiave privata ✗ Impossibile
La firma digitale ECDSA
Quando un utente vuole inviare una transazione, la firma con la propria chiave privata usando l’algoritmo ECDSA (Elliptic Curve Digital Signature Algorithm).
- Viene calcolato l’hash della transazione
- La chiave privata e un numero casuale generano la firma
(r, s) - La firma viene allegata alla transazione
Chiunque può verificare la firma usando la chiave pubblica del mittente, senza conoscere la chiave privata. La matematica garantisce che solo il possessore della chiave privata potesse produrre quella firma per quel messaggio specifico.
Alberi di Merkle: verificare senza scaricare tutto
All’interno di ogni blocco, le transazioni non sono memorizzate in una lista semplice, ma in una struttura ad albero chiamata Merkle Tree (o hash tree), proposta da Ralph Merkle negli anni ’80.
- Si calcola l’hash di ogni transazione
- Le hash vengono accoppiate e si calcola l’hash di ogni coppia
- Il processo si ripete fino a ottenere un singolo hash: la Merkle Root
[Merkle Root]
|
┌──────┴──────┐
[H(AB)] [H(CD)]
/ \ / \
[H(A)] [H(B)] [H(C)] [H(D)]
| | | |
[A] [B] [C] [D]
Il vantaggio fondamentale: per verificare che una transazione sia inclusa in un blocco, non serve scaricare tutte le transazioni. Basta una Merkle Proof: un percorso di hash dalla foglia alla radice (logaritmico nella complessità). Un light node può verificare la propria transazione con pochi kilobyte di dati invece di gigabyte.
Zero-Knowledge Proof: dimostrare senza rivelare
Una delle innovazioni crittografiche più rivoluzionarie degli ultimi decenni è la prova a conoscenza zero (Zero-Knowledge Proof, ZKP): un metodo che permette a una parte (il prover) di dimostrare a un’altra (il verifier) di conoscere un’informazione, senza rivelarne il contenuto.
L’analogia classica: immagina una caverna con due entrate che si congiungono in fondo, bloccata da una porta segreta. Il prover vuole dimostrare di conoscere il codice della porta senza rivelarlo. Il verifier gli chiede di entrare da un lato e uscire dall’altro. Se il prover può farlo ogni volta, la probabilità che conosca il codice cresce esponenzialmente a ogni tentativo.
Nelle blockchain, le ZKP vengono usate in due forme principali:
- zk-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge): prove compatte e veloci da verificare, richiedono un “trusted setup” iniziale. Usate da Zcash e Groth16.
- zk-STARK (Zero-Knowledge Scalable Transparent ARgument of Knowledge): più grandi ma senza trusted setup e resistenti ai computer quantistici. Usate da StarkWare.
Blockchain permissioned e applicazioni enterprise
Blockchain pubbliche vs private vs consortium
Non tutte le blockchain sono uguali. Si distinguono in:
| Caratteristica | Pubblica | Privata | Consortium |
|---|---|---|---|
| Accesso | Chiunque | Solo autorizzati | Gruppo selezionato |
| Consenso | PoW/PoS | PoA/BFT | BFT/Raft |
| Trasparenza | Totale | Limitata | Parziale |
| Velocità | Bassa/Media | Alta | Alta |
| Esempi | Bitcoin, Ethereum | Hyperledger Fabric | R3 Corda, Quorum |
Il futuro della tecnologia
Il problema dell’oracolo
Gli smart contract vivono sulla blockchain, che è un sistema chiuso. Come possono interagire con il mondo reale — prezzi di mercato, risultati sportivi, dati meteo? Qui entrano in gioco gli oracoli: servizi che portano dati esterni sulla blockchain. Chainlink è il protocollo oracolo più diffuso: una rete decentralizzata di nodi che aggregano dati da fonti multiple e li portano on-chain in modo resistente alla manipolazione. Il problema dell’oracolo è considerato una delle sfide fondamentali aperte della blockchain.
Interoperabilità tra blockchain
Oggi esistono centinaia di blockchain separate che non comunicano tra loro. I bridge cross-chain permettono di trasferire asset da una catena all’altra, ma sono stati il vettore di alcuni dei più grandi hack nella storia delle criptovalute (Ronin Bridge: 625M$, Wormhole: 320M$). Cosmos con il protocollo IBC (Inter-Blockchain Communication) e Polkadot con il suo modello parachain rappresentano approcci architetturali nativamente progettati per l’interoperabilità.