Aller au contenu principal
BIP

BIP-322

BIP-322 standardise la signature de messages avec des wallets SegWit/Taproot. Permet de prouver la propriété d'une adresse sans dépenser. Utile pour les preuves de réserves.

Le besoin

Depuis les premiers temps de Bitcoin, on peut signer un message avec une clé pour prouver la propriété d'une adresse legacy (P2PKH). Mais l'ancien format (Sign Message / Verify Message) ne fonctionne que pour les adresses 1.... Comment prouver qu'on possède une adresse SegWit bc1q... ou Taproot bc1p... ? Comment signer pour une multisig ? BIP-322, rédigé par Karl-Johan Alm en septembre 2018, généralise la signature à tous les types de scripts.

Le principe : un PSBT déguisé

L'idée de BIP-322 est de construire deux transactions virtuelles :

  • to_spend : une transaction fictive qui envoie 0 sat à l'adresse à prouver, avec un message dans scriptSig.
  • to_sign : une transaction qui dépense to_spend et qu'on signe normalement.

La signature obtenue est donc une signature Bitcoin valide au sens du protocole, ce qui résout tous les cas (P2PKH, P2WPKH, P2SH, multisig, Taproot, scripts custom). On peut la vérifier avec n'importe quel validateur de transaction.

Trois variantes

| Format | Usage | |--------|-------| | Legacy | Compatibilité avec l'ancien Sign Message | | Simple | Cas standard, signature d'un seul input | | Full | Avec entrées additionnelles (proof of funds) |

Le format Full permet de prouver non seulement la propriété d'une adresse, mais aussi de prouver qu'on contrôle un certain montant en incluant les UTXO réels dans la signature.

Cas d'usage majeurs

  • Proof of Reserves : un exchange prouve cryptographiquement qu'il détient X bitcoins sans révéler ses clés.
  • Authentification web3-style : login Bitcoin (« Sign in with Bitcoin »).
  • Vérification de propriétés marchand→client.
  • Travel Rule : prouver qu'une adresse self-custody est bien celle du client.
  • DAOs Bitcoin : votes pondérés par UTXO contrôlés.

Adoption

BIP-322 progresse : intégration dans Sparrow Wallet, Bitcoin Core (depuis 25.0), Trezor, Coldcard, BitBox02, Electrum. Les exchanges (Kraken, OKX) l'utilisent pour les Proof of Reserves trimestrielles. Côté Ledger, le support reste partiel.

À retenir

BIP-322 modernise une fonctionnalité que beaucoup pensaient évidente : signer un message avec son wallet. C'est désormais le standard pour toute opération demandant une preuve de propriété cryptographique, du login à la preuve de réserves complète.

Termes lies

← Retour au glossaire complet

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