728 / 736BBQR

BBQr

Better Bitcoin QR, format de trames pour transférer de grands fichiers par une séquence de codes QR

BBQr découpe un PSBT, une transaction signée ou d’autres données binaires en une série numérotée de trames QR pour franchir un air gap ; il réduit la surcharge et accepte tout ordre de lecture, mais ne chiffre pas les données, n’en vérifie pas le sens et exige toutes les parties.

BBQr est un format de transport public de Coinkite. Chaque QR commence par B$ et un court en-tête donnant encodage, type de fichier, nombre total et index ; vient ensuite un segment en HEX, Base32 ou Zlib fixe puis Base32.

BBQr répond au cas où un PSBT, une transaction signée ou un autre fichier ne tient pas dans un QR raisonnablement lisible. L’émetteur découpe les données en trames et le récepteur les réassemble, afin de franchir un air gap sans câble, carte ni réseau. Le format ne signe rien, ne diffuse rien sur le réseau Bitcoin et ne fait pas partie du consensus. [1]

Chaque trame commence par un en-tête de huit caractères. B$ identifie BBQr, puis un caractère choisit l’encodage, un autre le type, deux positions base36 donnent le nombre total et les deux dernières l’index. B$HP0301 signifie HEX, PSBT, 3 trames et partie d’index 1. Encodage, type et nombre doivent être identiques dans toute la série. [1]

Le QR emploie le mode alphanumérique avec un jeu restreint de majuscules. H écrit du HEX, 2 utilise Base32 sans =, et Z compresse d’abord tout le fichier avec Zlib, wbits=10 et sans en-tête, puis utilise Base32. La compression peut réduire un PSBT, mais peu les hash, UTXO et données à forte entropie ; l’encodeur doit alors choisir la variante non compressée la plus petite. [1]

Les trames sont lisibles dans tout ordre grâce à leur index. Ce n’est toutefois pas un fountain code : le récepteur doit obtenir les N parties et ne peut recalculer une trame absente. Le QR possède déjà détection et correction d’erreurs, donc la spécification n’ajoute aucun checksum de série ; le débat de conception examine le compromis entre simplicité, surcharge et récupération des trames manquées. [4]

La documentation qualifie BBQr de largement déployé et, au 27 juillet 2026, a vérifié du code public publié dans plusieurs signers, wallets mobiles et coordinateurs, dont COLDCARD Q, Sparrow Wallet, Nunchuk Desktop, BTCPay Server, Krux et BlueWallet. Le support n’est pas forcément bidirectionnel : SeedSigner version 0.8.7 était indiqué en décodage seul. [2]

Deux positions base36 autorisent au plus 1295 parties, soit ZZ. Pour la version QR 40, la spécification annonce 4296 caractères alphanumériques et un plafond théorique non compressé de 2 776 480 octets en HEX ou 3 470 600 en Base32. Un appareil peut imposer moins : COLDCARD Q accepte jusqu’à 2 MiB et affiche ensuite la progression selon le nombre de parties. [6]

Le type P indique un PSBT et T une transaction Bitcoin finalisée ; J, C, U, B et X couvrent JSON, CBOR, texte UTF-8, binaire générique et exécutable. Le type aide à choisir le parser mais ne prouve ni validité ni sûreté. Le wallet doit refuser un type inattendu et le signer doit afficher séparément sorties, montants et frais avant de signer. [5]

Il faut tester l’implémentation en round-trip contre le dépôt et les données publiés : encoder le même fichier, mélanger les trames, les relire et comparer octet par octet. Tester séparément trame absente ou endommagée, H, 2 et Z, trame unique et limites mémoire. Un vrai PSBT ou d’autres données sensibles ne doivent jamais entrer dans un générateur web public. [3]

Pour une vision complète, lisez aussi PSBT, Transaction, Hardware Wallet, Air-gapped Wallet, Multisig, Output Descriptor.

01BBQr est-il identique à SeedQR ?

Non. SeedQR représente un secret de récupération BIP39 et doit être traité comme une clé privée. BBQr est une enveloppe générale pour données découpées, souvent un PSBT ou une transaction signée. Il peut porter un contenu sensible, mais son nom n’implique pas un seed et il ne chiffre pas les données.

02Le transfert air-gapped par BBQr rend-il une transaction sûre ?

Non. Le canal optique retire une voie réseau ou câble, mais un coordinateur malveillant peut encore préparer un PSBT avec sortie étrangère, frais inadaptés ou entrées inattendues. Il faut vérifier adresses, montants, frais et politique sur un signer fiable, puis diffuser exactement la transaction contrôlée.

DOC · 001BBQr — Better Bitcoin QR SpecificationDocumentation DOC · 002BBQr — Project status and supporting implementationsDocumentation DOC · 003Coinkite — BBQr reference repository and test dataDocumentation DOC · 004Coinkite BBQr issue 2 — Feedback on sequence recoveryDocumentation DOC · 005COLDCARD Q Quickstart Guide — BBQr transaction flowDocumentation DOC · 006COLDCARD QR Scanner — BBQr limits and accepted dataDocumentation
Révisé le: Sources d’abord · Pas un conseil financier