Pular para o conteúdo
buybitcoinsmart

Glossário / Endereços e chaves

Índice de chave

O que é um índice de chave?
Um índice de chave é o número escolhido em cada etapa de uma derivação HD, de 0 até 4.294.967.295, que decide a qual filha de uma chave pai você chega.

Especificação no BIP-32.

Os índices são a forma como uma carteira conta. Cada nível da árvore recebe um número de 32 bits, então uma única chave pai tem 4.294.967.296 filhas possíveis, e toda a metade superior desse intervalo, de 2.147.483.648 em diante, está reservada para a derivação endurecida. No uso diário, você encontra apenas o índice final de um caminho: o que avança a cada vez que você toca em receber.

Como funciona

O índice é a única coisa que difere entre uma filha e a seguinte. Durante a derivação, ele é serializado como um número de quatro bytes em big-endian e anexado ao material da chave pai antes do hash, então o índice 0 e o índice 1 produzem resultados sem nenhuma relação visível entre si. Nada mais muda nessa etapa.

O intervalo se divide em dois em 2.147.483.648. Abaixo dessa linha a derivação é normal, e uma chave pública estendida pai basta para calcular a chave pública filha sem nenhum segredo. Nessa linha ou acima dela a derivação é endurecida, a chave privada pai precisa participar, e o material público sozinho não produz nada. A notação esconde a aritmética: escrever 84' ou 84h significa o índice 2.147.483.732, que é 84 mais o deslocamento de endurecimento.

Duas notações para a mesma coisa causam mais confusão do que deveriam. A documentação mais antiga e a maioria das telas de carteira usam o apóstrofo, como em m/84'/0'/0', enquanto a saída de descritores do Bitcoin Core prefere m/84h/0h/0h. Elas são idênticas. A forma com letra existe porque um apóstrofo dentro de um argumento de shell é um risco de aspas, e colar um no bitcoin-cli falha de maneiras que são incômodas de depurar.

Onde você o vê

O último número de um caminho é o índice que você encontra diariamente. Em m/84h/0h/0h/0/7, o 0 seleciona a cadeia de recebimento e o 7 marca o oitavo endereço que a carteira entregou, contando de zero. O troco tem seu próprio contador na cadeia 1, então a primeira saída de troco de uma carteira totalmente nova fica em m/84h/0h/0h/1/0, e os dois contadores avançam de forma independente.

A contagem sequencial é o que torna a recuperação possível, e também o que faz com que ela falhe. O BIP-44 diz a uma carteira que está sendo restaurada para derivar para frente ao longo de 20 endereços não usados consecutivos e depois parar de procurar, então bitcoins recebidos no índice 45, com um longo trecho vazio antes deles, aparecerão como saldo zero até você aumentar o limite de lacuna manualmente. O Bitcoin Core evita essa discussão mantendo um conjunto de chaves derivadas de antemão, 1.000 delas por padrão, e repondo-o à medida que são consumidas.

A descoberta funciona do mesmo modo um nível acima. Uma carteira que está sendo restaurada verifica a conta 0', encontra histórico, passa para a conta 1' e para na primeira conta sem nenhuma transação. Criar a conta 5' e deixar as contas abaixo dela vazias é, portanto, uma forma confiável de fazer uma futura restauração ignorar seus bitcoins.

Índice de chave vs caminho de derivação

Um índice é um número; um caminho é a lista ordenada deles. m/84h/0h/0h/0/7 contém cinco índices, e no uso comum apenas o último se move, porque propósito, tipo de moeda, conta e cadeia permanecem fixos durante toda a vida da carteira. A distinção importa quando um artigo de suporte diz para você verificar seu caminho de derivação. Ele se refere ao prefixo fixo, não ao contador de endereços, e não há quantidade de cliques em receber que salve um saldo que está faltando porque o prefixo estava errado.

Não confundir com

Perguntas frequentes

O que significa o apóstrofo depois de um número?

Ele marca o índice como endurecido, o que soma 2.147.483.648 a ele. Assim, 0' é o índice 2.147.483.648 e 84' é o índice 2.147.483.732. Alguns programas escrevem h em vez do apóstrofo, e as duas formas significam exatamente a mesma coisa.

Por que minha carteira restaurada mostra menos endereços do que antes?

O software de restauração deriva para frente até encontrar 20 endereços não usados em sequência, e então para. Se você gerou muitos endereços sem usá-los, aumente o limite de lacuna nas configurações da carteira e faça uma nova varredura para que ela procure mais adiante no ramo.

Termos relacionados

Mais em Endereços e chaves

Ler esta página em inglês