Glossário / Endereços e chaves
Chave privada
- O que é uma chave privada?
- Uma chave privada é o número secreto de 256 bits que autoriza o gasto de uma saída de bitcoin; qualquer pessoa que a descubra pode mover os bitcoins, e ninguém pode reemitir essa chave.
A propriedade de bitcoin é a posse das chaves, não um registro no livro contábil de alguém. Uma chave é um número aleatório abaixo de aproximadamente 1,16 vezes 10 elevado a 77, e é por isso que adivinhar uma não é ameaça alguma, mas gerá-la mal é. As carteiras modernas nunca mostram as chaves: elas derivam cada uma de uma frase de recuperação de 12 ou 24 palavras, e é essa frase que você protege.
Como funciona
Uma chave privada tem 32 bytes, normalmente escritos como 64 caracteres hexadecimais, escolhidos ao acaso no intervalo de 1 até pouco abaixo da ordem da curva secp256k1. Essa ordem é 115.792.089.237.316.195.423.570.985.008.687.907.852.837.564.279.074.904.382.605.163.141.518.161.494.337, um número de 78 dígitos. Praticamente qualquer valor de 32 bytes é uma chave válida, e é isso que torna a geração tão simples e o roubo por força bruta tão inviável.
Assinar é a única coisa que a chave faz. Para gastar uma saída, sua carteira produz com a chave uma assinatura sobre a transação, e cada nó verifica essa assinatura contra a chave pública que a saída exige. A assinatura prova que a chave existe sem expô-la, então um gasto confirmado publica uma assinatura e nunca o segredo por trás dela. O Bitcoin usou apenas ECDSA até o Taproot; as assinaturas Schnorr, especificadas no BIP-340, cumprem a mesma função nos gastos Taproot.
A aleatoriedade é onde está a verdadeira vulnerabilidade. O espaço de chaves não pode ser vasculhado, mas um software ruim pode reduzi-lo. Em agosto de 2013, o projeto Bitcoin publicou um aviso de segurança sobre uma falha no gerador de números aleatórios do Android que tornava previsíveis as chaves dos celulares afetados, e bitcoins foram roubados como resultado direto. As carteiras cerebrais, em que a chave vinha de uma frase inventada por uma pessoa, foram esvaziadas de forma sistemática assim que os atacantes começaram a pré-calcular dicionários. As duas falhas são de entropia, não de criptografia quebrada.
Por que isso importa quando você compra bitcoin
Comprar em uma corretora não dá a você uma chave. Dá a você um saldo no banco de dados da corretora, lastreado em bitcoins que a corretora guarda sob chaves controladas por sua própria equipe. É um arranjo perfeitamente normal enquanto você negocia, e ruim para a poupança. A Mt. Gox congelou saques e entrou em processo de falência em fevereiro de 2014, e seus credores esperaram até julho de 2024 para que os primeiros reembolsos chegassem.
O saque é o momento em que a custódia de fato passa para você. Sua carteira deriva uma chave da sua frase de recuperação, fornece o endereço correspondente e, assim que a transação da corretora é confirmada, nenhuma empresa fica entre você e os bitcoins. A partir daí, os modos de falha são seus: um backup perdido, uma frase de recuperação fotografada, um site de phishing que pede que você “valide” sua carteira.
Três hábitos cobrem a maior parte do risco. Gere as chaves em um dispositivo feito para isso, para que o segredo seja criado e usado dentro de um hardware que nunca o exporta. Faça o backup da frase de recuperação em algo que resista à água e ao fogo, e nunca como uma foto ou uma nota na nuvem. E trate qualquer pedido de uma chave ou de uma frase de recuperação como um ataque, sem exceção, porque nenhuma corretora, fornecedor de carteiras ou agente de suporte precisa de uma.
Onde a chave está em cada etapa de uma primeira compra
Acompanhe uma única compra do início ao fim e a chave privada percorre uma sequência bem específica. Você envia dinheiro para uma corretora e compra: ainda não existe chave alguma para você, apenas uma linha no livro contábil. Você cola um endereço de saque: sua carteira gerou esse endereço a partir de uma chave derivada da sua frase de recuperação, e a chave nunca saiu do dispositivo. A corretora difunde uma transação que bloqueia bitcoins no seu endereço: a chave ainda não fez nada. Meses depois você decide gastar, e só então a chave produz sua primeira assinatura, que a rede verifica e registra para sempre.
Duas coisas decorrem dessa sequência. Uma chave pode controlar bitcoins por anos antes de ser usada pela primeira vez, então uma carteira que “não fez nada” não está ociosa nem expirada. E a transferência de propriedade aconteceu no saque, não na compra, e é por isso que a etapa do saque é a que merece ser conferida duas vezes.
Chave privada vs frase de recuperação
Uma chave privada controla um conjunto de bitcoins; uma frase de recuperação gera uma carteira inteira cheia de chaves. A frase é uma codificação legível por humanos da entropia por trás de uma hierarquia BIP-32: 12 palavras carregam 128 bits, 24 palavras carregam 256 bits, e a partir dessa raiz a carteira deriva bilhões de chaves ao longo de um caminho de derivação. Restaurar a frase reconstrói cada uma delas. Restaurar uma única chave reconstrói uma única chave, e os bitcoins que a carteira tivesse em outros lugares continuam faltando.
Chave privada vs Wallet Import Format
Uma chave privada é um número e o Wallet Import Format é uma forma de escrevê-lo. O WIF envolve os mesmos 32 bytes em um byte de rede, um indicador de compressão opcional e uma soma de verificação, e então codifica o conjunto em Base58. Nada muda no segredo subjacente, então uma string WIF merece exatamente a mesma proteção que o número bruto: quem a ler pode gastar os bitcoins imediatamente.