Nel mondo delle criptovalute, gli algoritmi di hash svolgono un ruolo fondamentale per consentire la validazione delle transazioni inserite nella blockchain. Anche se dietro a questi concetti esiste una trattazione matematica di una certa complessità, la comprensione del funzionamento degli algoritmi di hash e delle loro applicazioni è accessibile a tutti. Scopriamo in questo articolo cosa si intende per funzione di hash, focalizzandoci in particolare sulla sua principale implementazione: lo SHA-256
Introduzione
Capire come funzionano gli algoritmi di hash (basati sulle cosiddette funzioni crittografiche di hash) è estremamente importante. Questi algoritmi permettono infatti una corretta gestione della Blockchain (la struttura su cui basano molte criptovalute tra cui il Bitcoin ed Ethereum) e sono ampiamente utilizzati dalle monete che utilizzano la Proof of Work (PoW) per validare le transazioni. L’algoritmo di hash non è altro che l’implementazione di una funzione di hash, realizzabile sia a livello software che hardware. Poiché la complessità computazionale è elevata, occorrono delle CPU o meglio GPU performanti, ma esiste anche la possibilità di creare dei componenti custom detti ASIC (acronimo di Application Specific Integrated Circuit) in cui la funzione matematica viene sintetizzata direttamente sul silicio. In Figura 1 possiamo osservare degli ASIC basati sulla tecnologia di fabbricazione elettronica da 7 nm e progettati espressamente per il mining di criptovalute basate sulla funzione di hash SHA-256. Gli integrati custom di questo tipo non hanno solo delle prestazioni elevatissime, ma presentano anche un elevato grado di efficienza energetica, con assorbimenti molto contenuti.
Hashing
La funzione di hash, o semplicemente hashing, prende il nome dal verbo inglese to hash, che letteralmente significa tritare la carne, sminuzzare, fare un impasto per le polpette. Gli algoritmi o funzioni di hash, in effetti, fanno proprio qualcosa di simile. Una funzione di hash, infatti, prende in ingresso una stringa di una qualsiasi lunghezza e genera in uscita una stringa di lunghezza fissa. Applicando lo stesso concetto al mondo delle criptovalute, avremo che le stringhe in ingresso sono rappresentate dalle transazioni da validare, mentre l’uscita è l’output prodotto dalla funzione di hash (nel caso del Bitcoin si utilizza l’algoritmo SHA-256 che produce una stringa di 256 bit). Per meglio comprendere il funzionamento del processo di hash, facciamo subito un esempio pratico. Consideriamo a titolo di esempio due semplici frasi (“Buongiorno!” e “Come va?”) ed applichiamo ad esse la funzione di hash SHA-256. Il risultato è il seguente (potete verificarlo anche voi utilizzando una delle numerose implementazioni della funzione disponibili online): [...]
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2687 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.
La crittografia è un settore dell’informatica realmente vasto e complesso. Se un giorno saranno scoperte le tecniche per la determinazione dei fattori di un Numero Primo, tutti i processi inventati fino a ora crolleranno e sara’ necessario trovare nuove soluzioni per la protezione delle password e dei dati sensibili.
Secondo voi si riuscira’ a scoprire il segreto dei Numeri Primi? Io dico che la soluzione sta’ in una forma algoritmica di risoluzione, non matematica, un po’ come il test di Lucas-Lehmer….
In cosa consiste questo algoritmo?
E’ un test di verifica della primalità dei primi di Mersenne. Diciamo che è “veloce”. Purtroppo funziona con si soli numeri di Mersenne, 2^p-1.
E’ molto semplice: Un Mp è primo solo se divide Lp-1.
Ln è l’ennesimo termine della successione ricorsiva:
Ln+1 = (Ln)^2-2
L1 = 4
Ho proivato a modificare i parametri….. ma nulla accade per altre forme di primi…..
Ciao Giovanni, pensi che ci sia qualche “pattern” nascosto dietro la sequenza di Numeri Primi?
potrebbe essere…… SI dice che i numeri primi siano uno scherzo di Dio….
Complimenti per la trattazione! A dire la verità, vista la complessità della materia non ho compreso appieno tutta la trattazione.
Attendo i prossimi articoli per gli approfondimenti.
Interessante anche la questione sui bitcoin, visto che il loro utilizzo si sta espandendo.
Su questi però gravano alcuni problemi, come il caso di un gestore che morendo non ha lasciato indicazione indicazione della Password, per cui bloccando di fatto l’accesso ai capitali.
Questo è un problema serio, che riguarda tutte le monete digitali. Oltre all’episodio da te citato, c’è sempre il rischio legato agli hacker. Mai generare le chiavi utilizzando generatori online: sono i primi ad essere attaccati!
Gli algoritmi di hash sono uno degli elementi costituenti l’ossatura portante della blockchain technology perché garantiscono che i blocchi non possono essere modificati in momenti successivi. L’algoritmo di hash garantisce inoltre l’integrità di un documento elettronico e assicura che ogni modifica venga messa immediatamente in evidenza.