This article has been translated from English to Italian.
Prima di addentrarci nell'argomento del mining di Bitcoin, dobbiamo fare una breve deviazione e conoscere un certo concetto che è alla base delle criptovalute.
Per capire veramente come funzionano Bitcoin e altre criptovalute, è fondamentale comprendere prima il concetto di"hashing".
Quando vedi la parola "hash", alcuni potrebbero pensare agli hash brown, un popolare alimento per la colazione americana, mentre altri, come Snoop Dogg, potrebbero pensare al prodotto concentrato di cannabis. 🌿

In questa lezione parlerò di un tipo diverso di hashish!
È un concetto tecnico, ma devi conoscerlo, quindi te lo spiegherò in modo semplice e chiaro.
Avere familiarità con il concetto di hashing è necessario anche per capire come funziona il mining di Bitcoin (che è la prossima guida), quindi per favore non saltare queste lezioni. 👁️
Cos'è l'hashing?
L'hashing è un metodo di crittografia che converte qualsiasi forma di dati in una stringa unica di testo di lunghezza fissa.
La crittografia è la pratica e lo studio di tecniche per la comunicazione sicura da parte di osservatori esterni. Nell'era di Internet, la crittografia viene utilizzata per proteggere le informazioni o i "dati" del computer.
Se non fosse già ovvio, la parola "crypto" nelle criptovalute sta per crittografia.
L'hashing è una parte fondamentale della crittografia e svolge un ruolo enorme dietro la "crypto" nelle criptovalute.
In parole povere, l'hashing consiste nell'inserire un testo di QUALSIASI lunghezza attraverso una funzione hash che produce un output di lunghezza FISSA.

Qualsiasi dato può esseresottoposto a "hash", indipendentemente dalle dimensioni, dal tipo o dalla lunghezza.
L'hash prodotto ha sempre la stessa lunghezza.
Negli esempi seguenti, utilizzando la funzione hash SHA-1, indipendentemente dalla lunghezza dell'"input", l'"output" è sempre lungo 40 caratteri.



Ecco un rapido confronto dei tre esempi:
| Input | Hash |
|---|---|
| Ciao | f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0 |
| BabyPips.com | 8c8780d0b70c5ef42a534846cc042629cf07a440 |
| ca73ab65568cd125c2d27a22bbd9e863c10b675d |
Nota che anche se gli "input" variavano, tutti e tre gli hash erano ancora lunghi 40 caratteri.
In questo esempio specifico, la lunghezza fissa è di 40 caratteri, determinata dalla specifica funzione hash utilizzata ("SHA-1"), che verrà spiegata più avanti.
Per ora, sappi solo che altre funzioni hash possono produrre lunghezze fisse diverse. La maggior parte ha lunghezze fisse superiori a 40 caratteri.
Un hash agisce come un'impronta digitale.
Un dato unico produrrà sempre lo stesso hash.
Ad esempio, se esegui "Hello" un milione di volte attraverso una funzione hash, l'hash sopra riportato è quello che apparirà un milione di volte.
Per la parola "Hello", il suo hash SHA-1 sarà sempre:
f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0
E solo "Hello" produrrà mai quell'hash.
Qualsiasi modifica a "Hello", anche se si tratta solo di cambiarlo in "hello", e la funzione hash produrrà un valore hash completamente diverso.
Ecco perché gli hash sono noti come"improntedigitali".
Proprio come la tua impronta digitale è unica per te, un hash è unico per uno specifico input di dati.

Un hash non può essere invertito.
L'INPUT in una funzione hash è chiamato"preimmagine". Ma per semplificare le cose, mi limito a usare "input".
L'OUTPUT della funzione hash è chiamato"valore hash" o"digest" o semplicemente"hash".
Una funzione hash è progettata per agire in modo unidirezionale.

Poiché una funzione hash è unidirezionale, l'output, l'"hash", non può essere utilizzato per rivelare l'input, la "preimmagine".
Ciò significa che se tutto ciò che vedi è l'hash, NON sarai in grado di decifrare i dati originali (la "preimmagine") che l'hash rappresenta.
Le funzioni hash producono hash irreversibili.
Irreversibile significa che se avessi solo l'hash non potresti usarlo per capire quale fosse il dato originale. Questo permette ai dati originali di rimanere sicuri e sconosciuti.
Cos'è una funzione hash?
Una funzione hash è un'operazione matematica che converte dati di input di lunghezza arbitraria in un output di lunghezza fissa che viene eseguito utilizzando un certo algoritmo.
Un algoritmo è semplicemente una serie di istruzioni passo passo per eseguire calcoli che vengono effettuati da un programma software.
Non importa se l'input è una singola lettera, una parola, una frase completa, una pagina di un libro o un intero libro, questa è la parte arbitraria.
Ogni input produrrà un output unico espresso come stringa alfanumerica di lunghezza fissa.
Alfanumerico significa semplicemente che qualcosa è composto sia da lettere che da numeri.
Una funzione hash utile nasconde qualsiasi indizio su come potrebbe essere stato l'input.
Ad esempio, deve essere impossibile determinare se l'input era lungo o corto o conteneva numeri o lettere. Inoltre, la modifica di un solo carattere nell'input dovrebbe produrre un output radicalmente diverso.
Funzioni hash popolari
Tutte le funzioni hash funzionano in modo simile. Inserisci i dati e la funzione hash "confonde" i dati e genera un hash.
Le funzioni hash più comuni sono:
- MD-5: Message Digest 5 (MD5) è una funzione hash comune. In passato era considerata sicura, ma oggi gli hacker hanno scoperto come decodificare l'algoritmo e sono in grado di farlo in pochi secondi.
- SHA: Secure Hash Algorithm (SHA) è un altro tipo di funzione hash. Esistono diverse varianti di SHA raggruppate in quattro famiglie: SHA-0, SHA-1, SHA-2 e SHA-3: in generale, più alto è il numero, più recente è la versione e più sicuro è l'algoritmo.
Per i nostri scopi, l'unica funzione hash che devi conoscere al momento è l'algoritmo Secure Hash Algorithm (SHA). Più specificamente, la famiglia SHA-2 poiché contiene un membro speciale nella famiglia chiamato SHA-256.
SHA-256 è una funzione hash che converte una stringa di testo in un'altra stringa che ha sempre la stessa lunghezza: 64 caratteri alfanumerici. Ciò equivale a 256 bit, da cui deriva il "256" nel nome.
È speciale perché è la funzione hash utilizzata in diverse parti del sistema Bitcoin, di cui imparerai di più nelle lezioni successive. Per ora, è importante sapere solo che SHA-256 è un tipo di funzione hash ed è quella utilizzata da Bitcoin.
Che l'input sia una pagina di un libro di Harry Potter o l'intera serie di libri di Harry Potter, l'output della funzione hash SHA-256 sarà sempre della STESSA lunghezza visualizzata come 64 caratteri alfanumerici.
Diamo ora un'occhiata a come funziona l'hashing nella crittografia.