Aller au contenu principal
Cryptographie

X-only public keys

Les clés publiques X-only (BIP-340) ne contiennent que la coordonnée x, sans préfixe de parité. Elles font 32 octets et sont utilisées par Schnorr et Taproot. C'est un gain d'espace dans les transactions. Elles supposent une convention sur le signe de y.

Définition

Une X-only public key est une clé publique de la courbe secp256k1 représentée uniquement par sa coordonnée x, sur 32 octets. C'est le format introduit par le BIP-340 pour les signatures Schnorr, et adopté massivement par Taproot (BIP-341) à son activation en novembre 2021.

Rappel sur les pubkeys traditionnelles

Une clé publique secp256k1 est un point (x, y) sur la courbe. Trois formats coexistaient avant Schnorr :

| Format | Taille | Usage | |---|---|---| | Non-compressée | 65 bytes | Historique, début Bitcoin | | Compressée (BIP-66) | 33 bytes | Préfixe 02/03 (parité de y) + x | | X-only | 32 bytes | Schnorr / Taproot |

Le format compressé utilise un préfixe (02 si y pair, 03 si y impair). Le format X-only supprime ce préfixe et fixe par convention que y est pair.

Pourquoi cette convention

Pour tout x sur la courbe, il existe deux y possibles (un pair, un impair). En signant avec Schnorr, on impose simplement que la clé publique utilisée corresponde au y pair. Si la pubkey générée par dérivation a un y impair, on inverse la clé privée (d' = n - d) pour obtenir une clé équivalente avec y pair. Cela ne change rien à la sécurité, mais économise 1 byte par clé.

Gain pratique

Sur une transaction Taproot type, chaque output (scriptPubKey) contient une X-only pubkey de 32 bytes au lieu de 33. Avec MuSig2 (agrégation de signatures), un multisig N-of-N ressemble à une simple X-only pubkey : impossible à distinguer d'un single-sig pour un observateur externe. Énorme gain de confidentialité.

Implications pour les développeurs

  • Lors de l'agrégation MuSig2 ou de tweak BIP-32, vérifier la parité de y et negate si nécessaire.
  • Les libs comme secp256k1 (Pieter Wuille) gèrent automatiquement la conversion.
  • Les pubkeys X-only sont incompatibles avec ECDSA classique sans normalisation.

À retenir

Les X-only pubkeys sont une micro-optimisation aux conséquences macro : moins de bytes, plus de confidentialité, et l'unification des single-sig et multi-sig à l'oeil nu. Elles sont le standard de toute l'écriture Taproot moderne.

Termes lies

← Retour au glossaire complet

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