Gli Algoritmi di Consenso nella blockchain

La Proof of Work di Bitcoin e Proof of Stake di Ethereum a confronto

cryptosecco
31 min readJan 23, 2023
Nebulosa “I Pilastri della Creazione”

Prefazione

Questo articolo nasce a febbraio 2022, faceva freddo e mi sembrava doveroso parlare di qualcosa che stava guadagnando interesse tramite il “merge” di Ethereum e che ha permesso ad esso di perdere l’unica cosa ancora buona che la chain di Vitalik avesse.
Si, non lo nascondo, ma giuro che in questa digressione sono stato parecchio equo, tenendo a bada, non senza difficoltà, il mio amore per
Bitcoin.
Alla fine non troverete infatti un vincitore, sebbene la Proof of Work lo sia, ma una disamina “fair” che può andare a genio un pò a tutti; mi sono inimicato metà dei divulgatori solo a metà e nutro per meno della metà di loro metà del riconoscimento che meriterebbero (semi-cit) e l’età e i figli mi hanno reso piu malleabile e talvolte tenero.
Pertanto vi risparmio tutta la mia tossicità da massimalista alla sola prefazione. Se sei riuscito a leggerla tutta senza chiudere l’articolo è già un buon inizio.

Cos’è un Algoritmo di consenso?

Un Algoritmo di Consenso è un meccanismo utilizzato nei sistemi informatici e nelle blockchain per ottenere l’accordo necessario su un singolo valore di dati o su un singolo stato della rete, tra processi distribuiti o sistemi multi-attori, come le criptovalute.

La blockchain ha visto il suo primo reale caso d’uso attraverso l’integrazione di un algoritmo di consenso con la tecnologia P2P ed open source che, grazie a Satoshi Nakamoto, ha portato alla nascita di Bitcoin. Gli algoritmi di consenso permettono la condivisione della blockchain tra i partecipanti di quella rete in modo sicuro, autentico e tendenzialmente immutabile; essi non sono altro che un insieme di regole ed incentivi, inseriti in una teoria dei giochi, che permettono ad una rete distribuita di raggiungere l’unanimità sul suo stato.

Il primo algoritmo di consenso lo abbiamo dunque con la nascita di Bitcoin, che tuttora ne permette lo sviluppo e la sua resilienza, stiamo parlando della Proof of Work. Dichiarata troppo energivora ed inquinante dai detrattori, e alla ricerca di una soluzione a minor impatto ambientale, nel 2011 venne ripreso un protocollo introdotto da Wei Dai nel lontano 1998, dal suo progetto B-Money, che può essere definito il precursore di un algoritmo di consenso alternativo alla PoW, largamente utilizzato tutt’oggi, la Proof of Stake.

Questo articolo sarà una disamina su entrambi i protocolli, passandone in rassegna i single point of failure e le loro caratteristiche tecniche attraverso una visione quanto piu’ parziale possibile.

La Blockchain

La blockchain è una struttura sequenziale in cui vengono immagazzinate delle informazioni in una catena di blocchi. Come suggerisce il nome, questi blocchi sono concatenati l’uno all’altro, in ordine cronologico e impressi in questa catena dai miner, gli attori principali di questo protocollo, i quali confermano le informazioni all’interno dei blocchi, distribuendole a tutti i nodi della rete.

La blockchain è quindi un grande database che ogni utente può passare in rassegna e controllarne se il dato immesso, in questo caso i fondi, siano stati spesi in precedenza, questo perchè ogni volta che si effettua una transazione si fa sempre riferimento alla transazione precedente, in un ordine cronologico protetto dalla crittografia che lo rende sia nella teoria, ma anche nella pratica come vedremo, immutabile. I blocchi sono organizzati cronologicamente e uniti indissolubilmente l’uno all’altro da un timestamp cronologico in modo incontrovertibile: ogni blocco è legato al precedente da una funzione di hash che non può essere invertita: piu lunga sarà la catena di blocchi piu essa sarà resiliente alla manomissione, anche se un singolo blocco venisse alterato: maggiore è la profondità del blocco alterato, maggiore sarà lo sforzo computazionale necessario per la sua manomissione come vedremo piu avanti.

Consensus

La principale innovazione introdotta da Satoshi Nakamoto nel suo protocollo è l’utilizzo della proof of work (POW) per creare un consenso distribuito senza fiducia tra gli attori e risolvere allo stesso tempo il problema della doppia spesa.

La blockchain è dunque un sistema decentralizzato che consta di diversi attori, ognuno dei quali agisce in base ad un incentivo e alle informazioni a loro disposizione. Ogni qual volta una nuova transazione viene trasmessa alla rete, i miner hanno la possibilità di includere quella transazione nella loro copia del registro (ledger), ma nelle loro facoltà esiste, altresì, quella di ignorarla. Quando la maggioranza degli attori che compongono la rete decide su un’unica scelta, viene raggiunto il consenso.
Un problema fondamentale nei sistemi distribuiti con piu attori che non si conoscono è quello di raggiungere l’affidabilità complessiva del sistema e dunque il consenso unanime. La difficoltà nel realizzare questo scopo in un network decentralizzato e distribuito è di richiedere a questi attori, ignari gli uni agli altri, di concordare su fattori comuni in assenza di fiducia. In questo contesto verrà introdotto da Nakamoto il concetto di Proof of Work, un algoritmo di consenso che svolge un ruolo chiave nel protocollo Bitcoin.

Proof of Work

È una funzione che impone di soddisfare determinati requisiti svolgendo un lavoro molto costoso in termini di tempo ed energia, ma che tuttavia permette al richiedente di verificare in modo semplice che tali requisiti siano soddisfatti.

Nel caso del protocollo Bitcoin il sistema PoW utilizzato è quello di hashcash introdotto da Adam Back nell’omonimo Paper del 1997: sebbene in origine tale funzione venne creata per filtrare lo spam nelle mail, nella blockchain di Bitcoin, hashcash svolge la funzione di algoritmo di consenso dove, in un protocollo distribuito come quello di Bitcoin, garantisce che tutti i partecipanti (nodi) del network possano concordare sullo stato del network stesso.

