Ir para o conteúdo principal

Tutorial da Ferramenta de Derivação de Chaves: Explorador de Caminhos BIP-44

Carteiras Hierarchical Deterministic (HD) são a base do gerenciamento moderno de chaves de criptomoedas. A partir de uma única seed, uma carteira HD deriva uma árvore inteira de chaves — bilhões de endereços únicos em múltiplas blockchains, todos recuperáveis da sua frase seed original. A Ferramenta de Derivação de Chaves do SafeSeed permite visualizar e explorar essa árvore, entender como os caminhos de derivação funcionam e diagnosticar problemas quando as carteiras não se comportam como esperado.

Experimente Agora

Explore caminhos de derivação BIP-44 em safeseed.app/tools/key-derivation/ — totalmente client-side, funciona offline.

O Que É Derivação de Chaves?

Derivação de chaves é o processo de gerar novas chaves criptográficas a partir de uma chave existente. Em criptomoedas, isso começa com sua frase seed e segue um algoritmo determinístico definido pelo BIP-32 (Hierarchical Deterministic Wallets) e organizado pelo BIP-44 (Multi-Account Hierarchy).

A propriedade crítica é o determinismo: a mesma seed sempre produz a mesma árvore de chaves. Isso significa que:

  • Você pode recuperar toda a sua carteira usando apenas a frase seed
  • Múltiplos dispositivos com a mesma seed mostrarão os mesmos endereços
  • Não há elementos aleatórios após a geração inicial da seed

A Árvore de Chaves

Pense na derivação de chaves como uma árvore:

