Aller au contenu
buybitcoinsmart

Glossaire / Adresses et clés

P2WPKH

Aussi appelé Adresse SegWit native, Pay-to-Witness-Public-Key-Hash, Adresse bc1q.

Qu'est-ce que P2WPKH ?
P2WPKH déplace la signature et la clé publique hors des entrées vers le témoin, où chaque octet compte une unité de poids au lieu de quatre.

Spécifié dans BIP-141.

Les sorties natives SegWit à clé unique s'écrivent sous forme d'adresses bc1q de 42 caractères. Le script de verrouillage fait 22 octets, et dépenser une entrée prend environ 68 vbytes contre environ 148 pour l'équivalent legacy. Bitcoin Core distribue ce format par défaut depuis la version 0.20.0, et la plupart des autres portefeuilles ont suivi.

Comment cela fonctionne

Une sortie P2WPKH ne porte aucun opcode au sens habituel. C'est l'octet 0x00, marquant la version de témoin 0, suivi d'un push des 20 octets du HASH160 de votre clé publique compressée : 22 octets, reconnus par les nœuds comme un programme témoin plutôt qu'exécutés comme un script. L'entrée qui la dépense laisse son scriptSig entièrement vide et place deux éléments dans le champ témoin, la signature et la clé.

L'économie vient de la façon dont les blocs sont mesurés. Le BIP-141 définit le poids de bloc comme la taille de base multipliée par trois plus la taille totale, plafonné à 4 000 000 unités de poids, ce qui revient à des octets hors témoin coûtant quatre unités chacun et des octets de témoin coûtant une. Une entrée P2WPKH a 41 octets hors témoin pesant 164 unités et environ 108 octets de témoin pesant 108, pour 272 unités au total. Divisez par quatre et vous obtenez les 68 vbytes que vous payez réellement.

Deux effets secondaires comptent autant que la réduction. Le BIP-143 a remplacé l'algorithme de hachage de signature pour que le travail de signature augmente linéairement avec le nombre d'entrées plutôt que quadratiquement, ce qui explique qu'un portefeuille matériel traite rapidement une grande transaction SegWit. Et parce que l'identifiant de transaction ne couvre plus le témoin, un tiers ne peut plus modifier une signature en transit pour changer le txid.

Où le voir

Ouvrez presque n'importe quel portefeuille publié ces dernières années et l'écran de réception affiche une chaîne bc1q. Les portefeuilles les dérivent de la branche BIP-84, chemin m/84'/0'/0', que le SLIP-132 associe au préfixe de clé étendue zpub, de sorte qu'une sauvegarde restaurée dans un autre logiciel aboutit aux mêmes adresses.

À ce stade, pratiquement tout formulaire de retrait d'une plateforme d'échange accepte bc1q. Si l'un refuse, il exécute un code de validation écrit avant 2017, et la réponse pratique est de retirer vers un format qu'il accepte et de déplacer les bitcoins vous-même ensuite.

Une chose que bc1q ne vous dit pas, c'est à quoi la sortie paie. Une adresse bc1q de 42 caractères correspond à une clé unique ; une adresse de 62 caractères correspond à un script. Les deux sont en version de témoin 0 et utilisent bech32, donc la longueur est la seule différence visible.

P2WPKH vs SegWit imbriqué

P2WPKH et le SegWit imbriqué dépensent la même clé et s'engagent sur le même hachage de 20 octets. La différence est une enveloppe. Le SegWit imbriqué place ce programme témoin de 22 octets dans une sortie P2SH pour que l'adresse puisse être une chaîne Base58 commençant par 3, et les 23 octets hors témoin supplémentaires dans l'entrée de dépense pèsent 92 unités, ce qui correspond exactement à l'écart entre 91 vbytes et 68. La sécurité est identique. Vous renoncez à environ un tiers de l'économie de frais disponible en échange d'une adresse qu'un logiciel ancien acceptera.

À ne pas confondre avec

Questions fréquentes

bc1q est-il la même chose que le SegWit natif ?

Oui pour les portefeuilles à clé unique. Une adresse bc1q de 42 caractères est une sortie P2WPKH, le format SegWit natif pour une clé. Une adresse bc1q de 62 caractères est aussi du SegWit natif mais paie vers un script plutôt que vers une clé.

Combien le SegWit natif permet-il réellement d'économiser ?

Environ la moitié du coût de dépense. Une entrée P2WPKH pèse 272 unités de poids, soit 68 vbytes, contre environ 148 vbytes pour une entrée legacy. L'économie se concrétise quand vous dépensez, pas quand vous recevez.

À lire ensuite

Termes associés

Plus de termes : Adresses et clés

Lire cette page en anglais