Indo direto ao assunto: HashCash é um sistema que emprega o mecanismo de consenso Proof of Work para combater spam de e-mails.
E quem foi o inventor do HashCash? Um famoso criptógrafo, Adam Back, concebeu essa função ainda em 1997. Mesmo que o HashCash nunca tenha ficado tão famoso, ele é conhecido como uma das primeiras aplicações do algoritmo Proof of Work e lançou as bases para o desenvolvimento do Bitcoin.
Hoje é dia de entender algo que faz parte da história do bitcoin e ver porque essa ferramenta é tão importante e o que pode ser feito com ela. Vamos nessa?
Contenidos
Proof of Work Origins
O algoritmo do consenso Proof of Work (PoW) se tornou conhecido graças à sua implementação no Bitcoin, mas ele não foi inventado por Satoshi Nakamoto.
A primeira referência ao PoW é atribuída a um trabalho escrito em 1992, por Cynthia Dwork e Moni Naor. No paper, os autores propõem um sistema que requer que os seus usuários realizem um “trabalho” relativamente difícil para terem acesso à rede.
Adam Back gostou da ideia e colocou o conceito em prática na hora de desenvolver o HashCash.
Hashcash e Proof of Work explicados
Um dos grandes problemas com a Internet e os serviços gratuitos que ela oferece é o spam.
Como não há diferença de custo entre mandar 1 ou 1000 e-mails, é muito fácil enviar mailings em massa pra pessoas que até não queriam.
Isso poderia ser resolvido cobrando alguns centavos por cada correio, mas também criaria uma barreira de entrada para as comunicações em massa e é provável que muitas pessoas ficassem de fora.
Por isso, o HashCash propõe uma alternativa para resolver o problema do spam.
Como? Pedindo que o remetente faça algum trabalho computacional e gere uma prova criptográfica antes de enviar o e-mail. Esse trabalho poderia ser pensado para que um computador comum levasse alguns minutos para resolver a equação.
Desta forma, os usuários comuns teriam simplesmente que esperar alguns segundos antes de mandarem seus e-mails. Mas os spammers que enviam milhares de e-mails ao mesmo tempo teriam muito mais dificuldade para fazer disparos em massa.
Ou seja, essa é a operação básica de um algoritmo de Prova de Trabalho.
Além de prevenir o spam, o HashCash fornece proteção contra ataques de Denial of Service (DoS). o DoS é feito quando alguém inunda um servidor com e-mails para que ele fique congestionado e deixe de funcionar momentaneamente.
Logicamente, quando se utiliza PoW, é difícil enviar muitos mails ao mesmo tempo e, portanto, o risco de um ataque DoS é mínimo.
Vantagens do HashCash
Custo zero
O HashCash usa o poder computacional em vez de um ativo monetário para prevenir o spam.
Isso é uma grande vantagem porque, por um lado, o serviço de correio permanece gratuito e acessível a todos. Por outro lado, somos poupados do incómodo administrativo de ter de aceitar micropagamentos de todo o mundo.
É fácil de implementar
O sistema empregado pelo HashCash não é muito complexo e pode ser opcionalmente integrado com outros serviços de correio eletrônico.
Se um serviço de e-mail não reconhecer a prova criptográfica enviada pelo remetente, pode ignorá-la e ainda assim receber a mensagem. Esta compatibilidade entre o HashCash e os sistemas existentes facilita a sua adoção.
Desvantagens do HashCash
Não é fácil calcular a ‘dificuldade necessária’
O sistema de Prova de Trabalho baseia-se em pedir aos participantes que realizem trabalhos computacionais para poderem, neste caso, enviar mensagens de correio.
Mas o quão difícil deve ser este trabalho computacional? Deve ser suficientemente simples para não causar incómodo aos usuários individuais. Ao mesmo tempo, deveria ser suficientemente difícil para impedir o envio de e-mails de spam.
Desde o início, não é fácil determinar a dificuldade ideal para fazer com que o HashCash funcione como deveria. E isso fica ainda mais difícil se levarmos em consideração que os computadores estão ficando mais rápidos a cada dia. Ou seja, esse equilíbrio deveria ser constantemente ajustado.
Idealmente, o sistema não deve prejudicar serviços tais como o envio de newsletters ou mensagens para listas de e-mails autorizados. Uma solução seria deixar de exigir trabalho computacional para endereços de confiança escolhidos pelo utilizador.
Prejudica computadores menos potentes
Inevitavelmente, quando se usa HashCash, os ‘lugares’ onde um computador mais velho pode chegar seriam afetados.
Um problema criptográfico que um computador moderno resolve em poucos segundos pode levar vários minutos em uma máquina mais antiga. Isto limitaria a utilização global de sistemas como o HashCash.
Como a rede Bitcoin usa o HashCash?
Como mencionado acima, o HashCash foi uma das primeiras implementações reais do algoritmo da Prova de Trabalho.
Funcionou como um precedente chave para o posterior desenvolvimento do Bitcoin, que usou o mesmo sistema. Se o HashCash usa PoW para prevenir spam, o Bitcoin usa PoW para prevenir a confirmação de transações maliciosas.
A fim de ganhar o direito de mandar um bloco para a blockchain e receber uma recompensa, na mineração de Bitcoin, é preciso resolver um problema.
Como podemos ver, a conexão entre o HashCash e o Bitcoin é bastante próxima. Satoshi Nakamoto citou o trabalho de Adam Back sobre o HashCash no whitepaper Bitcoin, indicando que usou o conceito como inspiração para o desenvolvimento do projeto do BTC.
Acredita-se também que Adam foi uma das primeiras pessoas contactadas por Satoshi para apresentar a sua ideia, ainda em meados de 2008, quando o projeto sequer tinha nome.
No entanto, Adam só se interessou pelo bitcoin em 2013, quando começou a ganhar projeção e espaço de debate em vários fóruns. Em 2014, criou a Blockstream, uma das empresas líderes no desenvolvimento de infra-estruturas Bitcoin.