Come funziona la PoW

Nella Proof of Work è il miner l’attore principale di questo meccanismo: egli mette al servizio della rete la sua potenza computazionale per confermare le transazioni. Affinchè venga eletto per scegliere il blocco successivo da aggiungere alla blockchain, egli deve trovare una soluzione a un particolare problema matematico, deve dare quindi prova di aver svolto un lavoro e aver risolto tale problema prima di potersi aggiudicare il blocco contenente le nuove transazioni. In cambio di questo servizio il miner verrà ricompensato con le commissioni che affiancano le transazioni da validare e sopratutto con il conio di nuova moneta, tutto questo viene chiamato coinbase. Il processo appena descritto viene chiamato “Mining”, ed ha una duplice caratteristica: da un lato serve a rendere sicura la rete tramite la “prova di lavoro” del miner, dall’altro emette nuova moneta per la rete, in un protocollo a rilascio controllato e finito, che rende Bitcoin un asset deflazionistico.

In un contesto decentralizzato in cui i partecipanti non si conoscono e vige il concetto di “trustless”, questo consenso viene raggiunto grazie alla Pow che disincentiva l’azione di partecipanti malevoli rendendo questo sistema sicuro, che viene infatti definito “fault tolerance” (Vedasi dilemma dei Generali Bizantini).

“The proof-of-work chain is the solution to the synchronisation problem, and to knowing what the globally shared view is without having to trust anyone.” — Satoshi Nakamoto

Nel dettaglio della PoW di Bitcoin

Ogni 10 minuti un blocco viene “chiuso”, ovvero confermato dai miners, ed aggiunto alla blockchain; questo processo viene svolto attraverso la proof of work: il miner sfrutta la sua potenza di calcolo per trovare la soluzione all’hash iniziale del blocco precedente, per farlo effettua dei tentativi consecutivi detti “nonce” fino a quando non troverà la soluzione, la risoluzione e successiva chiusura di un blocco è infatti un processo del tutto casuale che vede moltissimi miners competere per aggiudicarselo.

Ma cosa è una funzione di hash:

Nel linguaggio matematico e informatico, l’hash è una funzione non invertibile che mappa una stringa di lunghezza arbitraria in una stringa di lunghezza predefinita. Esistono numerosi algoritmi che realizzano funzioni hash con particolari proprietà che dipendono dall’applicazione.

Il miners parte quindi dall’hash precedente e vi aggiunge il nonce generando una stringa alfanumerica che sarà l’hash del blocco successivo, e così via.

Il sistema utilizzato nel protocollo Bitcoin si serve di un algoritmo SHA-256 che produce un hash che cambia con qualsiasi modifica dei dati anche minima (vedasi “effetto valanga”), è pertanto impossibile derivare l’input di quell’hash partendo dal suo output, l’unico modo per risolvere questa sfida è tramite prove continue molto costose, ovvero la proof of work.

Per maggiori informazioni sulla Crittografia ECDSA ho scritto un articolo in merito: https://danilogiudice.medium.com/la-sicurezza-dietro-bitcoin-crittografia-asimmetrica-ec3d77111fe0

Il primo miner che trova la soluzione alla “prova di lavoro” trasmette la propria soluzione a tutta la rete notificando a tutti i nodi che è stato rilevato un nuovo blocco, questi controlleranno la soluzione all’hash e, se valida, provvedono a lavorare al blocco successivo. Questo lavoro è altamente ridondante; tutti i miner competono sullo stesso insieme di transazioni per trovare una soluzione.

La Proof of Work è necessaria per garantire la sicurezza, per prevenire le frodi e per perpetrare la veridicità del dato.

Il protocollo considera valida e autentica solo la catena con il maggior numero di “prove di lavoro”, dunque la più lunga e anziana. Una catena fraudolenta non è pratica a lungo termine perché un minatore ha una bassa probabilità di vincere costantemente il premio in blocco per mantenere la catena. Nel tempo, altri minatori estenderanno la catena valida più velocemente della catena manomessa, perchè sarà quella contenente piu fees.

Game Theory

Spassky contro Fisher, Reykjavik 1972

La teoria dei giochi esplora il modo in cui le persone razionali prendono decisioni strategiche in diversi scenari, essa basa il suo ragionamento in termini puramente matematici ed ha applicazioni in qualsiasi dominio in cui le persone devono coordinarsi o competere tra loro. Nelle blockchain la teoria dei giochi gioca un ruolo chiave negli aspetti della sua tokenomics e nelle dinamiche degli attori che la compongono, dove il suo obiettivo risulta lapalissiano: modellare il ragionamento umano per costruire reti che non necessitano alcuna supervisione su suoi attori, dove questi agiscono per ottenere risultati positivi per l’intero network.

La pianificazione dei ragionamenti umani è però un campo molto vasto che fa dell’imprevedibilità umana uno degli spauracchi piu complessi da risolvere, va quindi analizzato ciò che motiva le persone nel raggiungere un obiettivo, negli incentivi preposti a quel fine e nell’interazione tra competitor di quella stessa rete.

In questo frangente vedremo come per attuare tali teorie dei giochi la PoW incentiva un comportamento positivo dei suoi attori dove la PoS ne punisce, invece, quello negativo.

I protocolli decentralizzati si basano sul presupposto che il 51% di tutti i partecipanti agirà onestamente e, nel mondo digitale, anonimo e non regolamentato, i partecipanti sono liberi di agire anche in modo disonesto per perseguire un interesse individuale. Trovare una soluzione a questo paradigma è stata una delle ambizioni piu complesse per Nakamoto, ma che ha trovato una soluzione tanto efficace quanto rivoluzionaria:

