Un hash è il risultato di una funzione hash, che è un'operazione crittografica che genera identificatori univoci e irripetibili da una informazione data. Gli hash sono un elemento chiave nella tecnologia blockchain e sono molto utili.

Il termine hash viene utilizzato per identificare una funzione crittografica molto importante nel mondo dei computer. Queste funzioni sono destinate principalmente a codificare i dati per formare una singola stringa di caratteri; tutto questo indipendentemente dalla quantità di dati inizialmente inseriti nella funzione. Queste funzioni servono a garantire l'autenticità dei dati, a memorizzare in modo sicuro le password e a firmare i documenti elettronici.

Le funzioni hash sono ampiamente utilizzate nella tecnologia blockchain con lo scopo di renderla ancora più sicura. Bitcoin è un chiaro esempio di come gli hash possono essere utilizzati per facilitare la tecnologia delle criptovalute.

Storia delle funzioni hash

L'apparizione de bla prima funzione hash risale all'anno XNUMX. Allora Wesley peterson creò la funzione Cyclic Redundancy Check (Controllo di ridondanza ciclico). È stato creata per verificare quanto fossero corretti i dati trasmessi nelle reti (come Internet) e nei sistemi di archiviazione digitale. Facile da implementare e molto veloce, è stata accettata ed è oggi uno standard del settore. Con l'evoluzione dell'informatica e dei computer, questi sistemi sono diventati sempre più specializzati.

Questo ha permesso di creare nuove e migliori funzioni hash, tra le quali si possono evidenziare le seguenti:

  1. MD2: è uno delle prime funzioni hash crittografiche. Creato da Ronald rivest, nell' anno 1989. Con un alto livello di efficienza e sicurezza per l'epoca, era fondamentale nella sicurezza di Internet. La sua conseguente evoluzione ha portato alla creazione della funzione hash MD5, tuttora utilizzata in settori in cui la sicurezza non ha la priorità assoluta.
  2. RIPEMD: è una funzione hash crittografica creata dal progetto europeo RIPE nell'anno 1992. La sua funzione principale era quella di sostituire lo standard del momento, la funzione hash MD4. Allo stato attuale è ancora considerata molto sicura, soprattutto nelle sue versioni RIPEMD-160RIPEMD-256 y RIPEMD-320.
  3. SHA: lo standard attuale per gli hash crittografici. Creato da NSA en 1993, nell'ambito del suo progetto interno di autenticazione dei documenti elettronici. SHA e le sue derivate sono considerate le funzioni hash più sicure fino ad oggi. È di particolare interesse, SHA-256 dato che è fondamentale nella tecnologia che ha reso possibile Bitcoin.

Funzioni hash: come funzionano?

Le funzioni hash funzionano grazie a una serie di complessi processi matematici e logici. Questi processi vengono trasferiti al software del computer affinché tu possa utilizzare dal tuo proprio computer. Da lì, possiamo prendere qualsiasi serie di dati, inserirli nella funzione ed elaborarli. Questo serve ad ottenere un'unica stringa di caratteri a lunghezza fissa per i dati inseriti. Allo stesso tempo, è praticamente impossibile eseguire il processo opposto; in altre parole, è praticamente impossibile ottenere i dati originali da un hash già formato poiché il processo di hashing è un processo a senso unico.

Un esempio semplice e di vita quotidiana di questo processo sarebbe la realizzazione di una torta. Ciascuno degli ingredienti nella torta sarebbe l'equivalente dell'immissione dei dati. Il processo di preparazione e cottura della torta sarebbe il processo di codifica di detti dati (ingredienti) dalla funzione. Alla fine, otteniamo una torta dalle caratteristiche uniche ed irripetibili date dai suoi ingredienti. Mentre il processo opposto (riportare gli ingredienti della torta al loro stato iniziale), è praticamente impossibile da eseguire.

Un esempio visivo del processo può essere mostrato utilizzando le funzioni MD5 e SHA-256, in due diversi casi d'uso.

  • Esempio di come codifica una funzione MD5
  • Esempio di come codifica una funzione SHA-256

