Anteprima
Vedrai una selezione di 11 pagine su 49
Sicurezza dei Dati - parte Blockchain Pag. 1 Sicurezza dei Dati - parte Blockchain Pag. 2
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Sicurezza dei Dati - parte Blockchain Pag. 6
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Sicurezza dei Dati - parte Blockchain Pag. 11
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Sicurezza dei Dati - parte Blockchain Pag. 16
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Sicurezza dei Dati - parte Blockchain Pag. 21
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Sicurezza dei Dati - parte Blockchain Pag. 26
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Sicurezza dei Dati - parte Blockchain Pag. 31
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Sicurezza dei Dati - parte Blockchain Pag. 36
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Sicurezza dei Dati - parte Blockchain Pag. 41
Anteprima di 11 pagg. su 49.
Scarica il documento per vederlo tutto.
Sicurezza dei Dati - parte Blockchain Pag. 46
1 su 49
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

IL CONSENSO NELLA BLOCKCHAIN

L'obiettivo del protocollo di consenso nelle blockchain è di garantire che tutti i nodi partecipanti concordino sulla storia comune delle transazioni nella rete.

  • Termination: Da ogni nodo onesto, una nuova transazione è sia scartata o accettata nella blockchain, all'interno del contenuto di un blocco.
  • Agreement: Ogni nuova transazione e il suo blocco che la contiene deve essere sia scartata o accettata da tutti i nodi onesti. Un blocco accettato deve avere lo stesso numero di sequenza per ogni nodo onesto.
  • Validity: Se ogni nodo riceve uno stesso blocco/transazione valida, esso deve essere accettato nella blockchain.
  • Integrity: Per ogni nodo onesto, tutte le transazioni accettate devono essere consistenti tra loro, senza double spending. Tutti i blocchi accettati devono essere correttamente generati e collegati con hash in ordine cronologico.

Termination e validity sono simili a quanto visto nel classico consenso.

siccome rappresentano la liveness del sistema. Agreement e integrity sono simili a quanto visto nel classico consenso, siccome rappresentano la safety del sistema. Il teorema CAP (pag 12) si applica anche in blockchain. Nelle reali implementazioni di blockchain, non è mai possibile ottenere sia Consistenza che Availability, perché devono affrontare la tolleranza alle partizioni.

Nei sistemi permissionless in un gruppo aperto di nodi scelgono di privilegiare di garantire l'availability anziché la consistency, per poter essere in grado di utilizzare/inviare/ricevere criptovalute. I casi di fork rappresentano i momenti in cui l'inconsistenza è risolta nel tempo, così da garantire l'Eventual Consistency.

Nei sistemi permissioned in un gruppo chiuso di nodi scelgono di privilegiare di garantire la Consistency anziché l'Availability, perché non sono focalizzate su criptovalute ma la gestione di dati in ambito distribuito.

meccanismi di consenso delle blockchain possiamo distinguere tre elementi chiave.
  • Come vengono selezionati i partecipanti al consenso.
  • Come viene realizzato il processo di raggiungimento del consenso.
  • Come sono strutturati i dati nella blockchain.
Il protocollo di consenso si comporta di 5 elementi.
  1. La proposta di un blocco: generazione di blocchi e associazione di prove;
  2. La propagazione di informazioni: disseminazione di blocchi e transazioni nella rete;
  3. La validazione di blocchi: controllo dei blocchi per la generazione di prove e verifica dellavalidità delle transazioni.
  4. La finalizzazione dei blocchi: raggiungimento del consenso sull'accettazione di blocchi validati.
  5. Il meccanismo di incentivazione: promozione di partecipanti onesti e creazione di token di rete.
Il consenso su blockchain si ispira al meccanismo di State Machine Replication (SMR).
  1. Tutti i server iniziano con lo stesso stato iniziale;
  2. La primitiva di comunicazione è

Il Total-order broadcast: tutti i server ricevono la stessa sequenza di richieste secondo l'ordine di generazione dai client;

