Come funziona la Blockchain?

Share on facebook
Facebook
Share on google
Google+
Share on twitter
Twitter
Share on linkedin
LinkedIn

Nel precedente articolo (“Blockchain – Tutto ciò che bisogna sapere“) abbiamo visto cosa è e a cosa serve la Blockchain. Quì invece voglio spiegarvi in modo semplice come funziona una Blockchain e su quali tecnologie usa per garantire le sue funzionalità.

Nel mio precedente articolo, avevo spiegato che in estrema sintesi una “blockchain” può essere paragonato ad un “speciale archivio digitale” che risulta condiviso e decentralizzato (cioè non risiede in un unico spazio fisico) che risulta accessibile e consultabile che chiunque faccia parte della “rete”.  Per questa caratteristica, una volta che è necessario registrare un’operazione (per esempio un pagamento in Bitcoin) questa viene inserita all’interno di un contenitore speciale chiamato “blocco” che, una volta “sigillato”, risulta impossibile da riaprire per modificarne il suo contenuto.  Inoltre, ogni singolo “blocco” è collegato in modo indelebile al blocco che lo precede e lo segue, creando in tal modo una “catena”, detta appunto “catena di blocchi” o “blockchain“.  Ma vediamo come sono fatti questi blocchi e cosa contengono.

  1. DATI: il contenuto, o meglio, il tipo di dati che ogni blocco contiene è “specifico” dipende dal tipo di “blockchain” al il blocco appartiene: per esempio nella blockchain del Bitcoin, all’interno di ogni singolo blocco sono memorizzate i dettagli delle transazioni finanziarie che avvengono appunto tramite l’uso della criptomoneta “Bitcoin“.
  2. HASH BLOCCO: l’hash (vedi questo mio articolo) è praticamente la “firma od impronta digitale” del blocco, una sorta di bollino di autenticità e veridicità.  Nel concreto è un numero esadecimale di 64 caratteri che ha la caratteristica di assumere sempre lo stesso valore per ogni specifica combinazione di dati contenuti nel blocco, e di assumere due valori totalmente differenti anche per piccolissime variazione dei dati stessi (esempio aggiungere un “punto” ad un testo di oltre 1.000.000 di parole). La determinazione e calcolo dell’HASH è l’attività “cuore” del Bitcoin Mining, come ho spiegato in questo articolo.  Questo viene pertanto calcolato quando viene creato un nuovo blocco, e risulta univoco al quel “specifico” blocco.
  3. HASH BLOCCO PRECEDENTE: è la presenza di questo dato, in ogni nuovo blocco, che determina la creazione ed allungamento della “catena”. Poichè il calcolo dell’HASH del BLOCCO è determinato anche da valore di questo campo, una qualsiasi tentativo di “rompere” la catena andando a modificare i contenuti dei blocchi precedenti, determinerebbe l’invalidazione di tutti i blocchi successivi, fatto che verrebbe subito evidenziato e rigettato dall’intera rete. Su questo semplice ma efficace principio si basa la sicurezza di tutta la rete. Cioè qualcuno potrebbe anche riuscire a modificare i dati di un singolo blocco, ma questo determinerebbe l’immediato cambiamento dell’hash di quel “blocco manomesso”. Questo nuovo e diverso hash, non risponderebbe con il valore contenuto nel blocco successivo andando pertanto a “rompere” la continuità della catena, fatto che verrebbe immediatamente riscontrato dagli altri utenti della rete. Questa segnalazione porterebbe al “rigetto” del blocco modificato e al ripristino di quello invece originale.

Fig. 1: Struttura Blocchi Blockchain

Il primo blocco di ogni catena si chiama “Genesis Block”.  Il valore dell’Hash Blocco Precedente è pari a 0000……0000

Ora però, per quanto valido, il solo sistema dell’ HASH non è sufficiente a prevenire manomissioni: infatti la capacità di calcolo dei computer continua a crescere superando la “Legge di Moore”, che indicava il raddoppio della capacità di calcolo di un processore ogni 18 mesi.  Oggi siamo arrivati a tassi di crescita di “ordini di dimensioni” nell’arco di <=12 mesi.  Pertanto, anche se improbabile, sarebbe possibile calcolare migliaia (o decine di migliaia) di Hash al secondo arrivando a poter modificare/riscrivere TUTTI gli hash di tutti i blocchi di una rete, rendendo praticamente impossibile capire che vi sia stata alcuna manomissione e rendendo pertanto valida l’intera catena.

