Frase Mnemônica e Seed
Representa um número aleatório grande como uma sequência de palavras
BIP 39: Mnemonic code for generating deterministic keys
Uma frase mnemônica ("seed mnemônica", "frase semente") representa um número aleatório grande como uma sequência de palavras, o que facilita o armazenamento por humanos.
Essas palavras são então usadas para criar uma seed, que é usada para gerar as chaves estendidas em uma carteira HD.
Uma frase mnemônica geralmente tem 12 ou 24 palavras. Qualquer uma das duas é perfeitamente adequada.
Criando
Como você cria uma frase mnemônica e uma seed?
Há três passos:
1. Gerar Entropia
Comece gerando alguma entropia (a fonte de aleatoriedade). É um número aleatório de 128 bits (para 12 palavras) a 256 bits (para 24 palavras).
2. Entropia → Frase Mnemônica
Adicione um checksum à entropia (os primeiros bits do SHA-256 dela), divida o resultado em grupos de 11 bits, e mapeie cada grupo de 11 bits (um número de 0 a 2047) para uma palavra da lista de 2048 palavras do BIP39.
SHA-256
3. Frase Mnemônica → Seed
A frase mnemônica passa pela função PBKDF2 (com HMAC-SHA512, 2048 iterações) para produzir uma seed de 512 bits (64 bytes). Opcionalmente, você pode adicionar uma frase de acesso (passphrase) como "sal" extra, criando uma seed completamente diferente.
A frase de acesso opcional funciona como uma "25ª palavra": mesmo que alguém descubra suas 12/24 palavras, sem a frase de acesso não consegue derivar a seed correta.
Validação
Como a frase mnemônica é validada?
Como a frase mnemônica contém um checksum embutido (vindo da entropia), a carteira consegue detectar se você digitou uma palavra errada ou na ordem errada — a frase não vai passar na verificação do checksum.
Nunca compartilhe sua frase mnemônica. Qualquer pessoa com acesso a ela tem acesso a todos os bitcoins da sua carteira.