6. Costruire la Catena 🔗
Ora abbiamo le transazioni (Livello 5) e le firme (Livello 3). Ma come imponiamo un ordine cronologico condiviso e sicuro a livello di rete? L'ordine con cui vengono registrate le transazioni è fondamentale.
È chiaro che se la transazione con cui Mario spende il suo bitcoin venisse registrata prima di quella in cui Anna glielo invia, vorrebbe dire che il sistema accetta una spesa di fondi che, in quel momento, ancora non esistono. Tutta la fiducia nel protocollo andrebbe, giustamente, a zero.
Inoltre è necessario che tutti i nodi della blockchain raggiungano un consenso su quale sia la catena corretta. Se le transazioni continuassero ad aggiungersi senza sosta, non ci sarebbe il tempo materiale per validarle e condividerle.
La soluzione adottata da Satoshi è di raggruppare le transazioni in contenitori ordinati chiamati Blocchi, ciascuno dei quali rappresenta uno stato verificato del registro in un preciso momento.
Raggruppare le transazioni in blocchi introduce delle pause naturali che rendono possibile la verifica e la successiva propagazione del consenso. Vediamo i dettagli:
Un blocco è diviso in due parti:
1. Header (Intestazione): Contiene la data e l'ora della sua creazione, un numero particolare detto Nonce, della cui importanza parleremo più avanti, e soprattutto l'Hash del blocco precedente.
2. Body (Corpo): Contiene la lista delle transazioni (tramite una struttura ad albero chiamata Merkle Tree che permette di riassumere in modo efficiente l'integrità di tutte le transazioni del blocco).
La magia sta nel collegamento. Ogni blocco contiene, nella sua parte iniziale, l'impronta digitale (Hash) del blocco precedente e quindi eredita la sicurezza di tutti quelli che lo precedono. Chiunque cercasse di modificare anche solo un dettaglio di una transazione in un blocco già registrato sulla rete, modificherebbe necessariamente l'hash finale di quel blocco. A questo punto esso non combacerebbe più con quello scritto all'inizio del blocco successivo e bisognerebbe ricalcolare anche tutti i blocchi a partire da quello modificato con un costo computazionale enorme.
È così che si crea una catena indissolubile. La Blockchain.
⛓️ Simulatore di Blockchain
Prova a modificare un blocco qualunque (tranne l'ultimo, chiaramente): vedrai che tutti i blocchi successivi diventeranno rossi perché la catena è stata interrotta!
Effetto Valanga: Hai visto? Modificando un blocco, cambia anche il suo hash. Tuttavia, il blocco successivo continua a puntare al "vecchio" hash del blocco precedente. Questo invalida il collegamento, rendendo invalidi tutti i blocchi successivi al primo modificato. Per hackerare Bitcoin, dovresti riscrivere l'intera catena, l'intera storia!
📘 Riepilogo e verifica (facoltativo)
🗂 Flashcards
🖼 Infografica

🎧 Video / Audio recap
🧠 Verifica di comprensione
Qual è la funzione principale del raggruppare le transazioni in blocchi, secondo il testo?
Quale elemento cruciale contenuto nell'Header di un blocco lo collega indissolubilmente a quello che lo precede?
Cosa descrive l'Effetto Valanga' se si tentasse di modificare una transazione in un blocco passato?
Secondo il testo, perché l'ordine cronologico delle transazioni è di fondamentale importanza?
In quali due parti principali è suddiviso un blocco, secondo la sua 'Anatomia'?