Proof-of-work e proof-of-stake sono i due algoritmi di consenso più popolari per le blockchain. Scopriamo quali sono le differenze.
Sebbene la cronologia delle transazioni di Bitcoin (BTC) sia sequenziata in modo sicuro utilizzando la Proof-of-Work (PoW), consuma molta elettricità e il numero di transazioni che può gestire contemporaneamente è limitato. Di conseguenza, sono emersi nuovi meccanismi di consenso incentrati su metodi a minor impatto energetico, con il modello Proof-of-Stake (PoS) che è uno dei più importanti. Questi meccanismi di consenso consentono alle reti di computer di collaborare rimanendo al sicuro.
Le reti blockchain devono risolvere diversi problemi per funzionare in modo efficace. Ad esempio, senza un’autorità centrale come banche o FinTech (es.PayPal) nel mezzo, le reti di criptovaluta decentralizzate devono garantire che nessuna parte in una rete spenda lo stesso denaro più volte. Inoltre, il meccanismo del consenso impedisce che la rete venga minacciata da un hard fork.
In un’organizzazione centralizzata come una banca, sono le autorità di regolamentazione a controllare tali attività. La crittografia invece si basa sulla community, quindi la blockchain deve raggiungere un consenso generale per verificare le transazioni e i blocchi.
Table of Contents
Proof-of-work e proof-of-stake: introduzione
Proof-of-work e proof-of-stake sono i due principali meccanismi di consenso attualmente utilizzati dai progetti DeFi per ottenere il consenso sulle reti di criptovaluta. Quando Satoshi Nakamoto ideò Bitcoin (la prima criptovaluta), aveva bisogno di un mezzo per verificare le transazioni senza il coinvolgimento di terze parti. Per raggiungere questo obiettivo, ha utilizzato un meccanismo di consenso chiamato proof-of-work, per consentire alle reti di concordare quali transazioni sono valide e quali no.
Al contrario, il proof-of-stake (PoS) è un metodo di consenso più recente che alimenta i nuovi progetti DeFi e le criptovalute. Spesso i progetti nascono direttamente su blockchain PoS o – come è avvenuto per Ethereum – passano a PoS da PoW. Ma la creazione immediata di una rete di consenso PoS è un problema tecnologico significativo, e non è semplice come utilizzare il PoW per ottenere il consenso della rete. Vediamo i due algoritmi più da vicino.
Proof-of-Work (PoW): che cos’è
La Proof-of-Work è stata proposta per la prima volta nel 1993 per combattere le e-mail di spam su una rete e gli attacchi denial-of-service. Il concetto PoW è esploso grazie a Satoshi Nakamoto per convalidare nuovi blocchi nella rete Bitcoin nel 2008.
Il meccanismo PoW si basa sulla capacità degli utenti della rete di dimostrare che l’attività di calcolo in questione è stata effettivamente eseguita. Per risolvere un’equazione matematica, viene utilizzata una certa potenza di calcolo nota come nodo. Una volta risolta l’equazione, viene convalidato un nuovo blocco sulla catena. Un nodo è qualsiasi dispositivo fisico come un normale computer in grado di ricevere, inviare o inoltrare dati all’interno di una rete di altri strumenti.
Il risolutore che risponde più velocemente a un enigma matematico creerà un collegamento crittografico tra il blocco attuale e quello precedente e guadagnerà delle criptovalute appena coniate. Questo processo è noto come mining e i risolutori sono noti come miners. È attraverso i loro sforzi congiunti che tutte le parti coinvolte tengono al sicuro una blockchain.
Proof-of-Work (PoW): come funziona
Una blockchain è un sistema che consiste in una serie di blocchi disposti in ordine cronologico sulla base di un ordine di transazione chiamato blockchain ordering. Il blocco genesi – o blocco zero – è il primo blocco in una blockchain PoW, che è codificata nel software. Questo blocco non si riferisce – per definizione – a nessun blocco precedente. I blocchi successivi caricati sulla blockchain fanno sempre riferimento ai blocchi precedenti e contengono una copia del libro mastro completa e aggiornata.
Attraverso una gara vera e propria, alcuni partecipanti o miners sono incoraggiati a spendere risorse di calcolo per presentare blocchi legittimi che si adattano alle normative della rete. Gli algoritmi PoW selezionano chi deve modificare il libro mastro con le nuove transazioni. Il libro mastro tiene traccia di tutte le transazioni e le organizza in blocchi successivi in modo che nessun utente possa spendere i propri fondi due volte. Per evitare manomissioni, il libro mastro viene distribuito a tutti, consentendo ad altri utenti di rifiutare rapidamente una versione modificata.
In pratica gli utenti identificano la manomissione utilizzando gli hash, che sono lunghe stringhe di numeri che fungono appunto da proof-of-work. La funzione hash è una funzione unidirezionale e irreversibile, il che significa che può essere utilizzata solo per verificare che i dati che hanno generato l’hash corrispondano ai dati originali.
Successivamente i nodi verificano le transazioni, impediscono la doppia spesa e decidono se i blocchi proposti devono essere aggiunti o meno alla catena. L’atto di effettuare pagamenti due volte con la stessa valuta per ingannare – ma possiamo dire anche truffare – il destinatario è noto come doppia spesa. La doppia spesa danneggerebbe la rete ed eliminerebbe una delle sue caratteristiche più preziose: immutabilità, decentramento e fiducia.
SHA-256
Il proof-of-work rende difficile la doppia spesa perché cambiare qualsiasi parte della blockchain comporterebbe il re-mining di tutti i blocchi successivi. Poiché i macchinari e la potenza di calcolo necessari per eseguire le funzioni hash sono costosi, è praticamente impossibile per gli utenti monopolizzare la capacità di elaborazione della rete.
Inoltre, per generare consenso e garantire la legittimità delle transazioni registrate nella blockchain, un protocollo PoW combina potenza computazionale e crittografia.
I miners – durante il processo di hashing per produrre nuovi blocchi – competono per sviluppare la risposta corretta a dei problemi matematici. Scendendo un po’ più nel tecnico, i miners ottengono questo risultato indovinando un hash, che è una stringa di numeri pseudocasuali. Una funzione di hash (ad es. SHA-256) è un tipo di firma di un file di testo o di dati. Per un testo, SHA-256 fornisce una firma a 256 bit (32 byte) quasi unica.
L’hash deve generare un risultato che soddisfi i requisiti dichiarati del protocollo.
I miners che indovinano l’hash lo trasmettono quindi alla rete, consentendo agli altri minersdi verificare se la risposta è corretta. Se la risposta è esatta, il blocco viene aggiunto alla blockchain e il miner riceve una ricompensa. Ad esempio, l’attuale ricompensa in blocco per il mining di Bitcoin è 6,25 Bitcoin.
Pro e contro della PoW
Nel PoW, i miners devono investire un sacco di soldi non solo per l’hardware, ma anche per l’elettricità. L’obiettivo è risolvere gli enigmi matematici ed elaborare un blocco sulla rete. L’elettricità viene utilizzata per alimentare le macchine che generano risorse digitali attraverso il processo di verifica delle transazioni, chiamato appunto mining. Inoltre la spesa energetica è fondamentale per la sicurezza della rete, in quanto le consente di tenere un registro accurato delle transazioni e di aderire a una politica monetaria specifica e credibile.
Inoltre, la rete è protetta perché truffare la blockchain richiederebbe all’hacker di assumere il 51% della potenza di calcolo della rete. Se una blockchain subisce un fork in un sistema proof-of-work, i miners devono scegliere se passare alla nuova rete blockchain o continuare a supportare la blockchain originale.
Punto di vista dei miners
Un miner dovrebbe dividere le proprie risorse di calcolo tra i due lati del fork per supportare entrambe le blockchain. Di conseguenza – attraverso un incentivo economico – i sistemi di proof-of-work impediscono eventuali fork e sollecitano i miners a schierarsi dalla parte che non desidera danneggiare la rete. Altri miners potrebbero in altri sviluppi rivoltarti contro il loro hardware e farti fuori. Così facendo non potrai più guadagnare ricompense.
Queste caratteristiche si prestano alla teoria dei giochi, in cui i miner devono agire strategicamente per ottimizzare i propri ritorni sull’investimento. Le persone sceglieranno sempre la soluzione più semplice. Passare a una nuova blockchain rende le cose più difficili. Pertanto spesso e volentieri gli utenti preservano l’equilibrio interno e prendono decisioni logiche.
Nonostante i vantaggi di cui sopra, il PoW potrebbe essere piuttosto costoso e inefficiente in termini di utilizzo delle risorse. I miners devono far fronte a una serie di spese, comprese le attrezzature più recenti che si consumano rapidamente. L’attività mineraria tende a sprecare molta energia. Inoltre, le commissioni di transazione del sistema aumentano quando la rete si sovraccarica. Ecco perché sono nate diverse alternative, la più importante delle quali è sicuramente la Proof-of-Stake.
Proof-of-Stake (PoS): che cos’è
Nel 2011 sul forum Bitcointalk è stato proposto un nuovo approccio per affrontare le inefficienze del meccanismo di consenso PoW e ridurre la quantità di risorse computazionali necessarie per far funzionare una rete blockchain. Questo concetto si basa sull’esistenza di un interesse verificabile nell’ecosistema.
In altre parole, per convalidare le transazioni sulla rete crittografica, un utente deve semplicemente possedere una determinata quantità di criptovaluta nativa della blockchain. Questo tipo di meccanismo di consenso utilizzato dalle reti blockchain per ottenere un consenso distribuito è chiamato Proof-of-Stake.
Vediamo come funziona con un esempio. L’utente A blocca – o mette in staking – 30 monete. B mette in stake 50 monete, C 75 monete e D 15 monete. In questo caso C avrebbe la priorità di convalidare il blocco seguente disponendo di più monete. In contrasto con quanto accade nella Proof-of-Work, C riscuoterà le commissioni di transazione, ovvero le commissioni della rete.
Proof-of-Stake (PoS): come funziona
Il blocco di genesi è il blocco iniziale in una blockchain PoS, ed è codificato nel programma. I blocchi successivi caricati sulla blockchain fanno sempre riferimento ai blocchi precedenti e contengono una copia del libro mastro completa e aggiornata. E fin qui nulla di nuovo.
Nella rete PoS, gli utenti non competono per il diritto di aggiungere blocchi. Piuttosto che essere “minati”, i blocchi sono “coniati” o “forgiati” o “creati”.
Le blockchain PoS – a differenza delle blockchain PoW, – non pongono limiti su chi può e chi non può proporre blocchi in base al consumo di energia. Nonostante gli elevati requisiti energetici delle blockchain PoW, i nuovi meccanismi di consenso come il proof-of-stake eliminano la necessità di fare mining.
Il sistema proof-of-stake presenta diversi vantaggi rispetto allo schema proof-of-work, inclusa una maggiore efficienza energetica poiché i blocchi non richiedono molta energia. Inoltre non è necessaria la tecnologia top di gamma per creare nuovi blocchi. La Proof-of-stake dispone di più nodi.
Più nodi in una rete aiutano a sviluppare norme di governance che forniscono una maggiore immunità alla centralizzazione. Nei sistemi PoS tutto questo è reso possibile da un grado più elevato di indipendenza dall’hardware. Di conseguenza, il proof-of-stake è spesso visto come l’algoritmo di consenso che ha meno probabilità di portare alla centralizzazione della rete.
Come partecipare
Gli utenti che desiderano essere presi in considerazione per aggiungere blocchi a una blockchain PoS devono mettere in staking – o bloccare – un importo specifico della criptovaluta della rete in un contratto unico. Le loro probabilità di essere scelti come prossimo produttore di blocchi sono determinate dalla quantità di risorse crittografiche che possiedono. Se gli utenti agiscono in modo non corretto, vengono penalizzati a livello monetario.
La PoS include altri elementi determinanti che non sempre avvantaggiano i nodi più ricchi, incluso per quanto tempo un nodo blocca i suoi soldi. La ricompensa del blocco nel PoS si riferisce a un premio che la blockchain concede alla persona che invia un blocco valido, simile al meccanismo PoW.
Nella PoS, la selezione del blocco si basa sulla proprietà della moneta. Molti exchange offrono servizi di staking, che consentono agli utenti di delegare lo staking e ricevere comunque delle ricompense. Diverse parti interessate possono unirsi a un pool di staking per mettere in comune le proprie risorse e massimizzare le possibilità di essere ricompensate. Per dirla in altro modo, uniscono il loro potere di staking durante la verifica e la convalida di nuovi blocchi per massimizzare le loro possibilità di ricevere ricompense di blocco.
Pro e contro di PoS
La questione degli elevati sprechi di risorse energetiche è nota. Inoltre, i sistemi basati su PoS sono molto più scalabili rispetto ai sistemi basati su PoW. Questo vuol dire che sono in grado di approvare le transazioni molto più velocemente. Scalabilità significa che il sistema ottiene maggiori transazioni al secondo (TPS) rispetto ai sistemi attuali specifici modificando il parametro del sistema o alterando il suo meccanismo di consenso.
La rete PoS raggiunge la scalabilità stabilendo un consenso prima della costruzione dei blocchi, che consente l’elaborazione di migliaia di richieste al secondo con un picco di latenza inferiore a un millisecondo.
Il proof-of-stake, d’altra parte, presenta una serie di difficoltà. La rete ad esempio è ancora soggetta al dominio degli investitori più ricchi. Questo fornisce più potere ai primi utenti e alle persone con più soldi.
Poiché il concetto è ancora relativamente nuovo, potrebbe presentare degli svantaggi che non sono ancora evidenti alla community delle criptovalute. Questo paradigma, a differenza del proof-of-work, non ha un track record di prestazioni. Inoltre i sistemi di proof-of-stake non scoraggiano automaticamente eventuali fork.
Proof-of-work vs. proof-of-stake
È evidente dalle spiegazioni precedenti che entrambi i meccanismi di consenso presentano vantaggi e svantaggi. Hanno tutti lo stesso obiettivo essenziale di quelli sopra elencati, ma utilizzano metodi diversi per raggiungerlo.
La distinzione fondamentale tra i vari meccanismi di consenso è il modo in cui delegano e premiano la verifica delle transazioni. Altre differenze sono spiegate nella tabella seguente.
Quando utilizzare PoW o PoS?
Il meccanismo del consenso è fondamentale per la progettazione distribuita di una rete blockchain perché riduce la centralizzazione delle entità incaricate di convalidare le transazioni. Per mantenere le caratteristiche immutabili, affidabili e distribuite di una rete blockchain è necessario un meccanismo di consenso pienamente funzionante.
Il tipo di consenso richiesto dipende dalle esigenze di una rete. Ad esempio, la Proof-of-Work è necessaria per la prevenzione delle frodi, la sicurezza e la creazione di fiducia in una rete. I miners (o i responsabili del trattamento dei dati indipendenti) non possono commettere errore su una transazione grazie alla protezione fornita dal PoW. La Proof-of-Work è un metodo per proteggere la cronologia delle transazioni di un asset crittografico aumentando anche la difficoltà di modificare i dati nel tempo.
Il requisito di un nodo partecipante è dimostrare che il lavoro è stato completato e inviato. Questo lo qualifica ad aggiungere nuove transazioni alla blockchain, proteggendo la rete da qualsiasi attività dannosa.
Se sulla rete sono presenti numerose copie della blockchain, il PoW aiuta a identificare la copia legittima, l’unica versione possibile. Infine, il proof-of-work è essenziale per costruire un orologio distribuito che consenta ai miners di entrare e uscire liberamente dalla rete mantenendo una frequenza operativa costante.
Allo stesso modo, le prestazioni e la sicurezza della rete sono conseguenze significative dell’utilizzo di un meccanismo basato su PoS. Il PoS viene utilizzato quando è richiesta un’elevata velocità di transazione per le transazioni on-chain a costi ridotti. Inoltre è molto probabile che i validatori possiedano grandi quantità della criptovaluta nativa della rete, il che li incentiva finanziariamente a mantenere la blockchain sicura ed a comportarsi bene.