Perché la Blockchain Security è fondamentale e come viene implementata?

Questo tutorial discute le basi della sicurezza blockchain. Spiega anche come funzionano crittografia, firme digitali, hash, chiavi private e pubbliche per proteggere i dati:

Nel precedente tutorial Blockchain ETF di serie di tutorial Blockchain , abbiamo appreso del funzionamento di Blockchain ETF insieme al loro confronto con altre risorse.

La sicurezza dei dati è fondamentale per le blockchain e per il loro funzionamento. Ad esempio, la sicurezza di prim’ordine impedisce la duplicazione o la distruzione di risorse digitali come le criptovalute su una blockchain.

Diversi metodi garantiscono la massima sicurezza dei dati e delle informazioni all’interno della blockchain, comprese le tecniche di crittografia avanzate e i modelli matematici del comportamento e del processo decisionale.

In questo tutorial sulla sicurezza blockchain, impareremo i concetti di base della sicurezza all’interno di una blockchain per capire cosa rende sicura la blockchain e le basi della crittografia. Vedremo anche come il decentramento, il consenso e la criptoeconomia garantiscono la sicurezza delle blockchain.

Prenderemo anche in considerazione alcuni suggerimenti su come rendere più sicura la blockchain, le basi della sicurezza quantistica e il concetto di blockchain resistenti ai quanti.

Cosa imparerai:

  • Perché la sicurezza della blockchain è fondamentale?
  • Fattori che contribuiscono alla sicurezza della blockchain
    • #1) Consenso e immutabilità
    • #2) La crittografia e il suo ruolo nella sicurezza delle blockchain
      • Algoritmi crittografici
    • #3) Come funzionano le chiavi private e pubbliche per proteggere i dati?
    • #4) Creazione di firme digitali
    • #5) In che modo l’hashing aiuta a proteggere i dati nella blockchain?
    • #6) Cripto-economia e sicurezza blockchain
    • 7) Computer quantistici e blockchain resistenti ai quanti
  • Conclusione
    • Lettura consigliata

Perché La Sicurezza Della Blockchain È Fondamentale?

Cerchiamo di capire l’importanza della sicurezza per le blockchain e vediamo le aree che devono essere protette.

  • Prendiamo ad esempio le criptovalute, se la blockchain non è sicura, le criptovalute possono essere copiate, distrutte o rubate. Lo stesso può accadere per tutti i messaggi così crittografati.
  • Inoltre, le informazioni così protette non rimarrebbero più private o confidenziali. Ciò significherebbe più insicurezza, furto e dirottamento, ad esempio quando si conoscono i proprietari di enormi quantità di criptovalute.
  • I contratti intelligenti senza fiducia sarebbero difficili da realizzare senza la garanzia che l’accordo scritto non verrà modificato.

Fattori Che Contribuiscono Alla Sicurezza Della Blockchain

#1) Consenso e immutabilità

il consenso e l'immutabilità contribuiscono alla sicurezza della blockchain

Consenso e immutabilità contribuiscono alla sicurezza della blockchain nei seguenti modi:

  • Il consenso , essendo la capacità dei nodi sulla rete blockchain di concordare lo stato della rete, garantisce il rispetto delle regole di protezione della rete.
  • L’algoritmo di consenso definisce tali regole e come devono essere seguite da chiunque condivida la rete. Un aspetto importante del consenso è la codifica di tali regole per garantire che gli utenti aderiscano alle regole senza doversi fidare l’uno dell’altro.
  • L’immutabilità , d’altra parte, è la capacità dei dati transazionali su una blockchain di non essere alterati o cancellati. Questa è una funzionalità tecnologica della blockchain. Il collegamento dei blocchi in una blockchain assicura che tali modifiche vengano trasmesse a ogni nodo e operatore di nodo grazie al codice dell’algoritmo di consenso. Gli operatori del nodo possono rifiutare o accettare tecnologicamente tali modifiche.
  • Se le modifiche vengono rifiutate, il blocco modificato viene passato come orfano o svincolato dalla catena principale più lunga. La persona che estrae il blocco non riceve nemmeno la ricompensa.

