Funzioni "Memory-Hard" e "Memory-Bound"?

Sep 17 2020

Uno degli approcci per prevenire attacchi Sybil o DoS è il PoW legato alla CPU. Tuttavia, a causa dell'influenza della legge di Moore, vengono suggeriti gli approcci basati sulla memoria.

In realtà ci sono due termini differenti: (1) funzioni memory-hard e (2) funzioni memory-bound ;

Significa che abbiamo due diverse tecniche basate sulla memoria?

E se sì, qual è la differenza tra questi due termini?

Risposte

4 kelalaka Sep 17 2020 at 20:33

Le definizioni di Wikipedia sono chiare;

  • funzioni legate alla memoria ;

    Il limite di memoria si riferisce a una situazione in cui il tempo per completare un dato problema computazionale è deciso principalmente dalla quantità di memoria richiesta per contenere i dati.

    Questo è proposto per l'uso contro gli spam, prima legato alla CPU e poi alla memoria. Questo algoritmo richiede di accedere alla memoria in modo imprevedibile in modo che le cache siano inefficaci. Questo scoraggia gli spammer.

  • funzioni di memoria

    In crittografia, una funzione di memoria hard (MHF) è una funzione che costa una quantità significativa di memoria per essere valutata. È diverso dalle funzioni legate alla memoria, quest'ultima comporta costi rallentando il calcolo attraverso la latenza della memoria. Gli MHF trovano il loro utilizzo come una forma di prova di lavoro.

    Questo è contro la massiccia parallelizzazione dell'hashing ecc. Ad esempio, i minatori di bitcoin creano fattorie per i calcoli SHA2d poiché SHA2 non è difficile da memorizzare.

    Ci sono due varianti

    • Dipendente dai dati
    • Indipendente dai dati

    Ad esempio Argon2 ha sia la modalità che anche combinata. Argon2i per dati indipendenti e Argon2d per dati dipendenti. Nella modalità combinata Argon2id.