Punti chiave

  • Proof of Work (PoW) è un meccanismo di consenso creato per prevenire la doppia spesa nei sistemi di pagamento digitali.

  • PoW è una parte fondamentale del processo di mining, che prevede l'aggiunta di nuovi blocchi di transazioni alla blockchain e la creazione di nuove unità di criptovaluta.

  • Bitcoin e molte altre criptovalute utilizzano PoW come metodo per proteggere la propria rete e i propri dati blockchain.

Introduzione

In breve, la Proof of Work (PoW) è un meccanismo creato per impedire la doppia spesa nei sistemi di pagamento digitali. Bitcoin e molte altre criptovalute utilizzano la PoW come metodo per proteggere la propria rete e i dati della blockchain. Questi meccanismi sono spesso definiti algoritmi di consenso o meccanismi di consenso perché coinvolgono più parti che raggiungono un consenso senza la necessità di fidarsi l'una dell'altra.

La Proof of Work è stato il primo algoritmo di consenso ad emergere e rimane uno dei più importanti, insieme alla Proof of Stake (PoS). Fu introdotto da Satoshi Nakamoto nel whitepaper di Bitcoin nel 2008, ma la sua tecnologia era stata progettata molto prima.

HashCash di Adam Black è un esempio di algoritmo proof-of-work precedente alla creazione delle criptovalute. Chiedendo ai mittenti di eseguire un piccolo calcolo al computer prima di inviare un'e-mail, sarebbe facile ridurre lo spam. A differenza di qualcuno che invia email di massa, questo calcolo non costerebbe praticamente nulla a un mittente legittimo.

Che cosa si intende per doppia spesa?

La doppia spesa si verifica quando i fondi vengono spesi più di una volta. Questo termine è utilizzato quasi esclusivamente nel contesto delle valute digitali. È davvero difficile spendere due volte monete o banconote. 

Quando paghi un caffè, dai i contanti al cassiere, che li terrà bloccati nella sua cassa. Non puoi andare in un altro bar e pagare con gli stessi soldi. Tuttavia, nei sistemi di denaro digitale tale possibilità esiste. 

Probabilmente hai già duplicato un file del computer utilizzando i comandi copia e incolla. È anche facile inviare lo stesso file via email a decine di persone. Poiché le valute digitali sono in definitiva solo dati, è necessario impedire che le persone possano copiare e spendere le stesse unità in luoghi diversi. Un sistema di pagamento digitale che non riesce a impedire la doppia spesa è destinato a crollare in men che non si dica.

Per saperne di più sulla doppia spesa, leggi l'articolo Doppia spesa spiegata.

Perché è necessaria la Proof of Work?

Se hai letto il nostro articolo sulla tecnologia blockchain, saprai che gli utenti di criptovalute trasmettono costantemente transazioni alla rete. Tali transazioni non sono immediatamente considerate valide. Diventano tali solo quando vengono confermati e aggiunti alla blockchain.

La blockchain di Bitcoin, ad esempio, funziona come un database pubblico delle transazioni (registro) che ogni utente può consultare. Immagina: tu e i tuoi tre amici avete un blocco note per tenere traccia delle vostre transazioni Bitcoin. Ogni volta che uno di voi desidera effettuare un trasferimento di valore, lo scrive:

Alice paga a Bob 5 BTC; Bob paga a Carol 2 BTC, ecc.

Ogni volta che si effettua una transazione, ci si riferisce alla transazione da cui hanno avuto origine i fondi. Quindi, se Bob pagasse Carol con 2 BTC, l'input apparirebbe in realtà così: 

Bob paga a Carol 2 BTC da questa precedente transazione con Alice.

Ora abbiamo un modo per tracciare le unità BTC. Se Bob prova a effettuare una transazione con gli stessi 2 BTC che ha appena inviato a Carol, tutti lo sapranno. Il gruppo non consentirà l'aggiunta della transazione al notebook perché quei 2 BTC sono già stati spesi.

Probabilmente potrebbe funzionare in un piccolo gruppo. Tutti si conoscono e probabilmente concorderanno su quali amici dovrebbero aggiungere le transazioni al taccuino. Ma cosa succede questa volta con un gruppo di 10.000 persone? Il blocco note non è adatto, perché nessuno vuole affidare la gestione del proprio documento a uno sconosciuto.

È qui che entra in gioco la prova del lavoro. Quest'ultima garantisce che gli utenti non spendano denaro a cui non hanno diritto. Combinando la teoria dei giochi con la crittografia, l'algoritmo PoW consente a chiunque di aggiornare la blockchain, nel rispetto delle regole del sistema.

Come funziona PoW?