Tutti i server che ricevono la stessa richiesta emetteranno gli stessi risultati di esecuzione e termineranno nello stesso stato.

SMR è spesso realizzato in maniera leader-based (altri server sono repliche che ricevono le richieste e aggiornano il proprio stato), con un server primario che riceve le richieste dai client e inizia la procedura di broadcast, mentre gli altri ricevono le stesse richieste e aggiornano il proprio stato locale in modo che corrisponda a quello del leader.

L'algoritmo di Paxos è uno schema SRM progettato per garantire il consenso tollerante a guasti di tipo crash.

  1. Il client è un learner e il leader tra i server è un proposer, mentre le repliche sono degli acceptors. Il client richiede il consenso su un singolo valore.
  2. Il proposer propaga la richiesta agli acceptors, che si scambiano informazioni. Dopo

essersi aggiornati allostesso stato, tutti i server eseguono la richiesta, che lainviano al client.

3. Il client riceve i risultati dagli acceptors e formula l’esito a maggioranza. Quando il leaderè indisponibile per crash, le repliche ne eleggono uno nuovo.

Questo algoritmo tollera f crash dei server il cui numero N è maggiore o uguale 2f+1, ma nontollera guasti bizantini. Un algoritmo che tollera invece i guasti bizantini è il PBFT (PracticalByzantine Fault Tolerance). Il leader è scelto per ogni round dell’algoritmo. I nodi sono ordinatiin base al proprio identificativo , il leader il nodo i=v mod N, v = vista, N = numero server.

1. Tutti i risultati inviati al client devono essere uguali, altrimenti il client decide amaggioranza. Il client invia una richiesta al nodo primario (leader), che la trasmette atutti i nodi secondari (backup) assegnando un numero di sequenza alla richiesta.

2. I nodi secondari e il leader si accordano

sull'ordinamento delle richieste, quando l'ordinamento è stato approvato, la richiesta viene eseguita e un risultato restituito al client. 3. Se il client riceve f+1 risposte identiche, si raggiunge consenso. L'algoritmo tollera f guasti anche di natura bizantina, con N maggiore o uguale di 3f+1, ovvero i nodi bizantini non riescono a far deviare il consenso raggiunto. La primitiva di comunicazione alla base delle implementazioni PBFT nel contesto blockchain è il gossiping. Il principale problema con PBFT è che richiede che i nodi verifichino la validità dei messaggi degli altri e che il numero di nodi attivi in un dato momento sia sempre noto, e ciò lo rende applicabile in contesti permissioned. La sicurezza si basa su MAC (Message Authentication Code) e questo lo rende inutilizzabile con oltre 1000 nodi. PBFT garantisce fortemente la Safety ma blockchain è più focalizzata sulla Liveliness, a tale scopo si è formulato.l'algoritmo di Nakamoto, rispetto a quello implementato nel contesto Bitcoin, troviamo parallelismo con le 5 componenti del consenso nelle blockchain.
  1. La generazione di blocchi richiede una Proof-of-Work mediante la risoluzione di un puzzle crittografico con un determinato grado di difficoltà tale da mantenere un intervallo di generazione e un grado di protezione adatti.
  2. Viene utilizzato il gossiping.
  3. Un blocco o transazione deve essere validata prima di essere inviata in broadcast agli altri nodi collegati alla coda di una catena locale. La validità si realizza evitando il double spending o controllando la PoW allegata al blocco.
  4. La catena più lunga rappresenta il raggiungimento del consenso in caso di disaccordo (che ha causato la fork).
  5. Chi ha generato un blocco accettato con successo può ottenere un reward o premio.
Sottomettere una nuova transazione ha un costo monetario. La reward serve ad incentivare i blocchi a partecipare correttamente.

