antonio leandro

redes ponto a ponto

Bitcoin: A Peer-to-Peer Electronic Cash System

paper · núcleo · Satoshi Nakamoto · · ~25 min de leitura do original · leve

a tese

gasto duplo não é problema de criptografia, é problema de ordem: se toda transação é pública e reordenar o passado custa energia, a primeira transação vence sem ninguém no meio decidindo

o que fica

  1. A assinatura digital prova quem é o dono da moeda, mas não prova que ela já não foi gasta antes — e a única forma de confirmar a ausência de uma transação é conhecer todas elas.
  2. Proof-of-work resolve sybil antes de resolver consenso: um-IP-um-voto é comprável por quem aloca muitos IPs, um-CPU-um-voto custa hardware e eletricidade.
  3. A confirmação é probabilística, nunca final: o próprio paper tabela a espera, e contra um atacante com 45% do poder são 340 blocos para o risco cair abaixo de 0,1%.
  4. Nem o atacante majoritário cria dinheiro do nada: nós honestos rejeitam transação inválida em qualquer cadeia, então o ataque se limita a desfazer um pagamento que o próprio atacante fez.
  5. A garantia final do sistema é econômica, não criptográfica: o argumento é que ao atacante com poder de sobra compensa mais gerar moedas do que destruir a validade da própria riqueza.
  6. A privacidade proposta é pseudonimato, não sigilo: tudo é público, e uma transação com múltiplos inputs já revela que aqueles inputs tinham um dono só.

o problema

Comércio na internet roda em cima de instituição financeira como terceiro confiável. O paper abre atacando o custo disso. Com pagamento reversível, nenhuma transação é definitiva: o banco não consegue deixar de mediar disputa, a mediação entra no custo da transação e mata o pagamento pequeno. Pior, a reversibilidade contamina o resto da relação — o vendedor precisa desconfiar do comprador, pede mais informação do que precisaria, e uma fatia de fraude é aceita como inevitável. Presencialmente isso se resolve com dinheiro em papel. Por um canal de comunicação, não existia equivalente.

A parte criptográfica já estava pronta. Uma moeda eletrônica pode ser uma cadeia de assinaturas: cada dono transfere assinando o hash da transação anterior junto com a chave pública do próximo, e quem recebe verifica a cadeia de posse inteira. O que a assinatura não prova é que nenhum dono anterior assinou também uma transação mais cedo, gastando a mesma moeda duas vezes. A saída clássica era a casa da moeda: toda transação volta para uma autoridade central que carimba a primeira e descarta as demais. Funciona, e devolve o sistema inteiro para dentro de uma empresa — o banco outra vez.

a ideia

O movimento está numa frase do artigo: a única forma de confirmar a ausência de uma transação é estar ciente de todas. Então anuncie todas publicamente e faça a rede concordar com uma ordem única de chegada. O recebedor não precisa da prova “essa moeda é sua”; precisa da prova “no momento do pagamento, a maioria da rede concordou que essa era a primeira transação com essa moeda”.

Ordem declarada é barata de falsificar. A ideia é fazer a ordem custar. Transações entram em blocos, cada bloco carrega o hash do anterior e uma prova de trabalho, e reescrever o passado obriga a refazer aquele bloco e todos os que vieram depois — enquanto a rede honesta continua avançando na frente. A cadeia mais longa não é a correta por decreto: é aquela onde mais trabalho foi queimado.

como funciona

A prova de trabalho é o Hashcash de Adam Back: incrementar um nonce até o hash do bloco, com SHA-256, começar com um número de bits zero. O trabalho médio é exponencial na quantidade de zeros exigida e a verificação custa um único hash. A dificuldade é ajustada por média móvel, mirando um número médio de blocos por hora; se saem rápido demais, ela sobe.

O protocolo tem seis passos e nenhuma coordenação: transações são transmitidas a todos, cada nó junta as suas num bloco, procura a prova, transmite quando acha, e os outros aceitam checando validade e gasto anterior. Aceitar significa começar a trabalhar no bloco seguinte usando aquele hash como anterior. Se dois blocos chegam ao mesmo tempo, o nó trabalha no primeiro que recebeu e guarda o outro ramo; o desempate vem com o próximo bloco encontrado. Broadcast é best effort — quem perdeu um bloco pede ele ao perceber o buraco no próximo.

O incentivo vem da primeira transação do bloco, que cria moeda nova para quem o encontrou, mais as taxas (a diferença quando o output vale menos que o input). Passado um número predeterminado de moedas em circulação, o paper prevê a transição para taxas apenas. Esse número não aparece no texto.

Duas otimizações fecham o desenho. As transações vão numa Merkle tree e só a raiz entra no header, então blocos antigos podem ser podados sem quebrar o hash: um header tem cerca de 80 bytes, o que dá 4,2 MB por ano com um bloco a cada dez minutos. E o SPV permite verificar pagamento só com os headers da cadeia mais longa e o ramo de Merkle da transação, sem rodar um nó completo.

o que isso custou

Tudo depende de uma premissa que o paper enuncia sem rodeios: nós honestos precisam controlar a maioria do poder de CPU. Se o atacante empata ou passa, a probabilidade de ele alcançar a cadeia honesta é 1. E abaixo disso a segurança não é binária, é uma espera. A seção de cálculos modela a corrida como um passeio aleatório e resolve como ruína do jogador: para risco abaixo de 0,1%, um atacante com 10% do poder exige esperar 5 blocos; com 30%, 24 blocos; com 45%, 340. Não existe transação final, só transação suficientemente cara de desfazer.

O consolo é o limite do ataque: nem quem tem poder de sobra cria valor do nada ou toma moeda alheia, porque nó honesto não aceita transação inválida em cadeia nenhuma. O que o atacante consegue é desfazer um pagamento que ele mesmo fez.

O resto dos limites está espalhado pelo texto e é reconhecido. A privacidade cai para pseudonimato: o modelo antigo escondia as transações, o novo as publica e esconde apenas a identidade das chaves — e transações com múltiplos inputs entregam que aqueles inputs tinham um dono só, o que retroage sobre todo o histórico se uma chave for identificada. O SPV é enganável por transações fabricadas enquanto o atacante mantiver a rede dominada, e a mitigação sugerida é frouxa: aceitar alertas de outros nós. Quem recebe pagamento com frequência, diz o paper, provavelmente vai querer rodar seu próprio nó. E o argumento mais forte a favor da honestidade não é matemático: o atacante deveria achar mais lucrativo seguir as regras que ganhar mais moedas novas que todo mundo junto. É economia, não prova. O custo material disso, o paper também escreve: tempo de CPU e eletricidade.

onde isso aparece hoje

O bitcoin entrou no ar no ano seguinte e a cadeia descrita aqui roda desde então. O vocabulário que se formou depois quase não está no artigo: não aparece “blockchain”, não aparece “minerador” fora da analogia com o ouro, não aparece limite de 21 milhões de moedas. O que se espalhou foram as peças. A regra da cadeia mais longa e o ajuste de dificuldade viraram o padrão de fato das redes de proof-of-work que vieram atrás. O SPV é o avô das carteiras leves, que sincronizam headers em vez do histórico inteiro. E o debate sobre consumo de energia não é efeito colateral de implementação: ele está na primeira página do desenho, porque o custo elétrico é a segurança.

lido na íntegra por pipeline de llm, revisado por antonio leandro antes de publicar ·