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 :
- Alice crée une PSBT dans Sparrow.
- Elle la transfère à son Coldcard (via SD card, QR code).
- Le Coldcard signe et renvoie la PSBT enrichie.
- La PSBT passe au Trezor de Bob, qui signe à son tour.
- 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
- Multisig (multisignature)Une transaction multisig requiert plusieurs signatures pour être valide (M-of-N). Permet de partager le contrôle d'un wallet entre plusieurs parties ou clés stockées séparément. C'est l'outil clé pour la sécurité avancée et l'héritage. Standard avec Sparrow, Specter, Liana, Nunchuk.
- Hardware walletUn hardware wallet (portefeuille materiel) est un appareil physique qui stocke vos cles privees Bitcoin de maniere securisee, isolees d'Internet. Les transactions sont signees sur l'appareil, protegeant vos fonds meme si votre ordinateur est compromis. Les marques populaires incluent Ledger, Trezor, Coldcard et BitBox.
- Air-gappedUn dispositif air-gapped n'a aucune connexion réseau (USB, Wi-Fi, Bluetooth). Communique par QR code, micro-SD ou NFC. Standard pour les hardware wallets de pointe (Coldcard, Passport, Krux). Réduit drastiquement la surface d'attaque.
- BIP-174BIP-174 spécifie PSBT (Partially Signed Bitcoin Transaction). Format universel pour transactions multi-signataires. Successeur de l'ancien format wallet.dat.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.