• Damiano D'Amici

Tecnicismi sull’immutabilità delle informazioni: cosa significano “hash” e “nonce”?

Aggiornato il: 2 giorni fa

Uno dei principali vantaggi riconosciuti alla tecnologia blockchain è rappresentato dall’impossibilità di modificare dati e informazioni condivise tra i nodi di un simile network. Questo articolo si propone di indagare sui fattori che rendono possibile tale vantaggio e di chiarire, in maniera dettagliata, il loro funzionamento. In particolare, tratteremo i concetti chiave di hash e nonce. Quante volte abbiamo prestato del denaro ad un amico e poi ce ne siamo dimenticati? È capitato a tutti. Ipotizziamo l’esistenza di un gruppo affiato di amici che, per ovviare a tale problema, decide di tener traccia di tutte le transazioni avvenute fra i suoi membri, annotandole su un libro mastro. La gestione di quest’ultimo viene quindi affidata al componente ritenuto più affidabile, Andrew.

Ipotizziamo ora che un altro di loro, Katy, abbia un grosso debito da saldare e decida di rubare una parte del denaro, modificando le voci sul registro. Andrew si accorge della malefatta e, per impedire che l’atto si possa ripetere in futuro, utilizza un particolare algoritmo chiamato “funzione di hash”.[1] Si tratta di un algoritmo matematico in grado di convertire (o crittografare) una stringa costituita da un numero variabile di caratteri (la transazione) in una seconda stringa composta da una quantità fissa di caratteri alfanumerici, solitamente 256 bit, detta “digest”.[2] La sua particolarità consiste nel fatto che la modifica anche di un solo carattere della stringa di partenza corrisponde ad un digest completamente diverso, e che non è possibile risalire da quest’ultimo alla stringa originaria (unidirezionalità). Così facendo, ad ogni transazione corrisponde una determinata sequenza di caratteri.

Per rendere il registro ancora più sicuro, Andrew decide di modificare l’algoritmo, in modo tale che i successivi digest dipenderanno, non solo dalla transazione corrente, ma anche dal digest di quella precedente. Ora, per manomettere il libro mastro, sarà necessario alterare tutte le transazioni precedenti a quella presa di mira. Ipotizziamo per un momento che Katy, impegnando una notevole quantità di tempo ed energie, riesca nell’impresa. Andrew sarà allora costretto ad inserire un nuovo livello di sicurezza, aggiungendo al termine di ogni voce il cosiddetto “nonce”.[3] Si tratta dell’abbreviazione di “number only used once”, ed indica una stringa casuale di numeri segreta, specifica per ogni transazione. Katy a questo punto potrà considerarsi sconfitta poiché dovrebbe eseguire un numero smisurato di calcoli per trovare il nonce corretto per ogni movimento di denaro. Ad oggi solo i computer quantistici possono svolgere tali operazioni estremamente lunghe e complesse.


Fonti [1] Cointelegraph Italia. Guida per principianti alla tecnologia Blockchain. Consultato il 30/03/2020 da https://it.cointelegraph.com/bitcoin-for-beginners/how-blockchain-technology-works-guide-for-beginners

[2] Wikipedia. Funzione di hash. Consultato il 30/30/2020 da https://it.wikipedia.org/wiki/Funzione_di_hash

[3] Frankenfield J. (12/08/2019). Investopedia. Nonce. https://www.investopedia.com/terms/n/nonce.asp