Proof-of-stake

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search

Proof-of-stake (PoS) (vagamente traducibile in Italiano come, "prova che si ha una posta in gioco") è il nome di un metodo per la messa in sicurezza di una rete di criptovaluta e per il conseguimento di un consenso distribuito. È basato sul principio che ad ogni utente venga richiesto di dimostrare il possesso di un certo ammontare di criptovaluta. Si differenzia dai sistemi proof-of-work che sono basati su algoritmi di hash che validano le transazioni elettroniche. Peercoin è stata la prima criptovaluta ad utilizzare sin dal lancio il sistema Proof-of-Stake. Altre note implementazioni del PoS sono BitShares, Nxt, BlackCoin e Cardano.

Varianti per la selezione di un blocco[modifica | modifica wikitesto]

Ogni qualvolta un nuovo blocco viene aggiunto alla blockchain, deve essere scelto il creatore del blocco successivo. Dato che quest'ultimo non può essere l'account che possiede la maggiore quantità della criptovaluta (altrimenti questo creerebbe tutti i blocchi), sono stati escogitati diversi metodi di selezione.

Selezione Casuale (Random)[modifica | modifica wikitesto]

Nxt e BlackCoin utilizzano una funzione casuale per predire il generatore del blocco successivo, impiegando una formula che cerca il valore hash più basso rapportato alla dimensione della somma in gioco. Dato che la conoscenza delle somme è pubblica, ogni nodo della rete può predire - con ragionevole accuratezza - quale account si aggiudicherà il diritto di forgiare un nuovo blocco.

Selezione basata sull'anzianità[modifica | modifica wikitesto]

La PoS di Peercoin mescola la selezione casuale con il concetto di "anzianità", un numero ottenuto tramite il prodotto del numero di monete per il numero di giorni in cui tali monete sono state possedute. Le monete che non sono state spese per almeno 30 giorni competono per la creazione del blocco successivo. Gli ammontari di monete più anziani e più grandi hanno una maggiore probabilità di firmare il blocco successivo. Eppure quando un ammontare di monete è utilizzato per firmare un blocco, questo ammontare deve ricominciare con "anzianità zero" e quindi aspettare almeno altri 30 giorni prima di poter firmare un altro blocco. E inoltre la probabilità di trovare il blocco successivo è massima dopo 90 giorni, per prevenire che somme consistenti e molto "anziane" possano dominare la blockchain. Questo processo mette in sicurezza la rete e produce gradualmente nuova valuta nel corso del tempo senza consumare una potenza computazionale significativa. Gli sviluppatori di Peercoin sostengono che questo renda più difficile attaccare la rete dato che cade il bisogno di piattaforme centralizzate di mining e inoltre acquistare più di metà delle monete è probabilmente più costoso che acquisire il 51% della potenza di hashing della proof-of-work.

Selezione basata sulla velocità[modifica | modifica wikitesto]

Il concetto di PoS di Reddcoin basata sulla velocità rivendica di incoraggiare la movimentazione di moneta piuttosto che il suo accumulo.

Selezione basata sul voto[modifica | modifica wikitesto]

Invece di utilizzare solamente il concetto di posta in gioco (stake), i creatori dei blocchi possono essere selezionati mediante votazione. BitShares utilizza un sistema che comprende 101 delegati e sceglie casualmente tra essi.[1] Il voto della comunità aumenta l'incentivo dei creatori dei blocchi ad agire responsabilmente, ma al contempo apre alla prospettiva di scenari di sybil attack - come ad esempio nell'eventualità che un singolo utente impersoni i primi cinque delegati.

Vantaggi e Svantaggi[modifica | modifica wikitesto]

La proof-of-work si basa sul consumo di energia. Ciò significa che un bene tangibile esterno mette in sicurezza la rete. Di contro, ciò porta al consumo incrementale di energia. Come riportato da un'azienda di mining che gestisce una mining-farm di Bitcoin, servivano l'equivalente di 240 kWh per ogni Bitcoin nel 2014 (un ammontare pari a 16 galloni di gas). Invece le criptovalute basate sulla Proof of Stake possono essere migliaia di volte più efficienti. Questi costi di mining esercitano la funzione di calmierare il prezzo della valuta.

Un altro aspetto da tenere in considerazione è che gli incentivi tra Proof-of-Work e Proof-of-Stake sono radicalmente diversi. La Proof-of-Work implica che il creatore del blocco non sia necessariamente colui che possiede la valuta. L'incentivo è quello di massimizzare il profitto dell'hardware. Si discute del fatto che questo aumenti o diminuisca la sicurezza della rete.[2] Nella Proof-of-Stake colui che possiede la moneta e colui che ne assicura la sicurezza sono la stessa persona. Nonostante ciò, molte criptovalute consentono o addirittura rendono obbligatorio conferire questa funzione ad altri nodi.

Critiche[modifica | modifica wikitesto]

Alcuni autori[3] sostengono che la proof-of-stake non sia un'opzione ideale per costruire un protocollo di consenso distribuito. Il problema più grande rimane quello del cosiddetto "nothing at stake" (nessuna posta in gioco). Significa che nel caso di una ramificazione della blockchain (o qualsiasi altro tipo di disaccordo nel consenso), una persona possa "votare" per entrambe le varianti, perché ha delle poste in gioco in ciascuna delle varianti. Non costa molto lavorare su diverse blockchain (non come nel sistema proof-of-work), e ciò dà la possibilità di provare ad ingannare (ad esempio, spendere la stessa cifra due volte in un'istanza di riorganizzazione della blockchain) "gratis".[4]

Molti hanno provato a risolvere questi problemi:

  • Peercoin utilizza dei checkpoints trasmessi centralmente firmati dalla chiave privata dello sviluppatore. Una riorganizzazione della blockchain non è possibile sotto il livello dell'ultimo checkpoint conosciuto. Il tradeoff è che lo sviluppatore è l'autorità centrale che controlla la blockchain.
  • Il protocollo di Nxt consente solamente di riorganizzare gli ultimi 720 blocchi.[5] Non permettere le riorganizzazioni della blockchain può causare al proprio client di seguire una ramificazione di 721 blocchi senza controllare se sia o meno la blockchain più lunga, prevenendo il consenso.
  • Il protocollo suggerito da Ethereum - Slasher - consente agli utenti di "punire" un "imbroglione" che fa mining su più di una delle biforcazioni della blockchain. Questa proposta implica che un utente debba firmare due volte per creare una biforcazione e che si possa essere puniti se si crea una biforcazione senza avere nessuna posta in gioco.

Simulazioni statistiche hanno dimostrato come sia possibile (e persino profittevole) lavorare simultaneamente su più biforcazioni della blockchain. Ma i fautori della Proof-of-Stake credono che gli scenari di attacco più comuni siano impossibili o talmente difficili da predire che in realtà hanno validità solamente teorica.

Voci correlate[modifica | modifica wikitesto]

Note[modifica | modifica wikitesto]

  1. ^ BitShares - Delegated Proof of Stake, su bitshares.org. URL consultato il 2 gennaio 2015.
  2. ^ Proof of Work, Proof of Stake and the Consensus Debate, su cointelegraph.com. URL consultato il 3 gennaio 2015.
  3. ^ Andrew Poelstra, Distributed Consensus from Proof of Stake is Impossible (PDF), su download.wpsoftware.net.
  4. ^ Hard Problems of Cryptocurrencies, su github.com.
  5. ^ Nxt Whitepaper: History Attack, su Nxtwiki. URL consultato il 2 gennaio 2015 (archiviato dall'url originale il 3 febbraio 2015).