algoritmo di consenso Blockchain

Quando parliamo di Blockchain, spesso ci riferiamo a una serie di blocchi che compongono una rete e a un processo decentralizzato, sicuro e affidabile. Tuttavia, la Blockchain deve avere un algoritmo di consenso per proteggere la Blockchain e renderla affidabile.

Ma cos’è l’algoritmo di consenso Blockchain e perché è necessario? Come funziona e quali sono le sue caratteristiche ? Queste domande verranno affrontate nell’articolo di seguito.

Cos’è l’algoritmo di consenso Blockchain?

Come è noto in inglese, “consensus” significa accordo, armonia, intesa o consenso. Pertanto, un algoritmo di consenso è un processo per trovare un accordo su un singolo valore di dati tra processi o sistemi distribuiti. Questi algoritmi sono progettati per garantire l’affidabilità di una rete che coinvolge molti nodi non affidabili.

Si tratta dell’accordo di ciascun attore della rete Blockchain per concordare la creazione e la sequenza di ciascun blocco.

Una Blockchain è generalmente indipendente da un’unica azienda o persona poiché funziona attraverso l’alleanza di molti attori. Ogni attore partecipa a garantire la rete verificando che ogni transazione e interazione siano possibili e che nessun altro attore o partecipante cerchi di imbrogliare a spese degli altri.

Questo tedioso processo di verifica garantisce che la cronologia delle transazioni della Blockchain sia corretta e immune da manipolazioni. Tutti gli attori devono concordare per convalidare una voce nel registro Blockchain, chiamato algoritmo di consenso.

Come funziona l’algoritmo di consenso Blockchain?

Poiché consentono a un gruppo di macchine o server decentralizzati di cooperare e concordare sullo stato del sistema, anche in caso di guasti o interruzioni, gli algoritmi di consenso sono essenziali nei sistemi di grandi dimensioni e tolleranti ai guasti. L’algoritmo stabilisce una soglia o il numero minimo di macchine partecipanti per raggiungere questo obiettivo.

Essi affrontano un problema di consenso, assumendo che una frazione dei nodi risponderà e che alcuni sistemi e processi saranno indisponibili. Si presume anche che alcuni errori di trasmissione comportino la perdita di comunicazioni. Tuttavia, è necessario che i nodi accessibili rispondano.

Ecco un esempio: perché un algoritmo raggiunga un consenso su un valore di dati o uno stato di rete, almeno il 51% dei nodi potrebbe dover rispondere. Ciò garantisce che si raggiunga un accordo con il minor numero di risorse possibili, anche se le altre risorse sono insufficienti o difettose. Inoltre, il processo sostiene la legittimità delle decisioni prese dai nodi concordi nella zona dei guasti.

Perché serve un algoritmo di consenso Blockchain?

Uno dei problemi associati alla Blockchain è la mancanza di sincronizzazione dei dati. Pertanto, la Blockchain ha bisogno di un algoritmo di consenso per risolvere le differenze tra i nodi e garantire che alla fine ci sia una sola copia, quella principale (che è anche la copia valida del registro), servita da tutti i nodi.

Un altro problema è che alcuni nodi potrebbero essere gestiti da attori malintenzionati e generare dati falsi con la speranza che finiscano sulla Blockchain e benefici per loro stessi. Pertanto, è necessario un algoritmo di consenso Blockchain per scoraggiare questo comportamento.

L’algoritmo di consenso utilizza i voti della maggioranza per raggiungere un consenso, il che è vantaggioso per tutti coloro che utilizzano la rete Blockchain. Grazie a questo, l’uso dei metodi di consenso aiuta a ottenere risultati migliori nei sistemi distribuiti in cui possono verificarsi risultati contrastanti.

Questi problemi sopra evidenziati sono spesso chiamati problemi generali bizantini, il che rende difficile raggiungere un consenso. Un singolo errore fa sì che tutti i nodi siano incapaci di concordare, rendendo le cose più complicate. Pertanto, la decentralizzazione della Blockchain utilizza algoritmi di consenso, che sono essenziali per mantenere la sicurezza e l’integrità di una rete di criptovalute.

Schema dei problemi generali bizantini
Crediti: ElectroYou

Forniscono ai nodi distribuiti un modo per concordare su quale copia della Blockchain sia autentica. Perché un sistema economico digitale funzioni correttamente, è necessario un consenso sullo stato della Blockchain.

Obiettivo dell’algoritmo di consenso Blockchain

I vari obiettivi dell’algoritmo di consenso Blockchain sono evidenziati di seguito. Essi comprendono, ma non sono limitati a quanto segue:

  • Allineamento degli incentivi economici

Allineare gli interessi dei partecipanti alla rete è essenziale quando si crea una piattaforma senza fiducia che si autoregola.

In questo caso, un meccanismo di consenso Blockchain incoraggia il comportamento corretto e penalizza il comportamento scorretto. Ciò garantisce anche la regolamentazione degli incentivi economici.

  • Accordo unificato

