62 / 736BIP174

PSBT

Transação Bitcoin parcialmente assinada

O computador pode preparar um pagamento enquanto as chaves ficam na carteira de hardware. A PSBT transporta a proposta e os dados necessários para verificá-la; depois da aprovação, o dispositivo acrescenta uma assinatura. O mesmo formato ajuda quando várias pessoas ou dispositivos precisam assinar um único pagamento.

PSBT é um formato padrão para passar uma transação Bitcoin em preparação entre carteiras e dispositivos que a verificam e assinam. A sigla significa Partially Signed Bitcoin Transaction, ou transação Bitcoin parcialmente assinada, mas o arquivo pode ainda não ter nenhuma assinatura. Ele transporta a proposta, os dados de apoio e as assinaturas, não as chaves privadas. Quando o material necessário está completo, é possível obter uma transação comum para enviar à rede. Uma assinatura digital é uma autorização verificável criada com uma chave privada, o dado secreto que permite assinar. A chave em si não é revelada.

Multisig: simulador do limiar de assinaturasVeja se as chaves restantes em um modelo m de n atingem o limiar de assinaturas. O resultado descreve a disponibilidade de assinaturas, não a segurança nem a recuperação completa da carteira.

Ana quer enviar a Pavel 60 000 sat, sessenta mil das menores unidades do bitcoin. Sua carteira utiliza uma saída de 100 000 sat recebida anteriormente e ainda não gasta. Uma saída registra uma quantia e as condições para gastá-la. Neste exemplo, a carteira propõe 60 000 sat para Pavel, 39 000 sat de troco para Ana e deixa 1 000 sat para a taxa. Por enquanto, são apenas instruções. O aplicativo as coloca em uma PSBT e a passa à carteira de hardware, por cabo, QR code ou cartão de memória, conforme o dispositivo. Ana confere o pagamento na tela do aparelho e autoriza a assinatura. O que volta é a assinatura, não a chave secreta. Portanto, o dispositivo que prepara o pagamento não precisa ser aquele autorizado a assiná-lo. [1] [4]

Um arquivo com extensão .psbt não é automaticamente um pagamento seguro. O computador que o criou pode estar comprometido ou apenas mal configurado. Ana compara o destinatário com o endereço que recebeu de Pavel, verifica o valor, a taxa total e a devolução do troco à própria carteira. Ao usar uma carteira de hardware, segue a tela confiável do aparelho e o procedimento do fabricante. O software de assinatura também verifica os dados de apoio e quais dados a assinatura abrange. O termo técnico sighash descreve quais partes da transação ficam protegidas contra alterações pela assinatura. Um iniciante não deve aprovar um modo incomum sem entendê-lo. Se o endereço estiver errado ou a taxa não puder ser verificada, é preciso rever a proposta, não contornar a checagem. [1]

Em uma carteira Multisig que exige duas de três assinaturas, Ana pode acrescentar a primeira e Pavel a segunda, cada um no próprio dispositivo. Eles não precisam trocar palavras de recuperação nem estar conectados ao mesmo tempo. Um coordenador, o aplicativo que organiza o processo, reúne os dados do mesmo pagamento e combina as assinaturas. Cada pessoa ainda precisa confirmar sua própria intenção; o coordenador não decide por ela. O BIP 174 chama de creator quem inicia a proposta, updater quem acrescenta dados, signer quem assina e combiner quem combina versões correspondentes. O finalizer monta os dados finais que satisfazem as condições das entradas, e o extractor obtém a transação comum para a rede. Um programa costuma desempenhar várias funções. Esses nomes descrevem tarefas, não seis participantes obrigatórios. [1] [4]

Uma PSBT pode revelar quais moedas você pretende gastar, para quem está pagando, quanto recebe de troco e como os endereços se relacionam. Também pode conter um xpub, dados públicos que permitem derivar outras chaves públicas e, em conjunto com as regras da carteira, endereços, ou caminhos de derivação, a localização das chaves na estrutura da carteira. Não envie o arquivo a um serviço aleatório só para decodificá-lo. Uma PSBT assinada também pode permitir que outra pessoa conclua e transmita a transação específica que você autorizou, se todo o material necessário estiver disponível. Apagar sua cópia não revoga a assinatura. O arquivo tampouco substitui a Seed Phrase (as palavras de backup usadas para recuperar as chaves) ou um backup completo da configuração Multisig: ele serve a um pagamento específico, não à recuperação geral da carteira. [1] [4]