Pertanto, il consenso protegge così la blockchain poiché consente ai verificatori e ai nodi di non essere d’accordo con i cambiamenti inaccettabili anche se concordano su quelli che sono accettabili per garantire la continuità della catena. L’immutabilità garantisce la tracciabilità di tutti i dati e le informazioni protetti su una blockchain, il che significa che qualsiasi tipo di cambiamento verrebbe notato.

#2) La crittografia e il suo ruolo nella sicurezza delle blockchain

La crittografia è il principale sistema di sicurezza della blockchain. Consente la memorizzazione e lo scambio di dati in un formato nascosto a terzi e solo la persona che ha il permesso tecnologico per svelare il significato del messaggio può ricevere e decodificare il messaggio inviatogli.

L’algoritmo di hashing converte i dati facilmente leggibili in dati che non possono essere compresi senza la decrittazione:

La crittografia e il suo ruolo nella sicurezza delle blockchain

La crittografia funziona tramite l’hashing oltre a utilizzare i metodi di sicurezza delle coppie di chiavi pubbliche e private. La crittografia a chiave pubblica asimmetrica e simmetrica è il modo principale per proteggere i dati in una blockchain. Nella crittografia a chiave simmetrica, una chiave viene utilizzata per crittografare e decrittografare dati e informazioni. DES e AES sono esempi di crittografia a chiave pubblica simmetrica.

Questi sono impiegati nei metodi di crittografia e-mail e Internet come TLS e SSL, sebbene a volte utilizzino una combinazione di crittografia a chiave simmetrica e asimmetrica.

(i) Le blockchain utilizzano la crittografia a chiave pubblica asimmetrica , che è più sicura e utilizza diverse chiavi private e pubbliche per crittografare e decrittografare dati e informazioni. Le chiavi pubbliche sono disponibili pubblicamente, ad esempio tramite certificati digitali. Il mittente di informazioni o criptovalute o altro utilizzerà la chiave pubblica del destinatario per crittografare i dati. Il destinatario avrà la chiave per sbrogliare i dati decifrandoli con la chiave privata collegata alla chiave pubblica.

(ii) Ovviamente, una terza parte non può accedere al messaggio poiché viene inviato in un formato crittografato o illeggibile.

(iii) Il titolare della chiave privata è la persona avente l’autorità e il diritto di decifrare le informazioni in essa contenute, come prova della proprietà.

(iv) Un generatore di chiavi è un programma informatico utilizzato per generare chiavi pubbliche e private in crittografia. Questi generatori di numeri casuali (RNG) o generatori di numeri pseudocasuali (PRNG) utilizzano un grado di casualità per proteggere i dati.

(v) Le chiavi proteggono i dati essendo più difficili da scoprire. Consideriamo la forza bruta, che è uno dei modi per provare a decrittografare i dati crittografati senza avere le chiavi private associate. La forza bruta funziona per tentativi ed errori in cui il software indovina più combinazioni di caratteri probabili facendo le chiavi che iniziano con il numero minimo.

Questo software è abbastanza veloce e viene utilizzato per penetrare con successo in alcune tecniche di crittografia e per hackerare i sistemi indovinando password e chiavi, ecc.

La forza bruta non è in grado di violare la crittografia a chiave pubblica asimmetrica, in primo luogo perché la composizione e la lunghezza della chiave lo rendono difficile da indovinare. Non solo ci vorrebbe un’eternità per farlo bene, ma anche le risorse necessarie sarebbero insostenibili. Quindi, mentre i sistemi di crittografia a 128 bit che producono chiavi lunghe 128 bit sono impiegati in algoritmi a chiave simmetrica difficili da decifrare, 2048 bit.

(vi) Puoi testare generatori di chiavi pubbliche e private casuali su bitcoinaddress.org generando manualmente un indirizzo di portafoglio Bitcoin e la sua chiave privata. Entrambe le chiavi vengono generate offline riducendo la possibilità di essere compromesse.