Il consolidamento del consenso è uno degli obiettivi principali dei processi di consenso. Gli utenti nei sistemi decentralizzati possono funzionare anche senza sviluppare fiducia reciproca, a differenza dei sistemi centralizzati in cui tale fiducia è fondamentale. Inoltre, i protocolli della rete Blockchain decentralizzata assicurano l’affidabilità e l’autenticità dei dati utilizzati nel processo e lo stato corrente del registro pubblico.

  • Tolleranza agli errori

Il metodo di consenso garantisce anche la coerenza, l’affidabilità e la tolleranza agli errori della Blockchain. Ciò significa che il sistema regolato continuerà a funzionare anche in presenza di guasti e rischi.

Attualmente sono in uso molti algoritmi di consenso Blockchain, e ne verranno presto lanciati molti altri. Questo implica che ogni azienda di software Blockchain e ogni imprenditore aspirante debbano essere informati sulle caratteristiche di un solido protocollo di consenso e sulle potenziali conseguenze della scelta di uno scadente.

  • Equità e uguaglianza

I procedimenti di consenso consentono a chiunque di partecipare al sistema utilizzando gli stessi fondamenti. Ciò supporta le caratteristiche open-source e decentralizzate del sistema Blockchain.

  • Prevenzione delle spese duplicate

I meccanismi di consenso operano sulla base di algoritmi specifici che garantiscono che siano registrate solo transazioni verificate e legittime nel trasparente registro pubblico. Ciò risolve l’antico problema della doppia spesa o dell’uso di una valuta digitale più di una volta.

Tipi di algoritmi di consenso

Nelle reti Blockchain, esistono diversi tipi di algoritmi di consenso per raggiungere un consenso in modo distribuito. Tuttavia, ne discuteremo tre: il Proof of Work (PoW), il Proof of Stake (PoS) e l’Accordo Bizantino Federato (FBA).

Proof of Work (PoW)

È stato creato per la prima volta da Cynthia Dwork e Moni Naor nel 1993 e riavviato da Satoshi Nakamoto (noto anche come lo sviluppatore di Bitcoin) nel 2008. È uno degli algoritmi di consenso più antichi e utilizzati.

Markus Jakobsson e Ari Juels utilizzarono il termine “proof of work” in un libro nel 1999. Anche se è l’algoritmo di consenso più affidabile e attendibile, presenta molte problematiche legate alla scalabilità. Ethereum, Bitcoin e altre Blockchain open-source impiegano tutte il PoW.

Il PoW cerca di generare il maggior numero possibile di proiezioni nel minor tempo possibile, utilizzando nodi per risolvere complessi problemi matematici.

L’algoritmo di consenso PoW utilizza il processo di mining per convalidare una transazione. Il meccanismo di consenso Proof of Work, che richiede calcoli computazionalmente complessi, aggiunge nuovi blocchi alla Blockchain di Bitcoin. L’azione è chiamata “mining“, e i nodi di rete che partecipano al mining sono chiamati “minatori”.

I validatori, noti anche come minatori o attori di nodi nel processo di proof of work, devono dimostrare che il lavoro svolto e inviato dà loro il diritto di aggiungere nuovi elementi alla rete Blockchain.

Per farlo, i minatori devono risolvere gli enigmi matematici del nuovo blocco prima di inviarli al database. La soluzione viene quindi inviata ad altri validatori per la revisione prima di approvare le copie del registro.

L’utilizzo della verifica del Proof of Work (PoW) per ogni transazione aiuta la rete Blockchain a prevenire la doppia spesa. In altre parole, se qualcuno cerca di duplicare una transazione nella rete Blockchain, il sistema la rileverà e non la accetterà. Pertanto, una volta che una transazione è stata verificata e approvata da tutti i partecipanti ai nodi, nessuno può modificarla.

Il più popolare consenso di proof-of-work è stato implementato per la prima volta come parte di Bitcoin ed è basato su SHA-256. Sono inclusi anche Scrypt, SHA-3, Scrypt-jane, Scrypt-n e altri.

Proof of Stake (PoS)

Uno stake è l’importo di denaro o valore su cui scommettiamo che avverrà. La procedura è chiamata staking. Questo metodo di raggiungere un consenso è stato inizialmente proposto da un meccanico quantistico e successivamente pubblicato da Sunny King e un collega. Di conseguenza, è stata creata la criptovaluta basata su Proof-of-Stake (PoS) chiamata Peercoin.

Algoritmo di consenso Blockchain nella PoS. Homepage di Peercoin
Crediti: Peercoin

Il PoS è un’alternativa più ecologicamente sostenibile al PoW che richiede meno potenza di elaborazione della CPU per il mining. Di conseguenza, il PoS è spesso considerato l’alternativa più ecologica rispetto al PoW.

Il PoS e il PoW hanno obiettivi simili ma processi diversi. In PoS, noto anche come Stake, il creatore di un nuovo blocco è scelto in modo deterministico in base alla ricchezza, a differenza del PoW, in cui un minatore deve risolvere enigmi matematici complessi per creare un nuovo blocco.

