Aller au contenu principal
Script

PSBT

PSBT (Partially Signed Bitcoin Transaction, BIP-174) est un format standard pour transporter une transaction entre signataires. Indispensable au multisig et aux hardware wallets. Permet workflow off-line/air-gapped sans révéler la clé. Évolution majeure pour la sécurité.

Définition

PSBT (Partially Signed Bitcoin Transaction) est un format binaire standard défini par le BIP-174 (Andrew Chow, 2017) qui décrit une transaction Bitcoin en cours de construction, accompagnée de toutes les métadonnées nécessaires à sa signature : clés publiques, chemins de dérivation, scripts, montants, etc.

Avant PSBT, faire un multisig demandait à chaque cosignataire de connaître intimement la structure interne de la transaction. PSBT standardise ce format et rend les signatures multi-acteurs inter-opérables entre wallets et hardware wallets.

Pourquoi c'est important

Imaginez un multisig 2-of-3 entre Alice (Coldcard), Bob (Trezor) et Charlie (Ledger). Sans PSBT :

  • Format propriétaire incompatible entre devices.
  • Échanges manuels d'informations.
  • Risque d'erreur.

Avec PSBT :

  1. Alice crée une PSBT dans Sparrow.
  2. Elle la transfère à son Coldcard (via SD card, QR code).
  3. Le Coldcard signe et renvoie la PSBT enrichie.
  4. La PSBT passe au Trezor de Bob, qui signe à son tour.
  5. La PSBT contient maintenant les 2 signatures requises, prête à être diffusée.

Anatomie d'une PSBT

Une PSBT contient plusieurs sections :

| Section | Contenu | |---------|---------| | Global | Version, transaction unsigned, métadonnées globales | | Inputs | Pour chaque input : UTXO, scriptPubKey, redeemScript, dérivations, signatures partielles | | Outputs | Pour chaque output : scriptPubKey, redeemScript, dérivations |

Les dérivations BIP-32 permettent au hardware wallet de savoir quelle clé utiliser sans deviner.

Workflow type

[Coordinator]
    |
   PSBT vierge (transaction + métadonnées)
    |
    v
[Signer 1] -- signature partielle --> PSBT enrichie
    |
    v
[Signer 2] -- signature partielle --> PSBT enrichie
    |
    v
[Finalizer] -- assemble scriptSig/witness --> Transaction finale
    |
    v
[Broadcaster] -- envoie au réseau

Chaque étape lit la PSBT en entrée, ajoute son apport, et produit une nouvelle PSBT en sortie. Le format est commutatif : peu importe l'ordre des signataires.

Formats d'encodage

| Format | Usage | |--------|-------| | Binaire | Stockage compact | | Base64 | Transport via texte | | QR code animé (UR2.0) | Air-gapped (BC-UR) | | PSBTv2 (BIP-370) | Évolution avec inputs/outputs modifiables |

L'encodage UR (Uniform Resources) est devenu standard pour les transferts air-gapped via QR codes (Coldcard, Passport, SeedSigner).

Versions

  • PSBTv0 (BIP-174, 2017) : version originale, transaction immuable.
  • PSBTv2 (BIP-370, 2022) : inputs/outputs modifiables à la signature.
  • PSBTv2 + Taproot : signatures Schnorr, MuSig2.

Aujourd'hui, la plupart des wallets supportent v0 et v2.

Implémentations

| Logiciel | Support | |----------|---------| | Bitcoin Core | v0 et v2 | | Sparrow Wallet | v0 et v2 | | Specter Desktop | v0 et v2 | | BlueWallet | v0 | | Coldcard | v0 et v2 | | Passport | v0 et v2 | | Trezor | v0 | | Ledger | v0 et v2 | | BitBox02 | v0 et v2 |

Cas d'usage

1. Multisig

L'usage classique : 2-of-3 entre cosignataires géographiquement distribués.

2. Hardware wallet singlesig

Même en singlesig, le software wallet (Sparrow) construit une PSBT et la transmet au hardware (Coldcard) pour signature. La clé privée ne quitte jamais le device.

3. Air-gapped workflow

PSBT par QR codes ou SD card : le device de signature n'est jamais connecté à Internet.

4. CoinJoin coordinator

Les CoinJoins WabiSabi (Wasabi/Ginger) utilisent des PSBT pour collecter les signatures de chaque participant.

5. Lightning Channel Funding

Ouvrir un canal LN sur un hardware wallet utilise une PSBT à signer.

Sécurité

PSBT permet de :

  • Vérifier ce qu'on signe (montants, destinataires) sur l'écran du hardware.
  • Refuser les transactions suspectes.
  • Détecter un wallet logiciel compromis qui essaie de voler des fonds.

C'est l'antidote au clipboard hijacking et autres attaques de wallet software.

À retenir

La PSBT est la lingua franca des wallets Bitcoin modernes. Sans elle, les multisigs et hardware wallets seraient un cauchemar d'interopérabilité. C'est l'évolution silencieuse qui a permis l'industrialisation de la self-custody sécurisée entre 2018 et 2024.

Termes lies

← Retour au glossaire complet

Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.