


Introduzione alla serie
Benvenuti in una nuova serie: Zero to Zero Knowledge!
In questa serie impareremo i fondamenti di un'ampia gamma di tecnologie che entrano nei nostri protocolli per la tutela della privacy.
Oggi iniziamo con le Hash Functions - un elemento chiave della crittografia usato nelle blockchain. Più avanti in questa serie tratteremo alcuni argomenti che si basano sulle loro proprietà.
Le Hash Functions prendono un input di qualsiasi lunghezza e producono un output di lunghezza fissa.

Acquisiamo una comprensione pratica usando questo strumento!
Inserisci un testo arbitrario qualsiasi per produrre un output di lunghezza fissa. Osserva come l'output varia a seconda del diverso algoritmo di hashing.
Provalo: https://cryptii.com/pipes/hash-function
Le Cryptographic Hash Functions devono avere queste 3 proprietà:
Esistono diverse classi di Hash Functions. Alcuni esempi:
Un'introduzione a BLAKE2: https://www.blake2.net
I controlli di integrità dei dati sono un esempio di "Integrity Hashing". Vengono usati per generare checksum sui file di dati e fornire all'utente la garanzia di correttezza.

Un hash tree o Merkle tree è composto da rami e nodi foglia etichettati con l'hash crittografico di un blocco di dati.

I Merkle tree sono un esempio di commitment scheme crittografico. La radice dell'albero è vista come un commitment e i nodi foglia vengono dimostrati far parte del commitment originale.
Verificano i dati memorizzati o trasferiti sulle reti P2P, garantendo che i dati ricevuti dai peer siano inalterati.
Nelle pool schermate Sapling e Orchard di Zcash, il Note Commitment Tree viene usato per verificare che le transazioni siano valide rispetto al consenso, nascondendo perfettamente mittente, destinatario e importi consumati.
SHA256 è un esempio di "Signature hash" usato per imporre l'immutabilità di ogni blocco nella chain di Bitcoin. I miner usano l'hash del blocco precedente + un hash di tutte le transazioni nel blocco corrente (hashMerkleRoot) + il timestamp + un valore casuale / la difficoltà di rete per i nuovi blocchi.

Equihash è l'algoritmo di hashing usato nel mining di Zcash. È usato anche da reti come Komodo e Horizen.
Equihash: Proof-of-Work asimmetrico basato sul problema generalizzato del compleanno (Biryukov e Khovratovich): https://eprint.iacr.org/2015/946
Per costruire una comprensione più approfondita dei diversi tipi di hash function e dei loro usi associati, questa è un'ottima risorsa:
https://en.wikipedia.org/wiki/Hash_function
Thread di ZecHub (@ZecHub)
Thread X originale: https://x.com/ZecHub/status/1621240109663227906
Questa pagina è stata compilata a partire dal thread originale di Zero to Zero Knowledge per la wiki di ZecHub.