Cos'è la Proof of Work (PoW)?
Home
Articoli
Cos'è la Proof of Work (PoW)?

Cos'è la Proof of Work (PoW)?

Intermedio
Pubblicato Dec 6, 2018Aggiornato Apr 18, 2024
10m

Punti chiave

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

  • La 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 la PoW come metodo per proteggere la propria rete blockchain e i propri dati.

Introduzione

In breve, la Proof of Work (PoW) è un meccanismo creato per prevenire la doppia spesa nei sistemi di pagamento digitali. Bitcoin e molte altre criptovalute utilizzano la PoW come metodo per proteggere la propria rete blockchain e i propri dati. Tali meccanismi sono spesso indicati come algoritmi di consenso o meccanismi di consenso, perché coinvolgono più parti che raggiungono il 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). La PoW è stata introdotta da Satoshi Nakamoto nel whitepaper di Bitcoin del 2008, ma la tecnologia è stata concepita molto prima di allora.

HashCash di Adam Back è un primo esempio di algoritmo Proof of Work che precede l'avvento delle criptovalute. Richiedendo ai mittenti di eseguire una piccola quantità di computazione prima di inviare un'email, i destinatari possono mitigare lo spam. Questa computazione costa virtualmente zero a un mittente legittimo, ma si accumula rapidamente per qualcuno che invia email in massa.

Cos'è una doppia spesa?

Una doppia spesa si verifica quando gli stessi fondi vengono spesi più di una volta. Il termine viene usato quasi esclusivamente nel contesto del denaro digitale: dopotutto, faresti fatica a spendere due volte lo stesso denaro fisico. 

Quando paghi un caffè, consegni i contanti a un cassiere che probabilmente li chiude a chiave in una cassa. Non puoi andare al bar dall'altra parte della strada e pagare un altro caffè con la stessa banconota. Tuttavia, nei sistemi di denaro digitale, c'è la possibilità che tu possa farlo. 

Sicuramente avrai già duplicato un file del computer utilizzando i comandi di copia e incolla. È anche facile inviare lo stesso file tramite email a decine di persone. Poiché il denaro digitale è solo un insieme di dati, è necessario evitare che le persone effettuino una doppia spesa, ad esempio copiando e spendendo le stesse unità in luoghi diversi. Un sistema di pagamento digitale che non riesce a prevenire la doppia spesa crollerà in pochissimo tempo.

Per un'analisi più approfondita della doppia spesa, leggi Una guida per principianti alla doppia spesa.

Perché la Proof of Work è necessaria?

Se hai letto il nostro articolo sulla tecnologia blockchain, saprai che gli utenti crypto trasmettono costantemente transazioni sulla rete. Tuttavia, queste transazioni non sono immediatamente considerate valide. Questo accade solo quando vengono confermate e aggiunte alla blockchain.

La blockchain di Bitcoin, ad esempio, funziona come un database di transazioni pubblico (ledger) che ogni utente può vedere. Immaginalo in questo modo: tu e tre amici avete un blocco note per tenere traccia delle vostre transazioni bitcoin. Ogni volta che uno di voi vuole effettuare un trasferimento di valore, lo scrivi:

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

Tuttavia, ogni volta che effettui una transazione, fai riferimento alla transazione da cui provengono i fondi. Quindi, se Bob paga Carol 2 BTC, scriverai una nota simile a questa: 

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

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

Questo sistema potrebbe funzionare bene in un piccolo gruppo. Tutti si conoscono, quindi è probabile che concorderanno su quale degli amici dovrebbe aggiungere le transazioni al blocco note. E se avessimo un gruppo di 10.000 partecipanti? L'idea del blocco note non è molto scalabile, dato che nessuno ne affiderebbe la gestione a uno sconosciuto.

È qui che entra in gioco la Proof of Work. Garantisce che gli utenti non spendano denaro che non hanno il diritto di spendere. Utilizzando una combinazione di teoria dei giochi e crittografia, un algoritmo PoW consente a chiunque di aggiornare la blockchain in base alle regole del sistema.

Come funziona la PoW?

Immagina che il blocco note del nostro esempio sia la blockchain. Tuttavia, non aggiungiamo le transazioni una per una, le raggruppiamo in blocchi. Annunciamo le transazioni sulla rete, e gli utenti che creano un blocco le includeranno in un blocco candidato. Le transazioni saranno considerate valide solo una volta che il blocco candidato diventa un blocco confermato, il che significa che è stato aggiunto al database della blockchain.

