Famosi algoritmi di consenso: PoW vs PoS vs dBFT
Questo articolo è ora pubblicato anche su Sossoldi.org — simulatori di scelte finanziarie e tutti i miei articoli in un unico posto!
La blockchain alla base di Bitcoin è probabilmente il database più sicuro al mondo.
Ogni transazione è immutabile, potenzialmente eterna, e impossibile da imitare o contraffarre.
Il trucco? L’algoritmo di consenso, o consensus algorithm (a volte anche detto consensus mechanism o scheme).
Essenzialmente, ogni transazione deve prima di tutto essere validata dai nodi del network, prima di essere definitivamente inclusa nella blockchain.
Per farlo, gli stessi nodi devono raggiungere un consenso sulla validità della transazione, senza doversi semplicemente fidare l’uno delle informazioni dell’altro.
Blockchain diverse hanno raggiunto lo scopo in modi diversi, tutti a loro modo interessanti e più o meno sperimentali.
Curioso?
Ecco i tre più famosi algoritmi di consenso.
Proof-of-Work (PoW)
Sicuramente il più famoso. Principale esponente? Ovviamente Bitcoin.
Altre famose criptovalute che hanno adottato il PoW sono essenzialmente derivati di Bitcoin, ad esempio Bitcoin Cash, Litecoin e Vertcoin. Ethereum è un’eccezione tra le più famose, in quanto blockchain sviluppata da zero, ma allo stesso tempo PoW.
Come funziona il più utilizzato algoritmo di consenso al mondo, quindi?
Ogni transazione viene prima di tutto inclusa in uno specifico blocco di dati, il quale è poi registrato sulla blockchain grazie all’hashing svolto dai miner.
“…Eh?”
Proviamo a semplificare: i miner criptano il blocco tramite uno specifico algoritmo (nel caso di Bitcoin, lo SHA-256), cercando essenzialmente di indovinare il risultato corretto (chiamato hash), secondo dei parametri stabiliti da un altro algoritmo, cosiddetto “di difficoltà”.
Il primo miner che azzecca “vince” sia una predeterminata somma di Bitcoin creata da zero, sia i costi di tutte le transazioni incluse nel blocco.
Queste due componenti fungono da incentivo monetario per i miner, vista l’utilità del lavoro per l’intera comunità.
In particolare, la somma di Bitcoin generata assieme al blocco è paragonabile all’operazione di stampa moneta delle Banche Centrali, perchè genera inflazione (sebbene sia molto più prevedebile dei meccanismi classici, perchè governata da un algoritmo).
Questo sistema è efficace per un motivo molto semplice: calcolare un hash velocemente richiede un’importante quantità di potenza computazionale, e, di conseguenza, elettricità.
“Cioè, fammi capire: i miner sprecano tonnellate di energia, e questo è un bene?”
Ottima domanda. Ovviamente ci sono due facce per la stessa medaglia.
Il vantaggio di un algoritmo PoW è la barriera economica per attori fraudolenti.
Per poter cambiare una transazione, o spenderla due volte (“double spending”), un malintenzionato dovrebbe prima di tutto ottenere una maggioranza assoluta di potere computazionale nell’intero network.
Impossibile? Non esattamente. Più semplicemente, sarebbe così complesso e costoso da rendere misero l’eventuale risultato finale (guadagno < costo).
Per questo motivo, affermare che il network Bitcoin sprechi energia non è corretto.
Allo stesso tempo, è invece assolutamente corretto notare la quantità di elettricità richiesta, e l’insostenibilità del network sul lungo termine.
Potete leggere al riguardo quest’ottimo articolo, che vi riassumo per comodità.
Al momento della stesura dell’articolo, se Bitcoin fosse stato una nazione, allora sarebbe risultato 48esimo nella classifica del fabbisogno energetico nazionale.
Confrontando Bitcoin con VISA, il paragone diventa ancora più cupo.
Con l’energia necessaria per validare una singola transazione Bitcoin si potrebbero gestire più di 400.000 transazioni sul circuito VISA.
Aggiungiamo anche che i miner sono spesso cinesi, la cui energia prodotta tramite carbone è tanto inquinante quanto economica, e che i macchinari richiesti sono rari e costosi, per chiudere un quadro piuttosto ambiguo.
Non c’è quindi da stupirsi che il mercato si sia mosso per trovare alternative sufficientemente sicure e ben più ecologiche.
È il momento di introdurre il nostro secondo algoritmo.
Proof-of-Stake (PoS)
Da Proof-of-Work, o “dimostrazione di lavoro”, a Proof-of-stake, “dimostrazione di interesse”, cosa cambia?
Come suggeriscono le traduzioni, l’algoritmo PoS preferisce un approccio ben diverso.
La figura del miner rimane concettualmente la stessa, ma differisce radicalmente nella pratica.
In una blockchain, chi sono i maggiori interessati nel garantire la sicurezza e l’affidabilità del network?
Ovviamente, i proprietari di criptovaluta o token: infatti, nel caso il network venisse compromesso, la relativa moneta non varrebbe più nulla.
Partendo da questo semplice presupposto, l’algoritmo PoS stabilisce che per minare blocchi è necessario possedere e bloccare più o meno grandi quantità di criptovaluta (definito staking, o “mettere in gioco” più informalmente).
Esempio veloce: hai il 3% dell’intera fornitura di FakeCoin? La probabilità di validare un blocco è del 3%.
Questo meccanismo implica di fatto una forma di guadagno simile ai classici dividendi azionari. Grazie allo staking, il proprietario del portafoglio valida un blocco periodicamente, ottenendo quindi un rendimento percentuale costante. La cifra si attesta in media sul 5–10% l’anno.
Così facendo, il sistema sopperisce agilmente agli svantaggi dell’algoritmo PoW, perchè:
- Il sistema non richiede una grande potenza computazionale, e di conseguenza non solo è efficiente dal punto di vista energetico, ma è anche indipendente da macchinari specializzati e centralizzati.
- Per compromettere il network servirebbe una maggioranza del 51%, rendendo l’operazione complessa e costosa.
- In caso di tentativo di compromissione, il malintenzionato dovrebbe comunque acquistare il 51% della fornitura di criptovaluta, il cui valore crollerebbe a zero in seguito all’attacco stesso.
L’algoritmo PoS è, a ragione, considerato quasi sempre preferibile al PoW proprio per questi motivi.
Inoltre, è disponibile anche in modalità diverse, ad esempio la Delegated Proof-of-Stake, dove i proprietari di criptovaluta possono votare dei rappresentanti, i quali validano il network, propongono modifiche al sistema, e condividono le ricompense del mining con i loro elettori.
Praticamente una democrazia digitale.
Ma nonostante tutto, non è esente da difetti nemmeno l’algoritmo PoS.
Prima di tutto, al momento le blockchain PoS non sono ancora in grado di raggiungere le migliaia di transazioni al secondo necessarie per un network di pagamenti. Più comunemente, si attestano sulle centinaia al secondo.
Alcuni hanno anche fatto notare come PoW e PoS condividano un difetto/caratteristica: la procedura in caso di mancato consenso sulla validità di un blocco.
In caso due blocchi siano considerati validi nello stesso momento, la blockchain si biforca, registrandoli entrambi.
Uno o più blocchi dopo, il network ristabilisce il consenso su uno dei rami, il quale prima o poi si dividerà (in inglese “fork”) di nuovo, per poi ritrovare il consenso, e così via.
Per quanto questi eventi siano considerati una funzionalità della blockchain, in alcuni casi non sono desiderabili.
Immagina di comprare una casa e registrare l’acquisto tramite blockchain: vorresti davvero che l’atto venga validato in una versione alternativa, per poi non risultare più ufficialmente valido? Ovviamente no.
Per sopperire al problema, alcune blockchain usano l’algoritmo dBFT.
Perchè?
delegated Byzantine Fault Tolerance (dBFT)
L’algoritmo di consenso dBFT è stato portato alla ribalta dalla blockchain NEO (precedentemente chiamata “Antshares”), promettendo sostanziali miglioramenti e un solido meccanismo di validazione.
La complessità del nome deriva dal “problema dei generali bizantini”:
[…] un problema informatico su come raggiungere consenso in situazioni in cui è possibile la presenza di errori. Il problema consiste nel trovare un accordo, comunicando solo tramite messaggi, tra componenti diversi nel caso in cui siano presenti informazioni discordanti.
Applicando la stessa analogia al mondo blockchain, l’obiettivo dell’algoritmo dBFT è di creare un consenso non soltanto univoco, ma anche affidabile e a prova di malintenzionati.
Ecco come:
- La base utenti è divisa in utilizzatori e nodi professionali, anche detti bookkeeping nodes. I primi vogliono semplicemente sfruttare le capacità del network, i secondi invece puntano al guadagno economico derivante dalla validazione della blockchain.
- Similmente all’algoritmo dPoS visto in precedenza, gli utilizzatori votano per eleggere dei delegati tra i nodi professionali disponibili, assegnandogli l’onere di validare il network.
- Ad ogni verifica, un delegato viene scelto pseudo-randomicamente per comunicare la sua versione della blockchain al resto del network.
- A questo punto, se il 66% dei rimanenti delegati approva la comunicazione, allora la blockchain raggiunge il consenso sulla verifica del blocco, e lo aggiunge. In caso contrario, viene eletto un nuovo delegato, il quale propone una nuova versione da votare.
Inizia sempre più ad assomigliare a un governo digitale, vero?
Tramite questa serie di voti, il consenso finale è sempre univoco.
Oltretutto, non essendo necessario nessun calcolo, il network è veloce e scalabile, permettendo di effettuare decine di migliaia di transazioni al secondo.
In questo modo, la blockchain riesce ad essere decentralizzata (più o meno, a seconda del numero di nodi professionali presenti) e, allo stesso tempo, abbastanza performante da competere con sistemi centralizzati più tradizionali.
Conclusione
Il tasso di innovazione nel settore blockchain continua a crescere esponenzialmente, e con esso anche le soluzioni volte a migliorare questi nuovi sistemi decentralizzati.
Tra i cambiamenti più interessanti ci sono sicuramente quelli agli algoritmi di consenso, che permettono validazioni più sicure e veloci, con compromessi più o meno accettabili.
Il più famoso algoritmo, denominato Proof-of-Work, è ancora considerato il più affidabile, pur mostrando enormi problemi di sostenibilità sul lungo termine a causa dell’energia richiesta per la validazione dei blocchi.
Ovviamente altri sviluppatori non sono rimasti a guardare, e nuovi algoritmi hanno portato maggiore efficienza e velocità.
Tra questi, si sono distinti il Proof-of-Stake, il delegated Proof-of-Stake, e infine il delegated Byzantine Fault Tolerance, il quale rinuncia a una completa decentralizzazione in favore di velocità, scalabilità e consenso univoco.
Tutto questo dimostra quanto non esista ancora uno standard tra gli algoritmi di consenso, in grado di garantire performance comparabili ai circuiti tradizionali e sicurezza simile al network Bitcoin.
Al ritmo di innovazione attuale, siamo sicuri che sia solo questione di tempo.
Che il 2018 sia l’anno giusto?
Se ti è piaciuto questo articolo, diffondilo condividendo questa storia su Facebook, Twitter o LinkedIn!
Ti interessano i miei articoli? Seguimi su Medium e iscriviti alla newsletter su riccardodinale.com!
Questo articolo riflette la mia opinione personale e non è considerabile come un consiglio d’investimento professionale.
Investi in criptovalute con cautela.