Caricamento...

Consenso: o i tipi di consenso che dovresti conoscere

blockchain

Contenuti

Condividi il link:

Quando il termine “blockchain” viene menzionato in qualche contesto, di solito va di pari passo con il termine complesso “algoritmo di consenso”. La maggior parte dei lettori non pensa nemmeno di prendersi la briga di ricercare cosa sia un algoritmo di consenso. In effetti, la maggior parte non sa nemmeno a cosa serve un algoritmo nel contesto blockchain. Tuttavia, esistono dozzine di tipi di algoritmi e la maggior parte di essi viene utilizzata nel mondo blockchain.

L’idea di consenso significa arrivare a una posizione unitaria su un problema. In informatica, un consenso è legato a un problema di consenso. Il problema fondamentale nel calcolo distribuito e nei sistemi multi-agente è raggiungere l'affidabilità complessiva del sistema in presenza di una serie di processi difettosi. Ciò spesso richiede che i processi concordino su alcuni dati necessari durante il calcolo. La blockchain è segnata dallo stesso problema e scienziati e programmatori hanno escogitato modi per risolverlo.

In sostanza, un algoritmo è una serie di passaggi analizzati, programmati e necessari per ottenere un determinato risultato. L’algoritmo di consenso, ergo, significa intraprendere le azioni necessarie per raggiungere un accordo su una singola questione. Nel mondo blockchain, questa singola questione significa raggiungere un accordo sul calcolo di un blocco da parte di tutti i partecipanti alla rete in modo che possa essere sottoposto ad hashing.

Nel mondo Blockchain

Quando si tratta di blockchain, l’algoritmo di consenso può avere diversi risultati come obiettivo principale di tutti i partecipanti alla rete. Gli scopi più comuni dell’algoritmo sono i seguenti:

  • Accordo: il meccanismo di consenso raccoglie tutti gli accordi del gruppo dei partecipanti alla rete.
  • Collaborazione: ogni membro del gruppo mira a raggiungere un accordo migliore che corrisponda all'interesse del gruppo nel suo insieme.
  • Cooperazione: ogni individuo lavora come parte di una squadra e mette da parte i propri interessi per il bene comune.
  • Uguali diritti: ogni partecipante ha lo stesso valore nel processo di voto. Con un approccio di questo tipo, ogni voto conta, poiché senza nemmeno un singolo voto il consenso non potrà passare.
  • Partecipazione: tutti all'interno della rete devono partecipare al processo di voto. Nessuno sarà escluso o potrà restare fuori dal voto, poiché ciò interromperebbe il funzionamento dell'algoritmo.
  • Attività: ogni membro del gruppo è ugualmente attivo. La responsabilità nel gruppo è condivisa equamente tra tutti i partecipanti.

Tipi

È un dato di fatto, attualmente sono disponibili oltre 30 tipi di algoritmi di consenso. Quelli più comuni sono i seguenti:

  • Prova di lavoro
  • Prova di puntata
  • Proof-of-Stake delegata
  • Prova di autorità
  • Tolleranza agli errori bizantini
  • Tolleranza ai guasti bizantini delegati (dBFT)

E così via e così via. L’elenco può essere continuato all’infinito, ma resta il fatto che tutti gli algoritmi qui menzionati e tutti gli altri che non rientrano nel materiale fornito servono a scopi altrettanto importanti, che ruotano attorno al raggiungimento del consenso. L’unica cosa che cambia è il metodo utilizzato per raggiungerlo.

La Hall of Fame

Naturalmente i tipi più popolari di algoritmi di consenso sono il Proof-of-Work e il Proof-of-Stake, che sono emersi insieme alla blockchain come primogenito.

La prova di lavoro è il tipo di consenso più antico sulla blockchain ed è in circolazione dall'inizio del 2003 con la nascita di Bitcoin ed è in fase di test dal 2009. Sebbene non sia nuovo, l'algoritmo ha ricevuto nuova vita con Satoshi Nakamoto. Secondo il metodo da lui proposto, i partecipanti alla blockchain (i minatori) devono risolvere un problema computazionale complesso e assolutamente inutile in modo che un blocco di transazioni possa essere aggiunto alla blockchain. I problemi con questo approccio sono numerosi. È lento, richiede molta energia, è dannoso per l’ambiente ed è suscettibile alle economie di scala.

