ETFFIN Finance >> Finanza personale corso >  >> Criptovaluta >> Blockchain

Hash

Che cos'è un hash?

Un hash è una funzione matematica che converte un input di lunghezza arbitraria in un output crittografato di lunghezza fissa. Pertanto, indipendentemente dalla quantità originale di dati o dalle dimensioni del file coinvolti, il suo hash unico sarà sempre della stessa dimensione. Inoltre, gli hash non possono essere utilizzati per "reverse-engineer" l'input dall'output con hash, poiché le funzioni di hash sono "a senso unico" (come un tritacarne, non puoi rimettere la carne macinata in una bistecca). Ancora, se utilizzi tale funzione sugli stessi dati, il suo hash sarà identico, in modo da poter convalidare che i dati sono gli stessi (cioè, inalterato) se conosci già il suo hash.

L'hashing è anche essenziale per la gestione della blockchain nelle criptovalute.

Punti chiave

  • Un hash è una funzione che soddisfa le richieste crittografate necessarie per risolvere un calcolo blockchain.
  • Gli hash hanno una lunghezza fissa poiché rende quasi impossibile indovinare la lunghezza dell'hash se qualcuno stesse cercando di decifrare la blockchain.
  • Gli stessi dati produrranno sempre lo stesso valore con hash.
  • un hash, come un nonce o una soluzione, è la spina dorsale della rete blockchain.
  • Viene sviluppato un hash in base alle informazioni presenti nell'intestazione del blocco.

Come funzionano gli hash

Le tipiche funzioni hash accettano input di lunghezza variabile per restituire output di lunghezza fissa. Una funzione hash crittografica combina le capacità di passaggio dei messaggi delle funzioni hash con le proprietà di sicurezza.

Le funzioni hash sono strutture dati comunemente usate nei sistemi informatici per compiti, come il controllo dell'integrità dei messaggi e l'autenticazione delle informazioni. Sebbene siano considerati crittograficamente "deboli" perché possono essere risolti in tempo polinomiale, non sono facilmente decifrabili.

Le funzioni hash crittografiche aggiungono funzionalità di sicurezza alle funzioni hash tipiche, rendendo più difficile rilevare il contenuto di un messaggio o informazioni su destinatari e mittenti.

In particolare, le funzioni hash crittografiche presentano queste tre proprietà:

  • Sono "senza collisioni". Ciò significa che non devono essere mappati due hash di input allo stesso hash di output.
  • Possono essere nascosti. Dovrebbe essere difficile indovinare il valore di input per una funzione hash dal suo output.
  • Dovrebbero essere compatibili con i puzzle. Dovrebbe essere difficile selezionare un input che fornisca un output predefinito. Così, l'input dovrebbe essere selezionato da una distribuzione il più ampia possibile.

A causa delle caratteristiche di un hash, sono ampiamente utilizzati nella sicurezza online, dalla protezione delle password al rilevamento di violazioni dei dati al controllo dell'integrità di un file scaricato.

Hashing e criptovalute

La spina dorsale di una criptovaluta è la blockchain, che è un registro globale formato collegando insieme singoli blocchi di dati di transazione. La blockchain contiene solo transazioni convalidate, che impedisce 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. Il mining di criptovalute implica lavorare 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'utilizzo di un output a lunghezza fissa aumenta la sicurezza poiché chiunque tenti di decifrare l'hash non sarà in grado di dire quanto sia lungo o corto l'input semplicemente osservando la lunghezza dell'output.

La risoluzione dell'hash inizia con i dati disponibili nell'intestazione del blocco e sostanzialmente risolve un problema matematico complesso. Ogni intestazione di blocco contiene un numero di versione, un timestamp, l'hash usato nel blocco precedente, l'hash della radice di Merkle, il nonce, e l'hash di destinazione.

Il minatore si concentra sul nonce, una stringa di numeri. Questo numero viene aggiunto al contenuto con hash del blocco precedente, che viene poi hash. Se questo nuovo hash è minore o uguale all'hash di destinazione, allora è accettata come soluzione, il minatore riceve la ricompensa, e il blocco viene aggiunto alla blockchain.

Il processo di convalida per le transazioni blockchain si basa sulla crittografia dei dati tramite hashing algoritmico.

considerazioni speciali

La risoluzione dell'hash richiede al minatore di determinare quale stringa utilizzare come nonce, che di per sé richiede una quantità significativa di tentativi ed errori. Questo perché il nonce è una stringa casuale. È altamente improbabile che un minatore riesca a ottenere il nonce corretto al primo tentativo, il che significa che il minatore può 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 di destinazione, più tempo ci vorrà per generare una soluzione.

Un esempio di hash

L'hashing della parola "ciao" produrrà un output della stessa lunghezza dell'hash per "Sto andando 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 a apportare piccole modifiche al risultato di input in un irriconoscibile, hash completamente diverso.

L'elaborazione delle funzioni hash necessarie per crittografare nuovi blocchi richiede una notevole potenza di elaborazione del computer, che può essere costoso. Per invogliare privati ​​e aziende, chiamati minatori, investire nella tecnologia necessaria, le reti di criptovaluta li ricompensano con nuovi token di criptovaluta e una commissione di transazione. I minatori vengono ricompensati solo se sono i primi a creare un hash che soddisfa i requisiti delineati nell'hash di destinazione.

Domande frequenti

Che cos'è una funzione hash?

Le funzioni hash sono funzioni matematiche che trasformano o "mappano" un dato insieme di dati in una stringa di bit di dimensione fissa, noto anche come "valore hash".

Come viene calcolato un valore hash?

Una funzione hash utilizza algoritmi matematici complessi che convertono dati di lunghezza arbitraria in dati di lunghezza fissa (ad esempio, 256 caratteri). Se modifichi un bit in qualsiasi punto dei dati originali, l'intero valore hash cambia, rendendolo utile per verificare la fedeltà di file digitali e altri dati.

A cosa servono gli hash nelle blockchain?

Gli hash sono utilizzati in diverse parti di un sistema blockchain. Primo, ogni blocco contiene l'hash dell'intestazione del blocco precedente, assicurandosi che nulla sia stato manomesso man mano che vengono aggiunti nuovi blocchi. Mining di criptovalute tramite proof-of-work (PoW), per di più, utilizza l'hashing di numeri generati casualmente per arrivare a un valore hash specifico contenente una serie di zeri iniziali. Questa funzione arbitraria richiede molte risorse, rendendo difficile per un cattivo attore il sorpasso della rete.