Cos'è il Proof of Work (PoW)?
Nozioni di base
Il Proof of Work (PoW) è un algoritmo di consenso comunemente usato dalle reti blockchain per mettere in sicurezza le transazioni e prevenire la doppia spesa. Satoshi Nakamoto introdusse il PoW nel white paper di Bitcoin del 2008. Tuttavia, tecnologie simili esistevano già prima. Uno dei primi esempi di algoritmi PoW è HashCash di Adam Back, progettato per ridurre lo spam richiedendo ai mittenti di eseguire alcuni calcoli prima di inviare un'email. Il costo computazionale sarebbe trascurabile per gli utenti legittimi, ma potrebbe accumularsi rapidamente per chi invia grandi quantità di email di spam.
Prevenire la doppia spesa nel denaro digitale
Il denaro digitale presenta una sfida unica: la possibilità della doppia spesa. La doppia spesa avviene quando gli stessi fondi vengono spesi più di una volta. Questo termine è esclusivo del contesto del denaro digitale. Diversamente dal contante fisico, dove non puoi spendere la stessa banconota due volte, il denaro digitale può essere facilmente duplicato. Per evitare che il valore della valuta crolli a causa della doppia spesa, è necessario impedire alle persone di copiare e spendere le stesse unità in luoghi diversi.
La necessità del Proof of Work
Il Proof of Work è una componente essenziale della tecnologia blockchain. Quando un utente trasmette una transazione alla rete, non diventa immediatamente valida. Invece, deve prima essere aggiunta alla blockchain. La blockchain funge da grande database a cui ogni utente può accedere, permettendo di verificare se i fondi sono già stati spesi.
Per comprendere questo concetto, immagina che tu e i tuoi tre amici abbiate un bloc-notes. Ogni volta che viene effettuato un trasferimento di unità, questo viene registrato sul bloc-notes. Tuttavia, ogni transazione fa anche riferimento alla transazione da cui provengono i fondi. Ad esempio, se Bob paga Carol due unità, la voce sarebbe "Bob paga Carol due unità da questa precedente transazione con Alice." Questo sistema crea un registro tracciabile di tutte le unità e impedisce la doppia spesa degli stessi fondi.
Questo approccio funziona bene per gruppi ristretti, ma non scala facilmente. Quando hai un gruppo di 10.000 partecipanti, è difficile trovare qualcuno abbastanza affidabile da gestire il bloc-notes. Qui entra in gioco il PoW. Usando una combinazione di teoria dei giochi e crittografia, il PoW garantisce che gli utenti non stiano spendendo fondi che non hanno il diritto di spendere. Permette a chiunque di aggiornare la blockchain secondo le regole del sistema, eliminando la necessità di un terzo affidabile.
Come funziona il PoW?
Le transazioni non vengono aggiunte una per una, ma raggruppate in blocchi. Dopo aver annunciato le transazioni alla rete, un utente che crea un blocco le includerà in un blocco candidato. Le transazioni sono valide solo una volta che il blocco candidato viene confermato, ossia è stato aggiunto alla blockchain.
Per aggiungere un blocco alla blockchain, i miner devono usare le loro risorse, in particolare la potenza di calcolo, come richiesto dal Proof of Work. Il compito dei miner è quello di hashare i dati del blocco fino a trovare la soluzione a un puzzle.
Nel Proof of Work, i miner devono fornire dati il cui hash soddisfi certe condizioni, il che si ottiene attraverso un gioco di tentativi. Prendono le informazioni su tutte le transazioni che vogliono aggiungere, insieme ad altri dati importanti, e le hashano insieme a un pezzo di informazione variabile chiamato nonce. Devono calcolare hash finché non trovano un hash che soddisfa le condizioni stabilite dal protocollo, momento in cui ottengono il diritto di trasmettere il nuovo blocco alla rete.
Se trovano un hash valido, vengono ricompensati con criptovaluta. Tuttavia, imbrogliare non è un'opzione, poiché qualsiasi blocco che includa una transazione non valida verrà automaticamente rifiutato dalla rete. Il sistema lo garantisce tramite la crittografia a chiave pubblica, che permette agli utenti di verificare se qualcuno ha il diritto di muovere i fondi che sta tentando di spendere.
Il Proof of Work è un processo costoso, ma rende l'imbroglio oneroso e l'onestà profittevole. Pertanto, ci si aspetta che i miner razionali si comportino in modo da garantire entrate. Le condizioni per le principali criptovalute odierne sono incredibilmente difficili da soddisfare, rendendo il processo ancora più impegnativo. Tuttavia, è possibile verificare che un blocco sia valido senza spendere molta potenza di calcolo.
Proof of Work vs Proof of Stake
Negli ultimi anni è cresciuta la tendenza delle blockchain a transitare dal Proof of Work al Proof of Stake (PoS) o ad adottarlo fin dall'inizio. Esploriamo i vantaggi del PoS rispetto al PoW per capire perché sempre più progetti lo scelgono.
Nel PoS i miner vengono sostituiti dai validator, che vengono selezionati in modo casuale e, se scelti, devono proporre un blocco. Se il blocco è valido, i validator saranno ricompensati con le commissioni di transazione. Tuttavia, non tutti possono diventare validator, poiché il protocollo sceglie i partecipanti in base a una serie di fattori. Per essere eleggibili, i validator devono mettere in stake una quantità predeterminata della valuta nativa della blockchain. Lo stake funge da deposito di sicurezza e, se un validator viene trovato disonesto, il suo stake verrà confiscato come penalità.
Uno dei vantaggi più significativi del PoS è la sua impronta di carbonio più ridotta. Poiché non sono necessarie grandi farm di mining ad alta potenza nel PoS, l'elettricità consumata è solo una frazione di quella utilizzata nel PoW.
Nonostante il PoS venga implementato con grande entusiasmo oggi, deve ancora dimostrarsi su larga scala. Il mining è l'unico algoritmo di consenso che ha protetto transazioni per migliaia di miliardi di dollari in poco più di un decennio, pur essendo percepito come uno spreco. Per stabilire se il PoS possa rivaleggiare con la sicurezza del PoW, lo staking deve essere sottoposto a test approfonditi per garantirne l'affidabilità a lungo termine.
Conclusione
Il problema della doppia spesa è stato affrontato efficacemente dal Proof of Work, una soluzione affidabile e sicura che ha eliminato la necessità di entità centralizzate per impedire che gli stessi fondi vengano spesi due volte. Utilizzando crittografia, funzioni hash e teoria dei giochi, i membri di un ecosistema decentralizzato possono raggiungere un consenso sullo stato di un registro finanziario.