Il prossimo è il concetto di Proof of Stake. Questo approccio è emerso come alternativa a quest’ultimo e propone che invece di utilizzare il mining per trac blocchi, i partecipanti alla rete debbano avere delle quote sotto forma di monete nel sistema per poter partecipare al processo. Possedere una quota del 10% garantisce la probabilità di estrarre il blocco successivo al 10%. Più monete possiede il proprietario della puntata, maggiore è la possibilità che trac il blocco. Anche l’approccio è imperfetto, poiché è incline al problema del “nulla in gioco”. Tuttavia, richiede meno energia, non è suscettibile di economie di scala ed è meglio protetto dagli attacchi.

Indipendentemente dall’approccio utilizzato per raggiungere il consenso, i problemi sono ancora in gran parte gli stessi e si ripercuotono da uno all’altro. I maggiori problemi che devono affrontare tutti i modelli di consenso sono i seguenti:

Il consumo energetico è di gran lunga il problema più grande del funzionamento della blockchain. Ad esempio, Bitcoin ha 20 miliardi di hash al secondo. Ciò richiede immense quantità di energia e al momento non esistono alternative energetiche a basso costo per soddisfare la sete di energia delle moderne blockchain.

La centralizzazione dei minatori e delle reti PoW è un altro problema poiché i grandi produttori possono iniziare a richiedere più potenza per operare e cercheranno di infrangere le regole del sistema minerario o addirittura di emetterne di nuove per soddisfare le loro richieste. Il risultato è la centralizzazione all’interno di una rete decentralizzata. Se la centralizzazione prende piede, il sistema non è più una blockchain e non ha senso il consenso.

Gli attacchi alla rete sono ancora diffusi e gli hacker non vanno da nessuna parte. Un attacco del 51% è fattibile e non vi è alcuna garanzia che possa non verificarsi. Se gli aggressori si impossessano della posta in gioco, è solo questione di tempo e potenza di calcolo finché non riusciranno a controllare più della metà di tutti i nodi e a trasformare la rete in una fonte di guadagno per loro stessi.

Dentro il nuovo

I problemi dei precedenti algoritmi di consenso sono stati accuratamente esaminati e ricercati per consentire ai programmatori di raggiungere nuovi modelli di consenso.

Uno dei modelli più nuovi e promettenti per blockchain è il Proof-of-Agreement, un altro algoritmo di consenso utilizzato dalla piattaforma Credits . È un concetto piuttosto semplice che a prima vista sembra complicato ma è efficace per raggiungere il consenso. L'intera procedura per il consenso consiste nella formazione delle transazioni e nella loro distribuzione tra i nodi della rete e nell'esecuzione ciclica dei round in cui ai nodi fidati (TN) viene concessa l'autorità di condurre il consenso, che si traduce in una risoluzione comune che include le transazioni in un blocco e la sua generazione. I pacchetti di transazioni includono un numero ordinato di transazioni (fino a 500) e ricevono un'intestazione che contiene un hash calcolato con l'algoritmo Blake2s. Una volta che i nodi ricevono l'elenco dei pacchetti di transazioni contenuti nella tavola rotonda, iniziano a verificare la disponibilità di tali pacchetti nel buffer locale. Se mancano alcuni pacchetti, viene avviato il processo di sincronizzazione. Un nodo richiede i pacchetti mancanti ai suoi nodi vicini e se i pacchetti mancano anche su quei nodi, quei vicini richiedono i pacchetti ai loro vicini e il processo viene ripetuto finché non vengono trovati i pacchetti mancanti. La disponibilità di tutti i pacchetti di transazioni contenuti nella tavola rotonda su tutti i nodi fidati è la condizione per l'inizio di un round. Dopo che tutti i nodi della rete hanno rilasciato i pacchetti di transazioni e li hanno scambiati tra loro, è necessario selezionare i nodi responsabili dell'esecuzione del consenso e tali nodi dovranno convalidare le transazioni e generare un blocco. La formazione di blocchi semplice ed efficace con il pieno coinvolgimento di tutti i nodi con la possibilità di implementazione nelle reti pubbliche è lo scopo di un simile algoritmo di consenso.

