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.