Questo metodo utilizza sporadici movimenti del mouse dell’utente per generare semi unici e aumentare il grado di casualità che rende più difficile, anzi impossibile, indovinare le chiavi generate. Questo tipo di PRNG utilizza l’entropia del sistema per seminare i dati nel processo di casualità per rendere i risultati difficili da indovinare rendendo difficile indovinare le condizioni iniziali del PRNG.

Altri sistemi derivano le chiavi private in modo deterministico utilizzando una passphrase e una funzione di derivazione della chiave. Questi metodi sono impiegati nei moderni portafogli HD che semplificano la generazione e la gestione degli indirizzi dei portafogli. Tutte le chiavi private per tutti gli indirizzi del portafoglio nel portafoglio HD sono generate utilizzando la stessa funzione di derivazione della chiave e possono essere recuperate con un’unica passphrase.

Algoritmi crittografici

La crittografia può essere forte o debole, misurata dal tempo e dalla quantità di risorse necessarie per recuperare il testo in chiaro dal suo testo cifrato.

1) La crittografia convenzionale fa un buon lavoro nel proteggere i dati archiviati, ma può essere molto costosa quando si proteggono i dati in transito.

#2) La moderna crittografia a chiave pubblica-privata asimmetrica risolve il problema della distribuzione delle chiavi. Metodi come OpenPGP utilizzano un ibrido di crittografia a chiave pubblica (crittografia asimmetrica) e crittografia convenzionale.

I cypher sono funzioni matematiche che consentono la crittografia e la decrittografia delle informazioni. Utilizza una chiave, che è una parola, un numero o una frase, per crittografare un testo in chiaro. Chiavi diverse risulteranno in diversi testi cifrati o hash.

#3) Un algoritmo crittografico raccoglie dati casuali da iniettare nella sua funzione matematica e gli input del messaggio semplice per produrre un testo crittografato.

L’immagine seguente spiega il funzionamento dell’algoritmo di crittografia:

Cryptographic algorithms

4) I cifrari funzionano utilizzando diverse strategie per nascondere i messaggi. Possono combinarlo con dati aggiuntivi, invertirlo o trasporlo, questi sono solo alcuni esempi.

#5) Ad esempio, nella crittografia a chiave simmetrica, l’algoritmo potrebbe utilizzare cifrari di trasposizione in cui l’ordine delle unità in un testo semplice viene riordinato regolarmente per nascondere il messaggio. La funzione o cifra utilizzata è chiamata funzione biunivoca. Il testo cifrato costituisce una permutazione del testo in chiaro. In questo caso, per decifrare il messaggio, viene applicata una funzione inversa al testo cifrato per ripristinare l’ordine originale del testo e tornare al testo in chiaro.

#3) Come funzionano le chiavi private e pubbliche per proteggere i dati?

How private and public keys work to secure data

(i) La crittografia con coppie di chiavi pubbliche e private è un processo matematico. Una volta che la chiave privata è stata utilizzata per creare una firma digitale, la transazione è unica per qualsiasi altra e non può essere copiata da nessuno all’esterno o all’interno della blockchain.

(ii) Una firma per una determinata transazione non può essere simile a una firma per una transazione diversa anche quando viene utilizzata la stessa chiave privata per generare le due firme.

(iii) Inoltre, oltre al fatto che le chiavi sono nascoste matematicamente tramite l’hashing, la relazione tra loro è difficile da svelare. Quindi il messaggio originale così protetto è difficile da trovare.

(iv) La protezione di dati, informazioni e transazioni con chiavi private e pubbliche si basa sull’idea che mentre è facile trovare il prodotto di due grandi numeri primi, è sempre più difficile e impossibile trovare fattori di un numero elevato se si ha solo fattori primi molto grandi.

(v) Questo perché ci vorrebbero molte migliaia di anni per calcolare, con qualsiasi metodo possibile attualmente incluso il computer più veloce, i fattori del numero.

Due numeri si dicono congruenti in modulo se la loro differenza è divisibile per il modulo. Il numero 30 è congruente a 9 modulo 7 perché la differenza tra 30 e 7 è divisibile per 7.

In altre parole, è espresso come;

>> a modulusb (mod l) se e solo se a = kl + b dove k è un intero, aeb sono congruenti e modulo tra loro.