Assumendo che i partecipanti di una rete agiscano per proprio interesse personale, e che questo possa quindi portare ad agire in modo malevolo, l’achievement sarebbe stato quello di sfruttare questo individualismo per metterlo al servizio della collettività: far collimare quindi l’interesse individuale con quello collettivo. Per farlo Nakamoto ha sfruttato degli incentivi complessi della teoria dei giochi servendosi della tecnologia P2P, della blockchain e chiaramente della Proof of Work: in Bitcoin infatti, un nodo della rete Bitcoin può agire in maniera del tutto individuale secondo proprio interesse, perchè questo agire egoistico andrà a beneficio del network stesso, gli interessi individuali diventano quindi collettivi.

Un miner è quindi incentivato ad agire per il proprio tornaconto, rappresentato dal reward elargito dalla PoW, perchè di questo tornaconto individuale beneficerà tutta la rete e la sua sicurezza. Un miner è quindi incentivato ad agire in maniera onesta e disincentivato ad agire in maniera disonesta perchè in quest’ultimo caso la sua ricompensa sarebbe inferiore. Ma c’è un caso in cui il miner può avere un tornaconto maggiore ad agire in maniera malevola: il 51% attack.

51% Attack

51% Attack è un termine che indica una situazione in cui un attaccante ha accumulato potenza di calcolo nelle sue mani piu di tutti gli altri membri della rete ed ha dunque il controllo dell’hash-power, di fatto qualsiasi attaccante che possieda il 50% + y” è in grado di sferrare un attacco di questo genere.

L’aggressore o gli aggressori in possesso di questa potenza di calcolo sarebbero in grado di impedire che nuove transazioni ottengano conferme ma sarebbero anche in grado di invertire le transazioni che sono state completate mentre avevano il controllo della rete, il che significa che potrebbero mettere in atto una double spending.

La doppia spesa in economia è una truffa che consiste nello spendere lo stesso titolo valutario due o più volte. (…) in mancanza di un organo o di un sistema certificatore, perché un token digitale è costituito da un file che può essere duplicato o falsificato[1]. Come nel caso del denaro contraffatto, tale doppia spesa porta all’inflazione creando una nuova quantità di valuta fraudolenta che in precedenza non esisteva.[2]

Un attacco del 51% probabilmente non distruggerebbe completamente Bitcoin o un’altra valuta basata su blockchain, anche se si rivelasse altamente dannoso, esso potrebbe interrompere la validazione di nuovi blocchi o la loro selezione ma per poter cambiare la storicità della blockchain ci sarà bisogno di una potenza di calcolo ingente, a causa della crittografia e dalla profondità della catena che, ricordiamo, lega un blocco al successivo da una funzione di hash asimmetrico.

Ad alimentare questa problematica si è aggiunta la nascita dei mercati di mining: aziende proprietarie di moltissime macchine permettono l’utilizzo delle loro mining farm ai miner per estrarre una determinata moneta, aumentando i possibili profitti dei fruitori. Un effetto collaterale della nascita di questi mercati di hashrate è che ora gli aggressori possono attingere rapidamente a una potenza di calcolo tale da poter sferrare un 51% attack.

Hashrate Bitcoin su scala logaritmica (all time)

Qui la rete di Bitcoin si dimostra maggiormente resiliente rispetto alle altre, per via del fatto che la sua PoW richiede hardware altamente specifico, ovvero gli ASIC. Per anni questa caratteristica è stata oppugnata dai detrattori di Bitcoin come una nota negativa quando, in effetti, si tratta di un enorme punto di forza, sopratutto dal punto di vista della sicurezza, in quanto un investimento in denaro così oneroso per hardware così specifico il cui unico scopo è appunto quello di minare bitcoin, disincentiva un uso improprio dell’hashrate che risulterebbe dunque controproducente, rendendo quello stesso hardware un ammasso di ferraglia inerme se la rete dovesse subire dei danni permanenti.

C’è un’ulteriore fallacia nella logica dei detrattori della PoW, che porta a estremizzare la questione della centralizzazione al mining: distinguere, infatti, tra centralizzazione delle farm e centralizzazione dell’hashpower è un passaggio necessario a debunkare questa critica. Sebbene la centralizzazione delle farm sia chiara ed innegabile, poco ha a che vedere con la centralizzazione dell’hashpower che risulta ampiamente distribuito tra i gli stessi clienti di una singola farm.

Pool Distribution via: btc.com

Forse una degli aspetti piu sottovalutati risulta invece essere la centralizzazione della produzione di hardware così specifico: gli Asic sono infatti facilmente tracciabili da questo punto di vista intaccando la privacy stessa di chi li acquista e li utilizza, cosa che chiaramente non accade con hardware generico come le gpu che per loro natura aspecifica possono essere utilizzate per minare qualsiasi altro tipo di protocollo basato su proof of work.

Secondo la legge di Metcalfe : “L’utilità e il valore di una rete sono proporzionali al quadrato del numero degli utenti”, parafrasando sarebbe possibile dire che la sicurezza, che è il reale valore del network di Bitcoin, sia proporzionale al numero dei suoi nodi: una rete molto distribuita come quella di Bitcoin, che conta ad oggi oltre 10.000 nodi, si dimostrerebbe resiliente ad un 51% attack che risulterebbe vano perchè la chain potrebbe essere forkata in tempi brevi e l’attaccante potrebbe al massimo intascare la coinbase del blocco che andrebbe a validare nella chain piu corta.

Ad oggi infatti il network di Bitcoin si è dimostrato resiliente a questo tipo di attacchi: un debunking chiaro e scrupoloso riguardo alle probabilità di un simile evento e le sue dirette conseguenze è stato ampiamente trattato da Alberto De Luigi, di seguito un estratto del suo lavoro:

-I miners hanno ingenti investimenti in Bitcoin e nell’hardware che ha l’unico scopo di produrre Bitcoin (gli ASIC), quindi sono incentivati ​​a mantenere l’integrità della rete.

