Moneta digitale: Bitcoin Peercoin e Proof of Stake

Percoin è una moneta derivata da Bitcoin ma considerata di seconda generazione perché è stata la prima ad implementare il concetto di Proof of Stake.
Non è recentissima, è stata avviata il 16 agosto 2012, ma fra tutte le monete digitali derivate da Bitcoin è indubbiamente quella più innovativa. Ha introdotto numerosi cambiamenti rispetto al funzionamento di Bitcoin, quello più importante è appunto il Proof of Stake. Cerchiamo di capire di cosa si tratta riprendendo il funzionamento di Bitcoin.

Block chain di Bitcoin e Proof of Work

Il database delle transazioni di Bitcoin (block chain) è organizzato in blocchi, una sorta di pagine del libro mastro dei pagamenti in bitcoin. I blocchi sono collegati in sequenza temporale tramite il loro valore hash, una specie d’impronta digitale del blocco, in modo che un qualsiasi tentativo di alterare un blocco si ripercuota su tutti quelli successivi.

Nella figura i riquadri T rappresentano le transazioni. In ogni blocco è presente l’hash del blocco precedente. Infine, in ogni blocco, c’è un riquadro chiamato Prova. Vediamo di cosa si tratta ponendoci una domanda: come si fa ad impedire che qualcuno modifichi la block chain, ad esempio cancellando una transazione e ricreando tutta la catena dei valori hash in modo che rimanga comunque valida?
La risposta è: mettendo a garanzia di ogni blocco il consumo di una risorsa non falsificabile.
Nel caso di Bitcoin questa risorsa è il tempo (e di conseguenza l’energia). Chi genera il blocco deve fornire una prova di aver svolto un lavoro che è noto richiedere molto tempo (in media 10 minuti), questo lavoro altro non è che una sorta di calcolo il cui risultato è la prova che è stato svolto.
Questa tecnica è chiamata per ovvi motivi “Proof of Work”.
Chi vuole alterare la block chain è costretto a rifare tutto il lavoro e spendere lo stesso tempo ed energia che era stato impiegato per creare la catena originale, oltretutto deve farlo prima che quest’ultima cresca con nuovi blocchi perché vince sempre la catena più lunga (quella che ha richiesto più lavoro per la sua generazione).
La prima osservazione che si può fare è che i risultati dei calcoli fatti per “svolgere il lavoro” non servono a nulla di particolare se non per dimostrare che il calcolo è stato fatto. Per fare questi calcoli è necessaria ovviamente dell’energia e questo consumo è potenzialmente senza limite, la complessità del lavoro aumenta insieme alla potenza di calcolo utilizzata perché il sistema si autoregola in modo che siano impiegati comunque 10 minuti per svolgerlo, infatti lo scopo è tenere occupati tutti per 10 minuti non sapere il risultato del calcolo.

Problemi del Proof of Work

Una questione è la sostenibilità ambientale. Ha senso consumare tanta energia per far funzionare questo sistema? È vero che tutti i calcoli svolti per il funzionamento di Bitcoin sembrano sprecati poiché i risultati non interessano direttamente, però più calcoli vengono fatti e più il sistema è sicuro. In ogni caso questo consumo non può crescere veramente in modo incontrollato per una semplice questione di convenienza economica.
Qui si apre una questione più rilevante. Ciò che sostiene e ripaga l’energia per fare tutto questo lavoro è un meccanismo di ricompensa chiamato mining. Il mining è anche il modo in cui vengono generati nuovi bitcoin, però i bitcoin sono limitati a 21 milioni e infatti la ricompensa (pagata in bitcoin) decresce nel tempo fino ad azzerarsi. Qui non ci sono molte alternative: o il bitcoin continua a rivalutarsi in modo da sostenere i costi energetici per il mining o ad un certo punto la rete di Bitcoin non sarà in grado di ripagarsi e saranno necessari “finanziatori” esterni con possibili conseguenze sulla neutralità e decentralità del sistema.

Proof of Stake

Una risposta a questi problemi è stata data cercando una possibile alternativa rispetto alla risorsa da consumare come garanzia per ogni blocco. Questa risorsa deve essere non falsificabile e deve essere consumata per la generazione del blocco fornendo una prova di questo consumo.
Si è osservato che il possesso della moneta digitale stessa è già una risorsa non falsificabile, oltretutto il tempo di permanenza di queste monete in un portafoglio è misurabile dalla block chain stessa e viene azzerato (quindi consumato) ogni volta che si fa una transazione per inviarle ad un altro portafoglio.
Unendo i concetti di possesso di moneta e tempo di permanenza nel portafoglio si ottiene quello che è definito “coin age” e che tradurrò come “tempo moneta”. Questo è ottenuto moltiplicando il numero di monete per il tempo trascorso dall’ultima transazione che le ha spostate. Ad esempio 30 giorni moneta possono essere ottenuti da 1 moneta ferma per 30 giorni o da 15 monete ferme per soli 2 giorni.
Il Proof of Stake utilizza il tempo moneta come garanzia per ogni blocco e per consumare tale risorsa basta creare una transazione verso se stessi, tale transazione è utilizzata anche come prova del consumo del tempo moneta.
Tramite un semplice meccanismo (che ricorda il lavoro del proof of work), la possibilità di generare una transazione come prova per il proof of stake viene resa un processo casuale tanto più probabile quanto più è il tempo moneta utilizzato.
Questa volta un malintenzionato che vuole alterare la block chain, invece che procurarsi potenza di calcolo, deve accumulare preventivamente una quantità di tempo moneta sufficiente per rigenerare tutta la parte di catena alterata.
Questo metodo non è dipendente dall’energia consumata, in quanto non richiede una grossa quantità di calcoli ma solo il possesso di monete. Dal punto di vista della sicurezza presenta dei vantaggi ma anche degli svantaggi rispetto al proof of work, oltretutto per funzionare ha bisogno che ci siano in partenza delle monete già esistenti e distribuite.
Un grosso problema con il proof of work è che la creazione di hardware specializzato nel fare i calcoli necessari ha portato una spinta alla concentrazione della potenza di calcolo, riducendo il numero di computer attivi nella rete ma con grossa potenza (mentre sarebbe meglio molti e piccoli). Il proof of work risolve alla radice il problema, permettendo a tutti di partecipare attivamente, anche con piccole quantità di monete e per piccoli periodi di tempo.
Da notare che l’utilizzo del proof of stake è un’attività di mining a tutti gli effetti. La generazione del blocco avviene esattamente allo stesso modo che per il proof of work e allo stesso modo esiste la ricompensa per chi genera il blocco.

Peercoin utilizza entrambe le tecniche, nel senso che ci sono blocco generati con una e blocchi generati con l’altra. Il proof of work risolve egregiamente il problema della creazione e distribuzione iniziale delle monete e con il tempo il suo ruolo diventa sempre più secondario mentre acquista importanza il proof of stake. In peercoin la ricompensa per ogni blocco generato con il proof of stake è proporzionale al tempo moneta consumato in modo tale da ottenere l’equivalente di un interesse dell’1% annuo delle monete utilizzate a garanzia.
Da peercoin sono nate molte altre monete ibride che utilizzano le 2 tecniche, alcune ne hanno addirittura separato l’uso in momenti diversi, usando il Proof of Work nel primo periodo di vita per poi passare di colpo all’uso esclusivo del Proof of Stake (un esempio è BlackCoin ed altre).

Edit: PeerKaiZen

[size=10pt]“Tutto” su Peercoin PPC, Aggiornamenti, Informazioni, Video e Links[/size]