Il processo di convalida delle transazioni e di aggiunta di nuovi blocchi viene chiamato mining. È costoso e difficile, ma può anche essere redditizio. La ricompensa del blocco è composta dalle commissioni di transazione degli utenti e da nuovi bitcoin creati dal protocollo. 

Il meccanismo Proof of Work richiede che un miner (l'utente che crea il blocco) investa risorse come elettricità e potenza di calcolo per fare hashing dei dati del blocco candidato fino a quando non trova una soluzione a un puzzle.

L'hashing dei dati del blocco significa elaborarli attraverso una funzione di hashing per generare un hash del blocco. L'hash del blocco funziona come una "impronta digitale" – è un'identità per i dati di input ed è unica per ogni blocco.

In altre parole, un miner deve verificare e raccogliere le transazioni in sospeso, organizzarle in un blocco candidato ed elaborare i dati del blocco attraverso una funzione di hashing per creare un hash valido. Se riesce a trovare un hash valido per il blocco candidato, lo trasmette alla rete, aggiunge il blocco alla blockchain e riceve le ricompense di mining.

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

Sebbene occorrano innumerevoli tentativi di hashing per trovare un hash valido, è molto semplice per chiunque confermare che l'hash generato sia corretto. Devono solo inviare lo stesso input (dati del blocco) attraverso la funzione di hashing e verificare se l'output è lo stesso.

Nella Proof of Work, devi fornire dati il cui hash corrisponde a determinate condizioni. Il problema, però, è che non sai come arrivarci. L'unica opzione è elaborare i dati attraverso una funzione di hashing e verificare se soddisfa le condizioni. In caso contrario, dovrai modificare leggermente i tuoi dati per ottenere un hash diverso. La modifica anche di un solo carattere nei dati si tradurrà in un risultato completamente diverso, quindi non c'è modo di prevedere quale potrebbe essere l'output.

Di conseguenza, se vuoi creare un blocco, stai tirando a indovinare. In genere prendi le informazioni su tutte le transazioni che vuoi aggiungere e alcuni altri dati importanti, quindi esegui l'hashing di tutto. Ma poiché il tuo set di dati non cambierà, devi aggiungere un'informazione variabile. Altrimenti, otterresti sempre lo stesso hash come output. Questo dato variabile è conosciuto come nonce. È un numero che cambierai ad ogni tentativo, per ottenere un hash diverso ogni volta.

Riassumendo, il mining è il processo di raccolta dei dati blockchain e di esecuzione dell'hashing insieme a un nonce fino a quando non trovi un particolare hash. Se trovi un hash che soddisfa le condizioni stabilite dal protocollo, ottieni il diritto di trasmettere il nuovo blocco alla rete. A questo punto, gli altri partecipanti alla rete aggiornano le loro blockchain per includere il nuovo blocco.

Per le principali criptovalute di oggi, le condizioni sono incredibilmente difficili da soddisfare. Più alto è l'hash rate sulla rete, più è difficile trovare un hash valido. In questo modo, è possibile garantire che i blocchi non vengano trovati troppo rapidamente.

Come puoi immaginare, cercare di indovinare enormi quantità di hash può essere costoso. Stai sprecando cicli computazionali ed elettricità. Ma il protocollo ti ricompenserà con criptovalute se trovi un hash valido.

Ricapitoliamo quello che abbiamo illustrato finora:

  • Il mining è difficile e costoso, ma fornisce sicurezza alla rete.

  • I miner che riescono a produrre un blocco valido vengono ricompensati con criptovalute di nuova emissione e commissioni di transazione.

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

Fin qui tutto bene. Ma cosa succede se provi a imbrogliare? Cosa ti impedisce di inserire un mucchio di transazioni fraudolente nel blocco e produrre un hash valido?

È qui che entra in gioco la crittografia a chiave pubblica. Non approfondiremo il tema in questo articolo, ma dai un'occhiata a Cos'è la crittografia a chiave pubblica? per una spiegazione più esaustiva. In breve, ci sono alcuni trucchi crittografici che consentono a qualsiasi utente di verificare se qualcuno ha il diritto di spostare i fondi che sta tentando di spendere.

Quando crei una transazione, la firmi. Chiunque sulla rete può confrontare la tua firma con la tua chiave pubblica e controllare se corrispondono. Verificheranno anche se puoi effettivamente spendere i tuoi fondi e che la somma dei tuoi input sia superiore alla somma dei tuoi output (ovvero, che non stai spendendo più di quello che hai).

Qualsiasi blocco che include una transazione non valida verrà automaticamente rifiutato dalla rete. È costoso anche solo tentare di imbrogliare. Sprecherai le tue risorse senza alcuna ricompensa.

E' proprio qui che sta la bellezza della Proof of Work: imbrogliare è costoso, ma agire onestamente è redditizio. Qualsiasi miner razionale cercherà un ritorno sul proprio investimento, quindi ci si può aspettare che si comporti in un modo che ha maggiori probabilità di generare entrate.

Proof of Work (PoW) vs. Proof of Stake (PoS)

Ci sono molti algoritmi di consenso oltre alla PoW, ma uno dei più popolari è la Proof of Stake (PoS). Il concetto risale al 2011 ed è stato implementato su Ethereum e diversi altri protocolli.

Nei sistemi Proof of Stake, i miner vengono sostituiti dai validatori. Non c'è nessun mining coinvolto e nessuna corsa per indovinare gli hash. Invece, gli utenti vengono selezionati in modo casuale: se vengono scelti, devono proporre (o "forgiare") un blocco. Se il blocco è valido, riceveranno una ricompensa composta dalle commissioni derivanti dalle transazioni nel blocco.

Tuttavia, non vengono selezionati utenti a caso: il protocollo li sceglie in base a una serie di fattori. Per essere idonei, i partecipanti devono fare staking, ovvero bloccare un importo predeterminato della valuta nativa della blockchain. Lo staking funziona come una cauzione: proprio come gli imputati mettono una grossa somma di denaro per disincentivarli dal saltare il processo, i validatori bloccano uno stake per disincentivare l'imbroglio. Se agiscono in modo disonesto, la loro stake (o una parte di essa) verrà sottratta.

La Proof of Stake presenta alcuni vantaggi rispetto alla Proof of Work. Il più notevole è la minore impronta ecologica dato che nella PoS non sono necessarie mining farm ad alta potenza, l'elettricità consumata è solo una frazione di quella consumata nella PoW. 

Detto questo, la PoS non ha lo stesso track record della PoW. Anche se potrebbe essere percepito come uno spreco, il mining è l'unico algoritmo di consenso che è stato testato per oltre un decennio. Dal suo lancio, la PoW di Bitcoin ha protetto transazioni per un valore di bilioni di dollari. Per dire con certezza se la PoS può competere con la sua sicurezza, lo staking deve essere adeguatamente testato a lungo termine.

In chiusura

La Proof of Work è stata la soluzione originale al problema della doppia spesa e si è dimostrata affidabile e sicura. Bitcoin ha dimostrato che non abbiamo bisogno di entità centralizzate per evitare che gli stessi fondi vengano spesi due volte. Con un uso intelligente della crittografia, delle funzioni di hashing e della teoria dei giochi, i partecipanti a un ambiente decentralizzato possono concordare sullo stato di un database finanziario.

Letture consigliate

Disclaimer: Questo contenuto viene presentato "così com'è" solo a scopo informativo ed educativo, senza alcuna dichiarazione o garanzia di alcun tipo. Non deve essere interpretato come consulenza finanziaria, legale o professionale di altro tipo, né intende raccomandare l'acquisto di alcun prodotto o servizio specifico. L'utente è tenuto a rivolgersi a consulenti professionali appropriati. Nel caso in cui l'articolo sia stato redatto da un collaboratore terzo, si prega di notare che le opinioni espresse appartengono al collaboratore terzo e non riflettono necessariamente quelle di Binance Academy. Per ulteriori dettagli, si prega di leggere il nostro disclaimer completo qui. I prezzi degli asset digitali possono essere volatili. Il valore del tuo investimento può scendere o salire e potresti non recuperare l'importo investito. L'utente è l'unico responsabile delle proprie decisioni di investimento e Binance Academy non è responsabile per eventuali perdite subite. Questo materiale non deve essere interpretato come consulenza finanziaria, legale o professionale. Per maggiori informazioni, consulta i nostri Termini di utilizzo e l'Avvertenza sui rischi.