-Le mining pool sono gruppi coordinati di miners che aggregano la loro potenza di calcolo per avere maggiori chance di scoprire il blocco successivo. Gli amministratori delle pool potrebbero avere un potere decisionale sui blocchi creati, come la censura di transazioni o la segnalazione di upgrade del protocollo, ma gli utenti miner possono passare facilmente da una pool all’altra. I protocolli come Stratum V2 consentono ai miners nella pool di creare autonomamente i blocchi, impedendo all’amministratore della pool di gestire la potenza di calcolo a suo piacimento, ad esempio censurando transazioni o promuovendo fork del protocollo indesiderati al resto della rete

-Un goffissimo tentativo di censura delle transazioni si è avuto nel maggio 2021, quando la pool statunitense “Mara Pool” (gestita da Marathon Digital Holdings), ha creato un blocco “OFAC compliant”, escludendo cioè tutte le transazioni provenienti da indirizzi segnalati in blacklist dal Dipartimento del Tesoro Americano. Poiché quelle transazioni sono state confermate da chi ha minato i blocchi immediatamente successivi, l’esito conseguito da Mara Pool è stato soltanto quello di aver perso le relative commissioni di transazione, lasciandole ad altri miners. Oltretutto, per farsi beffe di Mara Pool, qualche simpatico utente della community Bitcoin ha inviato dei bitcoin da un mixer (coinjoin) all’indirizzo in cui Mara Pool ha ricevuto i bitcoin generati dal blocco OFAC compliant, così da marcarlo come non compliant e finire esso stesso in blacklist. Infine, la community ha creato in meno di 24 ore dall’evento un sito che monitora il comportamento delle mining pool, per promuovere dei boycott di quelle che tentano di imporre la compliance di qualche governo.

-I miners sono troppo distribuiti per essere tutti attaccati, poiché ricercano le fonti energetiche a minor costo in tutto il mondo, spesso in aree remote. I governi non sono nemmeno in grado di localizzare tutti i miners, come prova la presenza di miners su suolo cinese anche in seguito al divieto alle attività di mining da parte delle autorità. Ad Aprile 2021 un blackout nella regione dello Xinjiang ha causato un calo dell’hashrate nell’ordine del 20–25%: circa l’80% dei miners cinesi sono stati interessati da questo blackout, un dato che ha permesso di stimare la quantità di hashrate presente sul territorio cinese: attorno al 32–40%. Sarebbe la prova che la Cina non detenga una potenza di calcolo in grado di tentare un 51% attack alla rete Bitcoin. Eventuali attacchi sarebbero un incentivo ad aumentare ancor di più la decentralizzazione.

-Assumendo per assurdo la possibilità, per un attaccante, di detenere la maggioranza dell’hashpower, la community Bitcoin potrebbe di concerto eseguire un fork upgrade del protocollo di Bitcoin, sfruttando un nuovo algoritmo di mining che gli ASIC utilizzati fino a quel momento non sono in grado di elaborare, rendendo di fatto inutile l’hardware utilizzato dall’aggressore. L’attacco quindi non solo non avrebbe successo, ma avrebbe comportato un impressionante esborso economico da parte dell’attaccante nel tentativo di ottenere la maggioranza di hashpower.

-Per perpetrare tale attacco non è sufficiente “dirottare” ingenti quantità di energia che servono attualmente per tenere in piedi il sistema economico (industria, agricoltura, terziario) o attingere a nuovi fonti energetiche, ma anche impiegarla nel modo più efficiente per aumentare l’hashrate, cioè acquistando un enorme quantitativo di ASIC. La fattibilità pratica di un simile attacco e le sue chance di successo sono minime, a fronte di costi insostenibili.

-Anche in caso di “attacco 51%”, nessun bitcoin può essere rubato, quindi nessuno spenderebbe centinaia di miliardi di dollari semplicemente per censurare le transazioni bitcoin o tentare double-spending dei propri fondi.

Via: https://www.albertodeluigi.com/2021/04/30/debunking-critiche-bitcoin/#A3

Sebbene Bitcoin abbia dimostrato nel tempo la sua resilienza a questo tipo di minaccia, il 51% attack rimane uno degli alibi preferiti dai detrattori della PoW, ma come vedremo di seguito, nemmeno la Proof of Stake ne è immune, con conseguenze anche piu gravi.

Proof of Stake

La Proof of Stake è un tipo di protocollo per la messa in sicurezza di una rete di criptovaluta e per il conseguimento di un consenso distribuito. È basato sul principio che a ogni utente venga richiesto di dimostrare il possesso di un certo ammontare di criptovaluta.

Una soluzione di Proof-of-Stake venne introdotta per la prima volta nel 2011 per ridurre la quantità di lavoro computazionale necessario per verificare i blocchi e le transazioni che mantengono sicura la blockchain che se ne serve. Nella PoS cambia quindi il modo in cui i blocchi vengono verificati, il ruolo dei miner è infatti sostituito da quello degli holder della moneta, che offrono i loro token come garanzia per la possibilità di convalidare i blocchi. Il processo appena descritto viene chiamato “stake” e rende tutti gli holder che effettuano lo staking dei nodi “validatori”. Di fatto la Proof of Stake introduce diversi punti di forza:

via: ethereum.org

Al contrario della PoW dove i validatori (miner) competono per aggiudicarsi il blocco, nella PoS i validatori vengono selezionati casualmente per estrarre il blocco. In un sistema così randomizzato per diventare un validatore il proprietario della dovrà mettere in “stake” una determinata quantità di monete e il protocollo lo selezionerà in maniera casuale così da scongiurare la centralizzazione del consenso: se il validatore viene selezionato riceverà una percentuale delle commissioni di transazione contenute nel blocco proporzionali alla quantità di monete messe in stake dallo stesso validatore. Più fondi si bloccano, più aumenta il reward, in un processo direttamente proporzionale ma a netto vantaggio di chi è già molto “ricco” come vedremo.

