Cos’è la Proof of Work

Oggi inizieremo una mini-serie di articoli dedicati ai meccanismi di consenso che ci sono nelle varie blockchain, partiamo dall’origine con il Proof of work (POW).

Panoramica

Esistono molti protocolli che regolano il modo in cui i nodi di una blockchain raggiungono il consenso, e attualmente il più popolare è il proof-of-work (POW). Un sistema di proof-of-work basato su blockchain è stato implementato per la prima volta con il rilascio di Bitcoin nel 2009, sebbene il concetto sia nato negli anni ’90.

Il POW è un meccanismo di consenso che si basa su un difficile compito computazionale per proteggere la rete da attori malintenzionati. Un sistema di questo tipo ha delle figure molto importanti chiamati minatori ovvero computer che competono tra loro per risolvere quanto prima un determinato calcolo computazionale. Qualunque minatore risolva il calcolo che valida un blocco, trasmette il risultato prima agli altri minatori, i quali possono facilmente verificare che l’attività sia stata svolta correttamente.

Il sistema è chiamato proof-of-work perché questo è ciò che i minatori stanno fornendo – il computer vincitore sta trovando un dato che dimostra che è stata eseguita una quantità sufficiente di lavoro computazionale per ottenere il risultato giusto.

In un sistema POW, maggiore è la potenza computazionale di un minatore, maggiori possibilità ha di vincere la competizione con altri minatori. Inoltre, più minatori sono in competizione per trovare il “calcolo” vincente, più sicura diventa la rete.

Le criptovalute che utilizzano un sistema di questo tipo sono Bitcoin (e tutti i suoi fork), Ethereum, Ethereum Classic, Litecoin, Monero, Dash, Zcash, Decred e tanti altri.


Storia

Bitcoin è stata la prima implementazione divulgata di POW, ma il concetto è in circolazione da molto più tempo. L’idea è stata inizialmente proposta in una rivista accademica del 1993 da Cynthia Dwork e Moni Naor, anche se il nome “proof of work” è stato coniato da Markus Jakobsson nel 1999.

Nel 1997, Adam Back propose Hashcash – un sistema POW usato per limitare gli attacchi di spam e denial of service (DoS). L’idea era che gli spammer, che potevano inviare una quantità immane di e-mail senza alcun costo per messaggio, avrebbero smesso di inviare spam se ogni e-mail inviata aveva un piccolo costo computazionale. Questa fu una delle prime implementazioni pratiche di un sistema di proof-of-work.

 

Come funziona?

Su una blockchain il POW avviene mentre i dati delle transazioni vengono aggiunti al blocco corrente dai nodi, altri computer chiamati minatori tentano di decifrare un codice che convalida il blocco.

Il processo di mining è paragonabile a una lunga password casuale: più potenza di calcolo è disponibile, più velocemente si possono fare ipotesi e quindi si ha una migliore possibilità di convalidare il blocco corrente. Il codice viene generato tramite un algoritmo crittografico chiamato hashing, e non c’è modo di decifrare il codice senza provare combinazioni casuali attraverso la ripetizione.

Dopo la convalida, il minatore “vincente” trasmette il risultato e gli altri minatori sulla rete possono dimostrare che il codice è corretto. A questo punto i dati nel blocco sono sigillati e i minatori continuano a tentare di indovinare il codice del prossimo blocco.

Per capire ancor meglio come avviene questo processo vi rimandiamo ad un nostro precedente articolo.

 

Incentivo

Le persone sono incentivate a usare la loro potenza computazionale come minatori attraverso ricompense distribuite automaticamente: il minatore che indovina correttamente il codice di un blocco riceve nuove monete legate a quel blocco (nel momento in cui scriviamo per il bitcoin sono 12.5 btc). Il tasso di inflazione è programmato nella blockchain e non c’è altro modo per coniare nuove monete.

Il minatore vincente oltre le nuove monete riceve anche le commissioni di ogni transazione scritte nel blocco che hanno convalidato. L’incentivazione in un sistema POW è estremamente importante perché i minatori sono i principali attori nella protezione della rete da parte persone malintenzionate.

Considerando che ci può essere solo un vincitore e il numero di minatori è crescente nel tempo, le probabilità di una singola macchina di indovinare il codice corretto sono sempre più basse. Le persone hanno aggirato questo problema creando squadre di minatori (le cosiddette pool): reti in cui le persone impegnano la propria potenza di calcolo in pool insieme ad altri minatori.

Se la pool estrae un blocco, la ricompensa del blocco viene ripartita proporzionalmente in base alla quantità di potenza di calcolo fornita da ciascuna macchina. Ciò ha mantenuto bassa la barriera all’ingresso per partecipare alla POW.

 

Sicurezza della rete

Supponiamo che qualcuno voglia inviare una transazione “malevola” sulla blockchain per accreditare sul proprio portafoglio 10 bitcoin provenienti dal portafoglio di un utente casuale. I malintenzionati trasmettono la transazione “malevola” sulla loro copia della blockchain, e affinché sia ​​accettata come valida, dovrebbero estrarre il blocco corrente, creando un nuovo fork della catena che accredita loro 10 bitcoin.

Se i malintenzionati non estraggono il blocco, il miner che risolve il blocco trasmetterà la sua versione con i dati validi e sarà esclusa la transazione difettosa.

Altrimenti, anche se riuscissero ad ottenere la loro transazione in un blocco confermato, (1) devono continuare a risolvere blocchi più velocemente rispetto al resto dei minatori non malintenzionati, e (2) altri minatori concordano sul fatto che questa catena è quella valida.

In generale, ci sono due principi per guidare quale catena è la catena legittima per una moneta – la catena con il maggior numero di blocchi, e / o la catena con la difficoltà mineraria più accumulata…in poche parole la catena con più potenza è anche quella che risolve i blocchi più velocemente quindi la rete la reputa più affidabile.

Per superare questo ostacolo, è necessario il 51% di tutta la potenza di calcolo della rete. Questo è chiamato un attacco del 51% ed è la principale vulnerabilità di sicurezza nei sistemi blockchain. È anche il motivo per cui una blockchain diventa più sicura con l’aumento del numero di minatori.

Nel prossimo articolo parleremo di Proof of Stake, nell’attesa o per porre domande su questo argomento entrate nel nostro gruppo telegram!!!

Commenta