Se Tom vuole ricevere un messaggio da Harry, è l’unico in grado di decodificare il messaggio, anche se tutti sono in grado di scrivere il messaggio in codice. Tom sceglierà due numeri primi molto grandi aeb, quindi scriverà k = ab e codificherà il messaggio usando k ma aeb sono necessari per decodificare il messaggio.

Tom sceglie due numeri aeb dove k = ab mentre l = minimo comune multiplo {a-1, b-1}
Tom, che vuole ricevere un messaggio privato e sicuro da Harry sceglie d dove c>1 e c è co- primo con l che significa c, non ho fattori comuni.
Tom troverà anche t unico minore di l, dove ct = 1 (mod l).
Tom mostra pubblicamente l’identità di c e k mantenendo a, b, t privati.

Harry quindi invia L singolo numero come messaggio a Tom; L e k sono coprimi e mantengono la condizione 0<L<k.
Harry trova L d dove L d = L c (mod k) e invia il messaggio L d a Tom.
Dopo aver ricevuto il messaggio L d da Harry, Tom lo decodifica usando a, b, c, t, l, k per trovare L d .

Per decodificare, Tom userà il teorema che;

(L t modulus L (mod k).

Esempio;

  • Harry invia il messaggio L a Tom; Tom sceglie a = 17, b = 23; il che significa k = 39, l = 176, c = 3 e t = 59
  • Tom dice a Harry k = 391 e c = 3 (nessuno può trovare t anche se ha k e c).
  • Harry calcola L d = 180 usando L d = L c (mod k) con la conoscenza di c e k.
  • Tom riceve il messaggio in codice 180.
  • Tom calcola L d ) t modulusL (mod k). lmodulus180 59 (mod 391) e decodifica il messaggio segreto di Harry.
  • Il computer utilizza il modulomodulusus calcolo per determinare i risultati della funzione di cui sopra.

Idealmente,

  • Se unmodulusb (mod n), n divide ab e se n divide a –b allora n divide (ab)c = ac-bc che significa acmodulusbc (mod n); e
  • come un k  modulusk (mod n)
  • La soluzione segue questo esempio; Per trovare x nell’equazione 0modulusXmodulus100; e 17 3modulusx (mod 101);
  • Poiché 17 3 è troppo grande per la maggior parte dei calcolatori, iniziamo con 17 6 = 24137569 e prima dividendo per 101, troviamo che 17 6 = (238985) (101) + 84 quindi sappiamo 17 6modulus84 (mod 101), utilizzabile per affrontare used

17 13 , che è = (17 6 ) 2 x 17 che èmodulus84 2 x 17modulus 119952 (mod.10)

modulus65 (mod.101).

Quindi x = 65.

#4) Creazione di firme digitali

Cerchiamo ora di capire come vengono create le firme digitali in blockchain e il loro ruolo nella riservatezza.

Le chiavi pubbliche sono utilizzate pubblicamente anche se in modo sicuro, quindi tramite certificati digitali, ad esempio nel gergo della crittografia dei siti Web e della posta elettronica. I certificati sono emessi da Autorità di Certificazione o CA.

Il certificato digitale contiene informazioni personali allo stesso modo della chiave pubblica. L’autenticità di una Firma Digitale, a sua volta firmata, è provata dalla verifica della sua firma. Nella crittografia e-mail e web, le chiavi pubbliche delle CA vengono utilizzate per verificare le firme dei certificati digitali emessi prima di verificare l’autenticità delle informazioni e del messaggio.

Nelle blockchain, la chiave privata viene utilizzata per firmare digitalmente una transazione. Quindi la relativa chiave pubblica viene utilizzata per verificare che i messaggi così creati con le corrispondenti chiavi private siano autentici verificando l’autenticità delle firme digitali su quei messaggi. Questo è ciò che accade quando invii una transazione dal tuo portafoglio privato al sistema blockchain.

In questo modo, le chiavi private garantiscono la riservatezza dei dati inviati.

La creazione di firme digitali è un processo informatico matematico e segue i seguenti processi:

How digital signatures are created in blockchain and their role in confidentiality