Se un validatore tenta di imbrogliare proponendo transazioni non valide, perderebbe una porzione (o la totalità) delle sue monete in stake, parallelamente abbiamo quindi un meccanismo simile alla PoW ma con una sostanziale differenza: nella PoW si incentiva ad agire onestamente, nella PoS si punisce chi agisce disonestamente.

La Proof-of-stake ambisce a ridurre i problemi di scalabilità e sostenibilità ambientale, o presunti tali come vedremo, che circondano il protocollo Proof-of-work, principali punti di critica dei detrattori dell’algoritmo competitivo. I minatori di Bitcoin guadagnano bitcoin verificando le transazioni all’interno dei blocchi, mentre nella PoS ogni stake-holder può verificare il blocco e quindi aggiudicarsi il reward senza mettere a disposizione potenza computazione.

Se da un lato i miner di Bitcoin di fatto scambiano energia elettrica per ottenere il reward, il discorso non è molto dissimile da quello di investire moneta (in questo caso assimiliabile all’hardware) per ricevere un reward, semmai questo processo risulta essere maggiormente semplificato nella PoS. E’ innegabile che l’utilizzo dell’energia elettrica influenzi in un certo qual modo l’economia e le dinamiche legate al consenso di Bitcoin e in seconda battuta anche il suo impatto ambientale (demagogia ampiamente debunkata), ma anche se la PoS cerca di risolvere questo problema andando a sostituire la potenza di calcolo con lo staking, essa non è altresì priva di difetti o ambiguità, presentando però falle tecnologiche ben piu evidenti nell’asservire il concetto stesso di cryptovaluta.

Visto che al contrario della PoW dove per diventare miner viene richiesto un investimento non indifferente che di fatto ne determina una barriera d’ingresso, nella PoS qualsiasi stakeholder può validare un blocco semplicemente mettendo in stake della moneta. Questo processo risulta essere quindi granulare rispetto a Bitcoin: il guadagno dello stake holder è direttamente proporzionale alla quantità di monete messe in stake, e tale somma può anche essere molto esigua, contrariamente alla PoW dove la profittabilità è anch’essa proporzionale all’investimento iniziale riguardo l’hardware, ma questa ha una barriera d’ingresso specifica e particolarmente onerosa da sostenere, non ad appannaggio di chiunque si proponga di asservire la rete nella validazione dei blocchi dunque.

La PoW è ben testata da molti anni in tantissime blockchain ed anche se in network molto piccoli ha subito attacchi anche fatali, in network maturi come quello di Bitcoin, si è dimostrata resiliente a molte tipologie di attacco, sarebbe impossibile nella pratica sfruttare questa debolezza con la tecnologia odierna:

Tuttavia l’alto costo dell’energia, che rende la blockchain di Bitcoin energivora, e la crescente centralizzazione dell’hashrate, legato al basso throughput delle transazioni e conseguente bassa scalabilità (al netto dei layer2), spingono sempre di piu le community ed i progetti verso la PoS, che permette di risolvere in parte i problemi sopraelencati ma dovendone inevitabilmente sacrificarne altri.

La PoW Energivora e l’impatto ambientale

Molto spesso sentiamo la tematica ambientale incalzata con fervore dai detrattori della Proof of Work, generalizzando su molti aspetti che meriterebbero invece una disamina approfondita. L’assunto principale di questa tesi è che la PoW, e dunque Bitcoin, sprecherebbe tantissima energia per funzionare, e per diretta conseguenza che inquini.
Che la PoW sia un protocollo energivoro è certamente indubbio: come abbiamo visto basa tutto il suo meccanismo sul dare una prova computazionale che deve essere portata a termine spremendo al massimo l’hardware richiesto per risolvere l’hash, e che questo necessiti chiaramente di essere alimentato da energia elettrica. E’ innegabile che il protocollo usi molta energia e che questa produca un’inquinamento, ciò che però è fallace in questo ragionamento è proprio la deduzione logica consequenziale: enrgivoro → inquinamento, perchè non tiene conto di tutti i fattori che compongono quest’equazione come:

  • Carbon Footprint
  • Fonti Energetiche
  • Consumo Futuro
  • Energy Wasting
  • Avanzamento Tecnologico

Il Carbon Footprint è il dato piu importante e largamente utilizzato per la stima delle emissioni in atmosfera di gas serra, ed è espresso in tonnellate di Co2. In questo primo punto va assolutamente misurato il consumo totale della rete Bitcoin, che attualmente si attesta sui 75 TWh, un numero sicuramente importante pari a circa 30 tonnellate di CO2, ma che confrontato con altri pradigmi “simili” risulta piu esiguo di quello che si possa pensare:

  • Estrazione Oro: 58 milioni di tonnellate di Co2
  • Banconote/Atm: 7 milioni di tonnellate di Co2
  • Banche: 390 milioni di tonnellate di Co2

Questo tipo di disamina è sicuramente fine a se stessa, lo ammetto, perchè mette a confronto Bitcoin con dei sistemi simili, che emettono quantità largamente maggiori di gas serra di svariate proporzioni, ma che di fatto non invalida la tesi dell’inquinamento, semplicemente ci suggerisce la sua misura all’interno di una scala di piu ampie vedute che ci aiuta a comprendere in che contesto si confronti Bitcoin, come alternativa al moderno sistema bancario avrebbe già vinto in quanto a emissioni, tacendo pure gli avversori piu accaniti.

Le fonti energetiche sono invece uno dei dati piu significativi per addentrarci nella questione dell’inquinamento perchè se da un lato è innegabile il consumo energetico di Bitcoin, dall’altro è un dato che risponde solo alla domanda “quanta” energia richiede, non alla “qualità” delle fonti energetiche, necessarie per poter rispondere alla domanda “inquinamento”. Per trovare una risposta significativa a questa domanda dovremmo concentrarci prima sulla logistica delle macchine: il mining è un’attività che può essere tranquillamente dislocata rispetto all’operatore, il miner, a cui basta una connessione ad internet per poter svolgere il proprio lavoro, mentre le macchine possono essere alimentate vicino alla fonte energetica se questa, come vedremo, è di tipo green.

