Hash
Cos’è un hash?
Un hash è una funzione che converte un input di lettere e numeri in un output crittografato di lunghezza fissa. Un hash viene creato utilizzando un algoritmo ed è essenziale per la gestione della blockchain in criptovaluta.
Punti chiave
- Un hash è una funzione che soddisfa le richieste crittografate necessarie per risolvere un calcolo blockchain.
- Un hash, come un nonce o una soluzione, è la spina dorsale della rete blockchain.
- Gli hash hanno una lunghezza fissa poiché rende quasi impossibile indovinare la lunghezza dell’hash se qualcuno stava cercando di violare la blockchain.
- Un hash viene sviluppato sulla base delle informazioni presenti nell’intestazione del blocco.
Come funziona un hash
La spina dorsale di una criptovaluta è la blockchain, che è un libro mastro globale formato collegando insieme singoli blocchi di dati di transazione. La blockchain contiene solo transazioni convalidate, che prevengono transazioni fraudolente e doppia spesa della valuta. Il valore crittografato risultante è una serie di numeri e lettere che non assomigliano ai dati originali e viene chiamato hash. L’estrazione di criptovaluta implica il lavoro con questo hash.
L’hashing richiede l’elaborazione dei dati da un blocco tramite una funzione matematica, che si traduce in un output di lunghezza fissa. L’uso di un output di lunghezza fissa aumenta la sicurezza poiché chiunque cerchi di decrittografare l’hash non sarà in grado di dire quanto è lungo o breve l’input semplicemente guardando la lunghezza dell’output.
La risoluzione dell’hash inizia con i dati disponibili nell’intestazione del blocco e consiste essenzialmente nella risoluzione di un problema matematico complesso. Ogni intestazione di blocco contiene un numero di versione, un timestamp, l’hash utilizzato nel blocco precedente, l’hash di Merkle Root, il nonce e l’hash di destinazione.
Il minatore si concentra sul nonce, una serie di numeri. Questo numero viene aggiunto al contenuto con hash del blocco precedente, che viene quindi sottoposto a hashing. Se questo nuovo hash è inferiore o uguale all’hash target, viene accettato come soluzione, al miner viene data la ricompensa e il blocco viene aggiunto alla blockchain.
Il processo di convalida per le transazioni blockchain si basa sulla crittografia dei dati utilizzando l’hashing algoritmico.
La risoluzione dell’hash richiede al miner di determinare quale stringa utilizzare come nonce, il che a sua volta richiede una quantità significativa di tentativi ed errori. Questo perché il nonce è una stringa casuale. È altamente improbabile che un minatore riesca a trovare il nonce corretto al primo tentativo, il che significa che il minatore potrebbe potenzialmente testare un gran numero di opzioni nonce prima di farlo bene. Maggiore è la difficoltà, una misura di quanto sia difficile creare un hash che soddisfi i requisiti dell’hash target, maggiore è il tempo necessario per generare una soluzione.
Un esempio di hash
L’hash della parola “ciao” produrrà un output della stessa lunghezza dell’hash per “Vado al negozio”. La funzione utilizzata per generare l’hash è deterministica, il che significa che produrrà lo stesso risultato ogni volta che viene utilizzato lo stesso input. Può generare un input con hash in modo efficiente; rende anche difficile determinare l’input (che porta al mining), oltre ad apportare piccole modifiche al risultato dell’input in un hash irriconoscibile e completamente diverso.
L’elaborazione delle funzioni hash necessarie per crittografare i nuovi blocchi richiede una notevole potenza di elaborazione del computer, che può essere costosa. Per invogliare individui e aziende, denominati minatori, a investire nella tecnologia richiesta, le reti di criptovaluta li ricompensano con nuovi token di criptovaluta e una commissione di transazione. I miner vengono compensati solo se sono i primi a creare un hash che soddisfi i requisiti delineati nell’hash di destinazione.