Cos’è un algoritmo di consenso?

What is a consensus algorithm

By Anycoin Direct

Quando vedi termini come questi per la prima volta, potresti andare in confusione. Un algoritmo di consenso? Cosa diavolo è? Dopo questa lezione, non solo saprai cos’è, ma anche quali forme prende.

Breve riassunto

✔️ Consenso nel contesto delle criptovalute significa concordare lo stato di una blockchain.

✔️ Un algoritmo è un modo per risolvere un problema matematico o informatico.

✔️ Un algoritmo di consenso assicura che i validatori lavorino insieme per garantire un nuovo blocco corretto in una blockchain.

Algoritmo di consenso

Un algoritmo di consenso consiste in due parole, la prima delle quali è facile da spiegare. Consenso significa accordo, o raggiungere un accordo.

Nel contesto delle criptovalute,  consenso significa accordarsi sullo stato di una blockchain.

E qui inizia la parte complicata. Tutti conoscono la parola algoritmo, ma cosa significa esattamente?

Un algoritmo è un modo di risolvere un problema matematico o relativo all’informatica. Implica il lavoro da uno stato iniziale a un obiettivo finale applicando istruzioni definite in maniera unica. Piuttosto complicato. Rendiamo tutto più semplice!

L’obiettivo di un algoritmo è quello di risolvere un problema. Le istruzioni di un buon algoritmo funzionano in modo che l’obiettivo finale venga raggiunto nel modo più efficiente possibile.

La parola algoritmo al momento viene usata per tutte le procedure finite per risolvere problemi o svolgere attività.

Dunque, quando parliamo di un algoritmo di consenso, parliamo di un insieme di istruzioni che portano al raggiungimento del consenso fra i partecipanti di una rete blockchain. Questi partecipanti devono mantenere (convalidare) lo stato della rete blockchain e avere sempre un accordo di maggioranza sul fatto che lo stato della rete sia corretto.

In termini umani, si potrebbe dire che un programma informatico (algoritmo) assicura che i partecipanti (validatori) concordano su un risultato particolare (lo stato della blockchain).

Un esempio un di un algoritmo è quello di Euclide, che riguarda un divisore generale:

Fintanto che A e B non sono uguali, sottrarre dal numero più grande fra i due il più piccolo. Non appena sono identici, il minimo comune denominatore è a (o b).

E questo è solo un semplice esempio!

La parola algoritmo viene dai tempi antichi. È una corruzione del nome di un matematico persiano del VIII secolo, Al-Chwarizmi. Il primo algoritmo noto per un computer venne scritto nel 1842 da Ada Lovelace, la figlia di lord Byron.

Come funziona un algoritmo di consenso?

Un algoritmo di consenso assicura che i validatori lavorino insieme per assicurare un nuovo blocco corretto sulla blockchain. Aumenta la sicurezza di una blockchain e assicura che un blockchain non abbia bisogno di manutenzione, tutto avviene in automatico. In questo caso parliamo di decentralizzazione, perché la rete non ha bisogno di un’autorità centrale per controllare il tutto, come una banca, per esempio.

Un nuovo blocco su una blockchain contiene transazioni e nuovi token. Se la maggior parte dei validatori concorda su quale transazione sia avvenuta dall’ultimo blocco creato e chi deve creare il nuovo blocco, il validatore designato inizierà a creare questo blocco e la catena è sarà allungata di un blocco.

Quali varianti di un algoritmo di consenso esistono?

Proof-of-Work

I validatori che hanno il permesso di creare un nuovo blocco vengono scelti in molti modi. Il modo più noto è il Proof-of-Work (mining). In questo caso, la persona che ha risolto un difficile enigma crittografico per primo ha il permesso di creare un nuovo blocco se la maggior parte dei suoi colleghi (anche questi miner o validatori) sono d'accordo (consenso) sul fatto che questo blocco sia corretto. Questo algoritmo si è dimostrato molto sicuro, anche se non è sostenibile a causa del consumo di energia. La creazione di grandi pool di mining porta alla centralizzazione.

Proof-of-Stake

Un altro metodo ben noto per fare questo è tramite il Proof-of-Stake, di cui esistono molte varianti. Questo implica il designare o scegliere casualmente un particolare validatore che può creare un nuovo blocco se la maggior parte dei validatori (nodi) concordano sul fatto che il nuovo blocco sia corretto. Il Proof-of-Stake implica il puntare monete (staking), o scommettere e detenere. La sicurezza di questo algoritmo deriva dal fatto che le persone che devono tenere la rete sicura perdono monete se non lo fanno, rendendolo dunque molto sicuro. Tuttavia, le persone con molte monete si arricchiscono sempre di più e ottengono sempre più influenza su una rete.