La Cina è il principale detentore mondiale delle farm con il possesso di circa il 65% dell’hashpower, la quale si serve principalmente di energie rinnovabili per alimentare le sue macchine: solo il 30% infatti è di origine fossile, il resto viene suddiviso in parti diseguali tra energia idroelettrica e geotermica in una sorta di transumanza legata alle stagioni piovose che vede le farm spostarsi tra le regioni di Xinjiiang, Sichuan, Nei Mongol e Yunnan. Una stima a favore vuole infatti la rete Bitcoin avvalersi di circa il 70% di energie rinnovabili, che su un’emissione mondiale di Co2 di 37 miliardi di tonnellate, vedrebbe la rete Bitcoin attestarsi ad un contributo di circa la 0,04%, o nelle stime piu pessimistiche dello 0,1%.

Un altro aspetto sottovalutato è quello del Consumo Futuro, la stima sul reale consumo del mining di Bitcoin è mutabile nel tempo perchè le fonti energetiche variano di continuo, e già questo dovrebbe dare una misura di come i miner siano degli abilissimi imprenditori, alla ricerca continua di energia a basso costo, risultando probabilmente l’unica infrastruttura al mondo a seguire le fonti energetiche migliori, persino da indurli a spostare la propria potenza di calcolo altrove in base alla stagionalità. Questo andrebbe tenuto conto in una proiezione temporale futura perchè, se è vero che tutto il mondo sta facendo sforzi importanti per abbandonare il carbon fossile in favore di fonti energetiche rinnovabili, la rete di Bitcoin sarebbe probabilmente una delle prima a beneficiarne, migliorando quindi la stima di emissioni odierna in un dato sensibilmente piu basso. I continui halving poi, che dimezzano la reward e quindi i profitti dei minatori nel tempo, porteranno l’attività di mining ad impiegare meno risorse hardware perchè appunto diventerà via via meno profittevole nel tempo, rendendo le fee la principale fonte remunerativa per i miner ( Il futuro delle fee alla fine del rewarding )ad aggiungersi a questo aspetto futuro sarà la diffusione che i layer2 come Lightining Network apporteranno in termini di efficienza energetica.

Infine c’è la questione dell’ Energy Wasting: gran parte dell’energia prodotta a livello mondiale viene di fatto sprecata, di cui circa l’8% viene dispersa nel solo trasporto: questo induce la questione energetica di Bitcoin in una posizione sicuramente piu green per via del fatto che le farm si collocano principalmente dove l’energia costa meno, dunque proprio nel sito di produzione come nel caso delle rinnovabili. Il consumo annuale di energia in USA è di 3.989 TWh di cui tanto per portare degli esempi 7 TWh vengono consumati per le sole luci natalizie, tra i 220 e i 240 TWh per i dispositivi passivi in stand-by in uso nelle abitazioni che se lo espandiamo al mondo intero porta questo numero a circa 940TWh.

Il miner ricorre al costoso carbon fossile come fonte energetica solo in mancanza di soluzioni piu economiche, in questo caso bisogna pensare a come l’esubero energetico di qualsiasi fonte energetica venga di fatto sprecato producendo gas serra senza un reale apporto alle nostre vite o alla nostra economia, Bitcoin in questo scenario si colloca andando ad attingere a gas serra che verrebbero comunque immessi nell’atmosfera ma trasformando quello spreco in un utilizzo concreto, parallelamente a quello che è l’industria dell’alluminio, per la quale serve tantissima energia elettrica che viene attinta proprio dove quell’energia è in esubero.

Un altro punto è l’Avanzamento Tecnologico dovuto all’adozione della Proof of Work che ha portato dapprima l’industria delle Gpu ad uno sprint tecnologico massivo non solo come potenza computazionale dei chip prodotti dai colossi come Nvidia, ma sopratutto dal punto di vista dell’efficienza. Innegabile il progresso degli Asic nel processo produttivo dei propri chip che, anno dopo anno, grazie agli ingenti investimenti dei miner, ha consentito di produrre chip sempre piu efficienti dal punto di vista energetico con processo produttivo espresso in nanometri:

La questione “energetica” ed “inquinante” di Bitcoin e della PoW è un argomento molto complesso ed articolato che per la mole di dati da dover analizzare non riesce a produrre una stima effettiva ma solo approssimativa, ma in questa approssimazione ci troviamo comunque in scenari assolutamente molto proporzionati e del tutto lontani da titoli sensazionalistici riportati dai mass media. La disamina sopra è un appunto sommario cui ho dedicato uno spazio per dovizia di particolari, ma rimando il lettore a due importanti link per approfondire l’argomento: Analisi dell’impatto ambientale dei Bitcoin e endthefud.org/energy .

Blockchain Trilemma

Il Blockchain Trilemma indica tre proprietà che una blockchain cerca di ambire ma di cui può ottenerne solo due.

Il trilemma della blockchain è una condizione che riguarda i tre principi fondamentali della tecnologia ossia: sicurezza, scalabilità e decentralizzazione. Inizialmente espresso da Vitalik Buterin, il trilemma afferma che tutte le blockchain possono risolvere solo due dei problemi appena citati.

Il trilemma della blokchain deriva dal Triangolo di Zooko, un trilemma composto da tre proprietà di cui per assunto solo due sono realizzabili:

  • sicurezza
  • velocità
  • decentralizzazione

Senza entrare nei dettagli di questo trilemma, ciò che la PoS si auspica è quello di combinare piu tecnologie ad essa come lo sharding e i layer2 per andare a risolverlo; ad oggi però rimane un paradosso inesplorato cui nemmeno Bitcoin ha validato, riuscendo però a mantenere questo compromesso piu equo per il suo corretto funzionamento.

