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.

#dusk $DUSK @Dusk