Nell’ultimo passaggio, i due hash sono identici quando il messaggio o la transazione non vengono manomessi o alterati. Il messaggio è verificato come autentico; in caso contrario viene respinta in quanto manomessa o non autentica.

Quindi, se una transazione in una blockchain viene alterata, risulta in un hash diverso da quello formato dal mittente o dalla sua macchina durante l’invio, dove la transazione originale viene prima decifrata con la chiave privata del destinatario.

Questa idea viene utilizzata nel trading di criptovalute avanti e indietro e per effettuare pagamenti in criptovalute.

Altre strategie di sicurezza relative alle chiavi all’interno delle blockchain sono:

  • Il protocollo degli indirizzi di portafoglio multi-firma all’interno della blockchain consente la produzione di copie delle chiavi per ogni proprietario del portafoglio. Ad esempio, si applica quando un portafoglio è di proprietà di una famiglia o di un’azienda e tre o più parti devono firmare una transazione per essere autorizzata.
  • Con un portafoglio multi-firma, una parte non può spendere criptovalute senza che gli altri siano testimoni. La transazione deve essere firmata da più di una parte in possesso della chiave, per spendere i fondi.
  • Alcuni portafogli online e sistemi blockchain utilizzano un protocollo multi-firma in cui una chiave privata è memorizzata sul dispositivo di un utente, l’altra salvata dall’utente offline o in un luogo separato e l’altra lasciata al fornitore di servizi. Ognuno dei due può sbloccare il portafoglio o il servizio se uno viene perso o smarrito.

Passando alla sicurezza online, alcuni sistemi consentono la generazione di chiavi private come collegamenti una tantum per ogni sessione; noto come la segretezza in avanti.

#5) In che modo l’hashing aiuta a proteggere i dati nella blockchain?

Nell’hashing, i dati di input passano attraverso una funzione matematica o una formula chiamata funzione di hashing. La funzione converte l’input in un output che non ha senso a meno che non venga restituito al messaggio originale.

  • L’output deve essere della stessa lunghezza indipendentemente dalla lunghezza dell’input. Ad esempio, in una blockchain Bitcoin, che utilizza l’algoritmo Proof of Work, SHA-256 è l’algoritmo utilizzato e produce un hash lungo 256 bit o 64 caratteri.
  • Due input diversi, anche quelli che differiscono leggermente, ad esempio per le lettere maiuscole e minuscole, non possono avere un output simile.
  • Lo stesso input esegue il rendering dello stesso output sempre senza alcuna variazione per garantire la coerenza, indipendentemente dal numero di volte in cui viene eseguito l’hashing tramite la funzione.
  • Il processo è irreversibile. Significa iniziare con l’output e l’hashing non produce l’input che lo produce.

Tornando alla blockchain, che è una catena di blocchi ciascuno contenente un insieme di dati, il blocco ha un hash o un output generato relativo ai dati nella blockchain. Qualsiasi modifica ai dati significherebbe l’obbligo di modificare l’hash. Inoltre, poiché ogni hash di blocco viene generato anche rispetto all’hash del blocco precedente, tutti i blocchi sono interconnessi.

Pertanto, una modifica dei dati in un blocco significherebbe la modifica di tutti gli hash del blocco. Questo è un aspetto importante della protezione dei dati in una blockchain poiché i dati sono interconnessi in modo sicuro in una blockchain è immutabile.

Collegamento di dati di blocco, identificatori di blocco/hash e blocchi in una blockchain:

How hashing helps to secure data in a blockchain

Gli identificatori hash sono quindi interconnessi e garantiscono la sicurezza e l’immutabilità dei dati in una blockchain.

Il processo di verifica delle transazioni utilizza questo meccanismo di hashing. In questo, la persona che ha hash con successo un blocco, lo estrae e riceve la ricompensa. Il minatore cerca ripetutamente di trovare il valore di hashing che produce l’hash di output desiderato richiesto per estrarre un blocco valido nella catena.

#6) Cripto-economia e sicurezza blockchain