Il Cigno Nero: The Black Swan Theory

Sebbene la resilienza di entrambi i protocolli sia stata ampiamente messa alla prova nel corso degli anni, redigere una vera e propria comparativa è argomento complesso e articolato: gli algoritmi di consenso si prestano a protocolli simili ma di fatto molto diversi tra loro, e non è possibile ricostruire una casistica completa tirando le somme e dimostrando un risultato oggettivo.
Può essere utile allora immaginare dei worst case scenario e vedere come reagirebbero entrambi i meccanismi ai piu disparati attacchi.

“Rara avis in terris nigroque simillima cygno”

«uccello raro sulla terra, quasi come un cigno nero» scriveva Giovenale, mentre Nassim Taleb prendeva in prestito tale citazione per introdurre la teoria del Black Swan, il cigno nero, una metafora che tenta di spiegare un evento inatteso:

La teoria del black swan o teoria degli eventi del cigno nero è una metafora che descrive un evento che si presenta come una sorpresa, ha un effetto importante ed è spesso razionalizzato in modo inappropriato dopo il fatto con il senno di poi. Il termine si basa su un antico detto che presupponeva che i cigni neri non esistessero, un detto che è stato reinterpretato per dare una lezione diversa dopo il primo incontro europeo con loro.

Uno dei black swan event per un network potrebbe essere quello di andare offline , per motivi interni od esterni, la rete potrebbe finire col diventare irraggiungibile da tutti i nodi. Quando una rete va offline impiega del tempo affinchè si riavvii e di conseguenza i nodi che la compongono; non tutti i nodi potrebbero riavviarsi e riprendere le comunicazioni tra loro contemporaneamente e questo potrebbe portare i nodi a effettuare dei fork della chain dall’ultimo blocco comune poco prima che andasse offline, creando quindi delle divisioni nella catena.

Una volta ristabilita la comunicazione tra i nodi avremo scenari diversi a seconda dell’algoritmo di consenso: nella PoW i nodi si auto-organizzeranno automaticamente attorno alla chain con maggior “prove di lavoro” accumulate, quindi la piu sicura e profonda, in un comportamento che sarà quindi deterministico. Nella PoS i nodi non avrebbero idea di quale catena sia la catena più “corretta”, proprio per la mancanza di “prove di lavoro” accumulate. A differenza della PoW infatti, una blockchain PoS non ha un parametro oggettivo per confrontare i fork della chain; questo comportamento è indeterministico ed impossibile da automatizzare, la divisione potrebbe diventare permanente.

Un altro possibile evento nefasto è relativo all’impossessarsi di chiavi private relative a wallet che hanno detenuto somme ingenti di token, anche se ora si presentassero vuoti: sebbene la crittografia utilizzata nelle blockchain sia PoW che PoS risultino immuni, nella pratica, ad hack come già discusso, venire in possesso delle chiavi private di un wallet simile è molto piu semplice di quello che si possa pensare, ricorrendo a banali tecniche di social engineering come il phishing ad esempio, o ipotizzando anche una cessione di queste chiavi private come vendita a terzi o, in scenari peggiori, alla loro confisca da parte di governi autoritari.

Avere maggiori monete significa detenere gran parte del potere decisionale in una PoS, l’equivalente di avere gran parte dell’hashpower nella PoW, in un attacco che è di fatto paragonabile al 51% attack:

entrare in possesso di una grande quantità di monete nella PoS aprirebbe tantissimi scenari all’attaccante: potrebbe riscrivere persino l’intera blockchain se non vi siano checkpoint (degli snapshot che “fotografano” la quantità di monete in stake nei vari blocchi), tutto questo senza dover sostenere nessun “costo”, ricordiamo che non c’è alcun investimento in hardware o energia. La PoW offre una garanzia di sicurezza che la PoS non può conciliare per sua stessa natura: proteggere tutta la storia della catena disincentivando gli attacchi per il costo che essi devono sostenere; ed anche qualora un attacco di simile entità dovesse riuscire, i miner sarebbero in grado di forkare la rete mantenendo la sua cronologia intatta.

Nothing at Stake

Una delle criticià principali della PoS è il cosiddetto problema del “nothing-at-stake”, dove nel caso di un fork della chain, gli stakeholder avrebbero contemporaneamente l’incentivo a convalidare entrambe le catene e ciò aumenterebbe il pericolo di problemi di double spending, come approfondito nella Ethereum Wiki:

Tuttavia, questo algoritmo ha un importante difetto: non c’è «niente in gioco» (nothing at stake). Nel caso di un fork, se il fork è accidentale o un tentativo malevolo di riscrivere la storia ed invertire una transazione, la strategia ottimale per ogni minatore sarebbe quella di minare su ogni catena, in modo che il minatore ottenga la propria ricompensa indipendentemente da quale fork vinca. Quindi, assumendo un gran numero di minatori economicamente interessati, un attaccante può essere in grado di inviare una transazione in cambio di un bene digitale (di solito un’altra criptovaluta), ricevere il bene, quindi avviare un fork della blockchain da un blocco dietro la transazione e mandare invece i soldi a se stesso, ed anche con l’1% dello stake totale il fork dell’attaccante vincerebbe perché tutti gli altri minerebbero su entrambi.

Non essendoci costi per l’estrazione delle nuove monete, come accade invece nella PoW, i validatori si dividerebbero a causa del fork, continuando due chain parallele, non importa se una delle due sarà piu corta dell’altra, sarebbe comunque remunerativo per chi la continua allo stesso modo della piu lunga, esattamente al contrario della PoW. Un validatore malintenzionato avrebbe quindi la possibilità di effettuare un “double spending” creando un fork prima di spendere le proprie monete con il pericolo che gli altri miner continuino la sua catena ignari della cosa. Anche se qualcuno potrebbe accorgersi del tentativo di attacco, e decidesse di non validare quel blocco preservando l’integrità della rete, la credibilità del network, se ad essere colpita sia la chain principale, sarebbe in ogni caso compromesso.

