Skip to main content

Transacción Bitcoin Parcialmente Firmada (PSBT) | Bitcoin Glossary | Mapping Bitcoin

Transacción Bitcoin Parcialmente Firmada (PSBT)

Desarrollo

Also known as: PSBT

Partially Signed Bitcoin Transaction: formato para transacciones parcialmente firmadas, diseñado para flujos multisig y carteras hardware desconectadas.

Visión general

Las Transacciones Bitcoin Parcialmente Firmadas (PSBTs), definidas en BIP174, proporcionan un formato de datos estándar para representar transacciones Bitcoin en varias etapas del proceso de firma. Antes de los PSBTs, no había una forma universal de pasar una transacción sin firmar de una billetera a una billetera de hardware para firmar, o de coordinar firmas entre múltiples partes en una configuración multisig. PSBT resolvió este problema de interoperabilidad.

Flujo de trabajo PSBT

Un PSBT pasa por roles distintos, que pueden ser realizados por diferentes software o dispositivos:

┌──────────┐    ┌──────────┐    ┌──────────┐    ┌───────────┐
│ Creador  │───>│Actualizad│───>│ Firmante │───>│Finalizador│
│          │    │    or    │    │ (uno o   │    │           │
│ Construye│    │          │    │  varios) │    │ Combina   │
│ tx sin   │    │ Añade    │    │          │    │ y elimina │
│ firmar   │    │ info UTXO│    │ Añade    │    │ metadatos │
│          │    │ scripts, │    │ firmas   │    │ PSBT      │
│          │    │ rutas    │    │ parciales│    │           │
└──────────┘    └──────────┘    └──────────┘    └─────┬─────┘
                                                      │
                                                      ▼
                                               ┌───────────┐
                                               │ Extractor │
                                               │           │
                                               │ Produce   │
                                               │ tx cruda  │
                                               │ final para│
                                               │ difundir  │
                                               └───────────┘

Casos de uso principales

  • Firma con billetera de hardware — Una billetera de solo lectura crea el PSBT, el dispositivo de hardware lo firma y la billetera difunde la transacción finalizada
  • Coordinación multisig — Cada firmante añade su firma al PSBT en turno, o las firmas se recopilan en paralelo y se combinan
  • CoinJoin — Múltiples participantes añaden sus entradas y firman solo su porción de una transacción colaborativa
  • Firma con espacio de aire — Los PSBTs pueden transferirse mediante códigos QR o tarjetas SD a dispositivos de firma completamente fuera de línea

Datos contenidos en un PSBT

Un PSBT agrupa la transacción cruda con todos los metadatos que los firmantes necesitan: salidas de transacciones anteriores (para verificación), scripts de canje, scripts de testigo, rutas de derivación BIP32 y firmas parciales. Esto significa que un firmante no necesita acceso a la cadena de bloques para validar y firmar.

PSBT Versión 2

BIP370 introdujo PSBT v2, que permite que la propia transacción sea modificada durante el proceso de construcción (añadiendo o eliminando entradas y salidas). Esto es particularmente útil para protocolos interactivos como PayJoin y CoinJoin donde la forma final de la transacción no se conoce en el momento de la creación.

Concepto erróneo común

Los PSBTs no son un nuevo tipo de transacción en la red Bitcoin. Un PSBT es puramente un formato de datos fuera de la cadena para construir y firmar transacciones. Una vez finalizada, la transacción resultante es indistinguible de cualquier otra transacción Bitcoin válida.