727 / 736SEEDQR

SeedQR

Format de sauvegarde QR d’une mnémonique BIP39 créé par le projet SeedSigner

SeedQR convertit une mnémonique BIP39 en code QR statique pour la charger rapidement dans un appareil de signature hors ligne ; Standard SeedQR stocke des indices de mots sur quatre chiffres et CompactSeedQR l’entropie binaire, mais les deux formats portent le secret permettant de restaurer le portefeuille.

SeedQR est un format de données documenté ouvertement par le projet SeedSigner, ni un nouveau type de seed, ni un chiffrement, ni un protocole Bitcoin. Standard SeedQR concatène dans un QR numérique les positions des mots BIP39 indexées depuis zéro ; CompactSeedQR inscrit l’entropie d’origine sous forme binaire et laisse le récepteur recalculer le checksum.

Standard SeedQR prend chaque mot de la mnémonique, trouve sa position indexée depuis zéro dans la liste BIP39 et l’écrit avec exactement quatre chiffres. La valeur 12 devient donc 0012. Le résultat n’est ni une photographie des mots ni une clé privée sous forme textuelle, mais une autre représentation sans perte du même secret. [1]

La liste BIP39 contient 2048 éléments indexés de 0 à 2047. Une phrase standard de 12 mots produit 48 chiffres et une grille QR de 25×25 ; une phrase de 24 mots produit 96 chiffres et une grille de 29×29. L’ordre des blocs à quatre chiffres est celui des mots : intervertir des blocs restaure une phrase différente ou invalide. [1]

SeedSigner est conçu comme un signataire sans état : son extinction efface les données secrètes chargées et impose de saisir à nouveau le seed. SeedQR réduit cette saisie à un scan ou à une transcription manuelle. Il ne faut pas le confondre avec un PSBT, un descripteur de portefeuille ou un QR d’adresse ; ceux-ci peuvent porter des données publiques ou transactionnelles, SeedQR porte le secret de récupération. [7]

Avant la transcription, l’interface SeedSigner avertit que “SeedQR is your private key” et qu’il ne faut ni le photographier ni le scanner avec un appareil connecté à internet. L’air gap limite la voie réseau d’une fuite, mais ne chiffre pas le QR et n’empêche ni caméra, ni copie, ni vol physique, ni appareil hors ligne compromis de lire le seed. [5]

La documentation officielle indique la prise en charge de Standard SeedQR et CompactSeedQR pour les phrases BIP39 de 12 mots et 24 mots. Une demande publique d’ajout d’un vecteur de test CompactSeedQR problématique a été ouverte le 25 juillet 2022 puis close par une modification du projet ; elle atteste de tests publics d’interopérabilité, pas d’une normalisation BIP formelle. [2] [6]

CompactSeedQR concatène des indices de mots de 11 bits, retire 4 bits de checksum pour 12 mots et stocke 128 bits, soit 16 octets, dans une grille de 21×21. Pour 24 mots, il retire 8 bits de checksum et stocke 256 bits, soit 32 octets, dans une grille de 25×25. Il est plus petit, mais un lecteur ordinaire peut mal restituer les données binaires ou les octets nuls ; cette difficulté n’est pas une protection cryptographique. [1]

BIP39 crée les mots en divisant l’entropie et son checksum en indices de liste de 11 bits. CompactSeedQR peut donc omettre les bits de checksum et les recalculer depuis l’entropie après le scan. Le payload ne contient toutefois aucun identifiant non ambigu de la langue de la liste ; la restauration doit utiliser la même liste et la spécification principale recommande l’anglais. [4]

Une implémentation doit être contrôlée avec les vecteurs de test publiés et le véritable code de l’encoder, y compris un octet nul dans CompactSeedQR. Un exercice de restauration se fait sur un appareil hors ligne sans valeur : après chargement, on compare le fingerprint, le descripteur ou la première adresse de réception avec le portefeuille attendu. Il ne faut jamais tester un vrai seed dans un générateur web. [3]

Pour une vision complète, lisez aussi Seed Phrase, BIP 39, BIP39 checksum, Private Key, Hardware Wallet, Air-gapped Wallet. Cette entrée est également citée par BBQr.

01SeedQR est-il identique à un QR ordinaire contenant une adresse bitcoin ?

Non. Un QR d’adresse publie généralement une destination pour recevoir un paiement, tandis que SeedQR encode les données nécessaires à la restauration d’un portefeuille BIP39. Quiconque lit correctement SeedQR et connaît l’éventuelle BIP39 passphrase peut dériver les clés privées. Il faut donc le traiter comme une seed phrase, pas comme une adresse publique.

02CompactSeedQR protège-t-il le seed parce qu’un téléphone ordinaire ne sait pas le lire ?

Non. CompactSeedQR ne fait que stocker plus efficacement le même secret sous forme d’entropie binaire. Certains lecteurs ordinaires l’affichent mal ou pas du tout, mais un logiciel spécialisé peut le décoder. C’est un obstacle de compatibilité, pas un chiffrement ; la sécurité repose sur la protection physique, un scan hors ligne contrôlé et, le cas échéant, une BIP39 passphrase conservée séparément.

DOC · 001SeedSigner — SeedQR Format SpecificationDocumentation DOC · 002SeedSigner — Supported QR FormatsDocumentation DOC · 003SeedSigner — SeedQR encoder implementationDocumentation DOC · 004Bitcoin BIPs — BIP 39: Mnemonic code for generating deterministic keysDocumentation DOC · 005SeedSigner — SeedQR private-key warning in seed viewsDocumentation DOC · 006SeedSigner issue 234 — Additional CompactSeedQR test vector, 25 July 2022Documentation DOC · 007SeedSigner — Independent Custody GuideDocumentation
Révisé le: Sources d’abord · Pas un conseil financier