Aller au contenu
buybitcoinsmart

Glossaire / Référence pour développeurs

QR code URI

Qu'est-ce qu'un QR code URI ?
Un QR code URI est le motif carré noir et blanc qui encode un URI bitcoin:, afin qu'une caméra puisse lire l'adresse et le montant qu'il faudrait sinon saisir à la main.

Scanner évite la saisie, et c'est la saisie qui est source d'erreurs. Une adresse bech32 écrite en majuscules tient dans le mode alphanumérique du QR, que le BIP173 indique comme environ 45 pour cent plus compact que le mode octet, si bien que les codes en majuscules portent moins de modules et se scannent plus fiablement. Ce qu'un QR code ne peut pas faire, c'est vous dire que l'adresse qu'il contient appartient bien à qui vous croyez.

Comment cela fonctionne

Un QR code est un conteneur de données universel normalisé sous la référence ISO/IEC 18004, et le bitcoin se contente d'y placer un URI textuel.

Le format propose plusieurs modes d'encodage. Le mode alphanumérique couvre un jeu de 45 caractères : les chiffres, les lettres majuscules, l'espace et neuf signes de ponctuation. Il range deux caractères dans 11 bits. Le mode octet accepte tout mais dépense un plein 8 bits par caractère. Les lettres minuscules sont absentes du jeu alphanumérique, c'est pourquoi les portefeuilles affichent souvent toute la chaîne en capitales sous la forme BITCOIN:BC1Q.... Les schémas d'URI ne distinguent pas la casse, et les adresses bech32 sont valides dans l'une ou l'autre casse tant qu'elles ne sont pas mélangées, donc passer en majuscules est sans danger et réduit la grille.

Les adresses Base58 commençant par 1 ou 3 n'ont pas cette option, car leur jeu de caractères distingue la casse et changer une lettre change l'adresse. C'est un avantage concret et modeste du bech32, rarement mentionné.

La correction d'erreurs se choisit au moment de la génération. Les quatre niveaux récupèrent environ 7, 15, 25 et 30 pour cent d'un code endommagé. Un autocollant imprimé exposé aux intempéries justifie le niveau le plus élevé ; un écran, non. La capacité n'est jamais la contrainte décisive ici : la plus grande version de QR code contient 4 296 caractères alphanumériques, alors qu'un URI bitcoin typique tient entre 50 et 120.

Où vous le voyez

Quatre surfaces produisent chaque jour des QR codes bitcoin, et elles ne sont pas également dignes de confiance.

Les écrans de dépôt des plateformes d'échange en génèrent un pour l'adresse qu'elles veulent vous voir alimenter. L'écran d'un portefeuille matériel en génère un pour une adresse qu'il a dérivée en interne, et c'est la seule version dont vous pouvez vérifier la provenance. Les caisses des commerçants impriment un code unifié portant à la fois une adresse on-chain et une facture Lightning. Les distributeurs automatiques de bitcoin en affichent un au moment de l'achat, généralement avec un compte à rebours.

La différence entre la deuxième surface et les autres, c'est tout l'argument de sécurité des portefeuilles matériels. Un logiciel malveillant qui contrôle votre écran peut redessiner un QR code ; il ne peut pas redessiner celui d'un écran Trezor ou Ledger. Générez le code sur l'appareil, puis vérifiez les caractères que l'appareil imprime aussi en dessous.

Les codes physiques sont une cible plus facile. Le centre de plaintes pour la criminalité informatique du FBI a publié un avis au public le 18 janvier 2022 au sujet de criminels collant leurs propres autocollants QR par-dessus les authentiques, et la technique n'a pas disparu. Considérez tout code imprimé sur papier dans un lieu public comme non vérifié tant que l'adresse de destination ne correspond pas à quelque chose que vous attendiez par vous-même.

Il existe un usage inoffensif qu'il vaut la peine de connaître. Les appareils de signature isolés du réseau échangent des transactions partiellement signées par des séquences animées de QR codes, à plusieurs images par seconde, parce qu'une caméra et un écran forment un canal de données sans câble ni pile logicielle USB à attaquer.

QR code URI vs adresse

Une adresse est du texte ; un QR code URI est l'image d'un texte plus long qui se trouve contenir une adresse. Scanner un code qui contient une simple adresse donne à votre portefeuille une destination et rien d'autre, vous saisissez donc encore le montant. Scanner un code qui contient un URI complet remplit le montant, le libellé, et parfois aussi une facture Lightning. Les deux se ressemblent à l'œil, c'est pourquoi un portefeuille qui vous montre un total prérempli après un scan vous dit quelque chose d'utile sur ce qu'il a réellement lu.

À ne pas confondre avec

Questions fréquentes

Pourquoi certains QR codes bitcoin sont-ils entièrement en majuscules ?

Pour rendre le code plus petit. Le mode alphanumérique du QR n'a pas de lettres minuscules, et le BIP173 indique qu'il est environ 45 pour cent plus compact que le mode octet, donc passer en majuscules une adresse bech32 et le schéma bitcoin : produit une grille plus clairsemée qui se scanne plus fiablement.

Scanner un QR code est-il plus sûr que copier une adresse ?

Cela évite les logiciels malveillants du presse-papiers mais introduit son propre risque. Un code imprimé peut être recouvert d'un autocollant frauduleux, ce dont le FBI a averti en janvier 2022. Dans tous les cas, vérifiez la destination sur l'écran de votre portefeuille matériel.

À lire ensuite

Termes associés

Plus de termes : Référence pour développeurs

Lire cette page en anglais