MSTR Cat

Blockchain/Nível IV · Protocolo a fundo/4.2 Atualizações/Lição 4

Descritores de saída

A gramática da chave: por que uma frase-semente sozinha pode não ser suficiente para restaurar o que você construiu

MateriaisUma instância em execução do Bitcoin Core (versão 23 ou posterior)Uma carteira de hardware capaz de exportar descritores públicosUm editor de texto para inspecionar e modificar strings de descritores

Curiosidade

  1. Que informações específicas faltam em uma frase-semente de recuperação de 24 palavras para torná-la insuficiente para restaurar todos os endereços de uma carteira multisig?
  2. Como um checksum anexado a uma string de descrição detecta um único caractere trocado antes que o software tente fazer a importação?
  3. Por que o Bitcoin Core mudou as novas carteiras para o modo de descritor por padrão na versão 23, e o que acontece se você restaurar uma carteira do estilo antigo com um backup moderno?

Explorar

  1. Antes dos descritores, as carteiras HD dependiam de caminhos de derivação implícitos. O usuário fazia o backup da frase-semente ou da chave pública estendida (xpub) e assumia que o software reconstruiria os endereços usando as convenções padrão do BIP44. Isso funcionava para carteiras simples com assinatura única até a ativação do Segregated Witness em agosto de 2017, no bloco 481.824. A introdução dos tipos de endereço P2WPKH e P2WSH fez com que uma única xpub não descrevesse mais toda a estrutura de como os endereços eram derivados, resultando em falhas na restauração, quando os fundos pareciam perdidos porque a carteira procurava pelo tipo de script errado.
  2. O BIP380 define os Descritores de Script de Saída como uma linguagem padrão para descrever coleções de scripts de saída utilizados em carteiras Bitcoin HD. Enquanto o BIP380 estabelece a estrutura, os BIPs 381 a 386 especificam os tipos individuais de expressões, como pk(), pkh(), sh(), wpkh() e wsh(). Um descritor é uma expressão estruturada que descreve completamente um script de saída (scriptPubKey). Por exemplo, 'wpkh([d34db33f/84'/0'/0']xpub…/0/*)' indica explicitamente o tipo do script, a origem da chave por meio da impressão digital mestra e do caminho de derivação, a chave pública estendida e o intervalo de índices a serem verificados. Nada fica a critério de suposição.
  3. O formato inclui um checksum após o caractere '#' para detectar erros de digitação. Se um usuário editar manualmente um descritor ou copiá-lo incorretamente, o software verifica o checksum antes de aceitar a entrada. Isso evita corrupções silenciosas, nas quais um endereço inválido seria escaneado indefinidamente sem resultados. As carteiras de hardware podem exportar descritores que contêm chaves públicas e caminhos de derivação, mas excluem explicitamente as chaves privadas, permitindo que nós online monitorem ativos offline com segurança, sem expor a frase-semente.
  4. O Miniscript, desenvolvido por Pieter Wuille, Andrew Poelstra e Sanket Kanjalkar a partir de 2019 e especificado no BIP379 (2023), oferece uma maneira estruturada de escrever e analisar scripts. Ele permite que as carteiras combinem mecanismos de timelock, multisig e hashlock de forma segura, decompondo a lógica complexa dos scripts em unidades simples e analisáveis. Os descritores podem então descrever caminhos de recuperação protegidos por timelock e condições envolvendo várias partes, algo que uma frase-semente sozinha nunca conseguiria representar.
  5. O Bitcoin Core passou a usar, por padrão, carteiras descritivas em vez das carteiras tradicionais na versão 23 (2022), e a versão 30 (2025) eliminou completamente as carteiras antigas; as antigas só podem ser migradas. As carteiras criadas com frases-semente BIP39 enfrentam o mesmo problema: para qualquer coisa além de uma carteira simples com uma única chave, é necessário fazer backup do descritor juntamente com a frase-semente. Embora esses dados não comprometam a segurança da chave privada em caso de vazamento — já que contêm apenas informações públicas — eles exigem proteção contra vazamentos de privacidade, pois revelam exatamente quais endereços o usuário controla e sua estrutura de derivação.
  6. Para ver isso em prática, crie uma nova carteira no Bitcoin Core e execute ‘listdescriptors’ para imprimir seus descritores, cada um terminando com um checksum após ‘#’. Copie um deles, altere um único caractere e passe-o para ‘getdescriptorinfo’: o Bitcoin Core rejeitá-lo-á com um erro de checksum. Observe que o comando simples ‘listdescriptors’ mostra apenas as chaves públicas, o suficiente para uma cópia somente de observação; restaurar a capacidade de gasto requer ‘listdescriptors true’, que inclui as chaves privadas e deve ser protegido adequadamente, ou então é necessário um backup do arquivo da carteira.

Fatos-chave

  • O BIP380 define os Descritores de Script de Saída como uma linguagem padrão para descrever os scripts de saída de carteiras HD.
  • O descritor inclui explicitamente o tipo de script, a origem da chave (impressão digital/caminho), as chaves públicas e os intervalos de índice.
  • O checksum anexado após '#' verifica a integridade da string do descritor em relação a erros de digitação.
  • A versão 23 do Bitcoin Core (2022) tornou as carteiras descritivas a opção padrão para a criação de novas carteiras.
  • O Miniscript (BIP379) permite que os descritores representem scripts complexos, como multisig e timelocks, de forma segura.
  • Carteiras de hardware exportam descritores apenas públicos, permitindo assinaturas em ambiente isolado com nós online.

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

9ReunirListe 9 tipos diferentes de scripts de saída ou configurações de carteira (por exemplo, P2PKH, P2SH-P2WSH, multisig 2-de-3). Para cada um, indique quais dados específicos são necessários para restaurá-lo.
6AgruparAgrupe os 9 em 6 categorias com base em se um caminho padrão BIP44 é suficiente ou se dados de descritor explícitos são obrigatórios para uma restauração correta.
3DestilarReduza os 6 grupos a 3 razões principais pelas quais os caminhos de derivação implícita falham nos tipos de carteiras modernas.
1CristalizarEscreva 1 frase explicando o que um descritor adiciona a uma frase-semente que torna a restauração determinística.

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