La criptoeconomia utilizza le stesse ideologie della teoria dei giochi in cui regole e ricompense predefinite determinano matematicamente le decisioni da prendere in situazioni diverse. In criptoeconomia, il comportamento dei nodi sulla blockchain è modellato dalla criptoeconomia.

  • Le ideologie economiche sono codificate sui protocolli blockchain compreso il comportamento dei partecipanti e i possibili esiti dei comportamenti.
  • La criptoeconomia incoraggia un comportamento positivo e onesto e premia i partecipanti che si impegnano in tale comportamento scoraggiando al contempo comportamenti dannosi o difettosi.

Un esempio è premiare coloro che supportano la rete impegnando la propria potenza di elaborazione del computer attraverso premi minerari su Bitcoin. Allo stesso tempo, i nodi disonesti o inefficienti vengono puniti con l’espulsione dalla rete.

  • Il bilanciamento dei premi attraverso algoritmi di consenso e cripto-economia garantisce un’ulteriore sicurezza della rete perché molte persone sono motivate a supportare e partecipare positivamente alla rete. Questo scongiura la possibilità che più altri commettano hash rate in attività dannose verso un singolo gruppo o entità che potrebbe portare a attacchi del 51%. Ad esempio, la competitività della rete Bitcoin riduce al minimo la probabilità di attacchi dannosi.
  • La cripto-economia, garantendo che una grande quantità di hash rate sia impegnata nella rete da così tante persone e assicura che le insicurezze come l’attacco del 51% siano difficili e costose se non impossibili da eseguire. Ad esempio, in Bitcoin, sarebbe altamente punitivo in termini di costi effettuare un tale attacco per una ricompensa potenziale molto piccola.

Pertanto, le blockchain hanno la caratteristica nota come tolleranza ai guasti bizantina (BFT). Questo definisce la capacità della rete di continuare a funzionare normalmente anche quando alcuni nodi sono compromessi o agiscono in modo dannoso. È così fintanto che l’incentivo per un comportamento onesto rimane superiore a quello per attività dannose che sarebbero impostate come proibitive.

Le reti blockchain più piccole con tassi di hash ridotti possono, tuttavia, subire attacchi del 51% perché i tassi di hash totali sono molto piccoli ed è conveniente impegnare un’enorme quantità di tassi di hash per attaccare il 51% dei nodi e controllare la rete.

7) Computer quantistici e blockchain resistenti ai quanti

Utilizzando algoritmi informatici ultraveloci, potrebbe essere più semplice e veloce calcolare, in pochi secondi, i fattori di un numero elevato anche se ha fattori primi molto grandi. Ciò significa che diventerebbe possibile violare le blockchain protette con gli attuali algoritmi di crittografia. Questo perché diventerebbe possibile scoprire le chiavi crittografiche in pochi secondi.

  • Per rispondere a questo, sono iniziati a emergere dibattiti e lavori su blockchain in grado di contrastarlo. Una blockchain così resistente ai quanti renderebbe ancora più difficile per i computer quantistici spezzare le catene.
  • Invece di utilizzare gli attuali algoritmi crittografici che non possono resistere ai computer quantistici, queste blockchain impiegherebbero algoritmi in grado di generare chiavi più potenti che resistono alla sfida dei computer quantistici.

Conclusione

Questo tutorial ha preso in considerazione le basi e il funzionamento della crittografia, dell’hashing, delle firme digitali, nonché del consenso e della criptoeconomia nella protezione delle blockchain. Abbiamo visto che mentre la crittografia è il metodo centrale per proteggere le blockchain, anche altre tecniche svolgono un ruolo importante nel rendere sicure le blockchain.

Abbiamo visto che le firme digitali aiutano a mantenere l’autenticità e la riservatezza delle transazioni, anche se la crittografia tramite hashing e crittografia delle chiavi garantisce che la segretezza abbia un ruolo importante nella sicurezza della blockchain.

Lettura consigliata =>> Miglior software DNS Blockchain

Abbiamo visto che la criptoeconomia e il decentramento incoraggiano il maggior numero di utenti a impegnare le proprie risorse per promuovere e mantenere e nella continuità della rete piuttosto che impegnarsi maggiormente per distruggerla.