Le blockchain sono protette tramite una varietà di meccanismi, tra cui tecniche crittografiche avanzate e
modelli matematici comportamentali e decisionali. La tecnologia blockchain è la struttura sottostante di gran parte dei sistemi di criptovaluta ed è ciò che previene la duplicazione o la distruzione di questo tipo di moneta digitale.
L’uso della tecnologia blockchain è attualmente in fase di sviluppo in altri contesti in cui immutabilità e sicurezza dei dati sono molto preziose. Alcuni esempi includono la registrazione e il monitoraggio di
donazioni benefiche, database medici, e gestione di
catene logistiche.
Tuttavia, la sicurezza della blockchain non è certo un argomento semplice. E’ quindi importante comprendere i concetti e i meccanismi di base che conferiscono una solida protezione a questi sistemi innovativi.
I concetti di immutabilità e consenso
Sebbene siano molti gli elementi che contribuiscono alla sicurezza associata alla blockchain, due tra i più importanti sono i concetti di consenso e immutabilità. Il consenso si riferisce alla capacità dei nodi al’interno di un network blockchain distribuito di concordare sullo stato effettivo del network e sulla validità delle transazioni. In genere, il processo per raggiungere il consenso dipende dai cosiddetti
algoritmi di consenso.
L’immutabilità, invece, si riferisce all’abilità delle blockchain di prevenire l’alterazione di transazioni che sono già state confermate. Anche se queste transazioni sono spesso legate al trasferimento di criptovalute, possono anche fare riferimento al registro di altre forme di dati digitali.
Combinati, consenso e immutabilità forniscono la struttura per la sicurezza dei dati nei network blockchain. Mentre gli algoritmi di consenso garantiscono che le regole del sistema vengano seguite e che tutte le parti coinvolte concordino sull’attuale stato del network - l’immutabilità garantisce l’integrità dei dati e dei registri di transazioni dopo che ciascun nuovo blocco di dati viene confermato come valido.
Il ruolo della crittografia nella sicurezza della blockchain
Le blockchain fanno ampio uso della
crittografia per ottenere la loro sicurezza dei dati. Una funzione crittografica che assume estrema importanza in tale contesto è l’hashing. L’hashing è un processo in cui un algoritmo conosciuto come funzione hash riceve un input di dati (di qualsiasi dimensione) e restituisce un output determinato che contiene un valore di lunghezza fissa.
A prescindere dalle dimensioni dell’input, l’output presenta sempre la stessa lunghezza. Se l’input viene modificato, l’output risulterà completamente differente. Tuttavia, se l’input non cambia, la hash risultante sarà sempre la stessa - non importa quante volte viene eseguita la funzione hash.
All’interno delle blockchain, questi valori di output, conosciuti come hash, vengono usati come identificatori unici per i blocchi di dati. La hash di ciascun blocco viene generata in relazione alla hash del blocco precedente, fattore che collega insieme i blocchi, formando quindi una catena. Inoltre, la hash del blocco dipende dai dati contenuti al suo interno, quindi qualsiasi modifica ai dati richiederebbe per forza anche la modifica della hash del blocco.
Di conseguenza, la hash di ciascun blocco viene generata in base sia ai dati contenuti al suo interno che alla hash del blocco precedente. Questi identificatori hash svolgono un ruolo fondamentale nel garantire la
sicurezza e l’immutabilità della blockchain.
L’hashing viene anche sfruttato negli algoritmi di consenso usati per convalidare le transazioni. Nella blockchain di Bitcoin, per esempio, l’algoritmo Proof of Work (PoW) utilizzato per raggiungere il consenso e per il mining di nuove unità sfrutta una funzione hash chiamata SHA-256. Come suggerisce il nome, SHA-256 trasforma i dati di input in una hash lunga 256 bit o 64 caratteri.
Oltre a fornire protezione per le transazioni archiviate sui registri, la crittografia viene usata anche per garantire la sicurezza degli wallet impiegati per conservare unità di criptovaluta. La coppia di chiavi pubblica e privata che consentono agli utenti di ricevere e inviare pagamenti viene creata attraverso l’uso di
crittografia asimmetrica o a chiave pubblica. Le chiavi private vengono usate per generare firme digitali per le transazioni, permettendo di autenticare la proprietà di unità trasferite.
Non è necessario scendere nei dettagli per lo scopo di questo articolo, basti sapere che la natura della crittografia asimmetrica impedisce a chiunque tranne che al possessore della chiave privata di accedere ai fondi conservati in uno wallet di criptovalute, mantenendo quindi tali fondi in sicurezza fino a quando il proprietario decide di spenderli (purché la chiave privata non venga condivisa o compromessa).
Criptoeconomia
Oltre alla crittografia, un concetto relativamente nuovo conosciuto come criptoeconomia ha un ruolo nel mantenere la sicurezza dei network blockchain. Fa riferimento al campo di studi conosciuto come teoria dei giochi, il quale formula matematicamente processi decisionali di attori razionali in situazioni con regole e ricompense predefinite. Mentre la
teoria dei giochi tradizionale può essere applicata a un’ampia gamma di casi, la criptoeconomia modella e descrive nello specifico il comportamento di nodi all’interno di sistemi blockchain distribuiti.
In breve, la criptoeconomia è lo studio dell’aspetto economico proprio di protocolli blockchain e dei possibili risultati che la loro progettazione potrebbe presentare in base al comportamento dei partecipanti. La sicurezza tramite la criptoeconomia si basa sulla nozione secondo cui i sistemi blockchain offrono incentivi migliori ai nodi che agiscono onestamente invece di adottare comportamenti malevoli o scorretti. Di nuovo, l’algoritmo di consenso Proof of Work utilizzato nel
mining di Bitcoin offre un ottimo esempio di questa schema di incentivi.
Quando
Satoshi Nakamoto ha creato la struttura per il mining di Bitcoin, il processo è stato concepito intenzionalmente come costoso e dispendioso in termini di risorse. A causa della sua complessità e delle sue esigenze computazionali, il mining PoW comporta un considerevole investimento di tempo e denaro - a prescindere da dove si trova il nodo di mining. Di conseguenza, questa struttura pone un forte disincentivo alle azioni malevoli e incentivi notevoli per le attività di mining oneste. I nodi disonesti o inefficienti vengono espulsi rapidamente dal network della blockchain, mentre i miner onesti ed efficienti hanno il potenziale di ricevere sostanziali ricompense per i blocchi.
Analogamente, questo equilibrio di rischi e ricompense garantisce anche la protezione da potenziali attacchi che mirano a compromettere il consenso accumulando la maggioranza dell’hash rate di un network blockchain nelle mani di un singolo gruppo o entità. Tali attacchi, conosciuti come
51 percent attack, potrebbero essere estremamente dannosi se eseguiti con successo. A causa della competitività del mining Proof of Work e della grandezza del network di Bitcoin, la probabilità che un soggetto malintenzionato riesca ad ottenere il controllo della maggioranza dei nodi è davvero minima.
Inoltre, il costo della potenza computazionale necessaria per ottenere il 51 percento del controllo di un enorme network blockchain sarebbe astronomico, ponendo un disincentivo immediato a un tale enorme investimento per una potenziale piccola ricompensa. Questo fattore contribuisce alla caratteristica delle blockchain conosciuta come
Byzantine Fault Tolerance (BFT), essenzialmente la capacità di un sistema distribuito di continuare ad operare normalmente anche se alcuni nodi vengono compromessi o agiscono in modo disonesto.
Finchè il costo legato allo stabilire una maggioranza di nodi disonesti rimane proibitivo ed esistono incentivi migliori per l’attività onesta, il sistema sarà in grado di prosperare senza disturbi significativi. Occorre sottolineare, tuttavia, che i network blockchain più piccoli sono indubbiamente suscettibili agli attacchi descritti sopra, dato che la totale hash rate dedicata a questi sistemi è notevolmente inferiore a quella di Bitcoin.
In chiusura
Attraverso l’utilizzo combinato di teoria dei giochi e crittografia, le blockchain sono in grado di raggiungere alti livelli di sicurezza come sistemi distribuiti. Tuttavia, come per quasi tutti i sistemi, è fondamentale che questi due campi di conoscenza vengano applicati adeguatamente. Un equilibrio accurato tra decentralizzazione e sicurezza è vitale per lo sviluppo di un network di criptovaluta affidabile ed efficace.
Man mano che i casi d’uso della blockchain continuano ad evolversi, anche i sistemi di sicurezza si svilupperanno per rispondere alle esigenze di varie applicazioni. Le blockchain private attualmente in fase di sviluppo per imprese commerciali, ad esempio, fanno maggiore affidamento sulla sicurezza tramite il controllo degli accessi invece di basarsi sui meccanismi di teoria dei giochi (o criptoeconomia) che sono indispensabili per la sicurezza di gran parte delle blockchain pubbliche.