Aspetti 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
Il Proof of Work (PoW) è un meccanismo creato per evitare la doppia spesa nei sistemi di pagamento digitali. Bitcoin e molte altre criptovalute utilizzano PoW come metodo per proteggere la propria rete e i propri dati blockchain. Questi meccanismi sono spesso chiamati algoritmi di consenso o meccanismi di consenso, perché coinvolgono più parti che raggiungono il consenso senza bisogno di fiducia tra di loro.
Proof of Work è stato il primo algoritmo di consenso ad emergere e rimane uno dei più importanti insieme a Proof of Stake (PoS). La PoW è stata introdotta da Satoshi Nakamoto nel whitepaper di Bitcoin del 2008, ma la tecnologia in sé è stata concepita molto prima.
HashCash di Adam Back è uno dei primi esempi di algoritmo Proof of Work nell'era precedente alle criptovalute. Richiedendo ai mittenti di eseguire operazioni di elaborazione minime prima di inviare un'e-mail, i destinatari potrebbero ridurre lo spam. Questo calcolo non costerebbe praticamente nulla a un mittente legittimo, ma aumenterebbe rapidamente il costo per qualcuno che invia e-mail di massa.
Cos'è la doppia spesa?
La doppia spesa si verifica quando gli stessi fondi vengono spesi più di una volta. Il termine è utilizzato quasi esclusivamente nel contesto della moneta digitale. Dopotutto, ti sarebbe difficile spendere due volte lo stesso denaro contante.
Oggi, quando paghi un caffè, consegni i contanti al cassiere, che probabilmente li conserva nel registratore di cassa. Non puoi andare al bar dall'altra parte della strada e pagare un altro caffè con le stesse banconote che hai già consegnato. Tuttavia, nei sistemi di denaro digitale, è possibile farlo.
Probabilmente hai duplicato un file del computer utilizzando i comandi copia e incolla. È anche facile inviare lo stesso file a decine di persone tramite e-mail. Poiché il denaro digitale è costituito solo da dati, è opportuno impedire che le persone spendano due volte, ovvero che copino e spendano le stesse unità in posti diversi. Un sistema di pagamento digitale che non riesce a impedire la doppia spesa è destinato a crollare rapidamente.
Per maggiori informazioni sulla doppia spesa, vedere Informazioni sulla doppia spesa.
Perché è necessario il meccanismo Proof of Work?
Se hai letto il nostro articolo sulla tecnologia blockchain, saprai che gli utenti di criptovalute trasmettono costantemente le transazioni alla rete. Tuttavia, queste transazioni non sono considerate valide immediatamente. Ciò avviene solo quando vengono confermati e aggiunti alla blockchain.
La blockchain di Bitcoin, ad esempio, funziona come un database pubblico delle transazioni (libro mastro) che tutti gli utenti possono consultare. Immaginala così: tu e tre amici avete un taccuino ciascuno 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.
Ma ogni volta che si effettua una transazione, si fa riferimento alla transazione da cui provengono i fondi. Quindi, se Bob pagasse Carol con 2 BTC, l'input apparirebbe così:
Bob paga a Carol 2 BTC provenienti dalla precedente transazione con Alice.
Ora abbiamo un modo per tracciare le unità BTC. Se Bob prova a effettuare un'altra transazione con gli stessi 2 BTC appena inviati a Carol, tutti lo sapranno immediatamente. Il pool non consentirà l'aggiunta della transazione al registro perché quei 2 BTC sono già stati spesi.
Questa è una cosa che può funzionare bene in un piccolo gruppo. Tutti si conoscono, quindi probabilmente concorderanno su quali amici dovrebbero aggiungere le transazioni al taccuino. Ma cosa succede se volessimo avere un gruppo con 10.000 partecipanti? L'idea del notebook non è adatta alla scalabilità, perché nessuno vuole affidare la gestione del proprio computer a uno sconosciuto.
È qui che entra in gioco il meccanismo della 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 PoW?
Immaginiamo che il nostro notebook dell'esempio precedente sia la blockchain, ma in questo caso non aggiungiamo le transazioni una alla volta, bensì le raggruppiamo in blocchi. Annunciamo le transazioni alla rete e poi 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 sarà stato aggiunto al database della 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 è composta dalle commissioni di transazione dell'utente 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 proprio blocco candidato finché non viene trovata la soluzione a un enigma.
Eseguire l'hashing dei dati dei blocchi significa passarli attraverso una funzione hash per generare un hash dei blocchi. L'hash del blocco funziona come un'impronta digitale: è un'identità per 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 riesci a trovare un hash valido per il tuo blocco candidato, lo trasmetti alla rete, aggiungi il blocco alla blockchain e riscuoti le ricompense del mining.
Quando un minatore trasmette alla rete il suo blocco candidato e il suo hash, gli altri partecipanti alla rete ripeteranno il processo di hashing per verificare che l'output sia effettivamente valido.
Sebbene siano necessari innumerevoli tentativi di hashing per trovare un hash valido, è essenziale che qualcuno confermi che l'hash generato è corretto. Devono solo inviare lo stesso input (dati del blocco) tramite la funzione hash e verificare se l'output è lo stesso.
Nella Proof of Work, è necessario fornire dati il cui hash soddisfa determinate condizioni. Tuttavia, non sai come ottenerlo. L'unica possibilità è quella di passare i dati attraverso una funzione hash e verificare se le condizioni sono soddisfatte. In caso contrario, sarà necessario modificare leggermente i dati per ottenere un hash diverso. Anche modificando un singolo carattere nei dati si otterrà un risultato completamente diverso, quindi non c'è modo di prevedere come sarà l'output.
Di conseguenza, se vuoi creare un blocco, stai giocando a un gioco di indovinelli. In genere, si prendono le informazioni su tutte le transazioni che si desidera aggregare e altri dati importanti, per poi raggrupparli. Ma poiché il set di dati non cambierà, è necessario aggiungere informazioni variabili. Altrimenti otterresti sempre lo stesso hash come output. Questi dati variabili sono ciò che chiamiamo nonce. Si tratta di un numero che verrà modificato a ogni tentativo, quindi ogni volta otterrai un hash diverso.
In breve, il mining è il processo di raccolta dei dati dalla 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, hai il diritto di trasmettere il nuovo blocco alla rete. A questo punto, gli altri partecipanti alla rete aggiornano le proprie blockchain per includere il nuovo blocco.
Per le principali criptovalute odierne, le condizioni sono incredibilmente difficili da soddisfare. Quanto più alto è l'hash rate sulla rete, tanto più difficile è trovare un hash valido. Questo viene fatto per garantire che i blocchi non vengano trovati troppo velocemente.
Come puoi immaginare, cercare di indovinare grandi quantità di hash può essere costoso per il tuo computer: stai sprecando cicli di elaborazione ed elettricità. Tuttavia, se trovi un hash valido, il protocollo ti ricompenserà con criptovaluta.
Riassumiamo cosa 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 imbrogliare? Cosa ti impedisce di inserire una serie di transazioni fraudolente nel blocco e di produrre un hash valido?
Ed è qui che entra in gioco la crittografia a chiave pubblica. Non approfondiremo questo argomento in questo articolo, ma dai un'occhiata a Cos'è la crittografia a chiave pubblica? per ottenere una visione completa dell'argomento. In breve, esistono alcuni trucchi crittografici 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 nella rete può confrontare la tua firma con la tua chiave pubblica e vedere se corrispondono. Verificheranno anche se puoi effettivamente spendere i tuoi fondi e se la somma dei tuoi input è maggiore della somma dei tuoi output (ad esempio, se stai spendendo più di quanto hai).
Qualsiasi blocco che includa una transazione non valida verrà automaticamente rifiutato dalla rete. Anche tentare di imbrogliare è costoso: perderai le tue risorse senza ottenere alcuna ricompensa.
È qui che risiede la bellezza del meccanismo della Proof of Work: rende costoso imbrogliare, ma redditizio agire onestamente. Ogni minatore razionale cercherà un ritorno sul proprio investimento, quindi ci si può aspettare che si comporti nel modo più idoneo a generare entrate.
Prova di lavoro (PoW) contro prova di partecipazione (PoS)
Oltre al PoW, esistono molti algoritmi di consenso, ma uno dei più popolari è il Proof of Stake (PoS). Il concetto risale al 2011 ed è stato implementato in Ethereum e in molti altri protocolli.
Nei sistemi Proof of Stake, i minatori sono sostituiti dai validatori. Non è coinvolto alcun mining o una gara per indovinare gli hash. Gli utenti vengono invece selezionati in modo casuale: se scelti, devono proporre (o "forgiare") un blocco. Se il blocco è valido, riceveranno una ricompensa composta dalle commissioni di transazione del blocco.
Tuttavia, non è possibile selezionare un utente qualsiasi: il protocollo li sceglie in base a una serie di fattori. Per essere idonei, i partecipanti devono bloccare una quota, ovvero un importo predeterminato della valuta nativa della blockchain. Lo staking funziona come la cauzione: proprio come gli imputati pagano una grossa somma di denaro per evitare di dover andare a processo, i validatori bloccano una posta in gioco per scoraggiare gli imbrogli. Se agiscono in modo disonesto, la loro posta in gioco (o parte di essa) verrà presa.
Il meccanismo Proof of Stake presenta alcuni vantaggi rispetto al Proof of Work. L'aspetto più notevole è il ridotto impatto ambientale: poiché il PoS non richiede mining farm ad alta potenza, l'elettricità consumata è solo una frazione di quella consumata nel PoW.
Detto questo, il PoS non ha gli stessi risultati del PoW. Sebbene possa essere percepito come uno spreco di risorse, il mining è l'unico algoritmo di consenso che è stato testato sul campo per oltre un decennio. Sin dal suo lancio, il meccanismo PoW di Bitcoin ha protetto transazioni per un valore di migliaia di miliardi di dollari. Per affermare con certezza se il PoS può competere con la sicurezza del PoW, lo staking deve essere adeguatamente testato sul lungo termine.
Conclusioni
La Proof of Work è stata la soluzione originale al problema della doppia spesa e ha dimostrato di essere affidabile e sicura. Bitcoin ha dimostrato che non abbiamo bisogno di entità centralizzate per evitare che gli stessi fondi vengano spesi due volte. Grazie all'uso intelligente della crittografia, delle funzioni hash e della teoria dei giochi, i partecipanti a un ambiente decentralizzato possono concordare sullo stato di un database finanziario.
Ulteriori letture
Cos'è il mining di criptovalute e come funziona?
Cos'è la crittografia a chiave pubblica?
Cos'è un algoritmo di consenso blockchain?
Disclaimer e avvertenza sui rischi: questo contenuto è fornito "così com'è" solo a scopo informativo e didattico, 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. Dovresti cercare una consulenza personalizzata da consulenti professionisti adeguati. Poiché questo articolo è il prodotto di contributi di terze parti, tieni presente che le opinioni espresse sono quelle del collaboratore terzo e non riflettono necessariamente quelle di Binance Academy. Per maggiori informazioni, ti invitiamo a leggere la nostra nota legale completa qui. I prezzi delle attività digitali possono essere volatili. Il valore di un investimento può aumentare o diminuire e potresti non recuperare l'importo investito. Sei l'unico responsabile delle tue decisioni di investimento. Binance Academy non è responsabile per eventuali perdite che potresti subire. Il presente materiale non deve essere interpretato come consulenza finanziaria, legale o di altro tipo. Per maggiori informazioni, consulta i nostri Termini di utilizzo e l'Avviso sui rischi.