Una spiegazione più approfondita

Osservando entrambi i casi d'uso possiamo notare quanto segue:

La prima immissione di dati risulta in un hash univoco, per i casi di MDXNUMX e SHA-XNUMX. Risultati adeguati alla realtà di ciascuna di queste funzioni. Nella seconda voce è stata apportata una piccola modifica al testo. Sebbene questo sia minimo, ha completamente alterato il risultato degli hash per MDXNUMX e SHA-XNUMX.

Ciò dimostra che gli hash saranno comunque unici. Il che ci consente di essere sicuri che nessun attore malintenzionato sarà in grado di forzare facilmente gli hash; sebbene raggiungere questo non sia impossibile, un hacker potrebbe impiegare centinaia di anni per elaborare i dati necessari a compiere la sua missione.

Sono queste due osservazioni che ci danno la sicurezza di utilizzare questo metodo in diverse aree sensibili. Certificati digitali, firme univoche di documenti sensibili o segreti, identificazione digitale e archiviazione delle chiavi sono alcune possibilità d'utilizzo; ma non si limita a questi, poiché la flessibilità e la sicurezza di questa tecnologia la rendono ideale in molte aree.

Caratteristiche delle funzioni hash

Tra le principali caratteristiche delle funzioni hash si possono citare le seguenti:

  1. Sono facili da calcolare. Gli algoritmi hash sono molto efficienti e non richiedono una grande potenza di calcolo per essere eseguiti.
  2. È comprimibile , ciò significa che, indipendentemente dalla dimensione dell'input di dati, il risultato sarà sempre una stringa di lunghezza fissa. Nel caso di SHA-256, la stringa sarà lunga 64 caratteri.
  3. Operazione a valanga. : qualsiasi lieve modifica nell'immissione dei dati risulta in un hash diverso rispetto all'immissione dei dati originale.
  4. Resistenza debole e forte a collisioni. Si riferisce al fatto che è impossibile calcolare un hash che consenta di trovarne un altro uguale. Meglio noto come controimmagine y seconda preimmagine , è il concetto di base della sicurezza degli hash.
  5. Sono irreversibili. Non è praticamente possibile prendere un hash e ottenere i dati che lo hanno generato. Questo è uno dei principi che rende gli hash sicuri.

Livello di sicurezza delle funzioni hash

Le attuali funzioni hash hanno un alto livello di sicurezza, anche se questo non significa che siano infallibili. Ne è un buon esempio la funzione hash MD5. In linea di principio, le sue caratteristiche promettevano una sicurezza molto elevata. Il suo utilizzo si è diffuso su Internet a causa della necessità di un sistema di hashing per mantenerne la sicurezza. Ma nel 1996, si riuscì a rompere la sicurezza della funzione . Questo lo ha reso obsoleto e si è consigliato di abbandonarne l'uso.

D'altra parte funziona come RIPEMD-XNUMX e SHA-XNUMX, che sono così complesse che la tua sicurezza è comunque garantita. Per esempio, per SHA-XNUMX si stima che violare la sua sicurezza richiederebbe, con gli attuali supercomputer, migliaia di anni.Lo stesso vale nel caso di RIPEMD-XNUMXe delle sue conseguenti evoluzioni. Questo significa che entrambe le funzioni forniscono comunque un elevato livello di sicurezza e possono essere utilizzate senza problemi.

Il fatto che queste funzioni siano molto sicure, non significa che altre opzioni non vengano studiate e sviluppate. Questa continua evoluzione ci dice che avremo sempre a disposizione strumenti sicuri da utilizzare in qualsiasi caso.

Quanto sai, Cryptonuta?

Le funzioni hash sono sicure da usare?

Certo!

Le funzioni hash sono costruite con l'utilizzo di potenti funzioni matematiche e logiche che garantiscono alti livelli di sicurezza. Prima di tutto, un hash già generato non può essere riportato a uno stato precedente. In secondo luogo, ogni hash è unico e qualsiasi leggera modifica ai dati di input genererà un nuovo hash distinto. Sotto queste due premesse, gli hash offrono quindi un altissimo livello di sicurezza in grado di soddisfare qualsiasi tipo di esigenza.

