L’importanza degli algoritmi di consenso per la sicurezza della blockchain

La blockchain per definizione è un registro pubblico e distribuito tra tutti i partecipanti alla rete, chiamati convenzionalmente nodi.

Le blockchain sono, convenzionalmente, pubbliche come lo è appunto la prima blockchain, quella di Bitcoin. Queste tipologie di blockchain sono basate sui meccanismi della teoria dei giochi e crittografia, che sono indispensabili per garantire la sicurezza di gran parte delle blockchain pubbliche.

Nelle blockchain pubbliche tutte le transazioni sono pubbliche, trasparenti e i dati immessi non possono essere alterati. Non ci sono restrizioni su chi possa prendere parte alla rete. Chiunque può leggere, scrivere o partecipare. 

Per validare le modifiche da effettuare al registro, in assenza di un ente centrale, i nodi devono raggiungere il consenso, ovvero questi nodi devono essere concordi. Infatti i dati contenuti in un blocco non possono essere alterati in maniera retroattiva senza che vengano modificati tutti i blocchi successivi. 

Il consenso si riferisce alla capacità dei nodi all’interno di un network blockchain di concordare sullo stato effettivo del registro distribuito e sulla validità delle transazioni. In genere, il processo per raggiungere il consenso dipende dai cosiddetti algoritmi di consenso.

I due principali algoritmi utilizzati nelle reti blockchain sono l’algoritmo di Proof of Work e l’algoritmo di Proof of Stake.

Sicuramente l’algoritmo Proof of Work è il più conosciuto poichè è quello utilizzato nella blockchain di Bitcoin e Ethereum. 

Per Proof of Work (prova di lavoro)  si intende l’algoritmo che viene utilizzato da diverse blockchain per raggiungere un consenso distribuito tra diversi nodi nel processo di aggiunta di un blocco specifico alla blockchain.

L’algoritmo PoW richiede una potenza computazionale molto elevata, e di conseguenza un grosso dispendio energetico nel tentativo di riuscire a risolvere un problema matematico complesso, ma semplice da verificare. 

A fronte dell’elevato dispendio energetico, i miners che risolvono il problema matematico e di conseguenza convalidano un blocco, vengono ricompensati con delle rewards per ogni blocco minato.

Il problema matematico e la sua complessità scoraggiano attacchi e azioni malevole alla rete da parte di uno o più partecipanti, infatti se si comunica una soluzione non corretta il blocco non verrà aggiunto alla catena dagli altri nodi causando un dispendio di risorse energetiche rilevante.

Il secondo algoritmo più utilizzato, visto anche come alternativa al PoW, è l’algoritmo di Proof of Stake (prova di puntata). 

Con questo algoritmo di consenso, la validazione dei blocchi non viene effettuata con la risoluzione di un problema matematico, ma con un meccanismo che si basa sulla possibilità per i partecipanti al network di poter validare un blocco mettono in stake delle proprie criptovalute. Maggiore è la quantità di criptovalute posseduta da un utente (stake), più alta è le probabilità che non si stia violando il sistema. I blocchi nelle blockchain basate su algoritmi di consenso Proof of Stake vengono coniati e non minati, i partecipanti che possiedono uno stake vengono selezionati su base pseudocasuale per coniare i blocchi e aggiungerli alla blockchain.

Il protocollo di consenso rappresenta dunque l’elemento vitale principale della blockchain. 

È proprio da questo che dipendono sostanzialmente la velocità della catena e la sua sicurezza. Le modalità con cui si raggiunge il consenso e la struttura del registro sono alcune delle caratteristiche che connotano le diverse blockchain.

Come è giusto tenere in considerazione la sicurezza, è di vitale importanza anche la decentralizzazione di un network blockchain, aspetto non del tutto scontato, che può invalidare la mission dell’ideologia blockchain, ovvero essere un registro pubblico e distribuito.

Un equilibrio accurato tra decentralizzazione e sicurezza è essenziale per lo sviluppo di un network affidabile ed efficace.