sabato 18 gennaio 2020

Qual è La Differenza Tra Proof Of Work e Proof Of Stake? Criptovalute

Chi è nel settore delle criptovalute avrà sicuramente sentito parlare di Proof Of Work (PoW) e Proof Of Stake (PoS). In realtà i settori di impiego sono molto più ampi (soprattutto per il Proof Of Work).
Le criptovalute necessitano di algoritmi informatici responsabili del "consenso distribuito".
Il Proof Of Work nasce nel 1993 ed aveva lo scopo principale di dissuadere gli attacchi DDoS e limitare lo spam nelle caselle di posta elettronica.
Per approfondire: Hashcash e Le Sue Funzioni: Dai Filtri Antispam Ai Bitcoin (Proof Of Work)


PROOF OF WORK
Il Proof Of Work è un algoritmo che viene utilizzato anche dalla maggiorparte delle criptovalute quali Bitcoin, Litecoin, Monero, Bitcoin Cash, Bitcoin SV, Ethereum (anche se probabilmente cambieranno algoritmo di consenso, passando a Proof Of Stake tra 2020 e 2022) per raggiungere la decentralizzazione tra diversi nodi nel processo di aggiunta di un blocco specifico alla blockchain.
Hashcash (SHA-256) è la funzione Proof Of Work utilizzata dal Bitcoin.
Come si sa, i miners risolvono dei problemi matematici estremamente complessi e computazionalmente difficili per poter aggiungere blocchi alla blockchain e confermare le transazioni. Generalmente i miners si spostano dove si paga meno corrente elettrica, questo potrebbe portare ad una certa centralizzazione (molte mining farm erano in Cina), anche se comunque sussiste una buona distribuzione geografica.
Ogni blocco minato porta una certa ricompensa, ogni transazione confermata porta un ricavo mediante la "fee" (la transazione finisce nel blocco ma questo blocco ha uno spazio limitato, superato ciò finisce in un altro blocco concatenato al precedente mediante l'hash). Dunque come si capisce non ho bisogno di terze parti, non ho bisogno di banche. I miners stessi fanno funzionare la blockchain. Chiaramente ogni volta che viene generato un nuovo blocco, ho bisogno del consenso degli altri miners che dicono se è valido o meno. Questo processo richiede tempo ed energia (risorse computazionali elevate) ma le entrate derivano appunto da: ricompense per blocco minato e costo di transazione. Questo sistema è utile contro gli attacchi DDoS: non è importante la quantità di criptovalute possedute, ciò che conta è solo la potenza computazionale. Per svolgere un attacco alla rete Bitcoin avrei bisogno di tantissima potenza computazionale (cosa possibile) ma dovendo spendere tantissima energia renderebbe il tutto poco profittevole. In poche parole i Sybil Attacks sono quasi impossibili da svolgere perchè poco profittevoli. Tanto più lunga è una chain, tanto più difficile è realizzare il 51% attack perchè risulta molto difficile invertire una transazione. L'idea sarebbe compiere un attacco del 51% , cioè un utente o un gruppo di utenti che controlla la maggior parte della rete, tutto questo si attua creando più account (macchine/nodi). Gli aggressori avrebbero abbastanza potere per controllare la maggior parte degli eventi nella rete e potrebbero invertire le transazioni, eseguire double spending (cioè spendere 2 volte la stessa quantità di Bitcoin) o monopolizzare la generazione di nuovi blocchi ricevendo ricompense poiché in grado di impedire agli altri miners di completare i blocchi. Supponiamo che X abbia mandato dei soldi a Y usando la Blockchain. X è coinvolto nel caso di un attacco del 51 %, Y no. Questa transazione è inserita nel blocco. Ma gli aggressori non lasciano trasferire i soldi. Si forma una biforcazione nella catena. Inoltre, i minatori si uniscono a uno dei rami. E poiché hanno la maggior parte del potere computazionale, la loro catena contiene più blocchi. Nella rete si forma un ramo più lungo e uno più corto (quello lecito) che viene rifiutato. Quindi la transazione tra X e Y non ha luogo (Y non riceve i soldi). Tuttavia quest'attacco non è un'opzione redditizia perchè richiede un'enorme quantità di energia di mining. Ed anche se ciò andasse a segno, la rete viene considerata compromessa, il che porta al deflusso degli utenti (vendita di Bitcoin). Ciò inevitabilmente fa crollare il prezzo quindi Bitcoin perderebbe di valore. Ovvero è un cane che si morde la coda. Ovviamente va sottolineato che questo tipo di attacchi sono quasi impossibili da realizzare se l'hashpower è elevato ma se è molto basso sono più fattibili. I fork sono molto costosi da eseguire quindi ma in caso di biforcazione di una chain, qual è la chain valida? Quella che ha maggiore hashpower. D'altro canto sarebbe altrettanto difficile corrompere i miners perchè anche in questo caso bisognerebbe corrompere il 51% di hashpower. In generale se un miner si comporta male, viene beccato dagli altri quindi sprecherebbe tempo, energia e risorse (senza ricevere ricompense). I nodi essendo anonimi non possono portare all'espulsione dal network del miner malevolo ma come detto verrebbe subito bloccato. Va aggiunto che è molto difficile saturare il network, proprio perchè è fatto in modo tale da resistere ad attacchi Spam: all'aumentare delle transazioni, aumenta il costo delle fee.


PROOF OF STAKE
Il Proof Of Stake costituisce un metodo alternativo mediante il quale i nodi raggiungono il consenso.
Quali criptovalute lo stanno implementando? Cardano, Stellar, Neo, Polkadot, Neo, Neblio, Reddcoin, Qtum e probabilmente il futuro Ethereum 2.0 (Ethereum Passa Da Proof Of Work a Proof Of Stake: Cosa Succederà?). Viene utilizzato perché il PoW richiede troppa energia quindi le spese sono elevate. Molti studi oggi paragonano il costo dell’elettricità per la gestione e il funzionamento di un network Proof Of Work come quello Bitcoin a quello di alimentazione energetica di nazioni quali l'Irlanda. Il Proof Of Stake, invece, utilizza molta meno energia ed è quindi molto più ecologico del Proof Of Work. Non è necessario hardware per minare ma basta un nodo validatore e il quantitativo di token necessari per avviarlo. Uno dei difetti è sicuramente la maggiore centralizzazione perchè i token essendo già coniati vengono centralizzati nelle mani di pochi: team, community pool per sviluppi futuri, vendite private, etc Exchange ed early adopters possono influenzare pesantemente il network.
Nel modello di consenso Proof Of Stake, più grande è la partecipazione ("Stake"), ovvero la quantità di token posseduti sul network, maggiori sono le probabilità che questo sia sicuro. Tuttavia esso come detto tende ad essere centralizzato: basta comprare sempre più token, metterli in staking e guadagnare sempre più ricompense per avere un potere decisionale via via crescente.
I blocchi del Proof Of Stake, a differenza dei blocchi del Proof Of Work, non vengono minati, ma coniati. I validatori che possiedono una partecipazione significativa nei sistemi Proof Of Stake vengono selezionati su base pseudocasuale per coniare i blocchi e aggiungerli alla blockchain. Ma come può funzionare un sistema di questo tipo, se non si usa energia e supercomputer? I validatori, cioè i partecipanti nel network, metteranno in gioco il loro "Stake" sotto forma di token (se Cardano si metterà Ada, su Cosmos si metterà Atom e così via). Per semplificare il concetto: chi ha più Stake (criptovalute) ha maggiore potere di voto. Il Proof Of Stake è applicato generalmente alle criptovalute pre-minate, così da consentire all’utente di accedervi mettendole in staking. Ciò significa che l’offerta complessiva delle criptovalute Proof Of Stake rappresenta un numero standard e che non vi è alcun premio per la creazione dei blocchi, come avviene invece nel Proof Of Work. L’unico incentivo per i validatori in questo sistema è rappresentato dalle commissioni di transazione associate allo specifico blocco coniato. Validatori che si comportano male subiscono lo "slashing" (cioè perdono una % dei token in staking). Le transazioni sono finalizzate se si trova l'accordo con il 66% dello stake totale dei vari validatori (che sono d'accordo nel validare quel blocco). Se qualcuno accumulasse almeno il 33% dello stake potrebbe alterare questo processo (non potendosi raggiungere il 66% non si avrebbe la maggioranza di consenso, questo potrebbe anche fermare la chain, sino a quanto non si ritrovi il 66% di consenso dei partecipanti). Una transazione è finalizzata ed aggiunta al blocco quando si raggiunge l'accordo sempre con il 66% dei partecipanti. Il controllo della rete avviene quindi detenendo il 66% del quantitativo in staking ma per la censura e il blocco della chain basterebbe il 33% di consenso tra i vari validatori. 
Per saperne di più: Proof Of Stake e Il Delegated Proof Of Stake (Delegatori, Nominatori e Voti)
Chiudo con una curiosità, citando il Proof Of Research inerente i software di calcolo distribuito che concettualmente è una via di mezzo tra Proof Of Stack e Proof Of Work (per via dell'utilizzo di GPU e potenza computazionale).
Per approfondire: BOINC, Il Gridcoin e I Software Di Calcolo Distribuito (Proof Of Research)

Nessun commento:

Posta un commento