Funzioni hash nel mondo Blockchain

Poiché sono veloci, efficienti, computazionalmente poco costose e uniche, le funzioni di hashing sono ampiamente utilizzate nella tecnologia blockchain. QuandoSatoshi Nakamoto pubblicò il suo whitepaper di Bitcoin, ha spiegato perché e come utilizzare SHA-XNUMX e RIPEMD-XNUMX in Bitcoin. Da allora, la tecnologia blockchain si è evoluta molto, ma le basi sono rimaste le stesse. Usare la crittografiaforte e di hash rende la tecnologia molto sicura, privata e persino anonima.

Fra tutti gli usi delle funzioni hash in blockchain, possono essere evidenziati:

Creazione dell'indirizzo (Address Wallet)

Gli indirizzi dei portafogli di criptovaluta sono una rappresentazione sicura delle chiavi pubbliche del portafoglio. Le chiavi pubbliche, di solito sono molto lunghe e complesse. Per questo motivo le blockchain usano funzioni hash per derivare un indirizzo più breve. Questo processo viene utilizzato ripetutamente per abbreviare l'indirizzo e aggiungere un ulteriore livello di sicurezza.

In Bitcoin, il processo di creazione di un indirizzo di portafoglio utilizza le funzioni hash RIPEMD-XNUMX e SHA-XNUMX. Entrambe servono per migliorare la sicurezza del processo e renderli unici e irripetibili.

Processo di mining

Il processo di mining, è un'altra fase importante della tecnologia blockchain in cui vengono utilizzate le funzioni hash. In Bitcoin, il mining fa un uso massiccio dell'hashing SHA-256 in forma distribuita su ciascuno dei suoi nodi. I miner sono responsabili del calcolo di milioni di hash per creare nuovi blocchi Bitcoin. Il processo viene utilizzato anche per verificare le transazioni effettuate sulla rete.

Anche se il processo di calcolo degli hash è molto veloce, il suo uso intensivo rende il processo notevolmente difficile. Questo porta i miner ad utilizzare un'elevata potenza di calcolo per risolvere i puzzle di Bitcoin. Risolvendoli, i minatori vengono ricompensati con 6,25 BTC per blocco. Si tratta di un valore vicino a $ 96.875 (novembre 2020). Questo incentivo economico è ciò che mantiene il funzionamento e la sicurezza dell'intera rete Bitcoin.

Smart Contract

Questa è un'altra area in cui le funzioni di hashing vengono utilizzate molto. Blockchain come Bitcoin, Ethereum, NEO o TRON utilizza smart contract per migliorare diverse applicazioni. Queste applicazioni sono gestite da un contratto pubblico tra le parti. Tuttavia, molti di questi dati sono molto sensibili, o sono semplicemente troppe informazioni da archiviare su una blockchain. Quindi il modo migliore per risolvere questi scenari è attraverso le funzioni hash. In questo modo, l'intero contratto è pubblico ma le informazioni collegate o che si desidera mantenere private non vengono pubblicate. Questi dati possono includere nomi, indirizzi, indirizzi del portafoglio, dati di partecipanti di terze parti; vale a dire; informazioni privilegiate e solo d'interesse tra le parti.

Anche gli hash vengono utilizzati per i fare una nuova versione dei contratti. Vale a dire, uno smart contract ha un hash unico dettato da ciò che dice il contratto. Se il contratto viene modificato, il vecchio contratto viene chiuso e ne viene generato uno nuovo con un nuovo hash. In questo modo, l'hash determina il contratto corretto da utilizzare all'interno dell'applicazione decentralizzata, facilitandone il controllo. Un altro uso degli hash negli smart contract è: segnarne la validità e l'autenticità. Un esempio potrebbe essere: un contratto stipulato per la vendita di una casa con un pagamento effettuato in criptovaluta. L'esecuzione del contratto e il suo hash saranno testimoni inalterabili della vendita effettuata tra le parti.