Carteiras HD e Caminhos de Derivacao Explicados (BIP44)
Índice
Quando voce configura uma carteira de criptomoedas e recebe uma seed phrase de 12 palavras, esse unico backup da acesso a todas as contas que a carteira criara --- em Bitcoin, Ethereum, Solana e qualquer outra cadeia suportada. O mecanismo que torna isso possivel e chamado de carteira HD, e o sistema de enderecos que ela usa e governado por caminhos de derivacao.
Este guia explica como carteiras HD transformam uma seed em um numero ilimitado de chaves, o que um caminho de derivacao como m/44'/60'/0'/0/0 realmente significa, e por que acertar o caminho importa quando voce migra entre carteiras ou blockchains.
O Que e uma Carteira HD?¶
HD significa Hierarchical Deterministic (Hierarquica Deterministica). O termo vem do BIP32, uma especificacao publicada em 2012 que define como derivar uma arvore de pares de chaves criptograficas a partir de uma unica raiz.
Hierarquica significa que as chaves sao organizadas em uma estrutura de arvore --- uma chave pai pode produzir chaves filhas, e essas filhas podem produzir netas. A arvore pode ramificar tao profundamente quanto necessario.
Deterministica significa que o processo e repetivel. Dada a mesma raiz (a semente mestre), a mesma arvore de chaves e produzida toda vez, em toda carteira que segue o padrao.
Antes das carteiras HD, cada novo endereco exigia gerar e fazer backup de uma chave privada aleatoria separada. Se voce gerasse 100 enderecos, precisaria de 100 backups. Perca um, e esses fundos se foram. Carteiras HD eliminaram esse problema. Voce faz backup da seed uma vez, e toda chave que a carteira derivar no futuro ja esta coberta por esse backup.
A raiz da arvore vem de uma seed phrase BIP39. O mnemonico e convertido em uma semente binaria de 512 bits via PBKDF2 (como descrito em BIP39 Explicado). Essa semente de 512 bits e dividida em uma chave privada mestre (256 bits) e um chain code mestre (256 bits). Juntos, formam a raiz da qual toda a arvore cresce.
Anatomia de m/44'/60'/0'/0/0¶
Um caminho de derivacao e o endereco dentro da arvore que identifica uma chave especifica. Parece um caminho de arquivo em um computador, e cada segmento indica qual ramo seguir.
Vamos decodificar m/44'/60'/0'/0/0, o caminho padrao para o primeiro endereco Ethereum:
m / 44' / 60' / 0' / 0 / 0
| | | | | |
| | | | | +-- Indice de endereco (0 = primeiro endereco)
| | | | +------ Troco (0 = externo/recebimento, 1 = interno/troco)
| | | +----------- Conta (0 = primeira conta)
| | +----------------- Tipo de moeda (60 = Ethereum)
| +------------------------ Proposito (44 = padrao BIP44)
+---------------------------- Chave mestre (raiz da arvore)
Detalhamento de cada nivel:¶
m --- A chave mestre. Todo caminho de derivacao comeca aqui. Esta e a raiz derivada diretamente da sua seed.
44' --- O proposito. O numero 44 indica que este caminho segue o padrao BIP44 para carteiras multi-conta e multi-moeda. O apostrofo (ou ') marca isso como uma derivacao "endurecida", significando que a chave filha nao pode ser calculada apenas a partir da chave publica pai --- requer a chave privada. Esta e uma medida de seguranca.
60' --- O tipo de moeda. Cada criptomoeda recebe um numero pelo SLIP-44 (mais sobre isso abaixo). Ethereum e 60. Bitcoin e 0. Solana e 501. Este nivel permite que uma seed sirva multiplas blockchains sem colisoes de chaves.
0' --- O indice de conta. Pense nisso como carteiras separadas dentro da sua carteira. Conta 0 e o padrao. Voce poderia usar conta 1 para outro proposito --- poupanca versus gastos, por exemplo. A maioria dos usuarios nunca passa da conta 0.
0 --- O nivel de troco. No modelo UTXO do Bitcoin, 0 significa enderecos externos (recebimento) e 1 significa enderecos internos (troco). Ethereum nao usa enderecos de troco da mesma forma, mas o nivel e preservado por compatibilidade.
0 --- O indice de endereco. Este e o numero final que incrementa para produzir novos enderecos. Indice 0 e seu primeiro endereco, indice 1 e o segundo e assim por diante. Sua carteira incrementa esse valor cada vez que voce solicita um novo endereco de recebimento.
BIP44 e Tipos de Moeda SLIP-44¶
BIP44 padronizou a estrutura de caminho de derivacao mostrada acima. Foi publicado em 2014 e construido sobre a derivacao de chaves do BIP32 com uma hierarquia fixa de cinco niveis: proposito / tipo de moeda / conta / troco / indice de endereco.
SLIP-44 (Satoshi Labs Improvement Proposal 44) mantem o registro de numeros de tipos de moeda. Cada blockchain recebe um inteiro unico para que a mesma seed produza chaves completamente diferentes para cadeias diferentes. Aqui estao algumas atribuicoes comuns:
| Tipo de Moeda | Blockchain | Caminho Padrao |
|---|---|---|
| 0 | Bitcoin | m/44'/0'/0'/0/0 |
| 2 | Litecoin | m/44'/2'/0'/0/0 |
| 60 | Ethereum (e cadeias EVM) | m/44'/60'/0'/0/0 |
| 144 | XRP | m/44'/144'/0'/0/0 |
| 195 | Tron | m/44'/195'/0'/0/0 |
| 501 | Solana | m/44'/501'/0'/0' |
| 9006 | Avalanche (C-Chain) | m/44'/60'/0'/0/0 |
Note que a C-Chain do Avalanche usa o tipo de moeda 60 (tipo do Ethereum) porque sua C-Chain e compativel com EVM e compartilha o mesmo formato de endereco. O mesmo se aplica a Polygon, Arbitrum, Optimism e Base --- todos usam m/44'/60'/0'/0/0, o que significa que o mesmo endereco Ethereum e valido em todas essas redes.
E por isso que quando voce adiciona Polygon ou Arbitrum ao MetaMask, seu endereco e o mesmo que o endereco Ethereum. Todos derivam do mesmo caminho. A distincao acontece no nivel da rede (chain ID), nao no nivel de derivacao de chave.
Diferentes Cadeias, Diferentes Caminhos¶
Enquanto cadeias EVM compartilham o caminho do Ethereum, cadeias nao-EVM usam suas proprias convencoes, e as diferencas importam.
Caminhos Bitcoin¶
O Bitcoin evoluiu por varios formatos de endereco, cada um com seu proprio padrao de derivacao:
| Padrao | Caminho | Tipo de Endereco | Prefixo |
|---|---|---|---|
| BIP44 | m/44'/0'/0'/0/0 |
Legado (P2PKH) | 1... |
| BIP49 | m/49'/0'/0'/0/0 |
SegWit Aninhado (P2SH-P2WPKH) | 3... |
| BIP84 | m/84'/0'/0'/0/0 |
SegWit Nativo (bech32) | bc1q... |
| BIP86 | m/86'/0'/0'/0/0 |
Taproot | bc1p... |
A maioria das carteiras Bitcoin modernas usa BIP84 (SegWit nativo) como padrao porque oferece taxas de transacao menores. Se voce restaurar uma seed em uma carteira e seus fundos nao aparecerem, a carteira pode estar escaneando o caminho de derivacao errado. Alternar entre BIP84 e BIP44 (ou vice-versa) nas configuracoes da carteira geralmente resolve.
Caminhos Solana¶
Solana usa ed25519 em vez de secp256k1, entao sua derivacao e estruturalmente diferente. O caminho padrao e m/44'/501'/0'/0' --- note que todos os quatro niveis sao endurecidos (marcados com '). Algumas carteiras Solana usam m/44'/501'/0' ou m/44'/501', e o caminho especifico varia por aplicativo de carteira. Phantom e Solflare usam convencoes diferentes, o que pode causar confusao ao migrar. Para um passo a passo detalhado, veja o Guia de Geracao de Carteira Solana.
XRP e Tron¶
XRP usa tipo de moeda 144 com caminho m/44'/144'/0'/0/0. Tron usa tipo de moeda 195 com m/44'/195'/0'/0/0. Ambos usam secp256k1 como Bitcoin e Ethereum, mas sua codificacao de endereco difere.
BIP84 vs BIP44: Por Que o Bitcoin Tem Multiplos Padroes¶
Se voce ja usou Bitcoin, pode ter notado que alguns enderecos comecam com 1, alguns com 3 e enderecos modernos comecam com bc1q. Isso nao e cosmetico --- cada formato corresponde a um padrao de derivacao diferente e tipo de script.
BIP44 (m/44'/0'/...) gera enderecos P2PKH legados (o formato 1...). Este foi o caminho Bitcoin original derivado do BIP32. Ainda funciona, mas esses enderecos usam mais espaco de bloco por transacao.
BIP49 (m/49'/0'/...) gera enderecos SegWit aninhados P2SH (o formato 3...). Estes foram um formato de transicao que forneceu as economias de taxa do SegWit mantendo compatibilidade com carteiras mais antigas.
BIP84 (m/84'/0'/...) gera enderecos SegWit nativos usando codificacao bech32 (o formato bc1q...). Este e o formato mais eficiente para transacoes padrao e e o padrao na maioria das carteiras modernas.
A percepao chave e que todos os tres formatos podem ser derivados da mesma seed phrase. Suas 12 palavras nao mudam. O que muda e o nivel de proposito no caminho de derivacao: 44, 49 ou 84. Uma carteira que suporte os tres escaneara cada caminho para encontrar seus fundos.
Ao gerar ou restaurar uma carteira Bitcoin, sempre verifique qual padrao de derivacao a carteira usa por padrao. Se voce ver um formato de endereco diferente do esperado, a carteira provavelmente esta usando um padrao BIP diferente. Para explorar formatos de enderecos Bitcoin em detalhe, veja Formatos de Enderecos Cripto Explicados.
Derivacao de Chave Passo a Passo¶
Aqui esta como a derivacao completa funciona, da seed phrase a um endereco Ethereum utilizavel:
Passo 1: Mnemonico para Semente¶
Seu mnemonico de 12 palavras e processado pelo PBKDF2-HMAC-SHA512 com 2.048 iteracoes e o sal "mnemonic" (mais uma frase-senha opcional). A saida e uma semente binaria de 512 bits.
Passo 2: Semente para Chave Mestre¶
A semente de 512 bits e processada pelo HMAC-SHA512 com a chave "Bitcoin seed" (essa string de chave e usada independentemente da blockchain alvo). Os 256 bits da esquerda se tornam a chave privada mestre. Os 256 bits da direita se tornam o chain code mestre.
Passo 3: Chave Mestre para Chaves Filhas¶
A partir da chave mestre, cada nivel do caminho de derivacao executa uma funcao de derivacao de chave filha (CKD). Para filhos endurecidos (marcados com '), a chave privada pai e o chain code sao alimentados no HMAC-SHA512 junto com o indice filho. O resultado e uma nova chave privada (filha) e chain code.
Para filhos normais (nao endurecidos), a chave publica pai e usada em vez da chave privada. Isso e o que possibilita carteiras somente leitura --- voce pode derivar chaves publicas e enderecos sem ter a chave privada.
Passo 4: Chave Privada para Chave Publica¶
No nivel final da derivacao, a chave privada filha e convertida em chave publica por multiplicacao em curva eliptica. Para Ethereum, isso usa a curva secp256k1. A operacao e: Chave Publica = Chave Privada * G, onde G e o ponto gerador da curva.
Passo 5: Chave Publica para Endereco¶
A chave publica e hashada para produzir o endereco blockchain. Para Ethereum, a chave publica e hashada com Keccak-256, e os ultimos 20 bytes (40 caracteres hex) se tornam o endereco, prefixado com 0x. Para Bitcoin, o processo envolve SHA-256 seguido de RIPEMD-160, depois codificacao Base58Check ou bech32 dependendo do tipo de endereco.
Voce pode ver todo esse processo em acao usando o Gerador de Enderecos Ethereum ou o Gerador de Enderecos Bitcoin do SafeSeed, que mostram cada passo da seed ao endereco.
Por Que Isso Importa na Pratica¶
Entender caminhos de derivacao nao e apenas academico. Aqui estao situacoes concretas onde importa:
- Restaurar uma carteira em software diferente. Se voce migrar do Ledger para Trezor, ou do MetaMask para outra carteira, certifique-se de que o caminho de derivacao corresponda. Mesma seed mais caminho diferente resulta em enderecos diferentes e fundos aparentemente ausentes.
- Acessar multiplas cadeias. Sua seed phrase ja cobre Polygon, Arbitrum e outras cadeias EVM --- todas usam o tipo de moeda 60 do Ethereum. Nenhum backup separado necessario.
- Depurar fundos ausentes. Se restaurar uma seed Bitcoin e nao conseguir ver seu saldo, tente alternar entre caminhos BIP44, BIP49 e BIP84 nas configuracoes da carteira.
- Gerar enderecos para propositos especificos. Ao incrementar o indice de conta (o terceiro nivel), voce pode criar carteiras logicamente separadas --- uma para gastos diarios, outra para armazenamento de longo prazo --- tudo a partir da mesma seed phrase.
O sistema de caminhos de derivacao e o que transforma uma unica seed phrase em uma carteira multi-cadeia e multi-conta. E a camada de infraestrutura que torna a autocustodia moderna de criptomoedas poderosa e portatil. Uma vez que voce o entenda, pode migrar entre carteiras, cadeias e formatos de endereco com confianca.