blockchain : Quelle est la taille des différents types de transactions Bitcoin ?
Il existe un certain nombre de formats d’adresse différents et d’autres types de transactions standard :
- Paiement à la clé publique (P2PK) les sorties lient les paiements directement à la clé publique du destinataire au lieu de l’adresse dérivée. Ceux-ci ont été presque complètement remplacés par P2PKH, bien que parfois des récompenses minières soient toujours versées à P2PK.
Entrée¹ : 114 B
Sortie : 44 B (compressé), 76 B (non compressé)
- Multisig les transactions étaient possibles en utilisant le code d’opération correspondant directement dans le script de sortie avant même l’introduction de P2SH. Cependant, la plupart des transactions multisig se font aujourd’hui avec des transactions P2SH.
Entrée : variable (dépend de m-de-n)
Sortie : variable (doit inclure toutes les clés publiques)
- Paiement au hachage de clé publique (P2PKH) est aujourd’hui le format d’adresse le plus couramment utilisé. Une sortie P2PKH transfère les fonds directement à une adresse dérivée d’une clé de destinataire unique.
Entrée¹ : 148 B (compressé), 180 B (non compressé)
Sortie : 34 B
- Payer pour hacher le script (P2SH) était dans le passé principalement utilisé pour les transactions multisignatures, mais tout script de rachat valide est autorisé. L’utilisation créative de P2SH a permis l’introduction d’adresses segwit rétrocompatibles : « Nested Pay to Witness Public Key Hash » (P2SH-PWPKH ou NP2WPKH) et « Nested Pay to Script Hash » (P2SH-P2WSH ou NP2WSH) peuvent être envoyés par tout client qui peut envoyer à P2SH.
Entrée¹ : variable (2 sur 3 : 297 B, NP2WPKH : 91 vBytes, NP2WSH 2 sur 3 : 139 vBytes)
Sortie : 32 B
- Payer pour être témoin du hachage de la clé publique (P2WPKH) est le format segwit natif correspondant à P2PKH, utilisant un programme témoin plutôt qu’un script de signature. Les adresses P2WPKH sont encodées avec bech32 au lieu de base58, ce qui signifie que seuls les clients qui comprennent le format segwit natif peuvent leur envoyer.
Entrée¹ : 68 vBytes
Sortie : 31 B
- Pay to Witness Script Hash (P2WSH) est le format segwit natif correspondant à P2SH, utilisant un programme témoin plutôt qu’un script de rachat. Les adresses P2WSH sont encodées avec bech32 plutôt qu’en base58, seuls les clients mis à jour peuvent leur envoyer.
Entrée¹ : variable (2 sur 3 : 105 vBytes)
Sortie : 43 B
- Payer à Taproot (P2TR) est un format segwit natif qui combine les caractéristiques de P2PK avec les capacités de P2WSH. C’est également le premier type de sortie à utiliser les signatures Schnorr. Les sorties contiennent un programme témoin version 1 et les adresses sont codées avec bech32m qui diffère de bech32 uniquement dans la somme de contrôle. Les sorties peuvent être dépensées soit via le chemin de clé, qui s’apparente à P2PK dans la mesure où seule une signature est nécessaire, soit via le chemin de script où une branche du taptree est révélée et le script feuille est satisfait de la même manière qu’avec P2WSH.
Entrée : variable (chemin de clé : 57,5 vB, chemin de script 2 sur 3² : 82,75 vB–115,5 vB)
Sortie : 43 B
- Non standard les transactions englobent toutes les autres transactions qui ne correspondent pas à l’un des modèles ci-dessus. Les transactions non standard ne seront pas relayées par la plupart des nœuds du réseau.
Entrée : N/A
Sortie : x ≤ 83 + 11(?) octets
De plus, la surcharge de transaction ajoute 10 octets pour les transactions non-segwit et 10,5 vbytes pour les transactions segwit (pour numInputs, numOutputs < 256). surcharge = version + numInputs + numOutputs + nLocktime = 4 + 1 + 1 + 4 = 10 octets segwit surcharge = version + numInputs + numOutputs + nLocktime + marqueur + flag = 16 + 4 + 4 + 16 + 1 + 1 = 42 unités de poids = 10,5 voctets Si les entrées non-segwit et segwit sont mélangées, le poids des entrées non-segwit est augmenté de 1 WU pour la pile témoin vide qui est ajoutée. ¹ Notez qu'en raison du formatage choisi pour représenter les signatures ECDSA dans Bitcoin, elles ont une taille variable allant jusqu'à 72 octets, la plupart étant de 71 octets ou 72 octets. Les chiffres donnés ci-dessus représentent la taille maximale des scripts d'entrée. /a/96018/5406. La plupart des formats ci-dessus peuvent produire des tailles d'entrée et de sortie variables. Généralement, la taille moyenne des transactions a été de 514 octets la semaine dernière. Je soupçonne que ce nombre peut être la taille absolue des données de transaction et non la taille virtuelle, malheureusement les fournisseurs de données blockchain sont toujours à la traîne pour évaluer correctement les transactions segwit. p2sh.info recueille un certain nombre de statistiques sur divers formats de transaction, mais pour autant que je sache, malheureusement, pas le nombre de transactions utilisant les formats respectifs dans chaque bloc. Toutes les données de taille sont fournies au mieux, les corrections sont les bienvenues. Chiffres avec "(?)", je n'ai pas pu corroborer. H/T à Pieter Wuille, Alex Bosworth, Raghav Sood, Sergi Delgado pour les corrections.