Funções “Memory-Hard” vs. “Memory-Bound”?
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
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.