Funções “Memory-Hard” vs. “Memory-Bound”?

Sep 17 2020

Uma das abordagens para evitar ataques Sybil ou DoS é o PoW vinculado à CPU. No entanto, devido à influência da lei de Moore, as abordagens baseadas na memória são sugeridas.

Na verdade, existem dois termos diferentes: (1) funções rígidas de memória e (2) funções associadas à memória ;

Isso significa que temos duas técnicas diferentes baseadas na memória?

E se sim, qual é a diferença entre esses dois termos?

Respostas

4 kelalaka Sep 17 2020 at 20:33

As definições da Wikipedia são claras;

  • funções ligadas à memória ;

    O limite de memória se refere a uma situação em que o tempo para concluir um determinado problema computacional é decidido principalmente pela quantidade de memória necessária para manter os dados.

    Isso é proposto para uso contra spams, primeiro vinculado à CPU e depois à memória. Este algoritmo requer acesso à memória de uma forma imprevisível para que os caches sejam ineficazes. Isso desencoraja os spammers.

  • funções difíceis de memória

    Na criptografia, uma função de memória difícil (MHF) é uma função que custa uma quantidade significativa de memória para ser avaliada. É diferente das funções associadas à memória, as últimas incorrem em custos ao desacelerar a computação por meio da latência da memória. MHFs encontram seu uso como uma forma de prova de trabalho.

    Isso é contra a paralelização massiva de hashing etc. Por exemplo, os mineradores de bitcoin criam fazendas para cálculos SHA2d, já que SHA2 não é difícil de memória.

    Existem duas variantes

    • Dependente de dados
    • Independente de dados

    Por exemplo, Argon2 tem modo e até mesmo combinados. Argon2i para dados independentes e Argon2d para dados dependentes. No modo combinado Argon2id.