Inoltre, il PoS risparmia tempo ed energia. Ma i partecipanti devono investire in Stake per diventare validatori (investire denaro). Inoltre, poiché non ci sono premi per i minatori nel sistema, possono conservare le spese di transazione.

In breve, i validatori investiranno in valute della rete e bloccheranno parte di esse come stake invece di spendere denaro per costose tecnologie per risolvere enigmi complicati. Ad esempio, se trovano un blocco che può essere collegato alla stessa rete, i validatori scommetteranno su di esso, convalidando i blocchi nel processo.

Federated Byzantine Agreement (FBA)

Il Federated Byzantine Agreement (FBA) è un altro algoritmo di consenso Blockchain utilizzato nelle reti Blockchain. L’FBA supporta l’adesione aperta, consentendo ai validatori di unirsi liberamente alla rete. È noto per la sua elevata capacità di transazione, scalabilità e bassi costi di transazione.

Un gruppo specifico di firmatari deve firmare una transazione. In un sistema FBA, i validatori possono scegliere di quali altri validatori fidarsi, formando così ciò che è noto come “quorum slice“.

In un sistema con molti validatori, possono esserci più quorum slice, e con numerosi quorum slice si verifica un sovrapporsi con alcuni nodi di fiducia in vari slice. Questi sovrapposizioni si uniscono per formare il quorum globale, che viene utilizzato per raggiungere un consenso nell’FBA. Progetti notevoli che utilizzano l’FBA nelle reti Blockchain sono Ripple (XRP) e Stellar (XLM).

Alcuni vantaggi dell’FBA includono quanto segue:

  • Bassa soglia d’ingresso poiché l’adesione è aperta a condizione che si possa fidarsi e unirsi a un quorum slice.
  • Chiunque può unirsi e uscire in qualsiasi momento, e il sistema continua comunque a funzionare.
algoritmo di consenso Blockchain

Caratteristiche di un buon algoritmo di consenso Blockchain

Un buon algoritmo di consenso Blockchain non dovrebbe mancare delle seguenti caratteristiche:

  • Inclusività

Garantisce che ogni nodo della rete sia attivo nel processo di voto.

  • Egalitarietà

Ogni voto ricevuto dal nodo ha lo stesso valore e peso.

  • Sicurezza

Tutti i nodi possono generare risultati accurati secondo le regole del protocollo.

  • Partecipazione

Tutti i nodi partecipano attivamente e contribuiscono all’aggiornamento del database Blockchain. Questo è considerato un modello di consenso solido.

  • Liveness

Se ogni nodo difettoso coinvolto nel consenso produce alla fine un valore, l’algoritmo di liveness è garantito.

  • Tolleranza e Non-Repudiazione

Un algoritmo di consenso fornisce la tolleranza ai guasti se può recuperare spesso da un guasto o partecipare a un consenso. Un buon algoritmo di consenso fornisce anche i mezzi per verificare che il presunto mittente abbia inviato il messaggio.

  • Consumo di Energia

L’uso di calcoli ad alto consumo energetico era fondamentale per il PoW, e con l’aumento rapido del numero di nodi di consenso, aumentava anche il consumo di energia. Pertanto, il consumo energetico è diventato un fattore cruciale per la progettazione del consenso Blockchain, poiché diversi metodi di consenso emersi dopo il PoW di Bitcoin avevano lo scopo di superare questo problema.

  • Sincronicità

Il momento in cui i nodi di consenso raggiungono un accordo è chiamato sincronicità. Le situazioni minime consentono di assicurare che i messaggi saranno ricevuti entro un determinato momento. Ad esempio, la connessione internet di un nodo potrebbe subire un temporaneo rallentamento o addirittura andare offline, disconnettendolo, o i cavi fisici che collegano i computer potrebbero essere riconfigurati, aumentando il ritardo. Pertanto, gli eventi devono verificarsi simultaneamente.

Conclusione

Le reti Blockchain saranno in grado di funzionare correttamente e raggiungere una completa decentralizzazione solo con algoritmi di consenso. Ovviamente, non esiste un approccio unico per confermare e autenticare la legittimità della Blockchain. Tuttavia, non sarebbe sbagliato dedurre che ciascuno di questi algoritmi mira a raggiungere un consenso nella rete Blockchain distribuita.

Per la tecnologia Blockchain sono stati sviluppati vari algoritmi raccomandati, e per utilizzare la Blockchain in modo efficace, dovremmo essere consapevoli di tutti loro. Pertanto, la nostra massima priorità è trovare l’algoritmo iniziale e ottimale per le nostre iniziative Blockchain.

Il tipo di meccanismo di consenso da aggiungere alla tua piattaforma aziendale dipende dalla funzionalità che la piattaforma deve fornire.

A presto,

Scaling Parrots

algoritmo di consenso Blockchain

Condividi questo articolo

Consulenza gratuita blockchain, attivi dal 2018, 40+ progetti, 20+ membri del team, 5 stelle su google reviews, bottone per richiedere una consulenza