Per evitare che questa possbibilità possa trasformarsi in realtà, la Blockchain utilizza un “protocollo crittografico” chiamato “PROOF OF WORK“, letteralmente “Prova di Lavoro”. La “Proof of Work” è essenzialmente una richiesta di calcoli aggiuntivi fatta dalla rete che hanno esplicitamente la finalità di “rallentare” la creazione di “nuovi blocchi”.  In questo modo, seppur tecnicamente fattibile, sarebbe però praticamente impossibile riuscire a “modificare” tutti i blocchi della rete senza che nessuno riesca ad accorgersene.

Per esempio, come ho spiegato in questo articolo, nella blockchain del Bitcoin, ci vogliono in media almeno 10 minuti per “coniare” un nuovo blocco.

Infine, c’è un’altra caratteristica della blockchain che ne garantisce la sicurezza e cioè la “decentralizzazione”.  Cioè, invece di usare un’unica entità centralizzata per gestire la catena di blocchi, le blockchain usano una rete di computer “peer-to-peer” alla quale chiunque può accedere e partecipare.  Chi si unisce alla rete, diventa un “nodo della rete” ed ottiene una copia completa ed esatta dell’intera blockchain presente in quel momento (copia esatta a quelle contenute in tutti gli altri nodi della rete). Quando qualche nodo della rete riesce per primo a creare un nuovo blocco (vedi questo articolo Bitcoin Mining) questo viene immediatamente inviato a tutti gli altri nodi della rete, i quali verificano i calcoli fatti dal nodo originario. Se il 50%+1 nodo concorda che il nuovo blocco è corretto, questo viene “collegato” alla rete e il registro (ledger) aggiornato (allungamento della rete). Tale registrazione viene duplicata du tutti i “ledger” di ogni singolo nodo della rete, generando in tal modo una duplicazione quasi infinita del registro della rete (duplicazione che appunto serve alla sua sicurezza, indipendenza ed inviolabilità).

Pertanto, se uno (o uin gruppo) di hacker o malintenzionati volesse veramente manomettere una blockchain, dovrebbe:

  1. manomettere tutti i blocchi della catena
  2. ricalcolare la “proof of Work” per ogni blocco manomesso
  3. Assumere il controllo del 50%+1 di tutti i nodi al fine di far accettare la blockchain così modificata

Dati i tempi necessari e soprattutto la quantità di energia necessari per eseguire tale azione, risulta alquanto inverosimile per non dire impossible che un evento del genere possa avvenire.

Ed ecco il motivo per cui le “Blockchain” sono diventate famose per essere le infrastrutture abilitanti per la nascita e sviluppo delle criptovalute, come il Bitcoin (vedi anche questo articolo).

Ma oggi la “blackchain” viene utilizzata per conservare e trasferire in sicurezza qualsiasi tipo di dato, in tantissimi altri settori/industrie con molte altre finalità. Tra queste sicuramente degne di nota sono:

  1. Gli “Smart Contract“, come quelli sviluppati per gli NFT-Non Fungible Token
  2. Sanita: Cartelle Cliniche Decentralizzate
  3. Industri 4.0: Tracciamenti Produttivi
  4. Controllo Autenticità: Certificazione Prodotti e Beni
  5. Intellectual Property: Digital Signature di opere artistiche (canzoni, disegni, fotografie, video, opere d’arte,….)
  6. ……..

In conclusione, un flusso di un’operazione basata su blockchain può essere riassunto nel seguente schema.

 

Fig. 2: Flusso Transazione Blockchain

In estrema sintesi, abbiamo visto come una “blockchain” funziona e quali sono i suoi principali elementi e le sue funzionalità più importanti. Nel prossimo vedremo nel dettaglio come è stata implementata nel caso che ad oggi ha avuto, e continua ad avere, maggior successo: il Bitcoin.

Quindi, come sempre, stay tuned!

Altri articoli rilevanti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *