Glossário / Endereços e chaves
Formato de importação de carteira
Outros nomes: WIF.
- O que é o Formato de importação de carteira?
- O Formato de importação de carteira é a codificação Base58 usada para mover uma única chave privada entre carteiras, envolvendo os 32 bytes brutos com um byte de rede e uma soma de verificação.
Uma string WIF é uma chave, não uma carteira: importá-la move exatamente os bitcoins vinculados a essa chave e nada mais. As chaves da mainnet começam com 5 quando a chave pública correspondente não está comprimida, ou com K ou L quando está comprimida, e têm 51 ou 52 caracteres. Trate a string como você trataria uma frase de recuperação, porque quem a ler pode gastar.
Como funciona
O Formato de importação de carteira existe para tornar um segredo bruto transportável sem erros de digitação. Pegue os 32 bytes da chave, coloque um byte de versão na frente (0x80 para a mainnet, 0xEF para a testnet), acrescente 0x01 se a chave for destinada a uso com uma chave pública comprimida, depois anexe quatro bytes de soma de verificação e codifique toda a carga útil em Base58Check. O byte de versão é o que força o primeiro caractere reconhecível, e o indicador opcional de compressão é o que estica a string de 51 caracteres para 52.
Essas duas variantes importam mais do que parecem. O 0x01 final não muda a chave em nada; ele diz à carteira que importa qual forma de chave pública derivar e, portanto, qual endereço consultar. Se isso for feito errado, a carteira informa saldo zero enquanto os bitcoins ficam em segurança no outro endereço.
A soma de verificação detecta erros de transcrição antes que custem algo. Uma carteira que decodifica uma string WIF e encontra uma soma de verificação que não confere a rejeita de imediato, então um único caractere errado produz uma mensagem de erro em vez de uma carteira vazia. O que nenhuma soma de verificação pode fazer é proteger uma chave que outra pessoa já leu.
Onde você a vê
Nada do que uma carteira moderna gera é entregue como uma string WIF. Carteiras de frase de recuperação conforme o BIP-32 contêm milhares de chaves e não têm motivo para exportar uma, então o WIF aparece quase inteiramente em material antigo: carteiras de papel impressas por geradores de navegador, chaves extraídas de softwares de desktop anteriores a 2013, endereços de vaidade produzidos por um gerador de chaves e as strings escondidas sob os hologramas das moedas físicas Casascius.
Há duas formas de trazer uma chave dessas para uma carteira atual, e a diferença não é cosmética.
Importar adiciona a chave à sua carteira e a deixa em jogo. A carteira agora pode gastar esses bitcoins, mas qualquer outra pessoa que já tenha visto a impressão, a fotografia dela ou a máquina que a gerou também pode. A varredura monta uma transação que envia todo o saldo para um endereço novo derivado da sua própria frase de recuperação, depois do que a chave antiga não controla nada. Faça a varredura a menos que tenha um motivo específico para não fazê-la, e suponha que qualquer chave que tenha existido em papel, em uma captura de tela ou em um backup na nuvem já está comprometida.
Vale manter mais um hábito: uma string WIF digitada em um site está perdida. Páginas geradoras, verificadores de saldo e “validadores de carteira” que pedem uma existem para colher chaves, e os bitcoins costumam ser movidos em questão de segundos.
Formato de importação de carteira vs frase de recuperação
Uma string WIF carrega uma chave, enquanto uma frase de recuperação carrega a raiz de uma carteira inteira. Conforme o BIP-39, uma frase de 12 palavras codifica 128 bits de entropia e uma frase de 24 palavras codifica 256 bits, e a partir dessa raiz uma carteira deriva todas as chaves que usará, em todos os caminhos de derivação, para sempre. Restaurar uma frase traz a carteira inteira de volta, incluindo endereços que você nunca anotou. Restaurar um WIF traz de volta uma chave e seus bitcoins, e por isso uma exportação de chave é uma ferramenta de recuperação para fundos antigos, não uma estratégia de backup.