Glossaire / Adresses et clés
P2TR
Aussi appelé adresse Taproot, Pay-to-Taproot, adresse bc1p.
- Qu'est-ce que P2TR ?
- P2TR paie vers une clé publique ajustée unique de 32 octets, si bien qu'une dépense par clé apparaît identique on-chain, qu'une seule personne ait signé ou qu'un contrat complexe ait été réglé en coopération.
Spécifié dans BIP-341.
Pay to taproot correspond à la version de témoin 1, active depuis le bloc 709 632 le 14 novembre 2021, et s'écrit sous la forme d'une adresse de 62 caractères commençant par bc1p. Une dépense coopérative publie une signature Schnorr de 64 octets et coûte environ 57,5 vbytes par entrée, l'entrée la moins chère sur bitcoin. Quelles que soient les règles alternatives intégrées dans la sortie, elles restent invisibles tant que personne ne les utilise réellement.
Comment cela fonctionne
Une sortie P2TR est OP_1 suivie d'un push de 32 octets, soit 34 octets au total, et ces octets sont une clé publique x-only. X-only signifie que la coordonnée y est abandonnée et déduite, ce qui économise un octet par rapport aux clés compressées de 33 octets utilisées partout ailleurs.
La clé que vous voyez n'est pas la clé que quiconque détient. C'est une clé interne ajustée par un hachage d'elle-même et de la racine de merkle d'un arbre de scripts alternatifs, de sorte que la valeur publiée engage à la fois le chemin coopératif et tous les chemins de repli. La dépense emprunte ensuite l'une de deux routes. Le chemin de clé produit une seule signature sur la clé ajustée et ne révèle rien d'autre. Le chemin de script révèle une feuille de l'arbre, plus les hachages de branche prouvant que cette feuille en fait partie, et laisse le reste de l'arbre secret pour toujours.
Les signatures Schnorr sous le BIP-340 rendent le chemin de clé peu coûteux et privé. Elles font 64 octets contre 71 ou 72 pour une signature ECDSA encodée DER, et elles s'additionnent linéairement, de sorte que plusieurs signataires peuvent combiner leurs clés et produire une seule signature sous MuSig2. Un montage 2-sur-2 qui coopère finit par être indiscernable d'une personne réglant une facture.
Comme la version de témoin 1 exige bech32m, une adresse bc1p utilise la constante de somme de contrôle du BIP-350 plutôt que celle du bech32 d'origine.
Où le voir
Les portefeuilles qui utilisent Taproot par défaut dérivent de la branche BIP-86 à m/86'/0'/0'. Bitcoin Core a ajouté l'encodage dans la version 22.0 et a commencé à générer des descripteurs tr() pour les nouveaux portefeuilles à descripteurs dans la version 23.0.
Les inscriptions placent des données arbitraires dans un témoin de chemin de script Taproot, ce qui explique qu'une grande part de l'activité bc1p n'a rien à voir avec des paiements. C'est un artefact de la remise sur les données de témoin plutôt qu'une propriété du type d'adresse.
La friction se situe aux extrémités. Certaines plateformes d'échange rejettent encore les destinations de retrait bc1p, et certains terminaux de paiement plus anciens aussi. Il n'existe pas de contournement dans votre portefeuille : utilisez une adresse bc1q issue de la même phrase de récupération, et consolidez plus tard si vous voulez tout regrouper sous Taproot.
P2TR vs Taproot
Taproot est la mise à niveau et P2TR est le type de sortie qu'elle a créé. Le soft fork a regroupé trois spécifications : le BIP-340 a défini les signatures Schnorr, le BIP-341 a défini le format de sortie et ses règles de dépense, et le BIP-342 a défini tapscript, le langage de script ajusté utilisé dans l'arbre. P2TR est la partie avec laquelle vous interagissez, l'adresse commençant par bc1p. Dire « j'utilise Taproot » signifie presque toujours « mon portefeuille me donne des adresses P2TR », mais la mise à niveau a aussi changé la façon dont les signatures sont vérifiées dans des scripts que vous ne toucherez peut-être jamais.