Delegated Proof-of-Stake

Un piccolo gruppo di validatori punta molte monete e le persone con meno monete  puntano le loro insieme a questi delegati. I delegati guadagnano tantissime monete puntate, che condividono con le persone che li hanno delegati. Questo algoritmo di consenso porta a validatori democraticamente eletti ed è ben scalabile. Può però creare favoritismi, in cui ci può essere un fattore di favoritismo  fra le persone e una centralizzazione di influenza.

Proof-of-Burn

Questo è un meccanismo di consenso piuttosto strano, in cui è più probabile aggiungere un blocco se si bruciano più monete. Bruciare monete significa distruggerle, per esempio inviandole alla rete sbagliata o un qualcosa di simile. Ovviamente, l''inflazione sarebbe piuttosto bassa se venissero bruciate tantissime monete, ma dato che alle persone non piace distruggere le proprie monete, immagino che non sarà mai un metodo molto popolare.

Proof-of-Capacity

Questo meccanismo di consenso è conosciuto anche come Proof-of-Space. Più spazio presente nel proprio disco fisso si aggiunge a una rete, più saranno alte le probabilità di ottenere una ricompensa. Il vantaggio di questo meccanismo è che efficiente a livello energetico. Fra gli svantaggi possiamo citare il fatto che sono necessari dischi fissi enormi e sia necessario proteggerli da malware e virus.

Proof-of-Authority

Le monete non vengono messe in staking in questo caso, bensì il proprio nome, la propria reputazione. Chiunque non si prenda le proprie responsabilità verrà additato come validatore non serio, e le altre reti potrebbero iniziare ad evitarlo. Non possono permetterselo specialmente grossi portafogli e piattaforme. Dato che i validatori non vogliono mettere a rischio il proprio nome, seguiranno le regole. Comportano in modo adeguato, avranno anche un'autorità maggiore e dunque riceveranno la maggior parte delle monete, creando decentralizzazione.

Proof-of-Participation

Anche questo algoritmo di consenso funziona tramite reputazione, ma fra validatori e nodi. Più si impegnano con una rete, più spesso verranno scelti per creare nuove monete. È uno dei meccanismi più equi, anche se relativamente meno monete importanti lo utilizzano.

Proof-of-Elapsed-Time

Laddove la maggior parte delle blockchain non necessitano di autorizzazioni, ovvero non sono necessari permessi per unirsi a una rete, questo meccanismo di consenso è creato in modo da dover avere un permesso. In questo algoritmo, i validatori vengono assegnati in modo casuale per permettere di aggiungere monete alla blockchain in base a chi si sveglia prima, dopo l’inizio del “periodo di sonno” (tempo trascorso, elapsed time). È equo, consuma poca energia, ma è necessario un permesso per partecipare, il che ha sempre un certo rischio di censura.

Delayed Proof-of-Work

Questo usa la potenza di hashing di reti più grandi per proteggere le reti più piccole dagli attacchi. Questo dà alla rete una maggiore sicurezza.

Effective Proof-of-Stake

In questo caso, i primi staker, che sono considerati i più fidati, sono più spesso designati per coniare nuove monete. Le ricompense continuano comunque a essere offerte ai nuovi arrivati, in modo che non tutte le monete vengano centralizzate.

Pure Proof-of-Stake

Questo è un algoritmo basato su una lotteria dove a tutti viene dato lo stesso numero di “lotti” per partecipare in base alle monete puntate. Ovviamente, gli staker con più lotti solitamente vincono. È un sistema molto decentralizzato.

Bonded Proof-of-Stake

In questo meccanismo di consenso, si bloccano le proprie monete per un certo periodo di tempo. Più si blocca, più voti si possono inviare. Uno svantaggio di questo metodo è che gli staker possono perdere tantissimi soldi durante il periodo in cui le monete sono bloccate se la moneta collassa o il mercato ribassista le fa valere meno.

Nominated Proof-of-Stake

In questo caso, gli staker nominano validatori per creare nuovi blocchi. Chiunque riceva più voti lo può fare.  Ci possono essere favoritismi, dove validatori minori ricevono comunque più voti. D'altra parte, è un semplice sistema che consuma pochissima energia e funziona rapidamente.