Acrescentar uma assinatura não significa que a rede saiba do pagamento. Depois de montar a transação final, alguém precisa transmiti-la. Um nó é um computador com software que verifica transações e blocos do Bitcoin. Um nó então a avalia conforme as regras da rede e sua política de aceitação de transações; um minerador poderá incluí-la em um bloco. Falta de assinatura, entrada já gasta e taxa insuficiente são problemas diferentes, que um botão de conclusão não resolve sozinho. Teste sua combinação específica de aplicativo, dispositivo e tipo de carteira antes de depender do processo. No Bitcoin Core 29, analyzepsbt pode indicar dados ou assinaturas ausentes. finalizepsbt pode gerar a transação concluída; enviá-la é uma etapa posterior. Mesmo uma conclusão bem-sucedida não equivale a uma confirmação em bloco. [4] [5] [6]

O BIP 174 define a PSBT como um formato binário que guarda informações em pares chave–valor. Aqui, chave é o identificador de um campo, não automaticamente uma chave privada de Bitcoin. Um mapa global descreve a transação inteira, os mapas de entrada descrevem as saídas gastas e os mapas de saída descrevem as novas saídas criadas. Além da proposta, podem conter scripts, ou seja, as condições de gasto, a origem das chaves e assinaturas parciais. Os dados podem ser salvos em um arquivo .psbt ou representados em Base64, uma codificação de dados binários em texto. Base64 não é criptografia. PSBT não é um novo tipo de transação nas regras do Bitcoin: a rede recebe a transação resultante, não o arquivo de trabalho inteiro. [1]

Um dispositivo fora da rede precisa saber o que está sendo solicitado a assinar. Uma UTXO é uma saída anterior ainda não gasta; uma nova entrada faz referência a ela. Non-Witness UTXO pode transportar a transação anterior inteira, enquanto Witness UTXO transporta a saída específica com seu valor e condições. As evidências exigidas dependem do tipo de entrada e das regras do software de assinatura. As verificações incluem o identificador da transação anterior e a saída correspondente, as relações entre scripts e um sighash aceitável. A ausência do valor não pode ser tratada como taxa zero, nem a falta de evidências como verificação concluída. Forneça os dados por um processo confiável, em vez de tentar adivinhá-los. [1]

A versão da PSBT descreve a estrutura do formato, não a quantidade de assinaturas nem a versão da própria transação Bitcoin. A PSBT v0 guarda a transação não assinada em um campo global; se a versão da PSBT for omitida, isso significa v0. A PSBT v2, definida no BIP 370, exclui esse campo e separa as informações necessárias para montar a transação em campos individuais. Isso permite acrescentar entradas e saídas dentro dos limites das alterações permitidas e das assinaturas existentes. Não significa que um pagamento assinado possa ser reescrito livremente. Os dois lados precisam entender a versão; dizer apenas que um produto “suporta PSBT” não esclarece suficientemente a compatibilidade. [2]

O BIP 371 acrescenta as informações necessárias para Taproot, incluindo assinaturas, scripts e a origem das chaves. Esses campos funcionam tanto na PSBT v0 quanto na PSBT v2. Assim, uma carteira pode usar Taproot no primeiro formato sem suportar o segundo. Da mesma forma, suportar v2 não significa que o dispositivo trate todos os cenários de Taproot. Assinar pelo caminho de chave e gastar por um ramo de script são formas diferentes de cumprir as condições de uma saída Taproot. Para o usuário, isso leva a uma pergunta direta: minha configuração específica consegue lidar com o pagamento que quero assinar? A resposta vem da documentação e de um fluxo testado, não de uma sigla na lista de recursos. [3]

Para ter uma visão mais completa, leia este verbete junto com Multisig, Hardware Wallet, Cold Storage, Output Descriptor. Também há referências a este verbete em Multisig, Cold Storage, Hardware Wallet, Watch-only Wallet.

DOC · 001BIP 174 — PSBTEspecificação DOC · 002BIP 370 — PSBT Version 2Especificação DOC · 003BIP 371 — Taproot Fields for PSBTEspecificação DOC · 004Bitcoin Core — PSBT HowtoDocumentação DOC · 005Bitcoin Core 29 RPC — analyzepsbtDocumentação DOC · 006Bitcoin Core 29 RPC — finalizepsbtDocumentação
Revisto em: Fontes em primeiro lugar · Não é recomendação de investimento