b-money é uma proposta de dinheiro digital apresentada por Wei Dai em 1998. Descreve duas formas de manter saldos compartilhados e lidar com contratos entre pessoas que usam pseudônimos digitais. Não foi uma moeda em operação nem uma versão anterior do programa Bitcoin. O whitepaper do Bitcoin depois a incluiu como primeira referência.
Imagine que Ana encomenda uma ilustração de Pedro pela internet. Eles conhecem apenas seus apelidos. Querem pagar e combinar o que acontece se alguém descumprir a promessa, sem antes revelar a identidade a um banco ou outra autoridade. Esse problema interessava aos Cypherpunks, que estudavam a proteção da privacidade pela criptografia. Wei Dai respondeu com b-money em 1998. O pseudônimo digital não era só um nome inventado: era uma chave pública: um dado que não precisa ser mantido em segredo e permite aos demais verificar a assinatura de uma mensagem. Ocultar a identidade real também dependia da comunicação anônima pressuposta no projeto. [1] [2]
No nosso exemplo, Ana tem 10 unidades e quer enviar 3 para Pedro. Ela publicaria uma mensagem de transferência e a assinaria digitalmente. Não é uma imagem da assinatura: o programa a calcula a partir da mensagem e de uma chave privada, um dado que Ana mantém em segredo. Com a chave pública, os demais podem verificar se a ordem foi assinada por quem possui a chave privada correspondente. Os responsáveis pelas contas verificariam assinatura e saldo suficiente, retirariam 3 de Ana e creditariam Pedro; Ana ficaria com 7. Não é um arquivo de moeda viajando, mas registros de saldo sendo alterados. Logo aparece a pergunta essencial: como manter todas as cópias coerentes se Ana enviar ordens incompatíveis? Só a assinatura não produz essa concordância. [1] [5]
O primeiro protocolo, ou conjunto proposto de regras, deixa cada participante manter uma base de saldos. Para todos fazerem as mesmas atualizações, pressupõe um canal de difusão anônimo, síncrono e impossível de bloquear. Em outras palavras, as mensagens precisam chegar a todos com a coordenação de tempo necessária, sem que se possa impedir sua distribuição nem revelar o remetente. É uma exigência muito maior que uma conexão comum de internet, na qual mensagens atrasam ou se perdem. O próprio Dai, por isso, chamou essa primeira versão de impraticável. Ela servia de ponto de partida para a segunda, não de rede pronta para operar. [1] [2]
Os saldos precisam começar em algum lugar. Dai propôs que qualquer pessoa pudesse publicar a solução de um novo problema computacional difícil e receber unidades monetárias. Os demais teriam de avaliar o esforço com facilidade, e a solução não deveria ter outro valor prático ou intelectual. A quantidade criada dependeria do custo do cálculo expresso numa cesta padrão de commodities: um conjunto combinado de bens para comparar custos. Isso lembra Proof of Work, a comprovação de esforço computacional, mas ainda não é mineração de blocos Bitcoin. Um bloco é um conjunto de transações acrescentado ao histórico compartilhado de pagamentos. Exige também uma estimativa comum apesar dos diferentes custos e capacidades dos computadores. [1] [2] [5]
No segundo protocolo, nem todos precisam manter o livro completo. Um grupo de participantes, chamados servidores, assumiria essa função. Ana e Pedro verificariam se o pagamento foi processado consultando uma parte desses servidores escolhida ao acaso. Como isso exige alguma confiança nos administradores, cada servidor deveria depositar uma garantia monetária, utilizável para punir conduta indevida comprovada. Eles também publicariam periodicamente os saldos e a criação de dinheiro. Os usuários confeririam seus próprios saldos e se a soma de todos ultrapassava o dinheiro criado. São controles concretos dos administradores, diferentes do arranjo atual de nós e mineradores do Bitcoin. [1]
Dinheiro era apenas uma parte do b-money. Na encomenda de Ana e Pedro, um contrato fixaria condições e indenizações máximas por descumprimento. As partes e um eventual árbitro, encarregado de julgar uma disputa, assinariam e colocariam valores definidos numa conta especial. Após uma conclusão acordada, o dinheiro seria distribuído conforme o resultado. O projeto ia além: se nem a arbitragem resolvesse, as partes publicariam argumentos e cada responsável pelas contas julgaria indenizações ou multas. Isso revela um limite. A assinatura pode confirmar concordância, mas não decide se a ilustração foi entregue nem garante que todos os administradores cheguem ao mesmo julgamento. [1] [2]
Dai reconhecia a dificuldade de concordar sobre o custo real do cálculo. A tecnologia muda, e alguns participantes podem ter vantagens desconhecidas pelos outros. Por isso, o apêndice A propôs uma alternativa utilizável nos dois protocolos. Os responsáveis pelas contas primeiro planejariam a quantidade de novas unidades. Os interessados ofereceriam resolver um problema em troca da quantidade de dinheiro desejada, fariam o cálculo e publicariam a solução. A emissão seguiria as ofertas aceitas. Essas quatro fases — planejamento, ofertas, cálculo e criação — substituiriam uma simples estimativa de custo. Não são o limite definido de 21 milhões do Bitcoin nem seu Halving, a redução periódica pela metade dos novos bitcoins criados por bloco. [1] [3]
Adam Back discutiu a proposta em dezembro de 1998. Entre outros pontos, destacou diferenças no custo do cálculo e a possibilidade de relacionar pagamentos feitos sob pseudônimos persistentes. Esconder o nome civil, portanto, não torna automaticamente os pagamentos impossíveis de vincular. O texto original prevê controles dos servidores; seria incorreto dizer que ignorava totalmente sua desonestidade. Mas não ofereceu um método completo e testado na prática para manter todas as bases de dados consistentes diante de falhas e disputas. Essas situações fazem parte da distância entre proposta e sistema funcional. Ler o debate preservado junto com o projeto é, por isso, útil. [1] [3] [7]
Em 22 de agosto de 2008, Satoshi Nakamoto escreveu a Wei Dai que Adam Back lhe indicara b-money e pediu o ano de publicação para fazer uma citação. Dai respondeu que anunciara a proposta em 1998. O whitepaper do Bitcoin então colocou b-money no primeiro lugar das referências. Em outra mensagem, de 10 de janeiro de 2009, Satoshi anunciou Bitcoin v0.1 e expressou a opinião de que ele atingia quase todos os objetivos de b-money. São contatos documentados e reconhecimento de uma ideia anterior. Não demonstram que Wei Dai escreveu Bitcoin, que os dois projetos funcionam da mesma forma ou quantas soluções técnicas foram diretamente aproveitadas. [4] [5] [6]
b-money é uma etapa importante na história das ideias, não uma moeda que hoje você possa colocar numa carteira seguindo essa proposta. Não foi implementado como o sistema de pagamentos em operação descrito aqui. Não tinha a cadeia de blocos do Bitcoin nem a regra de escolher a cadeia válida com mais trabalho acumulado. Mas fazia uma pergunta clara: como juntar assinaturas digitais, criação de dinheiro e contabilidade compartilhada sem deixar tudo nas mãos de um banco? Bitcoin depois reuniu suas próprias respostas numa rede funcional. Ler b-money separa a ideia de dinheiro digital da tarefa mais difícil de manter um estado comum e verificável entre pessoas que não precisam confiar umas nas outras. [1] [4] [5]
Para ter uma visão mais completa, leia este verbete junto com Wei Dai, Cypherpunks, Reusable Proofs of Work, Proof of Work, Hashcash, Bit Gold. Também há referências a este verbete em Cypherpunks, Bit Gold, Wei Dai, The Genesis Book.