Visão geral
O BIP32 especifica um sistema para derivar uma árvore de pares de chaves criptográficas a partir de uma única semente mestre. Conhecidas como carteiras determinísticas hierárquicas (HD), essa abordagem revolucionou o gerenciamento de chaves no Bitcoin ao permitir que os usuários façam backup de todas as chaves atuais e futuras com uma única semente, e organizem as chaves em hierarquias lógicas.
Árvore de derivação de chaves
Semente Mestre
│
└── Chave Mestre (m)
│
├── m/0 (Conta 0)
│ ├── m/0/0 (Cadeia externa - endereços de recebimento)
│ │ ├── m/0/0/0 (Endereço 0)
│ │ ├── m/0/0/1 (Endereço 1)
│ │ └── ...
│ └── m/0/1 (Cadeia interna - endereços de troco)
│ ├── m/0/1/0 (Endereço de troco 0)
│ └── ...
│
└── m/1 (Conta 1)
└── ...
Como funciona
O BIP32 usa uma função de sentido único chamada HMAC-SHA512 para derivar chaves filhas de chaves pai. Cada derivação recebe uma chave pai, um código de cadeia (entropia adicional) e um número de índice como entradas, produzindo uma nova chave filha e código de cadeia. Esse processo pode ser repetido indefinidamente, criando uma árvore de profundidade arbitrária.
Derivação reforçada vs. normal
O BIP32 define dois tipos de derivação de chaves filhas:
- Derivação normal: A chave pública filha pode ser derivada apenas da chave pública pai. Isso possibilita carteiras somente leitura usando chaves públicas estendidas.
- Derivação reforçada (indicada com um apóstrofo, ex.: m/44'): Requer a chave privada pai, fornecendo uma barreira de segurança para que o comprometimento de uma chave filha não leve à derivação de chaves irmãs.
Benefícios práticos
Antes do BIP32, as carteiras precisavam gerar e fazer backup de cada chave individualmente. Perder um backup significava perder acesso a qualquer moeda recebida em novos endereços. As carteiras HD resolveram isso tornando todas as chaves deterministicamente reproduzíveis a partir de uma única semente, tipicamente codificada como uma frase mnemônica BIP39 para backup legível por humanos.