Ferramentas para frases-semente

Por que você nunca deve cortar a frase-semente em partes

Parece uma boa ideia. Você anota suas 24 palavras em três cartões, com 16 palavras em cada um. Quaisquer dois cartões bastam para reconstruir a semente, então perder um deles não é um desastre. O problema é que quem encontrar um cartão só precisa adivinhar 8 palavras, cerca de 80 bits dos 256 originais. Veja como funciona o cálculo, use a calculadora e conheça as formas padrão de compartilhar um backup com segurança.

Última revisão em

Um cartão de recuperação em branco cortado na diagonal em duas metades separadas, para ilustrar o risco de dividir um backup da semente.

Uma divisão que algumas pessoas tentam

Nesse esquema, você numera as palavras de 1 a 24 e as copia em três cartões.

Três cartões de 16 palavras cada. Quaisquer dois reúnem as 24 palavras.
Cartão Palavras 1–8 Palavras 9–16 Palavras 17–24
A✓ Sim✓ Sim— Não
B— Não✓ Sim✓ Sim
C✓ Sim— Não✓ Sim

Parece um backup 2 de 3 sensato. Se você perder um cartão, os outros dois bastam. Mas o esquema não protege contra roubo, porque cada cartão revela dois terços da semente.

O que um único cartão revela

Cada palavra da frase-semente vem de uma lista de 2.048 palavras, por isso representa 11 bits (2 elevado a 11 = 2.048). Uma frase de 24 palavras tem 24 × 11 = 264 bits. Pelo padrão BIP-39, são 256 bits aleatórios mais uma soma de verificação de 8 bits.

Quem tem um cartão conhece 16 palavras e precisa descobrir outras 8. Oito palavras são 8 × 11 = 88 bits. Mas a soma de verificação vem dos outros bits. Ela não é secreta, por isso ajuda a descartar combinações erradas. Desconte os 8 bits dela e restam cerca de 80 bits para adivinhar.

80 bits parecem muito. Compare com estas referências.

  • Sua frase-semente completa de 24 palavras tem 256 bits. Um cartão reduz o espaço de busca por um fator de 2 elevado a 176.
  • A frase mais curta que o BIP-39 permite tem 12 palavras e 128 bits. Com um só cartão, o espaço de busca é cerca de 281 trilhões de vezes (2 elevado a 48) menor do que nesse nível.
  • O NIST, órgão de normalização dos Estados Unidos, classifica a proteção criptográfica abaixo de 112 bits como Disallowed (não permitida) para novos usos e exige pelo menos 128 bits a partir de 2031 (SP 800-57 Part 1, tabela 4).

Uma pessoa que encontre um cartão perdido não vai necessariamente decifrar sua semente amanhã. Mas basta um cartão para eliminar a margem de segurança prevista para a semente, e você não tem como saber quem o encontrou.

O que alguém saberia ao encontrar um cartão

Escolha o tamanho da frase-semente. Depois, mova o controle ou digite quantas palavras a pessoa que encontrar um cartão consegue ler.

Tamanho da frase-semente

80 bits para adivinhar

Combinações válidas restantes: aproximadamente 1,2 × 10 elevado a 24

16 palavras à vista e 8 palavras para adivinhar. Restam 80 bits. Isso fica abaixo do mínimo de 112 bits do NIST e dos 128 bits da frase-semente padrão mais curta.

Como o cálculo funciona

Bits para adivinhar = 11 × palavras que faltam − bits da soma de verificação. O resultado mínimo é zero.

A soma de verificação ocupa 8 bits em uma frase de 24 palavras e 4 bits em uma de 12 palavras (o BIP-39 define um bit para cada 32 bits aleatórios).

Por que subtrair a soma de verificação?

Quem encontra um cartão testa combinações para as palavras que faltam. Um cálculo rápido de hash basta para conferir se a soma de verificação é válida. Com 24 palavras, 255 de cada 256 combinações falham nesse teste e são descartadas na hora. Só as restantes exigem o teste demorado de reconstruir a carteira e procurar fundos. Restam 2 elevado a bits restantes combinações.

O que a fórmula pressupõe

  • Quem encontra o cartão sabe quais posições estão faltando. A maioria dos backups numera as palavras, por isso é mais seguro partir desse pressuposto.
  • Sua semente partiu de um valor totalmente aleatório. Se o gerador era fraco, como na falha da Coldcard de 2026 (em inglês), há ainda menos para adivinhar.
  • Sem passphrase BIP-39. Uma passphrase forte guardada em outro lugar dá uma proteção extra. Isso não justifica cortar a frase-semente. Se você esquecer a passphrase, perde os fundos para sempre.
  • Os números são médias. Se faltar só uma palavra, por exemplo, em média cerca de 8 das 2.048 palavras cabem naquela posição. São exatamente 8 quando falta a última palavra.

Um exemplo que você pode conferir. Quando se conhecem 23 das 24 palavras, a fórmula dá 3 bits, que correspondem a 8 palavras possíveis. O guia da BitBox sobre dados descreve o mesmo caso. Depois que você insere 23 palavras, o dispositivo oferece oito opções válidas para a última.

Todos os números

