SLIP-39 é uma especificação SatoshiLabs de partes mnemônicas interoperáveis baseadas em Shamir's Secret Sharing. Padroniza divisão, metadados, verificação de erros e passphrase; as partes não são intercambiáveis com uma frase BIP 39.
Para o backup de uma carteira BIP 32, o segredo mestre é sua semente de entrada, não a raiz privada estendida. Primeiro cria-se o encrypted master secret (EMS), depois suas partes. Os cálculos usam GF(256) byte a byte; a especificação guarda o segredo em f(255) e, com limiar de pelo menos 2, um resumo de verificação em f(254). [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes] [BIP 32 — Hierarchical Deterministic Wallets]
Primeiro deve ser atingido o limiar de membros de cada grupo necessário, depois o de grupos. Exemplo: 2 de 3 grupos, cada um com 2 de 3 membros. Duas partes de A e duas de B bastam; três de A e uma de B não, embora também sejam quatro. Um esquema simples de 2 de 3 usa um grupo. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes]
A lista tem 1024 palavras inglesas e não acompanha a tradução da interface. Um segredo de 128 bits produz partes de 20 palavras, um de 256 bits de 33. A parte também contém identificador, indicador extendable, expoente de iterações, índices e limiares. A combinação verifica metadados iguais e índices de membro únicos; duas cópias da mesma parte não são dois membros. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes]
As últimas três palavras formam RS1024, que garante detectar erros em no máximo três palavras. Não provam origem nem autorização do titular; a especificação desaconselha correção automática. Um resumo de reconstrução ajuda a detectar conjuntos incorretos. Sua verificação de 32 bits impede aplicar sem ressalvas ao SLIP-39 a afirmação ideal de vazamento zero abaixo do limiar. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes]
A criptografia usa quatro rodadas Feistel com PBKDF2-HMAC-SHA256, cada uma com 2500×2^e iterações. A especificação admite ASCII imprimível 32–126 e usa uma cadeia vazia sem passphrase. A passphrase correta não pode ser verificada diretamente: outra gera outro segredo mestre. Partes válidas não confirmam a carteira desejada; confira seus endereços conhecidos. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes]
BIP 39 tem outra lista, soma de verificação e conversão de frase em semente. Distribuir suas palavras entre papéis não cria SLIP-39 nem sua proteção por limiar. Preservar a carteira numa migração exigiria manter a semente BIP 32 correta e o contexto de derivação; recodificar a entropia original com outras palavras não garante isso. Verifique o procedimento específico suportado. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes] [BIP 39 — Mnemonic code for generating deterministic keys]
O indicador extendable igual a 1 omite o identificador do sal de criptografia. Permite dividir novamente o mesmo EMS com outro identificador sem conhecer a passphrase. Trezor descreve ampliar um backup compatível de uma parte para várias. O conjunto novo não invalida o antigo: uma combinação original suficiente ainda recupera o mesmo segredo. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes] [Trezor — Multi-share Backup]
SLIP-39 recompõe um segredo na recuperação; não cria Multisig nem aprovação on-chain de cada transação. A distribuição deve limitar perdas conjuntas e a obtenção de uma combinação suficiente por um atacante. Teste a recuperação num dispositivo confiável, preserve passphrase e contexto da carteira, e verifique compatibilidade com a implementação de referência e vetores de teste. A quantidade de partes sozinha não basta. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes] [Trezor — python-shamir-mnemonic reference implementation]
Para ter uma visão mais completa, leia este verbete junto com Shamir Secret Sharing, BIP 39, Trezor, Multisig, HD Wallet. Também há referências a este verbete em BIP 39, Pavol “Stick” Rusnák, Shamir Secret Sharing.