MSTR Cat

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

  1. O que faz com que um selo seja caro de produzir, mas quase gratuito para ser verificado?
  2. Por que uma função de hash que leva microssegundos para ser verificada leva horas para ser resolvida?
  3. Como uma ferramenta para combater spams se tornou o motor de uma moeda?

Explorar

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

Abrir na academia interativa →

EN ES ZH JA KO RU DE FR MS