Long Range Attack

Un altro potenziale problema con PoS è il cosiddetto problema di “attacco a lungo raggio” dove gli attaccanti entrano in possesso di una chiave privata (comprandola, o sottraendola col social engineering) che in passato aveva un grande saldo di token e che è quindi in grado di generare una cronologia alternativa da quel momento. A causa della grande quantità di ricompense che all’attaccante riceverebbe, potrebbe generare una catena con piu stake rispetto alla catena esistente riscrivendone di fatto la cronologia se volesse.

Questo significa avere il totale controllo sulla blockchain e nessun rischio finanziario associato all’attacco.

Per ovviare a questo problema è stato introdotto il checkpoint, un processo secondo il quale ad un determinato blocco della catena viene fatto una sorta di “snapshot”, una fotografia, delle monete in stake, in modo tale che la catena non possa piu essere riorganizzata prima di quel momento. Chiaramente se il network dovesse andare offline non sarebbe possibile effettuare il checkpoint e il problema rimarrebbe ugualmente mandando in confusione tutti gli altri nodi che validerebbero i blocchi casualmente se la chain dovesse forkarsi.

Questo però porta ad ulteriori problematiche:

  1. un nodo di nuova installazione non è in grado di determinare i checkpoint, deve fidarsi dei nodi a cui si collega (potenzialmente malevoli) ; (sebbene esistano nodi hard-coded che risolvono questo aspetto, sarebbe un altro elemento di centralizzazione)
  2. se il checkpoint è troppo indietro nel tempo i tempi di conferma per essere certi di un pagamento si allungano perché di fatto il checkpoint è l’unica cosa che tiene in sicurezza la rete PoS
  3. se il checkpoint è troppo vicino c’è una certa probabilità che si generino biforcazioni e quindi “nascano” blockchain parallele con storie diverse, rendendo più aleatorie le conferme di transazione

Staking e Consensus

Nei protocolli PoS il token non è solo una moneta ma anche un governance token: piu token si possiedono maggiore potere di voto si ha all’interno del network; questo è doppiamente un elemento di criticità per la PoS perchè chi genera il reward dello stake validando i blocchi, aumenta sempre piu il suo potere mentre si arricchisce, avvalendosi di questo duplice vantaggio, in un loop che si auto alimenta, “who is already rich becomes even richer”. In un sistema di questo tipo il rischio è quello della centralizzazione del voto ad appannaggio di una ristretta cerchia di nodi: questo oligopolio avrebbe il potere di decidere il futuro della rete, venendo meno alla caratteristica decentralizzata di cui la PoS si fregia.

Conclusioni: PoW vs PoS

Abbiamo passato in rassegna i due algoritmi di consenso maggiormente diffusi sul mercato, ci sarebbe ancora molto da approfondire in quanto entrambi presentano delle varianti, ed ogni blockchain che li adotta ha introdotto ed introdurrà delle internal proposal che ne cambiano o influenzano alcune caratteristiche di funzionamento e di teoria dei giochi. La scelta tra PoW e PoS o altro algoritmo di consenso come la Proof of Authority ad esempio, dipende fortemente dal fine ultimo del progetto cui quella blockchain decide di servirsene: sebbene buona parte dei progetti sul mercato che utilizzano la blockchain potrebbero tranquillamente fare a meno della blockchain stessa in favore di soluzioni meno costose, meno dispendiose e sicuramente piu economiche, la scelta di un algoritmo di consenso piuttosto che un altro è un argomento molto delicato che non può a mio avviso trovare un’univocità di consenso nel pubblico.

“[A]ll “pure” proof-of-stake systems are ultimately permanent nobilities where the members of the genesis block allocation always have the ultimate say. No matter what happens ten million blocks down the road, the genesis block members can always come together and launch an alternate fork with an alternate transaction history and have that fork take over.” — Vitalik Buterin

Alla luce di ciò una comparativa, per quanto dettagliata, non può produrne un risultato oggettivo. Dovremmo invece domandarci a monte, se i problemi che la blockchain tenta di risolvere non siano gli stessi che essa crea; gran parte della DeFi ha bisogno della Proof of Stake per alimentare i suoi meccanismi, pertanto sarebbe assurdo sostituirla in favore della Proof of Work. Ma se parliamo di vera decentralizzazione, di sicurezza, la PoW rimane un capostipite insostituibile e trova la sua migliore espressione in Bitcoin: qualsiasi blockchain abbia provato a migliorare uno di questi aspetti si è dovuta scontrare col blockchain trilemma, sacrificando caratteristiche altrettanto importanti. La Proof of Stake non presenta alcun ancoraggio al mondo reale, come l’hardware e l’energia che servono alla PoW per funzionare, innescando dei meccanismi totalmente slegati dalla realtà e che hanno senso solo nel mondo digitale, e questo ha una conseguenza enorme nella teoria dei giochi, forse l’unica che conta davvero.

“Un gioco può essere descritto in termini di strategie, che i giocatori devono seguire nelle loro mosse: l’equilibrio c’è, quando nessuno riesce a migliorare in maniera unilaterale il proprio comportamento. Per cambiare, occorre agire insieme” — John Nash

Ringraziamenti:

I miei piu sentiti ringraziamenti vanno a Giacomo Zucco per essersi sorbito la lettura di questo testo ben due volte, revisionandolo con circa 30min di audio su telegram, che custodirò con molta cura; e per essersi sorbito le mie molestie in DM per circa 1 anno, durante il quale però ci siamo divertiti parecchio.

Ringrazio inoltre Alberto De Luigi per aver avermi dato la possibilità di inserire una parte di un suo articolo ed avermi dato qualche suggerimento durante la stesura.

Source:

https://bitfury.com/content/downloads/pos-vs-pow-1.0.2.pdf

--

--