Blockchain_chain_red
adv

Abbiamo visto cos’è una blockchain ma perché è un sistema sicuro ?

L’unione fa la forza

Le architetture Centralized Ledger, con un unico database centrale, sono facilmente attaccabili:

  • c’è un solo server o comunque un insieme ridotto di essi da colpire

  • per lo stesso motivo tale architettura è anche passibile di manomissione

  • l’errore umano di inserimento o cancellazione sul server affliggerà tutti, in quanto la conoscenza è nelle mani di quell’unico database ormai modificato

L’architettura Blockchain risolve questi problemi in quanto:

  • lo stesso database è in possesso di tutti gli utenti, bisognerebbe modificare tutti, o almeno una gran parte dei database presenti su tutti i computer dei partecipanti, cosa virtualmente impossibile dato che questi non sono pubblici.

  • grazie all’hash non è possibile manomettere un blocco perché verrebbe rifiutato dalla validazione globale.

  • eventuali errori non affliggerebbero tutti perché il blocco è immutabile.

Il consenso

Come visto in precedenza, per aggiungere un blocco è necessaria una validazione da parte degli altri utenti. Cosa succede, però, in caso di ritardi della rete, se si verificano diverse transazioni presentate con ordini differenti? Per gestire l’inserimento del blocco ci si “mette d’accordo” con un meccanismo di consenso stabilito dalla Blockchain.

Esistono vari algoritmi per risolvere la situazione, il più comune, Proof of Work (PoW), usato anche da Bitcoin, prevede la risoluzione, da parte di ogni utente, detto miner, di un gioco matematico legato alla propria versione del registro: il più veloce sarà quello abilitato ad aggiungere la propria versione, dunque, il blocco. Il “vincitore” sarà premiato con un compenso che dipende dalla rete (e.g.: in Bitcoin).

In caso di errore, invece, ci sarà il rifiuto della versione.

Algoritmi di consenso

Algoritmi come PoW richiedono circa 10 minuti per l’esecuzione, pertanto, se ne stanno diffondendo altri più rapidi. Tra i più noti ci sono Proof of Elapsed Time (PoEF), Practical Byzantine Fault Tolerance (PBFT) Proof of Stake (PoS).

Data la complessità computazionale, ad ogni modo, per un malintenzionato voler imporre la propria versione del registro più volte sarebbe molto oneroso in termini di macchine da utilizzare e corrente.

Se si vede il gioco matematico come una tombola, i computer a disposizione sono le cartelle, dunque, più potenza di calcolo si ha a disposizione, più è probabile la vincita ma per ciascuna cartella si paga.

Bitcoin, solo un uso delle Blockchain

Su internet in realtà non inviamo file ma copie di esso, il problema dei Bitcoin era evitare che si pagasse due volte con la stessa “moneta virtuale” (problema del double spending). L’hashing che determina il nome unico della cripto-valuta usata ed il registro che rende pubbliche tutte le transazioni fa sì che ciò non avvenga. Sebbene pubbliche le transazioni restano anonime in quanto il nome dell’utente è un codice hash, Bitcoin usa la chiave pubblica dell’utente e non richiede dati di collegamento alla persona fisica.