Punti chiave
Proof of Work (PoW) è un meccanismo di consenso progettato per prevenire la doppia spesa nei sistemi di pagamento digitali.
La PoW è una parte fondamentale del mining, che prevede l'aggiunta di blocchi di transazioni alla blockchain e la creazione di nuove unità di criptovaluta.
Bitcoin e molte altre criptovalute utilizzano un meccanismo PoW per proteggere le loro reti e i loro dati blockchain.
introduzione
In breve, Proof of Work (PoW) è un meccanismo progettato per prevenire la doppia spesa nei sistemi di pagamento digitali. Bitcoin e molte altre criptovalute utilizzano PoW per proteggere le proprie reti e dati blockchain. Tali elementi sono chiamati meccanismi di consenso – o algoritmi – perché consentono a più parti di raggiungere il consenso senza doversi fidare l’una dell’altra.
Il Proof of Work è stato il primo algoritmo di consenso ed è ancora uno dei più importanti insieme al Proof of Stake (PoS). La PoW è stata introdotta da Satoshi Nakamoto nel white paper di Bitcoin nel 2008, ma la tecnologia stessa è stata proposta molto prima.
Un primo esempio dell'utilizzo dell'algoritmo Proof of Work è il sistema HashCash di Adam Back, apparso ancor prima delle criptovalute. La richiesta di un numero limitato di calcoli prima dell'invio di e-mail ha ridotto la quantità di spam. Tali calcoli non costano praticamente nulla per il mittente medio, ma complicano notevolmente il processo di invio di massa.
Cos’è la doppia spesa?
La doppia spesa si verifica quando gli stessi fondi vengono spesi più di una volta. Questo termine viene quasi sempre utilizzato in relazione alla valuta digitale, poiché nella vita reale è difficile immaginare una situazione in cui lo stesso denaro viene speso due volte.
Ad esempio, quando compri il caffè, consegni i soldi al cassiere, che li mette nel registratore di cassa. Non potrai andare in un altro bar e pagare un secondo caffè con la stessa fattura. Tuttavia, nei sistemi di moneta digitale ciò è possibile.
Probabilmente hai già copiato dei file sul tuo computer. Lo stesso file può essere facilmente inviato a decine di persone. E poiché la moneta digitale è solo dati, è necessario eliminare la possibilità della doppia spesa, cioè copiare e inviare le stesse unità in luoghi diversi. Se un sistema di pagamento digitale non riesce a prevenire la doppia spesa, collasserà rapidamente.
Per saperne di più sulla doppia spesa, consulta l'articolo Cos'è la doppia spesa.
Perché è necessaria la prova di lavoro?
Se hai già letto la nostra guida sulla blockchain, allora sai che gli utenti di criptovaluta trasmettono transazioni alla rete. Ma le transazioni non diventano valide immediatamente, ma solo dopo la verifica e l’aggiunta alla blockchain.
Ad esempio, la blockchain di Bitcoin funziona come un database di transazioni pubbliche (registro) che può essere visualizzato da qualsiasi utente. Supponiamo che tu e tre dei tuoi amici abbiate un blocco note in cui annotate le vostre transazioni Bitcoin. Se uno di voi desidera trasferire fondi, annoterà sul suo taccuino:
Alice paga a Bob 5 BTC. Bob paga Carol 2 BTC e così via.
Quando si effettua ogni trasferimento, è necessario fare riferimento alla transazione precedente da cui sono stati ricevuti i fondi. Cioè, quando Bob trasferisce 2 BTC a Carol, la voce assomiglia a questa:
Bob trasferisce 2 BTC da una transazione precedente con Alice a Carol.
In questo modo possiamo tracciare tutti i trasferimenti BTC. Se Bob tenta di effettuare un'altra transazione utilizzando gli stessi 2 BTC che ha appena inviato a Carol, tutti lo sapranno immediatamente. Il gruppo non gli permetterà di registrare tale transazione sul taccuino, poiché ha già speso quei 2 BTC.
Un tale sistema può funzionare bene in un piccolo gruppo di persone in cui tutti i partecipanti si conoscono bene, perché sarà più facile per loro concordare chi di loro sarà responsabile dell'aggiunta delle transazioni all'elenco generale. Ma cosa succede se vogliamo riunire un gruppo di 10.000 membri? L'idea di utilizzare un blocco note non è molto adatta perché nessuno si fiderebbe di un estraneo per gestire un registro finanziario del genere.
Questo è il motivo per cui è necessario l’algoritmo Proof of Work. Garantisce che gli utenti non spendano soldi che non possono spendere. Utilizzando la teoria dei giochi insieme alla crittografia, l'algoritmo consente a qualsiasi utente di aggiornare la blockchain secondo le regole del sistema.
Come funziona il PoW?
Pensa al blocco note nell'esempio sopra come a una blockchain. Tuttavia, le transazioni non vengono aggiunte al sistema una per una, ma vengono combinate in blocchi. Gli utenti che creano un blocco includono le transazioni nel blocco candidato. Le transazioni saranno considerate valide solo dopo che il blocco candidato sarà confermato e aggiunto al database blockchain.
Il processo di conferma delle transazioni e di aggiunta di nuovi blocchi è chiamato mining. È piuttosto complesso e richiede costi, ma può generare profitti sotto forma di premi in blocco. Consiste in commissioni di transazione e nuovi bitcoin creati dal protocollo.
Il meccanismo Proof of Work richiede che il miner (l’utente che crea il blocco) investa risorse (elettricità e potenza di calcolo) nell’hashing dei dati di un blocco candidato fino a quando non viene trovata una soluzione.
L'hashing di un blocco implica il passaggio attraverso una funzione hash per generare un hash. L'hash del blocco funge da "impronta digitale" e funge da identificatore per i dati di input univoci per ciascun blocco.
In altre parole, il miner deve verificare e raccogliere le transazioni in sospeso, quindi combinarle in un blocco candidato ed eseguire i dati del blocco tramite una funzione hash per ottenere l'hash corretto. Se il miner riesce a trovare l’hash corretto per il suo blocco candidato, lo invierà alla rete, aggiungerà il blocco alla blockchain e riceverà una ricompensa di mining.
Una volta che il minatore invia il blocco candidato e l'hash alla rete, gli altri partecipanti alla rete ripeteranno il processo di hashing per garantire la validità del risultato.
Trovare l’hash corretto richiede un numero enorme di tentativi, ma verificare la correttezza dell’hash finito è abbastanza semplice. Per fare ciò, devi semplicemente passare gli stessi dati di input (dati del blocco) attraverso una funzione hash e verificare se il risultato corrisponde.
In Proof of Work, devi fornire dati il cui hash segue determinate regole stabilite nel protocollo, a condizione che tu non sappia come recuperarli direttamente. L'unica opzione è eseguire i dati tramite una funzione hash e verificare se soddisfa le condizioni. Se non c'è corrispondenza, dovrai modificare i dati per ottenere un hash diverso. Cambiare anche un solo carattere nei dati porterà a un risultato completamente diverso, per questo motivo è impossibile prevedere semplicemente quale potrebbe essere l'output.
Quindi, per creare un blocco, devi calcolare l'hash. Per fare ciò, l'utente unisce le informazioni su tutte le transazioni che devono essere aggiunte ai blocchi e ad alcuni altri dati. Ma poiché il set di dati non cambia, l'utente aggiunge un'informazione che diventerà una variabile. Altrimenti, l'output sarà sempre lo stesso hash. Questi dati variabili sono chiamati nonce. Vengono modificati ad ogni tentativo di ottenere un nuovo hash.
Quindi il mining è il processo di raccolta dei dati blockchain e di hash insieme a un codice monouso finché non si trova un hash adatto. Se trovi un hash che soddisfa le condizioni stabilite dal protocollo, ottieni il diritto di trasmettere un nuovo blocco alla rete. A questo punto, gli altri partecipanti alla rete devono aggiornare le proprie blockchain per includere il nuovo blocco.
Le condizioni stabilite dalle principali criptovalute sono incredibilmente difficili da soddisfare. Maggiore è l’hashrate della rete, più difficile sarà trovare un hash valido. Questo viene fatto per evitare che i blocchi vengano generati troppo rapidamente.
I tentativi regolari di indovinare un numero enorme di hash sono costosi, perché sprecano un'enorme quantità di risorse di calcolo ed energia elettrica. Tuttavia, se i minatori riescono a trovare un hash valido, il protocollo li premia per il loro lavoro.
Rivediamo ciò che abbiamo trattato:
Il mining è un processo complesso e costoso che garantisce la sicurezza della rete.
I minatori che creano un blocco valido vengono ricompensati sotto forma di nuove criptovalute e commissioni di transazione.
La generazione dell'hash corretto richiede del tempo, ma la sua accuratezza può essere verificata facilmente e rapidamente ripetendo il processo di hashing.
Ma cosa succede se provi a ingannare il sistema? Cosa ti impedisce di mettere un mucchio di transazioni fraudolente in un blocco e di creare un hash valido?
A questo scopo è stata sviluppata la crittografia a chiave pubblica. Per saperne di più su questo argomento, consulta il nostro articolo Che cos'è la crittografia a chiave pubblica. In breve, l’algoritmo utilizza alcune tecniche crittografiche che consentono a qualsiasi utente di verificare il diritto di un singolo partecipante alla rete di spostare fondi su un altro indirizzo.
Quando crei una transazione, la firmi. Qualsiasi partecipante alla rete può quindi confrontare la tua firma con la tua chiave pubblica per vedere se corrisponde. Ciò ti consente di sapere se puoi spendere i tuoi fondi e se le tue spese non superano l'importo consentito.
Qualsiasi blocco contenente una transazione non valida verrà automaticamente rifiutato. Cercare di ingannare la rete ti costerà molto perché finirai per sprecare le tue risorse informatiche senza ottenere alcuna ricompensa.
Questa è l’idea del Proof of Work: è più vantaggioso per gli utenti agire onestamente piuttosto che cercare di ingannare il sistema. I minatori stanno cercando di recuperare il proprio investimento, quindi la maggior parte seguirà le regole per realizzare un profitto.
Proof of Work (PoW) o Proof of Stake (PoS)
Esistono molti altri algoritmi di consenso oltre al PoW, ma uno dei più popolari è il Proof of Stake (PoS). Il suo concetto risale al 2011 ed è stato implementato in Ethereum e in molti altri protocolli.
Nelle reti con consenso Proof of Stake, il ruolo dei minatori è svolto dai validatori, poiché il protocollo non è associato al processo di mining e all'ipotesi degli hash. Invece, gli utenti vengono selezionati in modo casuale e il partecipante selezionato deve proporre un nuovo blocco. Se un blocco risulta essere valido, il validatore riceverà una ricompensa composta da commissioni di transazione per quel blocco.
Il protocollo seleziona un nuovo validatore in base a diversi fattori. Per avere la possibilità di essere selezionato, è necessario bloccare alcuni token aggiungendoli allo staking. Questo importo agisce come una sorta di garanzia: i validatori bloccano un certo numero di monete nel sistema, che andranno perse se il validatore tenta di ingannare il sistema. Le monete in staking verranno perse se un validatore tenta di convalidare un blocco non valido.
La Proof of Stake presenta alcuni vantaggi rispetto alla Proof of Work. Uno di questi è una minore impronta di carbonio. Ciò è dovuto al fatto che Proof of Stake non richiede il mantenimento di potenti mining farm, e quindi consuma molta meno elettricità rispetto a Proof of Work.
Tuttavia, la PoS non ha un track record eccezionale quanto la PoW. Sebbene il PoW possa essere percepito come uno spreco, il mining è attualmente l’unico algoritmo di consenso che funziona bene da oltre un decennio. Durante questo periodo, il meccanismo PoW di Bitcoin ha elaborato in modo sicuro trilioni di dollari di transazioni. Il protocollo PoS deve ancora dimostrare la sua efficacia e competitività a lungo termine.
Insomma
La Proof of Work è una soluzione affidabile e sicura al problema della doppia spesa. Bitcoin ha dimostrato di non richiedere organizzazioni centralizzate. Con un uso corretto della crittografia, delle funzioni hash e della teoria dei giochi, i partecipanti in un ambiente decentralizzato possono monitorare autonomamente il corretto funzionamento dell’intero database finanziario.
Lettura consigliata
Cos'è il mining di criptovalute e come funziona?
Cos’è la crittografia a chiave pubblica?
Cos’è l’algoritmo di consenso blockchain?
Dichiarazione di non responsabilità: i seguenti materiali sono forniti "così come sono" senza garanzie di alcun tipo, esclusivamente a scopo di riferimento generale e didattico. Queste informazioni non devono essere interpretate come consulenza finanziaria, consulenza legale o raccomandazione all'acquisto di prodotti o servizi specifici. Dovresti chiedere il tuo consiglio a consulenti professionali appropriati. Poiché questo articolo è stato scritto da un autore di terze parti, tieni presente che le opinioni espresse sono quelle dell'autore di terze parti e non riflettono necessariamente le opinioni di Binance Academy. Per informazioni più dettagliate seguire il link. Il valore delle risorse digitali può essere volatile. Il valore dei fondi investiti può salire e scendere. Potresti non recuperare i fondi investiti. Sei l'unico responsabile delle tue decisioni di investimento. Binance Academy non è responsabile per le tue possibili perdite. Queste informazioni non costituiscono consulenza finanziaria, legale o professionale. Per saperne di più, leggi i nostri Termini di utilizzo e Informativa sui rischi.