Proof-of-Stake-Time

Più si mettono in staking le proprie monete, maggiore è la ricompensa. Questo crea validatori estremamente affidabili, che però a un certo punto avranno tutte le monete, perché nessuno se ne libera più. La mancanza di fornitura può causare il crollo dell’interesse e il possibile collasso del prezzo.

Leased Proof-of-Stake

In questo caso, gli staker affittano monete dai validatori, dopodiché ricevono parte dei profitti del blocco aggiunto da tale validatore. Un vantaggio è che non è necessario puntare grossi importi per partecipare. Uno svantaggio è che è necessario valutare i validatori da sé prima di affittare monete da un validatore.

Anonymous Proof-of-Stake

Questo algoritmo mantiene la propria identità segreta, permettendo di fare staking e ottenere ricompense in modo anonimo. Questi tipi di monete potrebbero essere banditi in alcuni paesi proprio a causa del rischio di riciclaggio di denaro e frode.

Hybrid Proof-of-Stake

Combina Proof-of-Work e Proof-of-Stake Cerca di ottenere il meglio da entrambi i mondi.

Delegated Proof-of-Contribution

Più si fa per una rete, più è probabile che si ottenga il permesso di creare nuovi blocchi o ricevere monete. Sia i votanti che i votati ricevono ricompense dalla rete.

Secure Proof-of-Stake

Questo algoritmo funziona sia con il numero di monete puntate, sia con la valutazione del validatore. Usa un RNG che non può essere previsto o influenzato. È un sistema piuttosto equo.

Tresholded Proof-of-Stake

Questo è una sorta di sistema d’asta, dove agli staker è permesso aggiungere monete in proporzione alla dimensione della loro offerta per un certo periodo di tempo. Dato che molte persone vengono scelte con un ruolo e dunque monete, questo è un sistema piuttosto decentralizzato. La soglia significa che è necessario imporre una soglia calcolata per partecipare e ottenere una ricompensa.

Roll Delegated Proof-of-Stake

In questo caso, i delegati vengono scelti tramite un RNG, per aggiungere un nuovo blocco alla blockchain. Questo previene i favoritismi.

Proof-of-Coverage

Questo meccanismo di consenso controlla che una persona stia davvero gestendo la rete in cui afferma di detenere le monete. I partecipanti a questa rete inviano e ricevono segnali e vengono ricompensati per averlo fatto. È un modo di aggiungere monete economico e a basso consumo energetico. Il lato negativo, tuttavia, è che un posto può diventare affollato di miner o l'esatto contrario, il che riduce i profitti al minimo.

Proof-of-History

Questo algoritmo funziona con indicazioni temporali (tiene l'ora) durante la creazione di un blocco. Usando l'altezza di blocco (che indica dove si trova il blocco nella blockchain) rende la rete molto più veloce. Bitcoin, per esempio, usa due indicatori temporali.

Proof-of-Importance

Questa è un’anomalia. Bisogna fare staking di tantissime monete, se si è considerati importanti si possono avere molte nuove monete. Si diventa importanti se si hanno tantissime monete, si detengono a lungo e se si fa molto trading con le monete. Ma avete bevuto? A chi è venuta in mente questa cosa?

Delegated Proof-of-Broker

Si diventa un broker se si distribuisce un certo numero di monete su diverse piattaforme di scambio. Il software della rete poi eseguirà automaticamente percorsi di trading tramite l'aggregatore di liquidità dei conti del broker. Gli staker possono scegliere un broker, che dovrebbe offrire ricompense allettanti. Questo principio è molto rapido e scalabile.

Proof-of-Transfer

Questo è un algoritmo di consenso che usa due blockchain. I validatori trasferiscono (transfer) monete che puntano per vincere una sorta di lotteria per diventare leader e avere il permesso di estrarre nuovi blocchi.

Proof-of-Storage

L'algoritmo che dimostra qualcosa viene eseguito completamente dal proprio computer.

Proof-of-Activity

Questo algoritmo di consenso è una combinazione del Proof-of-Stake e del Proof-of-Work, dove tutti i miner si accordano e dunque tutte le transazioni sono reali. Questo è un sistema estremamente sicuro, anche se la scalabilità potrebbe diventare un problema.

Testate le vostre conoscenze

Domanda: 1/5Quale parte di una rete blockchain deve raggiungere il consenso sulla formazione di un nuovo blocco?
A2/3
B1/2
C1/3
DMaggioranza