BIP32 junta cada chave a um chain code de 256 bits. HMAC-SHA512 e um caminho numerado derivam filhos; xpub produz descendentes públicos normais, enquanto hardened exige material privado. Essa fronteira permite delegação e delimita vazamentos.
Pieter Wuille escreveu BIP32, atribuído em 11-02-2012. A hierarquia delega account ou receive branch sem expor outros. Não é consenso e não define mnemonic, passphrase, script ou discovery; BIP39, paths e descriptors são camadas distintas. [BIP 32 — Hierarchical deterministic wallets] [BIP 39 — Mnemonic code for deterministic keys] [Bitcoin Developer Guide — Wallets]
Extended private key é scalar secp256k1 k mais chain code c de 32 bytes; a pública usa K=point(k). HMAC-SHA512 com key ‘Bitcoin seed’ gera IL candidato master e IR chain code. IL=0 ou IL≥n invalida o seed. [BIP 32 — Hierarchical deterministic wallets]
CKDpriv soma parse256(IL) ao parent scalar módulo n; IR vira child code. Normal usa serP(Kpar)||ser32(i); hardened usa 0x00||ser256(kpar)||ser32(i), i≥2^31. CKDpub só produz children públicos normais. [BIP 32 — Hierarchical deterministic wallets]
xpub gera normal public descendants. Porém parent xpub + um child private key non-hardened vazado recupera parent private key e siblings. Hardened bloqueia esse cálculo específico, não roubo do seed, RNG fraco ou assinatura aprovada por engano. [BIP 32 — Hierarchical deterministic wallets]
A serialização de 78 bytes contém version, depth, fingerprint pai, child number, chain code e key data, depois Base58Check. xprv/xpub mainnet costuma ter 111 caracteres. Fingerprint não autentica; ypub/zpub SLIP132 tem suporte desigual. [BIP 32 — Hierarchical deterministic wallets] [SLIP 132 — Registered HD version bytes]
BIP43 usa purpose'. BIP44: m/44'/coin_type'/account'/change/index, 0/1 e gap limit 20; BIP48 trata multisig, BIP84 SegWit, BIP86 Taproot. São convenções wallet, não dados do seed nem regras de nodes; ' soma 2^31. [BIP 43 — Purpose field for deterministic wallets] [BIP 44 — Multi-account hierarchy] [BIP 48 — Multi-script hierarchy for multisig wallets] [BIP 84 — Native SegWit derivation] [BIP 86 — Single-key Taproot derivation]
Um xpub limitado permite watch-only e endereços sem assinar, mas o vazamento liga endereços antigos/futuros, saldos e horários. Host comprometido substitui endereço; confirme recebimentos importantes na tela do signer. [BIP 32 — Hierarchical deterministic wallets] [Bitcoin Developer Guide — Wallets] [Trezor Learn — Hierarchical deterministic wallets]
xpub não expressa script. Descriptor inclui origin [fingerprint/path], wrapper wpkh(), threshold/cosigners multisig, wildcards e checksum. Um seed multisig não recupera outros xpub, ordem ou limiar; guarde descriptor testado. [BIP 380 — Output script descriptors] [BIP 389 — Multipath descriptor key expressions] [Bitcoin Core — Output descriptors] [Bitcoin Optech — Output script descriptors]
Root seed evita backup de cada key, mas recovery exige passphrase, formato, rede, purpose/script, coin type, accounts, receive/change, gap policy e multisig descriptor. Saldo zero pode ser árvore errada. Teste UTXO e assinatura. [BIP 44 — Multi-account hierarchy] [BIP 380 — Output script descriptors] [Bitcoin Core — Output descriptors] [BIP 39 — Mnemonic code for deterministic keys]
Casos raros IL≥n, scalar zero ou ponto infinito pulam ao próximo index. Mais comuns: origin perdido, discovery diferente, ypub/zpub, change omitido, Taproot ausente ou xpub em depth errada. xprv gasta; xpub revela; descriptor mapeia policy. [BIP 32 — Hierarchical deterministic wallets] [BIP 380 — Output script descriptors] [SLIP 132 — Registered HD version bytes] [Bitcoin Core — Output descriptors]
Para ter uma visão mais completa, leia este verbete junto com Carteira, Seed Phrase, Extended Public Key (xpub), Derivation Path, Gap Limit, Bitcoin. Também há referências a este verbete em Endereço Bitcoin, BIP 39, Cold Storage, Watch-only Wallet.