Skip to main content

Transação Bitcoin Parcialmente Assinada (PSBT) | Bitcoin Glossary | Mapping Bitcoin

Transação Bitcoin Parcialmente Assinada (PSBT)

Desenvolvimento

Also known as: PSBT

Formato BIP174 para transações parcialmente assinadas, permitindo que múltiplos dispositivos ou partes contribuam assinaturas em fluxos multisig.

Visão geral

As Transações Bitcoin Parcialmente Assinadas (PSBTs), definidas no BIP174, fornecem um formato de dados padrão para representar transações Bitcoin em vários estágios do processo de assinatura. Antes dos PSBTs, não havia uma forma universal de passar uma transação não assinada de uma carteira para uma carteira de hardware para assinatura, ou de coordenar assinaturas entre múltiplas partes em uma configuração multisig. O PSBT resolveu esse problema de interoperabilidade.

Fluxo de trabalho PSBT

Um PSBT passa por funções distintas, que podem ser realizadas por diferentes softwares ou dispositivos:

┌──────────┐    ┌──────────┐    ┌──────────┐    ┌───────────┐
│ Criador  │───>│Atualizad │───>│Assinante │───>│Finalizador│
│          │    │    or    │    │ (um ou   │    │           │
│ Constrói │    │          │    │  vários) │    │ Combina   │
│ tx sem   │    │ Adiciona │    │          │    │ e remove  │
│ assinar  │    │ info UTXO│    │ Adiciona │    │ metadados │
│          │    │ scripts, │    │ assinat. │    │ PSBT      │
│          │    │ caminhos │    │ parciais │    │           │
└──────────┘    └──────────┘    └──────────┘    └─────┬─────┘
                                                      │
                                                      ▼
                                               ┌───────────┐
                                               │ Extrator  │
                                               │           │
                                               │ Produz    │
                                               │ tx bruta  │
                                               │ final para│
                                               │ transmitir│
                                               └───────────┘

Principais casos de uso

  • Assinatura com carteira de hardware — Uma carteira somente leitura cria o PSBT, o dispositivo de hardware o assina e a carteira transmite a transação finalizada
  • Coordenação multisig — Cada assinante adiciona sua assinatura ao PSBT em sequência, ou as assinaturas são coletadas em paralelo e combinadas
  • CoinJoin — Múltiplos participantes adicionam suas entradas e assinam apenas sua porção de uma transação colaborativa
  • Assinatura com isolamento de ar — Os PSBTs podem ser transferidos via códigos QR ou cartões SD para dispositivos de assinatura completamente offline

Dados contidos em um PSBT

Um PSBT agrupa a transação bruta com todos os metadados que os assinantes precisam: saídas de transações anteriores (para verificação), scripts de resgate, scripts de testemunha, caminhos de derivação BIP32 e assinaturas parciais. Isso significa que um assinante não precisa de acesso ao blockchain para validar e assinar.

PSBT Versão 2

O BIP370 introduziu o PSBT v2, que permite que a própria transação seja modificada durante o processo de construção (adicionando ou removendo entradas e saídas). Isso é particularmente útil para protocolos interativos como PayJoin e CoinJoin, onde a forma final da transação não é conhecida no momento da criação.

Conceito errôneo comum

Os PSBTs não são um novo tipo de transação na rede Bitcoin. Um PSBT é puramente um formato de dados fora da cadeia para construir e assinar transações. Uma vez finalizada, a transação resultante é indistinguível de qualquer outra transação Bitcoin válida.