Il prossimo algoritmo promettente è LibraBFT Consensus di Facebook. LibraBFT migliora HotStuff e lo adatta per un uso più ampio. Libra è un algoritmo di consenso di tipo Byzantine Fault Tolerance, basato su HotStuff ed è un sistema di replica della macchina a stati robusto ed efficiente progettato per la Blockchain di Libra. LibraBFT è un miglioramento di HotStuff con l'implementazione del meccanismo Pacemaker. Include l'analisi della vitalità che consiste in limiti concreti all'impegno della transazione. In LibraBFT i processi sono chiamati Validatori. Ciascuno di questi ultimi funziona a turni, ognuno dei quali ha un validatore designato chiamato leader. I leader propongono nuovi blocchi e ricevono voti firmati dai validatori riguardo alle proposte per la generazione dei blocchi. Un round è semplicemente una fase di comunicazione con un unico leader designato e le proposte dei leader sono organizzate in una catena utilizzando hash crittografici. Quando viene lanciato un round, il leader propone un blocco che estende la catena più lunga che ha a sua disposizione. Se la proposta è valida e tempestiva, ogni nodo onesto la firmerà e invierà un voto al leader. Una volta che ci sono abbastanza voti per raggiungere il quorum, il leader aggrega i voti in un Quorum Certificate (QC) che estende nuovamente la stessa catena e il QC viene trasmesso a ogni nodo. Se il leader non riesce a mettere insieme un QC, i partecipanti passeranno al turno successivo.

Ormai la Blockchain di Libra è stata lanciata come rete autorizzata. I validatori fondatori includono aziende come Uber, Visa, MasterCard, PayPal, ecc. Tutti i fondatori aderiscono a rigide linee guida per essere i primi validatori. Ad esempio, gli hedge fund di criptovaluta dovevano avere un AUM superiore a 1 miliardo di dollari, mentre i custodi focalizzati sugli asset digitali dovevano archiviare almeno 100 milioni di dollari. Le aziende non crittografiche dovevano avere una capitalizzazione di mercato superiore a 1 miliardo di dollari o saldi clienti superiori a 500 milioni di dollari.

Un altro algoritmo di consenso è Proof of Elapsed Time, inventato all'inizio del 2016 da Intel e testato con successo da Hyperledger Sawtooth 1.1.

Il principio di funzionamento è piuttosto semplice poiché ciascun nodo della rete attende per un periodo di tempo scelto casualmente. Il primo nodo a trascorrere il tempo di attesa vince il diritto di emettere il blocco successivo. Ogni nodo della rete genera intervalli di tempo di attesa casuali e viene disattivato in modalità dormiente per un tempo specificato. Il nodo che si sveglia, e quello con il tempo di attesa più breve, aggiunge un nuovo blocco alla blockchain e trasmette i dati su tutta la rete. Il processo viene ripetuto finché non viene trovato il blocco successivo. I vantaggi di un tale algoritmo sono i bassi costi di partecipazione, la semplice verifica della legittimità e i bassi costi di controllo della verifica e dell’elezione. Ci sono anche degli svantaggi, come la necessità di hardware specializzato e il fatto che sia inutile per le reti pubbliche. Nel complesso

La varietà di algoritmi di consenso rendono le blockchain versatili e adattabili a varie applicazioni e strutture. Sebbene vulnerabili agli attacchi, spesso ingombranti e altamente inefficienti dal punto di vista energetico, le blockchain sono ancora qui per restare ed è solo questione di tempo prima che l’uno o l’altro algoritmo batta gli altri nella corsa all’efficienza. Forse, uno degli algoritmi nella lunga lista di quelli oscuri e meno conosciuti sarà quello che spodesterà PoW e PoS nel prossimo futuro.

Condividi il link:

I più letti

Caricamento degli articoli più letti...

Rimani aggiornato sulle notizie crittografiche, ricevi aggiornamenti quotidiani nella tua casella di posta

Notizie correlate

Criptopolita
Iscriviti a CryptoPolitan