Che cosa è hashing?

By Anycoin Direct

In questa lezione parleremo di hashing. Non è certo facile, ma non ci lasceremo scoraggiare. Eccoci qui.

Breve riassunto

✔️ L'hash consiste nel convertire un insieme di dati in un codice, l'hash, utilizzando un calcolo predeterminato.

✔️ L'hashing è spesso usato per proteggere le password in modo che solo l'utente possa leggerle e per confrontare le somme di controllo quando si scaricano i file.

✔️ Le firme digitali utilizzano l'hashing per l'autenticazione, quando il destinatario ha bisogno della chiave privata per decifrare il messaggio.

✔️ Le criptovalute utilizzano l'hashing per il mining, in cui i computer devono utilizzare la loro potenza di calcolo per risolvere puzzle e ricevere ricompense.

L'hashing

L’hashing è il processo di convertire una raccolta di dati da una funzione in un codice, l’hash.

Innanzitutto, spieghiamo cos’è un hash. Un hash è un risultato di un calcolo in base a condizioni predeterminate. Un hash consiste in una serie di numeri e lettere.

Faremo un esempio di hashing per renderlo un po’ più visivo. Con lo SHA (Secure Hashing Algorithm) 256, è possibile ottenere un hash per ogni tipo di informazione testuale. Creerò due frasi che sono molto simili, ma il cui risultato (l’hash) ha un aspetto molto diverso.

La frase "cos’è l’hashing" (l’input) produce il seguente hash:

4b5a097079f70c150692a87c9d955849f14d8140f2d55771cf011dbc022c3ebe (l’output)

La frase "Cos’è l’hashing" produce un hash molto diverso:

759ece0c5d1712de146ac2d27acf23eee42766f7d12a28f16f67b105ee4fd41f

Lo SHA-256 produce un hash lungo 256-bit (64 caratteri).

A proposito, l’hash è unidirezionale. È possibile creare l'hash di una frase, ma non è possibile ricostruire una frase dall’hash.

Un hash deve essere configurato in modo tale che indovinarlo tramite forza bruta (semplicemente controllando le possibilità una per una) richieda un impegno inaccettabile. Più caratteri vengono generati da una funzione hash, più difficile è trovare l’input.

Ora l’idea di hashing dovrebbe aver preso forma nella tua immaginazione.

Per cosa viene usato l’hashing?

In generale, possiamo dire che l’hashing viene usato per mettere in sicurezza i dati. È usato più comunemente nel mondo informatico per proteggere le password.

Supponiamo di creare una password e di volerla inviare via Internet o immetterla da qualche parte. Se viene inviata in testo non formattato senza codifica o hash, gli hacker possono leggere ciò che viene immesso. Ecco perché le password oggi subiscono il processo di hashing in modo che solo l’utente possa leggere ciò che ha immesso.

L’hashing può anche essere usato per scaricare file. Prima si calcola l’hash del file prima di scaricarlo, dopodiché si verifica che il cosiddetto risultato sia lo stesso. Se entrambi i valori sono identici, allora il file è l’originale. Molto utile se si desidera evitare il passaggio di virus o cavalli di Troia dalle proprie porte.

Un fenomeno ben noto del mondo delle criptovalute è la firma digitale. In questo caso ci sono un mittente e un destinatario. Un hash è composto da un messaggio. Senza la chiave privata, il messaggio non può essere letto. Il destinatario del messaggio dopodiché ha bisogno della chiave segreta per decifrare il messaggio. Se l’hash del messaggio corrisponde all’hash che può essere calcolato con questa chiave, allora il messaggio è identico al messaggio originale.

Nella criptovaluta, funzionano con la chiave privata e la chiave pubblica per mostrare l'indirizzo (pubblico) o determinare se è possibile spendere una quantità di denaro (chiave privata).

Viene anche usato per dati personali. Ordinando articoli online in un negozio, prima di tutto si crea un account. La maggior parte dei propri dati viene sottoposta al processo di hashing, perciò è possibile ordinare in modo anonimo, ma la consegna può essere fatta al proprio indirizzo.

L’hashing può essere messo ulteriormente perfezionato con alcuni accorgimenti. Per prima cosa aggiungendo numeri generati casualmente all’hash, il che crea un nuovo hash per rendere ancora più difficile per gli hacker indovinare il codice.

Si può anche aggiungere una stringa generata casualmente di 32 lettere che è la stessa per tutti i registri.

Bitcoin hashing

Quando si fa mining di Bitcoin, le persone spesso parlano dell’hashrate (tasso di hash). Potresti già essere in grado di indovinare il significato di tutto questo.

L’hashrate di un computer è la potenza di calcolo che possiede per risolvere un problema crittografico difficile. Questo difficile rompicapo comporta l’indovinare l’input di un hash. Chi indovina per primo può aggiungere un nuovo blocco alla blockchain e riceve la ricompensa sotto forma di una commissione di transazione e nuovi Bitcoin.

L’hashrate della rete Bitcoin è la potenza di calcolo totale di tutti i computer che fanno mining di Bitcoin. Con l’aumentare di questo, il puzzle deve diventare più difficile. Il fatto è che un nuovo blocco deve essere trovato ogni 10 minuti, secondo Satoshi Nakamoto. Se la potenza di calcolo crolla, per esempio se molti miner decidono di andarsene, allora il problema deve diventare più facile, altrimenti quei dieci minuti diventerebbero 11 o 12 minuti, creando problemi.

Quando un nuovo blocco viene creato su Bitcoin, ha un numero di sezioni. Ogni blocco contiene l’hash del blocco precedente. Questo viene fatto per assicurare che tutti i blocchi vengano archiviati in modo sequenziale.

Dopodiché, si incontra la tx_root, che il valore della radice hash dell’albero Merkle che contiene tutte le transazioni. Un albero Merkle può essere descritto come una raccolta di hash. È un diagramma ad albero, dove a tutte le transazioni viene dato un hash e vengono unite assieme fino a che resta solo un registro con tutte le transazioni (gli hash) in un solo hash, la radice Merkle o chiamata anche radice hash. Con questo metodo, un blocco è molto meno popolato rispetto al metodo in cui bisogna scrivere tutte le transazioni su di esso, e questo migliora la velocità.

Dopodiché abbiamo gli indicatori temporali. Questi contengono  il momento in cui un blocco è stato creato. In questo modo, è possibile creare solo blocchi che vanno avanti nel tempo.

Dopodiché abbiamo il nonce. Questo è un hash che il miner deve indovinare per poter estrarre un nuovo blocco.

Nella criptovaluta, l’hashing viene usato perché funziona bene e in modo rapido. L’hasingh contribuisce inoltre in modo significativo alla sicurezza perché è un sistema unidirezionale. Generare un hash è molto facile, ma indovinare l’input dall’hash è quasi impossibile.

Testate le vostre conoscenze

Domanda: 1/5Come si chiama ciò che si vuole convertire in un hash?
AInput
BOutput
CInfo
DCrittografico