Frase de 24 palavras (256 bits + 8 bits de soma de verificação)
Palavras que a pessoa lê Bits para adivinhar (e combinações válidas) Exemplo
0 de 24, 24 para adivinhar 256 aproximadamente 1,2 × 10 elevado a 77 combinações Segurança completa
8 de 24, 16 para adivinhar 168 aproximadamente 3,7 × 10 elevado a 50 combinações
12 de 24, 12 para adivinhar 124 aproximadamente 2,1 × 10 elevado a 37 combinações Uma metade de uma frase cortada em duas
16 de 24, 8 para adivinhar 80 aproximadamente 1,2 × 10 elevado a 24 combinações Um dos três cartões
18 de 24, 6 para adivinhar 58 aproximadamente 2,9 × 10 elevado a 17 combinações
20 de 24, 4 para adivinhar 36 68.719.476.736 combinações
22 de 24, 2 para adivinhar 14 16.384 combinações
23 de 24, 1 para adivinhar 3 8 combinações Falta uma palavra
24 de 24, 0 para adivinhar 0 1 combinação A frase inteira
Frase de 12 palavras (128 bits + 4 bits de soma de verificação)
Palavras que a pessoa lê Bits para adivinhar (e combinações válidas) Exemplo
0 de 12, 12 para adivinhar 128 aproximadamente 3,4 × 10 elevado a 38 combinações Segurança completa
4 de 12, 8 para adivinhar 84 aproximadamente 1,9 × 10 elevado a 25 combinações
6 de 12, 6 para adivinhar 62 aproximadamente 4,6 × 10 elevado a 18 combinações Uma metade de uma frase cortada em duas
8 de 12, 4 para adivinhar 40 1.099.511.627.776 combinações Um dos três cartões
10 de 12, 2 para adivinhar 18 262.144 combinações
11 de 12, 1 para adivinhar 7 128 combinações
12 de 12, 0 para adivinhar 0 1 combinação A frase inteira

Cortar a frase também facilita perder seus bitcoins

Separar a frase em partes cria mais formas de perder o acesso, além do risco de roubo. Se você cortar uma frase de 24 palavras ao meio, vai precisar das duas metades. Se perder qualquer uma delas, perde a carteira. Para quem encontrar uma metade, restam só 124 bits para adivinhar, menos que em uma frase de 12 palavras. O esquema de três cartões resiste à perda de um, mas agora você precisa proteger três esconderijos em vez de um.

Se você já cortou a frase-semente

Um backup cortado não significa que alguém tenha roubado seus bitcoins. Siga estes passos com calma.

  1. Confira se você ainda tem acesso a todas as partes. Não digite nenhuma delas em um computador, celular ou site para “testá-las”.
  2. Se todas as partes estiverem seguras e ninguém mais tiver visto nenhuma, você tem tempo. Planeje a mudança para uma das opções abaixo.
  3. Se faltar uma parte ou outra pessoa puder tê-la visto, transfira os fundos para uma carteira com uma semente nova. Não redefina sua carteira de hardware para criá-la. Se faltar uma parte, o dispositivo pode ser a única cópia que ainda funciona. Crie a semente nova em outra carteira de hardware, faça um backup completo e teste o backup. Envie primeiro um valor pequeno e depois o restante. Destrua as partes antigas só depois que todos os fundos chegarem.

Alternativas a cortar a frase-semente

1. Para a maioria das pessoas, guarde a frase-semente inteira

Anote uma cópia completa e legível e guarde-a em um lugar seguro. Se você se preocupar com incêndio ou perda, guarde uma segunda cópia completa em outro lugar seguro. Cada cópia dá acesso completo à carteira, por isso proteja as duas como chaves. Depois, teste a cópia com a verificação do backup da frase-semente.

Se você guarda um valor modesto, esta costuma ser a opção mais segura. Cada parte extra é mais uma coisa que você pode perder ou usar de forma errada.

2. Compartilhe a semente de forma segura com SLIP-39

O SLIP-39 (muitas vezes chamado de backup de Shamir) divide um segredo em partes. Você escolhe quantas são necessárias para reconstruí-lo, por exemplo, 2 de 3. Essa é a diferença em relação a cortar as palavras. Conhecer menos partes do que o necessário não revela informações sobre o segredo principal. Quem encontrar só uma parte não descobre nada sobre o segredo.

As partes usam uma lista de palavras própria. Cada parte tem 20 palavras para um segredo de 128 bits ou 33 para um de 256 bits. SLIP-39 e BIP-39 são padrões diferentes. Cortar as 24 palavras não as transforma em partes de SLIP-39. É possível converter uma semente BIP-39 existente, mas cada parte fica com 59 palavras. Os autores do SLIP-39 recomendam transferir os fundos para uma carteira nova com backup SLIP-39. Assim você também deixa de usar as palavras antigas. Só algumas carteiras são compatíveis, por isso confira a sua antes de começar.

3. Divida o controle sobre os fundos com multisig

Uma carteira multisig 2 de 3 usa três sementes separadas, de preferência em dispositivos de fabricantes diferentes. Quaisquer duas permitem gastar os fundos. Quem encontrar uma única semente não consegue gastar nada. O custo é a complexidade. Você também precisa de um backup da configuração da carteira (o descritor), e cada passo a mais abre espaço para um erro.

Teste o que você aprendeu

Você divide suas 24 palavras em duas metades de 12 e as esconde em lugares diferentes. Alguém encontra uma metade. Quantos bits restam para essa pessoa adivinhar?

124 bits (11 × 12 − 8). É menos que em uma frase de 12 palavras. Além disso, se você perder qualquer uma das metades, perde a carteira.

A soma de verificação dificulta adivinhar uma frase-semente cortada?

Não. A soma vem das outras palavras, por isso ajuda a descartar combinações erradas. É por isso que a fórmula a subtrai.

O que alguém descobre ao encontrar uma só parte de um backup SLIP-39 2 de 3?

Nada sobre o seu segredo. Com menos partes do que o mínimo exigido, ninguém descobre nada sobre o segredo. Essa é a diferença entre compartilhar uma semente com SLIP-39 e cortar a frase em partes.