MSTR Cat

Blockchain/Nível II · Mecânica/2.1 Criptografia/Lição 7

Frases-semente (BIP39)

Doze palavras, um checksum e a semente de 512 bits que controla tudo

MateriaisA lista de palavras em inglês do BIP39 (github.com/bitcoin/bips)Um notebook

Curiosidade

  1. Por que uma sequência aleatória de bits se torna doze palavras em inglês em vez de permanecer como hexadecimal?
  2. O que acontece com a carteira se uma palavra na frase for substituída por outra da mesma lista?
  3. Como as mesmas doze palavras podem gerar duas carteiras completamente diferentes?

Explorar

  1. O BIP39, desenvolvido em 2013 por programadores, incluindo a equipe responsável pela carteira de hardware Trezor, converte entropia criptográfica bruta em uma sequência mnemônica legível para humanos. Copiar manualmente 32 ou 64 caracteres hexadecimais leva a erros; palavras são mais fáceis de escrever, reler e verificar. O padrão define um mapeamento determinístico entre sequências binárias e palavras de um dicionário fixo, permitindo que os usuários recuperem toda a sua hierarquia de chaves memorizando ou anotando uma lista curta.
  2. O processo começa com entropia: uma sequência aleatória de 128, 160, 192, 224 ou 256 bits. Um checksum é anexado a essa entropia ao se tomar os primeiros N bits do seu hash SHA-256, onde N é igual ao comprimento da entropia dividido por 32. Para uma frase padrão de 12 palavras (entropia de 128 bits), isso adiciona 4 bits; para 24 palavras (entropia de 256 bits), adiciona-se 8 bits. Esse checksum permite que o software da carteira detecte a maioria dos erros de transcrição imediatamente após a importação.
  3. A string combinada de entropia e checksum é dividida em segmentos de 11 bits, cada um dos quais indexa uma palavra da lista em inglês do BIP39, composta por 2.048 entradas únicas. A lista foi elaborada de modo que nenhuma duas palavras compartilhem as mesmas quatro primeiras letras, reduzindo a ambiguidade durante a transcrição manual. Como o segmento final inclui parte do checksum, sequências aleatórias de palavras geralmente falham: apenas cerca de 1 em cada 16 sequências aleatórias de 12 palavras passam no checksum (1 em 256 para 24 palavras).
  4. Para obter a semente real utilizada na geração das chaves, a frase mnemônica e uma senha opcional são inseridas no algoritmo PBKDF2-HMAC-SHA512 com 2.048 iterações. O sal é formado pela string literal “mnemonic”, seguida pela senha (ou apenas “mnemonic” se não houver senha). Essa função de processamento gera uma semente determinística de 512 bits. Quando uma senha é utilizada, um atacante que possua todas as doze palavras ainda não consegue obter a semente sem ela, desde que a senha seja forte o suficiente para resistir a tentativas de adivinhação.
  5. Esse mecanismo cria um modelo de segurança de duas camadas. O mnemônico oferece capacidade de recuperação e detecção básica de erros, enquanto a senha atua como uma camada de “carteira oculta”. Alguns usuários mantêm uma carteira isca simples sob as palavras do mnemônico e seus fundos principais atrás de uma senha. No entanto, isso também representa um risco: se a senha for esquecida ou perdida, o acesso aos fundos é permanentemente revogado, já que não há como recuperá-los apenas com o mnemônico.
  6. Nem todas as carteiras seguem o BIP39; o Electrum utiliza seu próprio esquema, e o SLIP-0039 divide os segredos em partes Shamir para custódia por várias partes. No entanto, o BIP39 continua sendo o padrão dominante devido à ampla compatibilidade entre dispositivos de hardware e aplicativos de software. A semente de 512 bits gerada aqui serve como entrada raiz para a derivação hierárquica determinística de chaves do BIP32, o que significa que cada chave privada em uma carteira pode ser rastreada até essa combinação específica de frase e senha.

Fatos-chave

  • O BIP39 mapeia 128–256 bits de entropia, além de um checksum SHA-256, para 12–24 palavras de uma lista com 2.048 palavras.
  • A lista de palavras em inglês foi projetada de modo que as primeiras quatro letras identifiquem de forma única cada palavra.
  • PBKDF2-HMAC-SHA512 com 2.048 iterações transforma o mnemônico e a senha em uma semente de 512 bits.
  • Uma senha diferente aplicada ao mesmo mnemônico gera uma carteira completamente distinta e válida.
  • Perder as palavras mnemônicas ou a senha associada resulta em perda permanente do acesso aos fundos.
  • SLIP-0039, um padrão separado e incompatível, divide um segredo em partes de Shamir para recuperação por limiar.

Exercício nove, seis, três, um

9ReunirListe 9 carteiras ou dispositivos de assinatura e indique se cada um utiliza BIP39, seu próprio esquema ou SLIP-39.
6AgruparAgrupe os 9 em 6 de acordo com a forma como fazem o backup das chaves: 12 palavras, 24 palavras, palavras mais senha, compartilhamentos Shamir, configuração multisig ou outro.
3DestilarReduza os 6 para 3 compromissos entre facilidade de recuperação e resistência ao roubo.
1CristalizarEscreva 1 frase explicando por que a palavra final em uma frase BIP39 é matematicamente distinta das onze anteriores.

Verificação de fatos

Datas, números e afirmações verificados com as fontes publicadas listadas abaixo.

Abrir na academia interativa →

EN ES ZH JA KO RU DE FR MS