Em 2022, o Brasil aprovou o marco legal das criptomoedas (Lei 14.478/2022), consolidando o país como um dos mercados cripto mais ativos da América Latina. O bitcoin usa SHA-256, mas moedas como Litecoin e Dogecoin usam scrypt para sua prova de trabalho — justamente porque seu desenho memory-hard tornou a fabricação de ASICs dedicados muito mais lenta e cara do que para o bitcoin, prolongando por anos a viabilidade da mineração por GPU comum.
O que é uma função memory-hard
Um algoritmo memory-hard é projetado deliberadamente para que calcular um único hash exija manter na memória uma grande quantidade de dados intermediários. Tentar economizar memória à custa de recalcular valores, ao invés disso, aumenta drasticamente o tempo de computação — ou seja, o atacante precisa sacrificar memória ou velocidade.
Por que isso dificulta ataques com hardware especializado
Chips ASIC e GPUs são muito eficientes na execução massivamente paralela de operações aritméticas simples, mas adicionar memória a cada fluxo de computação paralelo custa muito mais e escala pior. O scrypt torna um ataque de força bruta nesse tipo de hardware economicamente menos atraente comparado a funções hash clássicas.
Para que serve
- Escolher um algoritmo de hashing de senhas resistente a ataques com fazendas de GPU.
- Entender o conceito de funções memory-hard no contexto da criptografia.
- Comparar os compromissos entre scrypt, bcrypt e Argon2 para um sistema específico.
Quanta memória é realmente necessária
A quantidade de memória para um único cálculo de scrypt é aproximadamente 128 × N × r bytes. Com parâmetros típicos (N=16384, r=8), isso equivale a cerca de 16 megabytes por hash — insignificante para um único login, mas se o servidor precisa processar milhares de autenticações simultâneas, o volume total de memória rapidamente se torna uma restrição real na escolha dos parâmetros, e não apenas um requisito de segurança abstrato.