Algoritmi di hash e loro utilizzo nelle criptovalute

Algoritmi di hash e loro utilizzo nelle criptovalute

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.

Figura 1: un ASIC per il mining di criptovalute basate sulla funzione di hash SHA-256

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 MAKER. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici MAKER e potrai fare il download (PDF) dell'EOS-Book del mese. ABBONATI ORA, è semplice e sicuro.

Abbonati alle riviste di elettronica

9 Commenti

  1. Giovanni Di Maria Giovanni Di Maria 7 febbraio 2019
  2. Giovanni Di Maria Giovanni Di Maria 7 febbraio 2019
  3. Adriano Gandolfo Adriano Gandolfo 7 febbraio 2019
    • Stefano Lovati Stefano Lovati 8 febbraio 2019
  4. Giordana Francesca Brescia Giordana Francesca Brescia 13 febbraio 2019

Scrivi un commento

EOS-Academy