Il consenso di Nakamoto è caratterizzato dalla tolleranza ai guasti, espressa in termini di percentuale di potenza di hashing avversaria tollerabile. Finché meno del 50% della potenza di hashing totale è controllata in modo malizioso, i blocchi prodotti dai miners onesti vengono propagati tempestivamente e la catena principale è quella della maggioranza onesta che eventualmente supera qualsiasi ramo malizioso.

Nel consenso del BFT classico, se più di 1/3 della popolazione è maliziosa, i nodi onesti finiranno per decidere valori contrastanti, portando al fallimento del consenso. Nel consenso di Nakamoto, tuttavia, le decisioni contrastanti sono temporaneamente consentite sotto forma di fork della blockchain, a condizione che alla fine verranno eliminate dal continuo sforzo della maggioranza onesta.

Il consenso di Nakamoto presenta alcune limitazioni, principalmente è particolarmente lento, ci vogliono 10 minuti tra la generazione di blocchi, diminuendo il throughput.

delle transazioni porta a provocare più facilmente fork. Aumentare la dimensione dei blocchi ha lo stesso effetto. In più il meccanismo PoW di Nakamoto causa un enorme consumo di energia. Alcuni attacchi che possiamo avere sono:
  • Attacco Eclisse: Se un potente attacco riesce a dominare la comunicazione in entrata/uscita tra un miner vittima e la rete principale, allora la vittima non sarà più in grado di contribuire all'estensione della catena principale. L'attacco eclisse sfrutta la connettività debole, per risolvere bisogna aumentare la connettività e la diversità geografica delle connessioni peer-to-peer.
  • Selfish Mining: Un gruppo di miners maligni non pubblicizza i blocchi ma li tiene segreti. Gli altri miners estendono la catena con blocchi validi. Il miner egoista continua a estendere il suo ramo segreto fino a quando la catena pubblica è ad un passo indietro e pubblica la sua. Poiché la catena segreta
è più lunga, le altre parti la considerano la catena principale. Se il numero di miner disonesti è più grande di 1/3 possono portare a terminel'attacco. Sia il selfish che l'attacco eclisse sono più possibili in blockchain piccole. Proof of stake (PoS) è un'alternativa efficiente dal punto di vista energetico al PoW. Nel PoW la possibilità di proporre un blocco è proporzionale alla sua potenza di calcolo, nel PoS è proporzionale al valore del suo stake, o puntata si riferisce alle monete possedute. PoS evita la competizione di hashing bruteforce che si verificherebbe se fosse stato usato PoW ottenendo così una significativa riduzione del consumo energetico. Questo implica l'assenza del premio per chi inserisce il blocco giusto nella blockchain, e del mining, in quanto non vengono create nuove unità di criptovaluta con la creazione di ogni blocco. I validatori sono ricompensati con una commissione per.

Le transazioni validate. Il DPoS (delegate proof of stake) consente ai nodi che detengono lo stake maggiore, stakeholders, di votare per eleggere i verificatori di blocchi. Questo fa si che i detentori di stake concedono il diritto di creare blocchi ai delegati che sostengono invece di creare blocchi stessi, riducendo così il loro consumo di potenza computazionale a 0. PoS ha lo svantaggio di accentrare le ricchezze nelle mani di pochi e nel caso di una fork i validatori saranno incentivati a operare su entrambe le catene. PoS e DPoS sono stati applicati nel contesto di classici algoritmi BFT al fine di consentirne l'applicazione in contesti open e permissionless. Un algoritmo PBFT che utilizza PoS è Tendermint. Ogni nuovo blocco viene validato o meno in una iterazione dell'algoritmo, che si compone in più round per poter giungere a consenso. Si tratta di un consenso di tipo CP, dove la consistenza viene fortemente garantita. Non tutti i validatori avranno lo

stesso peso, infat

Dettagli
A.A. 2020-2021
49 pagine
2 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher francesco.iacominocaputo di informazioni apprese con la frequenza delle lezioni di Sicurezza dei dati e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Salerno o del prof Esposito Christiancarmine.