introduzione
La Proof of Work (spesso abbreviata in "PoW") è un meccanismo di prevenzione del problema della doppia spesa. La stragrande maggioranza delle criptovalute utilizza questo meccanismo di algoritmo di consenso. Chiamiamo questo approccio un registro crittograficamente sicuro.
Il Proof-of-Work è uno dei primi algoritmi di consenso ed è ancora oggi molto diffuso. Satoshi Nakamoto ha introdotto questo concetto nel white paper di Bitcoin pubblicato nel 2008, ma la tecnologia stessa era in realtà stata concepita prima.
Prima ancora che esistessero le criptovalute, HashCash di Adam Back era un primo esempio di algoritmo di prova di lavoro. HashCash allevia il problema dello spam che affligge i destinatari richiedendo al mittente di eseguire una piccola quantità di calcoli prima dell'invio dell'e-mail. Tali calcoli sono quasi semplici per i mittenti abituali, ma per coloro che inviano grandi quantità di e-mail, il peso aumenta rapidamente.
Qual è il problema della doppia spesa?
La doppia spesa si verifica quando gli stessi fondi vengono utilizzati più volte. Questo termine è essenzialmente esclusivo del mondo delle valute digitali, poiché la stessa quantità di contanti non può essere pagata due volte nella vita reale. Ad esempio, dopo aver pagato il caffè alla cassa, questo viene bloccato nel registratore di cassa. È impossibile per un cliente comprare un’altra tazza di caffè al bar dall’altra parte della strada per la stessa somma di denaro.
Ciò potrebbe accadere se viene implementato uno schema di contante digitale. Tutti abbiamo già copiato file del computer e possiamo inviare via email lo stesso file a dieci, venti o anche cinquanta persone semplicemente copiando e incollando.
Poiché le valute digitali sono solo forme di dati, dobbiamo diffidare di altri che copiano e pagano la stessa valuta altrove. Altrimenti, il nostro sistema monetario crollerà presto.
Se vuoi saperne di più sul problema della doppia spesa, leggi la "Spiegazione dettagliata del problema della doppia spesa".
Perché è necessaria la prova del lavoro?
Se hai letto la nostra guida alla tecnologia blockchain, saprai che gli utenti pubblicano transazioni sulla rete. Ma queste transazioni non hanno effetto immediato, ma solo dopo essere state aggiunte alla blockchain.
La blockchain è un enorme database visibile a tutti gli utenti, quindi tutti possono vedere come sono stati utilizzati i fondi in precedenza. Immagina questo: tu e altri tre amici condividete un blocco note. Non importa chi desidera trasferire denaro in quale valuta, verrà registrato. Ad esempio, Alice paga a Bob 5 unità di valuta e Bob paga a Carol 2 unità di valuta.
La complicazione di questo processo è che la fonte dei fondi deve essere menzionata in ogni transazione. Pertanto, se Bob paga a Carol due unità di valuta, la fonte dei fondi è in realtà Bob che paga a Carol due unità di valuta dalla sua precedente transazione con Alice.
In questo modo abbiamo un modo per monitorare queste valute. Se Bob tenta di effettuare un'altra transazione utilizzando la stessa unità di valuta precedentemente pagata a Carol, tutti lo sapranno presto. I membri del gruppo di condivisione non consentiranno la registrazione di questa transazione nel Blocco note.
Per piccoli gruppi, questo approccio può funzionare molto bene. Tutti si conoscono e possono mettersi d'accordo su quale amico registrerà la transazione nel blocco note. Cosa accadrebbe se si trattasse di un gruppo di 10.000 partecipanti? A questo punto, il Blocco note non può essere espanso in modo efficace, dopotutto nessuno si fiderebbe di un estraneo come responsabile del registro.
È qui che entra in gioco la prova del lavoro. La prova del lavoro garantisce che agli utenti non sia consentito spendere fondi a cui non hanno accesso. L’algoritmo di prova del carico di lavoro combina teoria dei giochi e crittografia per consentire a tutti di aggiornare la blockchain secondo le regole del sistema.
Come funziona la prova del lavoro?
La blockchain è il blocco note di cui abbiamo parlato sopra. Ma ora non aggiungiamo le transazioni una per una, ma le confezioniamo in blocchi. Pubblichiamo le transazioni sulla rete e l'utente che ha creato il blocco conta quindi la transazione in un blocco candidato. Solo quando il blocco candidato diventa un blocco confermato la transazione avrà effetto. Cioè, la transazione viene aggiunta alla blockchain.
Tuttavia, aggiungere blocchi non è economico. La prova del lavoro richiede che i minatori (utenti che creano blocchi) utilizzino le proprie risorse per ottenere privilegi. Le risorse sono potenza di calcolo, che può essere utilizzata per bloccare i dati finché non viene trovata una soluzione a un problema difficile.
L'hashing dei dati del blocco si riferisce all'inserimento dei dati in una funzione hash per generare un valore hash del blocco. L'hash del blocco agisce come una "impronta digitale", un'identificazione dei dati di input ed è univoco per ciascun blocco.
È quasi impossibile ottenere i dati di input invertendo l'hash del blocco. Tuttavia, conoscendo i dati di input, puoi facilmente confermare che il valore hash è corretto. Basta inviare l'input alla funzione e vedere se l'output è lo stesso.
I dati forniti alla prova del lavoro, il valore hash devono soddisfare determinate condizioni. Ma gli utenti non sanno come farlo. L'unica cosa che possono fare è passare i dati in una funzione hash per verificare che soddisfi i criteri. Se non corrisponde, modifica leggermente i dati e ottieni un valore hash diverso. La modifica anche di un solo carattere nei dati può produrre risultati molto diversi, quindi l'output non può essere previsto affatto.
Quindi, creare blocchi è un gioco d'ipotesi. In generale, gli utenti devono aggregare tutte le informazioni sulle transazioni e alcuni altri dati importanti da aggiungere, quindi sottoporli ad hash simultaneamente. Poiché il set di dati non cambia, è necessario aggiungere un'informazione variabile. Altrimenti, il valore hash di output sarà sempre coerente. Questi dati variabili sono chiamati "numero casuale". Finché provi a modificare il nonce ogni volta, otterrai un valore hash diverso. Questo processo è chiamato “mining”.
Nel complesso, il mining è il processo di raccolta dei dati della blockchain e di hash con l'aiuto di numeri casuali fino a quando non viene trovato un valore hash specifico. Se il valore hash risultante soddisfa le condizioni stabilite dal protocollo, è possibile pubblicare un nuovo blocco sulla rete. Allo stesso tempo, altri partecipanti alla rete possono aggiornare le proprie blockchain per includere nuovi blocchi.
Per le criptovalute tradizionali di oggi, è piuttosto difficile soddisfare le condizioni. Maggiore è l'hash rate di una rete, più difficile sarà trovare hash validi. Questo serve a rallentare la velocità di generazione dei blocchi.
Puoi immaginare l'alto costo di indovinare enormi valori di hash utilizzando un personal computer. Ciò consuma molto tempo e potenza di elaborazione. Ma finché viene trovato un hash valido, il protocollo ti premia con la criptovaluta.
Rivediamo ciò che sappiamo finora:
L’estrazione mineraria è costosa.
Genera blocchi validi per guadagnare premi.
Conoscendo i dati di input, l'utente può facilmente verificare il valore hash. Gli utenti che non eseguono operazioni di mining possono verificare se il blocco è valido senza spendere molta potenza di calcolo.
Finora tutto è normale. Ma cosa succede se qualcuno tenta di imbrogliare? Come possiamo smettere di inserire un gran numero di transazioni fraudolente nei blocchi per generare hash validi?
Nasce la crittografia a chiave pubblica. Questo articolo non entrerà nei dettagli qui. Si prega di leggere "Cos'è la crittografia a chiave pubblica?" " per ulteriori dettagli. In poche parole, utilizziamo alcune tecniche di crittografia conformi per verificare se qualcuno ha l'autorità per accedere a una determinata quantità di fondi.
Quando crei una transazione, la firmi. Gli utenti della rete possono confrontare la tua firma personale con la tua chiave pubblica per verificare che corrispondano. Allo stesso tempo, gli utenti possono anche verificare se la persona ha il diritto di utilizzare i fondi e se l'importo totale in entrata è superiore all'importo totale in uscita, ovvero se le spese personali non devono superare l'importo della trattenuta.
La rete rifiuta automaticamente i blocchi contenenti transazioni non valide. Il costo del tentativo di imbrogliare è molto alto. Non solo è uno spreco di risorse, ma non ottieni nemmeno ricompense.
Viene svelato il mistero della prova del lavoro: il costo della frode è elevato, ma il profitto di un'operazione onesta è enorme. I minatori saggi perseguiranno il ritorno sull’investimento (ROI), agiranno con cautela e garantiranno i profitti.
Vuoi iniziare il tuo viaggio nella criptovaluta? Vai su Binance e acquista Bitcoin adesso!
Prova di lavoro e prova di puntata
Anche la Proof of Stake (PoS) è al centro dell’attenzione di molti algoritmi di consenso. Il concetto risale al 2011 ed è stato implementato in una serie di protocolli più piccoli. Ma deve ancora ottenere l’adozione tra le grandi blockchain.
In un sistema proof-of-stake, i miner vengono sostituiti da “validatori” e non vi è alcuna competizione coinvolta nell’estrazione e nell’ipotesi degli hash. Invece, agli utenti selezionati casualmente viene richiesto di proporre o "coniare" blocchi. Se il blocco è valido, l'utente riceverà una ricompensa composta da commissioni per la transazione di blocco.
Naturalmente, ci sono delle soglie per il processo di selezione e l’accordo prenderà in considerazione in modo esaustivo vari fattori per selezionare gli utenti. Per qualificarsi, i partecipanti devono vincolare una quota, un importo predeterminato della valuta nativa della blockchain. Il pegno funziona come una cauzione. Ad esempio, per evitare che gli imputati eludano il processo, devono pagare ingenti cauzioni e i validatori devono bloccare “promesse” per evitare imbrogli. In caso di frode, tutto o parte del pegno verrà confiscato.
Rispetto alla prova del lavoro, la prova della posta presenta alcuni vantaggi. La più evidente è la riduzione dell’impronta di carbonio, poiché la Proof-of-Stake non richiede mining farm ad alta potenza e consuma solo una frazione dell’elettricità della Proof-of-Work.
Anche così, la popolarità della Proof-of-Stake è ancora lontana da quella della Proof-of-Work. Sebbene considerato uno spreco, il mining ha dimostrato di essere l’unico algoritmo di consenso per ottenere un utilizzo di massa. Per più di un decennio, la prova del lavoro ha assicurato transazioni per trilioni di dollari. Per sapere se la proof of stake può competere con la proof of work in termini di sicurezza, lo staking deve ancora essere completamente testato nelle operazioni reali.
Riassumere
La prova di lavoro è stata la soluzione iniziale al problema della doppia spesa e la sua affidabilità e sicurezza sono state dimostrate. Bitcoin dimostra che non è necessario fare affidamento su un’entità centralizzata per evitare che gli stessi soldi vengano spesi due volte. I partecipanti in un ambiente decentralizzato possono monitorare in modo coordinato lo stato dei database finanziari attraverso l’uso intelligente della crittografia, delle funzioni hash e della teoria dei giochi.

