Dusk Reinforced Concrete (RC) è una nuova funzione hash che è super veloce nelle prove a conoscenza zero (come ZK-SNARKs o STARKs). Non è come le normali funzioni hash (come SHA-256). Piuttosto, è progettata per funzionare direttamente su campi matematici (campi di numeri primi) in modo che le prove necessitino di meno moltiplicazioni e siano molto più veloci.
Prima, comprendiamo questo: Cos'è un hash?
Un hash è come una macchina che prende dati di qualsiasi dimensione e produce un "impronta" di dimensione fissa.
Questa impronta è così sensibile che anche una piccola modifica nei dati cambia completamente l'impronta.
Per generare questa impronta, $DUSK RC utilizza una costruzione sponge.
Pensa a una sponge in questo modo: assorbe acqua e poi la strizzi fuori.
Dusk RC utilizza lo stesso principio per generare un'impronta.
I dati entrano durante la fase di assorbimento, e l'output dell'hash esce durante la fase di compressione.
Ecco un'idea semplice di sponge:
Lato sinistro: l'input viene assorbito (continui a fornire il messaggio)
Lato destro: l'output viene compresso (estrai il digest / hash)

Questo è un semplice diagramma di sponge – il bit verde è il tasso (dove metti il messaggio), e i cilindri rossi sono i giri di permutazione che lo miscelano.
Un hash è come una macchina che prende dati di qualsiasi dimensione e produce un “impronta” di dimensione fissa.
Questo è il passo di miscelazione lineare.
Immagina che ci sia acqua in 3 bicchieri. Li moltiplichi per una matrice, in modo che tutto venga mescolato insieme, e poi aggiungi alcune costanti.
Questo aiuta i cambiamenti a diffondersi molto rapidamente in tutto lo stato (forte diffusione)
Mattoni
Questa è la fase non lineare (simile alle S-box).
Dusk Reinforced Concrete (RC) è una nuova funzione hash che è super veloce nelle prove a conoscenza zero (come ZK-SNARKs o STARKs). Non è come le normali funzioni hash (come SHA-256). Piuttosto, è progettato per lavorare direttamente su campi matematici (campi di numeri primi) in modo che le prove richiedano meno moltiplicazioni e siano molto più veloci.
Il grado algebrico viene mantenuto alto (5) per rendere costosi e impraticabili gli attacchi.
Barre
Questo è il vero accelerazione di Dusk!
Un numero è suddiviso in piccoli pezzi (ad es., un numero a 256 bit in pezzi da 32 bit).
Un'operazione non lineare semplice viene eseguita su ogni pezzo (utilizzando una tabella di lookup), e poi tutti i pezzi vengono combinati di nuovo.
Il motivo per cui le tabelle di lookup sono così economiche nelle prove a conoscenza zero è il motivo per cui Dusk RC è circa 10-15× più veloce.
Questo intero concetto origina da un SPN (Rete di Sostituzione-Permutazione):
Per prima cosa, sostituisci con una sostituzione non lineare
Poi, permuta i valori
Puoi immaginare un semplice giro di un SPN in questo modo:
Le scatole viola rappresentano le S-box (componenti non lineari), e le linee rappresentano la permutazione e la diffusione.

Perché tutto ciò è importante per Dusk Network?
In una normale funzione hash come Poseidon, ogni giro ha molte moltiplicazioni, quindi è lenta nelle prove a conoscenza zero.
$DUSK RC, grazie a Barre, sostituisce molte moltiplicazioni con tabelle, quindi è molto più veloce.
Inoltre, Bricks + Concrete mantengono un alto livello di sicurezza, che resiste sia agli attacchi algebrici che agli attacchi statistici.
Per aggiungere un po' di comprensione extra: hai mai sentito parlare di un albero di Merkle?
Nei blockchain, le transazioni vengono hashate e messe in una struttura ad albero in modo che la prova sia piccola.
Dusk RC è utilizzato esattamente in questi tipi di prove.
Questo è un semplice diagramma di un albero di Merkle – i dati sono in fondo, e man mano che sali, combini gli hash passo dopo passo.
