Oggi spiegheremo cosa sono l’hashing e la firma digitale nella blockchain.
Che cos’è l’hashing nella blockchain?
L’hashing si riferisce al concetto di prendere una quantità arbitraria di dati di input, applicarvi un algoritmo e generare dati di output di dimensione fissa chiamati hash. L’input può essere un numero qualsiasi di bit che potrebbe rappresentare un singolo carattere, un file MP3, un intero romanzo, un foglio di calcolo della tua storia bancaria o persino l’intera Internet.
Il punto è che l’input può essere infinitamente grande. L’algoritmo di hashing può essere scelto in base alle tue esigenze e ci sono molti algoritmi di hashing disponibili pubblicamente. Il punto è che l’algoritmo prende l’input infinito di bit, applica loro alcuni calcoli e produce un numero finito di bit. Ad esempio, 256 bit.
Per cosa può essere usato questo hashish?
Un uso comune per gli hash oggi è per i file di impronte digitali, noti anche come zone di verifica. Ciò significa che un hash viene utilizzato per verificare che un file non sia stato manomesso o modificato in alcun modo involontario dall’autore. Se WikiLeaks, ad esempio, pubblica una serie di file insieme ai loro hash MD5, chiunque scarichi quei file può verificare che provengano effettivamente da WikiLeaks calcolando l’hash MD5 dei file scaricati e se l’hash non corrisponde a quanto pubblicato da WikiLeaks, allora sai che il file è stato modificato in qualche modo.
In che modo la blockchain utilizza l’hash?
Gli hash vengono utilizzati nelle blockchain per rappresentare lo stato attuale del mondo. L’input è lo stato completo della blockchain, ovvero tutte le transazioni avvenute fino a quel momento e l’hash di output risultante rappresenta lo stato attuale della blockchain. L’hash viene utilizzato per concordare tra tutte le parti che lo stato globale è uno e lo stesso, ma come vengono effettivamente calcolati questi hash?
Il primo hash viene calcolato per il primo blocco o blocco Genesis utilizzando le transazioni all’interno di quel blocco. La sequenza delle transazioni iniziali viene utilizzata per calcolare un hash di blocco per il blocco Genesis. Per ogni nuovo blocco che viene successivamente generato, l’hash del blocco precedente, oltre alle proprie transazioni, viene utilizzato anche come input per determinarne l’hash del blocco. È così che si forma una blockchain, ogni nuovo hash di blocco che punta all’hash di blocco precedente.
Questo sistema di hashing garantisce che nessuna transazione nella cronologia possa essere manipolata perché se una qualsiasi parte della transazione cambia, cambia anche l’hash del blocco a cui appartiene e di conseguenza qualsiasi hash di blocco successivo. Di conseguenza, sarebbe abbastanza facile rilevare qualsiasi manipolazione, poiché è possibile confrontare solo gli hash. Questo è fantastico perché tutti sulla blockchain devono solo concordare 256 bit per rappresentare lo stato potenzialmente infinito della blockchain. La blockchain di Ethereum è attualmente di decine di gigabyte, ma lo stato attuale della blockchain, a partire da questa registrazione, è questo hash esadecimale che rappresenta 256 bit.
Cosa sono le firme digitali nella blockchain?
Le firme digitali, come le firme reali, sono un modo per dimostrare che qualcuno è chi dice di essere, tranne per il fatto che usiamo la crittografia o la matematica, che sono più sicure delle firme scritte a mano che possono essere facilmente falsificate. Una firma digitale è un modo per dimostrare che un messaggio proviene da una persona specifica e da nessun altro, come un hacker.
Le firme digitali sono oggi utilizzate in tutto Internet. Ogni volta che visiti un sito Web tramite ACTPS, utilizzi SSL, che utilizza le firme digitali per stabilire la fiducia tra te e il server. Ciò significa che quando visiti Facebook.com, il tuo browser può controllare la firma digitale fornita con la pagina web per verificare che sia effettivamente originata da Facebook e non da qualche hacker.
Nei sistemi di crittografia asimmetrica, gli utenti generano qualcosa chiamato coppia di chiavi, che è una chiave pubblica e una chiave privata utilizzando un algoritmo noto. La chiave pubblica e la chiave privata sono associate tra loro da una qualche relazione matematica. La chiave pubblica è destinata a essere distribuita pubblicamente per fungere da indirizzo per la ricezione di messaggi da altri utenti, come un indirizzo IP o un indirizzo di casa.
La chiave privata deve essere mantenuta segreta e viene utilizzata per firmare digitalmente i messaggi inviati ad altri utenti. La firma è inclusa nel messaggio in modo che il destinatario possa verificarla utilizzando la chiave pubblica del mittente. In questo modo, il destinatario può essere sicuro che solo il mittente avrebbe potuto inviare questo messaggio. La generazione di una coppia di chiavi è analoga alla creazione di un account sulla blockchain, ma senza doversi registrare da nessuna parte. Abbastanza fresco. Inoltre, ogni transazione eseguita sulla blockchain è firmata digitalmente dal mittente.
Per legare tutto insieme, non potrebbe esserci blockchain senza hash e firme digitali. L’hashing offre a tutti sulla blockchain un modo per concordare lo stato attuale del mondo, mentre le firme digitali forniscono un modo per garantire che tutte le transazioni siano effettuate solo dai legittimi proprietari. Facciamo affidamento su queste due proprietà per garantire che la blockchain non sia stata danneggiata o compromessa.