Aller au contenu
buybitcoinsmart

Glossaire / Transactions et frais

Octet virtuel

Aussi appelé vbyte, vB.

Qu'est-ce qu'un octet virtuel ?
Un octet virtuel est l'unité dans laquelle les portefeuilles expriment le prix des transactions, égale à un quart du poids d'une transaction arrondi à l'entier supérieur, si bien que chaque estimation de frais se lit en satoshis par octet virtuel.

Spécifié dans BIP-141.

Les portefeuilles pourraient exprimer les frais en unités de poids et ne plus jamais parler d'octets, mais l'octet virtuel préserve l'ancienne arithmétique : une transaction sans données de témoin a une taille virtuelle exactement égale à sa taille en octets. Un bloc en contient 1 000 000. Lire une estimation en sat/vB est ce qui vous permet de distinguer des frais de retrait équitables de frais gonflés.

Comment cela fonctionne

La taille virtuelle résulte d'une seule ligne de calcul : prenez le poids, divisez par quatre, arrondissez à l'entier supérieur.

L'écart entre ce nombre et la sérialisation brute est l'endroit où l'argent se perd. Un paiement qui dépense une seule entrée segwit native vers deux sorties fait 222 octets sur le réseau, pèse 561 unités de poids et se facture 141 octets virtuels. Multipliez les 222 par le tarif choisi plutôt que par les 141 et vous avez payé environ 57 pour cent de trop. Les explorateurs affichent les deux chiffres côte à côte et les étiquettent size et vsize, et choisir le mauvais est l'erreur de calcul la plus courante dans l'estimation des frais.

L'arrondi n'a lieu qu'une fois, à la fin. Les éléments ne tombent pas en nombres entiers : une entrée Taproot en chemin de clé mesure 57,5 octets virtuels, si bien qu'un total intermédiaire peut tomber sur une demie. Deux portefeuilles qui construisent la dépense identique peuvent donc différer d'un seul octet virtuel sans que l'un ou l'autre ait tort. Bitcoin Core expose les trois vues de la même transaction, size, vsize et weight, ce qui vous permet de vérifier n'importe laquelle vous-même.

Les estimateurs de frais parlent de la même unité sous une forme déguisée. estimatesmartfee répond en bitcoin par kilo-octet virtuel, si bien qu'un tarif renvoyé de 0,00005000 signifie que 5 000 satoshis achètent 1 000 octets virtuels, soit 5 sat/vB. Chaque bande d'un tableau de bord de mempool, chaque curseur de portefeuille et chaque message de rejet concernant un seuil de relais est libellé de la même façon.

Où le rencontrer

Les octets virtuels déterminent ce que coûte réellement un retrait sur une plateforme d'échange, et le calcul vaut la peine d'être fait avant d'accepter des frais forfaitaires.

Prenez une plateforme qui regroupe : une entrée qui finance 100 retraits de clients dans une seule transaction. À 31 octets virtuels par sortie segwit native, plus 68 pour l'entrée et environ 11 de surcharge, l'ensemble fait environ 3 179 octets virtuels. À 5 sat/vB, il coûte 15 895 satoshis, soit environ 159 satoshis pour chacune des cent personnes concernées. Des frais forfaitaires de 0,0001 BTC facturent à chacune d'elles 10 000 satoshis pour cet espace, plus de soixante fois leur part. La relation s'inverse en période de pointe : à 100 sat/vB, le même lot coûte 3 179 satoshis par tête, et les frais forfaitaires deviennent une subvention. Les frais de retrait forfaitaires sont un pari, et les jours calmes, c'est la plateforme qui gagne.

La même unité fixe le prix de votre propre gestion. Regrouper de petits montants se facture presque entièrement au nombre d'entrées, si bien qu'une consolidation de douze entrées segwit natives vers une sortie fait environ 858 octets virtuels quels que soient les montants en jeu. Faites-le à 2 sat/vB et cela coûte moins de 2 000 satoshis. Faites-le pendant un pic de frais et cela coûte cinquante fois cela pour un travail identique.

Octet virtuel vs unité de poids

Un octet virtuel et une unité de poids mesurent les mêmes données sur des échelles qui diffèrent d'un facteur quatre, et l'arrondi est le seul endroit où ils cessent d'être interchangeables. Les limites de consensus sont écrites en poids, c'est pourquoi le plafond d'un bloc est cité comme 4 000 000 unités. Les interfaces sont écrites en octets virtuels, parce que 8 sat/vB est plus facile à retenir que 2 satoshis par unité de poids. La fonction d'arrondi à l'entier supérieur fait qu'une transaction de 561 unités de poids est facturée 141 octets virtuels plutôt que 140,25, si bien que vous payez pour trois quarts d'octet que vous n'avez jamais utilisé. Lire une spécification vous place dans le poids ; payer quoi que ce soit vous place dans les octets virtuels.

À ne pas confondre avec

Questions fréquentes

Pourquoi mon portefeuille indique-t-il 141 octets virtuels alors que l'explorateur indique 222 octets ?

Les deux nombres sont corrects. 222 est la longueur sérialisée sur le réseau, et 141 est cette longueur une fois les données de signature comptées au taux d'un quart. Les frais sont facturés sur le chiffre le plus petit, donc utilisez la taille virtuelle chaque fois que vous multipliez par un tarif.

sat/vB est-il la même chose que sat/octet ?

Seulement pour une transaction sans données de témoin, où les deux tailles sont identiques. Pour tout ce qui dépense une sortie segwit ou Taproot, la taille virtuelle est plus petite, donc un outil qui cite encore des sat/octet surestimera les frais d'un facteur pouvant atteindre quatre.

À lire ensuite

Termes associés

Plus de termes : Transactions et frais

Lire cette page en anglais