Master Key (root)
├── Purpose 44' (Legacy)
│ ├── Bitcoin (0')
│ │ ├── Account 0'
│ │ │ ├── External (0)
│ │ │ │ ├── Address 0
│ │ │ │ ├── Address 1
│ │ │ │ └── Address 2 ...
│ │ │ └── Internal/Change (1)
│ │ │ ├── Address 0
│ │ │ └── Address 1 ...
│ │ └── Account 1'
│ │ └── ...
│ ├── Ethereum (60')
│ │ └── Account 0'
│ │ └── ...
│ └── Litecoin (2')
│ └── ...
├── Purpose 49' (SegWit)
│ └── ...
├── Purpose 84' (Native SegWit)
│ └── ...
└── Purpose 86' (Taproot)
└── ...

Cada nó nessa árvore tem uma chave privada e uma chave pública. O Gerador de Endereços deriva os nós folha (endereços individuais), enquanto a Ferramenta de Derivação de Chaves permite inspecionar qualquer nó em toda a árvore.

Entendendo Caminhos de Derivação

Um caminho de derivação é uma sequência de índices que descreve como navegar da chave mestra até uma chave filha específica. A notação padrão é assim:

m / 84' / 0' / 0' / 0 / 0

Vamos detalhar isso por completo.

Componentes do Caminho

ComponenteSignificadoValores de Exemplo
mChave mestra (raiz)Sempre m
purpose'Qual padrão BIP44', 49', 84', 86'
coin_type'Qual criptomoeda0' (BTC), 60' (ETH), 2' (LTC)
account'Separação de conta0', 1', 2'
changeExterno/interno0 (recebimento), 1 (troco)
address_indexNúmero do endereço0, 1, 2, ...

Derivação Hardened vs. Normal

O apóstrofo (') indica derivação hardened. Este é um conceito fundamental de segurança em carteiras HD.

Derivação normal (não-hardened) (m/0/1/2):

  • A chave pública pai pode derivar todas as chaves públicas filhas
  • Se uma chave privada filha e a chave pública pai forem comprometidas, a chave privada pai pode ser calculada
  • Usada nos níveis change e address_index

Derivação hardened (m/0'/1'/2'):

  • Apenas a chave privada pai pode derivar chaves filhas
  • Comprometer uma chave filha não expõe a chave pai
  • Usada nos níveis purpose, coin_type e account

A justificativa de segurança: os três primeiros níveis (purpose', coin_type', account') usam derivação hardened para criar um firewall. Mesmo que um atacante obtenha uma chave privada filha no nível de endereço, ele não consegue voltar além do limite hardened para descobrir sua chave mestra ou chaves de outras contas ou criptomoedas.

Caminhos de Derivação Padrão por Carteira

Diferentes softwares de carteira podem usar caminhos de derivação diferentes. Aqui está uma referência para carteiras comuns:

CarteiraCaminho BitcoinCaminho EthereumObservação
Ledger Livem/84'/0'/0'/0/xm/44'/60'/0'/0/xPadrão Native SegWit
Trezor Suitem/84'/0'/0'/0/xm/44'/60'/0'/0/xPadrão Native SegWit
Electrumm/84'/0'/0'/0/xN/APadrão Native SegWit
MetaMaskN/Am/44'/60'/0'/0/xApenas Ethereum
BlueWalletm/84'/0'/0'/0/xN/APadrão Native SegWit
Exodusm/84'/0'/0'/0/xm/44'/60'/0'/0/xMultichain
Trust Walletm/84'/0'/0'/0/xm/44'/60'/0'/0/xMultichain
Coinbase Walletm/44'/0'/0'/0/xm/44'/60'/0'/0/xLegacy para BTC
Myceliumm/84'/0'/0'/0/xN/AApenas Bitcoin
Wasabim/84'/0'/0'/0/xN/AFocada em privacidade

Ao recuperar fundos, saber qual caminho sua carteira original usava é essencial. A Ferramenta de Derivação de Chaves ajuda você a explorar caminhos de forma sistemática para encontrar onde estão suas chaves.

Passo a Passo: Usando a Ferramenta de Derivação de Chaves

Passo 1: Abra a Ferramenta

Acesse safeseed.app/tools/key-derivation/. Como em todas as ferramentas do SafeSeed, as operações rodam inteiramente no seu navegador.

Lembrete de segurança: Se for inserir uma frase seed com fundos reais, use uma máquina air-gapped. Veja o Guia de Uso Offline.

Passo 2: Insira Sua Frase Seed

Insira sua frase mnemônica BIP-39 de 12 ou 24 palavras. Opcionalmente, insira uma passphrase. A ferramenta valida a frase e exibe a seed mestra (hex de 512 bits) derivada via PBKDF2.

Passo 3: Veja a Chave Mestra

Após inserir uma frase seed válida, a ferramenta exibe as informações da chave mestra:

  • Chave Privada Mestra (xprv): A chave privada raiz da qual todas as outras chaves são derivadas. Este é o dado mais sensível de toda a hierarquia de chaves.
  • Chave Pública Mestra (xpub): A chave pública correspondente. A partir desta chave, todas as chaves públicas filhas podem ser derivadas (para caminhos não-hardened).
  • Master Chain Code: Um valor de 256 bits usado junto com a chave na função de derivação. O chain code adiciona uma camada extra de imprevisibilidade à derivação de chaves filhas.

Passo 4: Navegue na Árvore de Derivação

A Ferramenta de Derivação de Chaves apresenta a hierarquia como uma árvore interativa. Você pode:

  1. Clicar nos nós da árvore para expandi-los e ver chaves filhas
  2. Inserir um caminho personalizado no campo de caminho (ex.: m/84'/0'/0'/0/0)
  3. Alternar entre exibição de chave privada e pública
  4. Copiar qualquer chave ou caminho para uso em outras ferramentas ou carteiras

Passo 5: Inspecione uma Chave Específica

Quando você seleciona um nó na árvore, a ferramenta exibe informações completas dessa chave:

  • Caminho de Derivação: O caminho completo da chave mestra até esta chave
  • Chave Privada: A chave neste nível (em formato estendido e WIF quando aplicável)
  • Chave Pública: A chave pública correspondente (comprimida)
  • Chain Code: O chain code neste nível
  • Fingerprint: Um identificador de 4 bytes para esta chave (usado na serialização de chave estendida)
  • Endereço Derivado: O endereço da criptomoeda (para chaves no nível folha)

Passo 6: Explore Diferentes Purposes

Navegue entre diferentes padrões BIP para entender como a mesma seed produz diferentes tipos de endereço:

BIP-44 (Legacy): m/44'/0'/0'/0/0

  • Produz endereços Legacy começando com 1
  • Maiores taxas de transação
  • Compatibilidade máxima com sistemas antigos

BIP-49 (SegWit): m/49'/0'/0'/0/0

  • Produz endereços SegWit começando com 3
  • Taxas de transação médias
  • Boa compatibilidade

BIP-84 (Native SegWit): m/84'/0'/0'/0/0

  • Produz endereços Native SegWit começando com bc1q
  • Baixas taxas de transação
  • Padrão para carteiras modernas

BIP-86 (Taproot): m/86'/0'/0'/0/0

  • Produz endereços Taproot começando com bc1p
  • Menores taxas de transação
  • Padrão mais recente, suporta scripts avançados

Aprofundamento: Como Funciona a Derivação BIP-32

Entender a matemática por trás da derivação de chaves não é necessário para usar a ferramenta, mas oferece insights valiosos para quem quer compreender de verdade a segurança da carteira.

Derivação de Chave Filha com HMAC-SHA512

O BIP-32 usa HMAC-SHA512 para derivar chaves filhas. O processo difere para derivação hardened e normal:

Derivação de chave filha normal:

HMAC-SHA512(
key = parent_chain_code,
data = parent_public_key || child_index
) → (child_key_data, child_chain_code)

child_private_key = parent_private_key + child_key_data (mod n)

Derivação de chave filha hardened:

HMAC-SHA512(
key = parent_chain_code,
data = 0x00 || parent_private_key || child_index
) → (child_key_data, child_chain_code)

child_private_key = parent_private_key + child_key_data (mod n)

A diferença crítica: derivação hardened usa a chave privada como entrada, enquanto derivação normal usa a chave pública. Isso significa que chaves filhas hardened não podem ser derivadas apenas da chave pública pai.

Serialização de Chave Estendida

Chaves estendidas (xprv/xpub) codificam várias informações:

CampoTamanhoDescrição
Version4 bytesTipo de rede e chave (0488ADE4 para xprv, 0488B21E para xpub)
Depth1 byteQuantos níveis desde a chave mestra
Parent fingerprint4 bytesPrimeiros 4 bytes do hash da chave pai
Child index4 bytesQual filho é este (com bit hardened)
Chain code32 bytesO chain code
Key data33 bytesA chave privada ou pública

A estrutura inteira é codificada em Base58Check para produzir a string familiar xprv... ou xpub.... Bytes de versão diferentes produzem ypub/zpub para SegWit e Native SegWit, respectivamente.

Aplicações Práticas

Aplicação 1: Depuração de Recuperação de Carteira

Cenário: Você recuperou sua frase seed em uma nova carteira, mas seu saldo de Bitcoin aparece como zero.

Diagnóstico com a Ferramenta de Derivação de Chaves:

  1. Insira sua frase seed na Ferramenta de Derivação de Chaves
  2. Navegue até m/84'/0'/0'/0/0 (Native SegWit, caminho moderno mais comum)
  3. Anote o endereço e verifique no mempool.space
  4. Se não houver saldo, tente m/44'/0'/0'/0/0 (Legacy)
  5. Tente m/49'/0'/0'/0/0 (SegWit)
  6. Tente m/86'/0'/0'/0/0 (Taproot)
  7. Se ainda não houver saldo, tente a conta 1': m/84'/0'/1'/0/0
  8. Verifique as cadeias externa (change=0) e interna (change=1)

Essa exploração sistemática revela exatamente onde seus fundos estão na árvore de derivação.

Aplicação 2: Entendendo Carteiras Watch-Only

Cenário: Você quer configurar uma carteira watch-only para monitorar seu saldo de Bitcoin sem expor chaves privadas.

Usando a Ferramenta de Derivação de Chaves:

  1. Insira sua frase seed (em uma máquina air-gapped)
  2. Navegue até o nível de conta: m/84'/0'/0'
  3. Copie a chave pública estendida (zpub) neste nível
  4. Importe esse zpub no software da sua carteira watch-only (ex.: Electrum, BlueWallet)
  5. A carteira watch-only pode derivar todos os endereços de recebimento e troco abaixo desse nível
  6. Ela não pode derivar chaves privadas nem assinar transações

A Ferramenta de Derivação de Chaves mostra exatamente qual nível da árvore exportar e quais informações estão contidas na chave pública estendida.

Aplicação 3: Organização Multi-Conta

Cenário: Você quer separar seus fundos de Bitcoin em contas distintas (ex.: reserva, trading, negócios) usando uma única frase seed.

Usando a Ferramenta de Derivação de Chaves:

  1. Conta 0: m/84'/0'/0' — Reserva pessoal
  2. Conta 1: m/84'/0'/1' — Trading
  3. Conta 2: m/84'/0'/2' — Negócios

Cada conta tem seu próprio conjunto de endereços e chaves estendidas. A derivação hardened no nível de conta garante que comprometer as chaves de uma conta não afete as outras.

Aplicação 4: Exploração de Chaves Cross-Chain

Cenário: Você quer entender como uma frase seed gera endereços para Bitcoin e Ethereum.

Usando a Ferramenta de Derivação de Chaves:

  1. Insira sua frase seed
  2. Navegue até m/44'/0'/0'/0/0 — esta é a chave de Bitcoin
  3. Navegue até m/44'/60'/0'/0/0 — esta é a chave de Ethereum
  4. Observe: as chaves são completamente diferentes apesar de virem da mesma seed
  5. O nível coin_type (0' vs 60') é onde as árvores divergem

Isso demonstra como a hierarquia do BIP-44 evita qualquer sobreposição entre cadeias mantendo a recuperabilidade por seed única.

Aplicação 5: Verificando o Comportamento de Hardware Wallet

Cenário: Você quer confirmar que sua hardware wallet não está mentindo sobre quais endereços ela controla.

Usando a Ferramenta de Derivação de Chaves:

  1. Em uma máquina air-gapped, insira a frase seed com a qual você inicializou sua hardware wallet
  2. Derive os 10 primeiros endereços no mesmo caminho usado pela hardware wallet
  3. Compare cada endereço com o que a hardware wallet exibe
  4. Se todos coincidirem, a hardware wallet está implementando corretamente a derivação BIP-32/44
  5. Se forem diferentes, pode haver um problema de firmware, passphrase diferente ou incompatibilidade de caminho de derivação

Entendendo Endereços de Troco

Um dos aspectos mais confusos das carteiras HD para novos usuários é o conceito de endereços de troco. A Ferramenta de Derivação de Chaves ajuda a desmistificar isso.

O Que São Endereços de Troco?

No Bitcoin (e em cadeias semelhantes baseadas em UTXO), quando você gasta de um endereço, normalmente consome toda a "saída de transação não gasta" (UTXO) naquele endereço. Se você quiser enviar 0.5 BTC, mas a UTXO for 1.0 BTC, a transação cria duas saídas:

  1. 0.5 BTC para o endereço do destinatário
  2. 0.5 BTC (menos taxas) para um endereço de troco que você controla

Esse endereço de troco vem da cadeia interna (change = 1) no seu caminho de derivação:

  • Endereços de recebimento: m/84'/0'/0'/0/x
  • Endereços de troco: m/84'/0'/0'/1/x

Visualizando Endereços de Troco na Ferramenta de Derivação de Chaves

Navegue para a cadeia de troco definindo o componente de change como 1:

CaminhoTipoFinalidade
m/84'/0'/0'/0/0ExternoPrimeiro endereço de recebimento
m/84'/0'/0'/0/1ExternoSegundo endereço de recebimento
m/84'/0'/0'/1/0InternoPrimeiro endereço de troco
m/84'/0'/0'/1/1InternoSegundo endereço de troco

Entender endereços de troco é crucial para recuperação de carteira. Se você escanear apenas endereços externos, pode perder fundos em endereços de troco. A Ferramenta de Derivação de Chaves mostra ambas as cadeias.

Tipos de Moeda SLIP-44

O nível coin_type nos caminhos BIP-44 usa valores registrados do SLIP-44. Aqui estão os mais usados:

MoedaTipo SLIP-44Prefixo do Caminho
Bitcoin0'm/84'/0'/...
Bitcoin Testnet1'm/84'/1'/...
Litecoin2'm/84'/2'/...
Dogecoin3'm/44'/3'/...
Ethereum60'm/44'/60'/...
Ethereum Classic61'm/44'/61'/...
Bitcoin Cash145'm/44'/145'/...
Stellar148'm/44'/148'/...
Ripple (XRP)144'm/44'/144'/...
Cardano1815'm/1852'/1815'/...
Solana501'm/44'/501'/...
Polkadot354'm/44'/354'/...
Cosmos118'm/44'/118'/...
Tron195'm/44'/195'/...
Avalanche9000'm/44'/9000'/...

A Ferramenta de Derivação de Chaves usa esses valores registrados quando você seleciona uma criptomoeda, mas você também pode inserir caminhos personalizados manualmente.

Para a lista completa, veja Supported Blockchains.

Avançado: Gap Limit e Descoberta de Endereços

Quando uma carteira é recuperada a partir de uma frase seed, ela precisa descobrir quais endereços já foram usados. Ela faz isso escaneando endereços sequencialmente a partir do índice 0 e verificando histórico de transações na blockchain.

O gap limit é o número de endereços não usados consecutivos que a carteira escaneia antes de parar. O padrão BIP-44 recomenda gap limit de 20. Isso significa que, se os endereços 0-15 foram usados, mas os endereços 16-35 não, a carteira escaneia até o endereço 35 (16 + gap 20) e conclui que não há mais endereços usados.

Implicações:

  • Se você gerar mais de 20 endereços sequenciais no Gerador de Endereços do SafeSeed e usar endereços não sequenciais (ex.: pular do índice 5 para o índice 30), algumas carteiras podem não descobrir os endereços posteriores durante a recuperação
  • A maioria das carteiras permite aumentar o gap limit nas configurações
  • A Ferramenta de Derivação de Chaves ajuda você a entender exatamente quais índices foram derivados e potencialmente usados

FAQ

Qual é a relação entre BIP-32, BIP-44, BIP-49, BIP-84 e BIP-86?

BIP-32 define o algoritmo central para derivação de chaves determinística hierárquica — como ir de uma chave pai para uma chave filha. BIP-44 define uma organização padrão para a árvore de chaves resultante (purpose/coin/account/change/index). BIP-49, BIP-84 e BIP-86 são extensões que usam o mesmo algoritmo BIP-32 e a estrutura BIP-44, mas especificam valores de purpose diferentes (49, 84, 86) e formatos de codificação de endereço diferentes (SegWit, Native SegWit, Taproot, respectivamente).

Posso usar a Ferramenta de Derivação de Chaves para encontrar criptomoedas perdidas?

Se você tiver a frase seed correta mas não souber qual caminho de derivação foi usado, a Ferramenta de Derivação de Chaves pode ajudar você a explorar sistematicamente todos os caminhos padrão. Derive endereços para cada combinação de caminho e confira em um explorador de blockchain. Este é o caso de uso mais comum para depuração de recuperação de carteira.

O que significa derivação "hardened" na prática?

Derivação hardened significa que a chave filha só pode ser derivada usando a chave privada pai. Na prática, isso cria um limite de segurança: se alguém obtiver uma chave filha abaixo de um nó hardened, não consegue retroceder para descobrir a chave privada pai. Por isso os três primeiros níveis dos caminhos BIP-44 (purpose, coin_type, account) são hardened — isso evita que um comprometimento no nível de endereço exponha sua chave mestra.

Por que minha carteira mostra um zpub em vez de um xpub?

O prefixo (xpub, ypub, zpub) indica o formato de endereço para o qual a chave pública estendida foi projetada. xpub é para Legacy (BIP-44), ypub é para SegWit (BIP-49), e zpub é para Native SegWit (BIP-84). Todos contêm o mesmo tipo de dados (uma chave pública estendida com chain code), mas o byte de versão muda para sinalizar o formato de endereço esperado. A Ferramenta de Derivação de Chaves mostra qual formato se aplica em cada nível.

Posso derivar chaves Ethereum usando caminhos BIP-84?

Tecnicamente, você pode derivar chaves em qualquer caminho, mas Ethereum usa BIP-44 (m/44'/60'/...) por convenção. BIP-84 é um padrão específico de Bitcoin para endereços Native SegWit. A Ferramenta de Derivação de Chaves derivará corretamente endereços Ethereum quando você usar o caminho padrão de Ethereum. Usar caminhos não padrão produziria chaves válidas, mas nenhum software de carteira as reconheceria.

O que acontece se eu usar o índice de conta errado?

Se você derivou endereços da conta 0', mas seus fundos estão na conta 1', eles não aparecerão em uma varredura padrão de carteira. A Ferramenta de Derivação de Chaves permite navegar por diferentes índices de conta para descobrir qual conta contém seus fundos. A maioria das carteiras usa a conta 0' por padrão, mas algumas permitem criar contas adicionais.

Como a Ferramenta de Derivação de Chaves lida com a passphrase?

A passphrase (25ª palavra) é aplicada durante a etapa inicial de derivação da seed (BIP-39), antes de qualquer derivação de chave BIP-32 começar. Uma passphrase diferente produz uma seed mestra completamente diferente, que por sua vez produz uma árvore de chaves totalmente diferente. A Ferramenta de Derivação de Chaves mostra a seed mestra após a aplicação da passphrase, para que você possa verificar se está trabalhando com a seed correta.

Existe profundidade máxima para derivação de chaves?

O BIP-32 teoricamente suporta derivação em profundidade arbitrária, mas o BIP-44 padroniza em cinco níveis (purpose/coin/account/change/index). Ir além de cinco níveis não é padrão e não é suportado por softwares de carteira comuns. A Ferramenta de Derivação de Chaves suporta os cinco níveis padrão e permite caminhos personalizados para exploração avançada.

Guias Relacionados