Immaginiamo che il nostro notebook dell'esempio precedente sia la blockchain. Tuttavia, anziché aggiungere le transazioni una alla volta, le raggruppiamo in blocchi. Annunciamo le transazioni alla rete e gli utenti che creano un blocco le includeranno in un blocco candidato. Le transazioni saranno considerate valide solo quando il loro blocco candidato diventerà un blocco confermato, ovvero quando sarà stato aggiunto alla blockchain.

Il processo di convalida delle transazioni e aggiunta di nuovi blocchi è chiamato mining. È costoso e difficile, ma può anche dare grandi soddisfazioni. La ricompensa in blocco è costituita dalle commissioni sulle transazioni degli utenti e dai nuovi bitcoin creati dal protocollo. 

Il meccanismo proof-of-work richiede che un minatore (l'utente che crea il blocco) investa risorse quali elettricità e potenza di calcolo per eseguire l'hashing dei dati nel suo blocco candidato finché non viene trovata la soluzione a un enigma.

Eseguire l'hashing dei dati di un blocco significa passarli attraverso una funzione hash per generare un hash del blocco. Questo hash di blocco è una "impronta digitale": identifica i dati di input ed è univoco per ogni blocco.

In altre parole, un minatore deve verificare e raccogliere le transazioni in sospeso, organizzarle in un blocco candidato e passare i dati del blocco tramite una funzione hash per creare un hash valido. Se riescono a trovare un hash valido per il loro blocco candidato, lo trasmettono alla rete, aggiungono il blocco alla blockchain e riscuotono le ricompense del mining.

Quando un minatore trasmette alla rete il suo blocco candidato e l'hash, gli altri partecipanti alla rete ripetono il processo di hashing per verificare che l'output sia effettivamente valido. 

Sebbene siano necessari innumerevoli tentativi di hashing per trovare un hash valido, chiunque può facilmente confermare che l'hash generato sia corretto. Basta semplicemente inviare lo stesso input (dati a blocchi) tramite la funzione hash e verificare se l'output è lo stesso.

Nel caso della prova di lavoro è necessario fornire dati il ​​cui hash corrisponde a determinate condizioni. Ma non sai come arrivarci. Quindi l'unica possibilità è passare i dati attraverso una funzione hash e verificare se il risultato corrisponde alle condizioni. In caso contrario, sarà necessario modificare leggermente i dati per ottenere un hash diverso. Se modifichi anche un solo carattere nei tuoi dati, otterrai un risultato completamente diverso. Quindi non c'è modo di prevedere l'esito.

Quindi, per poter creare un blocco, dovrai fare dei giochi di indovinelli. Solitamente si raccolgono informazioni su tutte le transazioni che si desidera aggiungere e altri dati importanti prima di eseguire l'hashing di tutto. Poiché il set di dati non cambia, è necessario aggiungere una variabile al set. Altrimenti otterrai sempre lo stesso hash di output. Questa variabile è il nonce. Si tratta di un numero che cambia a ogni tentativo, quindi ogni volta si ottiene un hash diverso.

In breve, il mining è il processo di raccolta dei dati della blockchain e di elaborazione degli stessi con un nonce fino a trovare un hash specifico. Se trovi un hash che soddisfa le condizioni stabilite dal protocollo, otterrai il diritto di trasmettere il nuovo blocco sulla rete. Gli altri partecipanti alla rete aggiorneranno le loro blockchain per includere il nuovo blocco.

Per le criptovalute più importanti, queste condizioni sono estremamente difficili da soddisfare. Quanto più alto è l'hash rate di una rete, tanto più difficile è trovare l'hash corretto. In questo modo si garantisce che i blocchi non vengano trovati troppo velocemente.

Come puoi immaginare, cercare di indovinare grandi quantità di hash è molto costoso per il tuo computer. Oltre a consumare i tuoi dispositivi informatici, stai sprecando anche elettricità. Ecco perché il protocollo ti ricompenserà con criptovalute se trovi l'hash corretto.

Riassumiamo ciò che sappiamo finora:

  • Il mining è difficile e costoso, ma garantisce la sicurezza della rete.

  • I minatori che riescono a produrre un blocco valido vengono ricompensati con nuove criptovalute e commissioni di transazione.

  • Generare un hash valido richiede tempo, ma altri utenti possono facilmente verificarne la validità ripetendo il processo di hashing.

Fin qui tutto bene. Ma cosa succede se provi a barare? Cosa impedisce di introdurre transazioni fraudolente nel blocco prima di produrre un hash valido?

È qui che entra in gioco la crittografia a chiave pubblica. Non ne parleremo in dettaglio qui, ma puoi sempre leggere Cos'è la crittografia a chiave pubblica? per saperne di più. In breve, esistono tecniche crittografiche intelligenti che consentono a qualsiasi utente di verificare se qualcuno ha il diritto di spostare i fondi che sta cercando di spendere.

Quando crei una transazione, la firmi. Chiunque partecipi alla rete può confrontare la tua firma con la tua chiave pubblica per vedere se corrispondono. Verificheranno anche se puoi effettivamente spendere i tuoi fondi, ma anche che la somma dei tuoi afflussi sia maggiore della somma dei tuoi deflussi (ovvero che non stai spendendo più di quanto hai).

Qualsiasi blocco contenente una transazione non valida verrà automaticamente rifiutato dalla rete. Barare ti costerà un sacco di soldi. Oltre a sprecare risorse, non otterrai alcuna ricompensa.

Ecco il bello della prova del lavoro: l'onestà paga più dell'imbroglio. Ogni minatore razionale cercherà un ritorno sull'investimento, quindi ci si può aspettare che si comporti in un modo che abbia maggiori probabilità di generare entrate.

Proof of Work (PoW) e Proof of Stake (PoS)

Oltre al PoW, esistono molti algoritmi di consenso, ma uno dei più popolari è il Proof of Stake (PoS). Questo concetto risale al 2011 ed è stato implementato su Ethereum e su molti altri protocolli.

Nel caso della Proof of Stake (PoS), i minatori vengono sostituiti dai validatori. Non c'è bisogno di fare mining né di correre ai ripari per trovare l'hash giusto. Gli utenti vengono invece selezionati casualmente: se scelti, devono proporre (o "forgiare") un blocco. Se il blocco è valido, riceveranno ricompense costituite dalle commissioni delle transazioni nel blocco.

Non tutti possono essere selezionati, il protocollo tiene conto di alcuni parametri per effettuare la sua scelta. Per essere ammessi alla selezione, i partecipanti devono bloccare una posta in gioco, ovvero un importo predeterminato della valuta nativa della blockchain. Il blocco funziona come la cauzione: proprio come gli imputati pagano una grossa somma di denaro per scoraggiarli dal sottrarsi al processo, i validatori bloccano un blocco per impedire che vengano imbrogliati. Se agiscono in modo disonesto, l'intera posta in gioco (o una parte) verrà presa.

La Proof of Stake (PoS) presenta dei vantaggi rispetto alla Proof of Work (PoW). La più notevole è la riduzione dell'impronta di carbonio. Poiché per il PoS non sono necessarie mining farm ad alta potenza, l'elettricità consumata è solo una frazione di quella consumata con il PoW. 

Detto questo, il PoS non ha gli stessi precedenti del PoW. Sebbene possa essere percepito come uno spreco, il mining è l'unico algoritmo di consenso che è stato testato per oltre un decennio. Dal suo lancio, Bitcoin PoW ha garantito transazioni per miliardi di dollari. Per affermare definitivamente che il PoS rivaleggia con il PoW in termini di sicurezza, lo staking deve essere testato adeguatamente su larga scala.

Conclusione

La Proof of Work è stata la soluzione originale al problema della doppia spesa e da allora ha dimostrato la sua affidabilità e sicurezza. Bitcoin ha dimostrato che non abbiamo bisogno di entità centralizzate per evitare che i fondi vengano spesi più volte. Grazie all'uso intelligente della crittografia, delle funzioni hash e della teoria dei giochi, i partecipanti in un ambiente decentralizzato possono concordare sull'avanzamento di un database finanziario.

Per maggiori informazioni

  • Cos'è il mining di criptovalute e come funziona?

  • Che cos'è la crittografia a chiave pubblica?

  • Cos'è un algoritmo di consenso blockchain?

Dichiarazione di esclusione di responsabilità e avvertenza sui rischi: questo contenuto ti viene presentato "così com'è" solo a scopo informativo e didattico generale, senza alcuna dichiarazione o garanzia di alcun tipo. Non deve essere interpretato come consulenza finanziaria, legale o professionale, né come raccomandazione all'acquisto di uno specifico prodotto o servizio. Prima di prendere qualsiasi decisione, dovresti chiedere consiglio ai professionisti competenti. Nei casi in cui l'articolo è stato scritto da un collaboratore terzo, si prega di notare che le opinioni espresse nell'articolo non riflettono necessariamente quelle di Binance Academy. Per saperne di più, ti invitiamo a leggere la nostra completa informativa qui. I prezzi delle attività digitali possono essere volatili. Il valore del tuo investimento potrebbe aumentare o diminuire e potresti non recuperare l'importo investito. Sei l'unico responsabile delle tue decisioni di investimento e Binance Academy non è responsabile per eventuali perdite che potresti subire. Il presente contenuto non deve essere interpretato come consulenza finanziaria, legale o professionale. Per maggiori informazioni, consulta i nostri Termini di utilizzo e l'Avvertenza sui rischi.