Sicurezza con la blockchain

Sicurezza con la blockchain

La blockchain è come un grande libro mastro dove si scrivono tutte le transazioni di una criptovaluta, come il Bitcoin, ma non solo.

Immagina che ogni pagina di questo libro sia un “blocco” che contiene un certo numero di transazioni. Una volta che una pagina è piena, si passa alla pagina successiva, cioè al blocco successivo.

Ogni blocco è collegato al precedente, proprio come le pagine di un libro.

Questo collegamento è molto speciale: è fatto in modo che, se qualcuno prova a cambiare qualcosa in una pagina precedente, tutti se ne accorgono perché il collegamento non funziona più.

È come se il libro non fosse custodito in un solo grande archivio, ma in molti piccoli archivi sparsi per il mondo. Se qualcuno cerca di cambiare una pagina in una delle copie, gli altri archivi se ne accorgono e non accettano il cambiamento.

In pratica, per modificare una pagina, qualcuno dovrebbe cambiare la stessa pagina in tutti gli archivi contemporaneamente, il che è quasi impossibile. Questo rende la blockchain molto sicura.

Oltre ai blocchi e alle transazioni in essi contenuto esistono altri importanti elementi che caratterizzano la blockchain: I miner e i nodi.

I miner

I miner usano computer potenti per risolvere problemi matematici complicati. Questo processo, chiamato mining, è necessario per aggiungere nuovi blocchi alla blockchain. I miner vengono ricompensati per il loro lavoro con criptovaluta.

Il “mining” è come un gioco di indovinelli complicati. I minatori usano i loro computer per risolvere questi indovinelli. Il primo che trova la soluzione aggiunge un nuovo blocco alla catena e viene premiato con un po’ di criptovaluta. Questo processo aiuta a mantenere la sicurezza della blockchain e a creare nuove monete.

Gli “indovinelli” nel mining della blockchain sono in realtà problemi matematici molto complicati che i computer devono risolvere. Non sono come gli indovinelli dei libri di giochi, ma sono basati su calcoli complessi.

Immagina che ogni indovinello sia come cercare la combinazione giusta per aprire un lucchetto molto speciale.

Questo lucchetto non si apre con una chiave normale, ma solo inserendo una serie precisa di numeri.

I minatori usano i loro computer per provare tante combinazioni diverse, una dopo l’altra, finché non trovano quella giusta che “apre” il blocco.

Questo processo si chiama “proof of work”, cioè “prova di lavoro”, perché dimostra che il minatore ha fatto un sacco di lavoro per trovare la combinazione.

Ogni volta che un minatore trova la combinazione giusta, può aggiungere un nuovo blocco alla blockchain, e come ricompensa riceve un po’ di criptovaluta.

Questo sistema serve a mantenere la sicurezza della blockchain: rende molto difficile per qualcuno modificare i blocchi già creati, perché dovrebbe rifare tutto il lavoro di mining, che richiede molto tempo e molta energia.

I nodi

I Nodi Sono computer che tengono copie della blockchain e aiutano a mantenere la rete sincronizzata e sicura. Ogni nodo verifica le nuove transazioni e i blocchi per assicurarsi che tutto sia corretto.
Sono come degli assistenti che controllano che tutto nel libro sia corretto. Ogni nodo ha una copia completa del libro mastro e lavora per verificare e registrare nuove transazioni nei blocchi.

Fisicamente, gli elementi di una blockchain non sono oggetti che puoi toccare come un libro o una penna. Sono più come parti di un grande sistema che esiste dentro i computer e su Internet. Ecco come puoi immaginarli:

I blocchi Sono insiemi di dati digitali salvati nei computer. Non sono blocchi fisici, ma file che contengono informazioni sulle transazioni. Mentre le transazioni sono come messaggi digitali inviati da un computer all’altro. Quando qualcuno invia criptovaluta, quel “messaggio” diventa parte di un blocco nella blockchain.

I miner sono persone con computer molto potenti. Il “mining” è un processo che avviene in questi computer, dove usano software speciali per risolvere problemi matematici.

Infine i nodi sono computer connessi a internet che hanno una copia della blockchain. Fisicamente, un nodo può essere un grande server in un data center o anche un computer normale a casa di qualcuno.

Semplice esempio

Ecco un esempio semplificato per illustrare come un secondo blocco può essere “saldato” al primo in una blockchain.

Per capire meglio l’esempio leggi l’articolo che spiega che cos’è la crittografia e cosa sono le funzioni Hash

Considera questo esempio come una rappresentazione molto basilare del processo di mining e della creazione di blocchi:

Supponiamo che il primo blocco contenga un insieme semplice di dati, come

“Transazione1; Transazione2”.


Hash del Blocco: Utilizziamo una funzione hash semplificata (non realistica ma utile per questo esempio). Supponiamo che l’hash del primo blocco sia il numero totale di caratteri nei dati. Quindi,

Hash1 = lunghezza(“Transazione1; Transazione2”) = 24.

Dati del Nuovo Blocco: Il secondo blocco contiene

“Transazione3; Transazione4”


Problema del Mining: Per collegare questo blocco al primo, dobbiamo trovare un numero (nonce) che, aggiunto ai dati del blocco, produca un hash che inizia con “00”.

Funzione Hash Semplificata: Utilizziamo una funzione hash fittizia che prende la somma dei caratteri ASCII dei dati del blocco più il nonce e restituisce gli ultimi due numeri della somma come hash.

Soluzione del Problema

Calcolo del Hash del Nuovo Blocco:
Senza il nonce, la somma dei caratteri ASCII di “Transazione3; Transazione4” potrebbe essere, ad esempio, 1500. Trovare il Nonce: Proviamo diversi nonce fino a quando la somma non termina in “00”.

Ad esempio, se proviamo con nonce = 100, la somma totale diventa 1600. L’hash risultante sarà “00”.
Hash del Nuovo Blocco: Con nonce = 100, Hash2 = “00”.

Saldatura dei Blocchi
Il secondo blocco sarà collegato al primo blocco includendo Hash1 nel suo contenuto. Quindi, i dati effettivi del secondo blocco diventano

“Transazione3; Transazione4; Hash1=24”.

Questo esempio è ovviamente molto semplificato rispetto ai reali processi crittografici e algoritmi utilizzati nelle blockchain moderne. Serve però a illustrare il concetto di base del mining e della formazione di blocchi in una catena.