Blockchain/Nível I · Dinheiro/1.2 O caminho cypherpunk/Lição 4
Hashcash: prova de trabalho antes do Bitcoin
O custo da computação como selo: do spam de e-mail à escassez digital
MateriaisUm gerador de hash SHA-256 onlineUma planilha para registrar valores de contador e saídas em hexadecimalO documento técnico do Bitcoin, seção 4
Curiosidade
- O que faz com que um selo seja caro de produzir, mas quase gratuito para ser verificado?
- Por que uma função de hash que leva microssegundos para ser verificada leva horas para ser resolvida?
- Como uma ferramenta para combater spams se tornou o motor de uma moeda?
Explorar
- Em 1992, Cynthia Dwork e Moni Naor propuseram o “Preço por Processamento” para combater o spam por e-mail. Sua ideia era que os cálculos matemáticos pudessem atuar como uma espécie de pedágio: forçando os remetentes a resolver um quebra-cabeça criptográfico, tornando o envio em massa de mensagens economicamente inviável, sem afetar os usuários ocasionais. A ideia permaneceu, em grande parte, apenas no papel por cinco anos.
- Adam Back propôs o Hashcash em março de 1997, sem saber do artigo de Dwork e Naor. O mecanismo exigia que os remetentes encontrassem um nonce — uma string variável — de modo que o hash SHA-1 do cabeçalho do e-mail, combinado com esse nonce, começasse com um número específico de bits zero. Trata-se de uma busca por colisões parciais: é exponencialmente mais difícil encontrá-las do que verificá-las. Cada solução válida servia como um “selo” que provava que o remetente havia investido esforço computacional real.
- O poder do Hashcash reside na assimetria. Gerar um carimbo válido pode exigir milhares ou milhões de tentativas de hash, consumindo tempo e eletricidade; verificá-lo requer apenas uma única computação de hash, medida em microssegundos. Essa função unidirecional cria escassez em um meio onde a cópia é normalmente gratuita. Um remetente de spams que envia um milhão de e-mails precisa realizar um milhão de vezes mais trabalho, enquanto o destinatário verifica cada e-mail com um esforço quase nulo.
- O Hashcash não era dinheiro, pois cada selo estava vinculado a um destinatário e a uma data específicos, o que o tornava intransferível e de uso único. Seu valor também diminuiu à medida que o hardware melhorou, já que cálculos mais baratos reduziram o custo de produção de novos selos. Ele resolveu o problema do spam, mas não conseguiu criar propriedades duradouras de reserva de valor. O termo “prova de trabalho” surgiu posteriormente, em 1999, por parte de Markus Jakobsson e Ari Juels, formalizando esse compromisso computacional.
- Satoshi Nakamoto citou diretamente o Hashcash de Back na seção 4 do whitepaper do Bitcoin (outubro de 2008), adaptando-o para o uso em timestamping distribuído. Enquanto o Hashcash utilizava SHA-1 com uma dificuldade fixa, o Bitcoin usa dois SHA-256 contra um alvo ajustável que é redefinido a cada 2016 blocos (cerca de duas semanas). Isso mantém um intervalo constante entre os blocos de aproximadamente 10 minutos, independentemente do crescimento da taxa de hash da rede, estabilizando o cronograma de emissão e protegendo o livro-razão por meio do custo computacional acumulado.
- Para experimentar essa assimetria: abra qualquer ferramenta online de SHA-256. Faça o hash da string “hello”. Em seguida, adicione um contador (0, 1, 2...) até que a saída em hexadecimais comece com “0”, e depois com “00”. Observe como as tentativas aumentam exponencialmente. Essa busca por força bruta é semelhante à mineração. O ajuste de dificuldade do Bitcoin garante que, à medida que mais mineradores se juntam e o hardware melhora, a meta seja tornada mais rigorosa para manter a produção de blocos constante, preservando o ritmo econômico do protocolo.
Fatos-chave
- Dwork e Naor propuseram o “Preço por Processamento” em 1992 para tornar o envio de e-mails caro.
- Adam Back anunciou o Hashcash em março de 1997, utilizando colisões parciais do SHA-1.
- A verificação do Hashcash requer uma única computação de hash; a geração necessita de aproximadamente 2^k tentativas para k bits zeros.
- O termo “prova de trabalho” foi cunhado por Jakobsson e Juels em 1999.
- O Bitcoin utiliza duplo SHA-256, com um alvo de dificuldade reajustado a cada 2016 blocos.
- Os selos Hashcash são intransferíveis e vinculados a destinatários específicos, ao contrário das unidades de Bitcoin.
Exercício nove, seis, três, um
9ReunirListe 9 quebra-cabeças computacionais ou compromissos baseados em hash da criptografia. Indique seu propósito original (spam, assinaturas, mineração) e o custo de verificação.
6AgruparAgrupe os 9 em 6 de acordo com se foram projetados para segurança, escassez ou ambos, e se são transferíveis ou de uso único.
3DestilarReduza as 6 para 3 propriedades que distinguem um token de prova de trabalho de uma mera assinatura digital.
1CristalizarEscreva 1 frase sobre por que o custo computacional gera escassez onde a cópia seria, de outra forma, gratuita.
Verificação de fatos
Datas, números e afirmações verificados com as fontes publicadas listadas abaixo.