Les frais de Bitcoin fonctionnent très différemment du gas d'Ethereum. Cet article explique le mempool, l'unité sat/vB, pourquoi la taille de la transaction détermine les frais, et que faire quand un paiement est bloqué.
Pour les bases du réseau, voir Bitcoin. Pour l'idée générale des frais, voir gas et frais.
Le mempool
Quand vous envoyez des bitcoins, votre portefeuille diffuse la transaction sur le réseau. Chaque nœud la vérifie et la conserve dans une zone d'attente appelée mempool (memory pool, « réserve de mémoire ») jusqu'à ce qu'un mineur l'inclue dans un bloc. Il n'existe pas un mempool unique. Chaque nœud a le sien, même s'ils sont généralement très semblables.
La taille d'un bloc est limitée. Les mineurs remplissent les blocs avec les transactions qui paient le plus de frais pour la place qu'elles occupent. Quand le mempool contient donc plus de transactions qu'un bloc ne peut en porter, celles dont les frais sont faibles attendent.
Les frais sont fixés par octet, pas selon le montant
Bitcoin ne facture pas selon le montant que vous envoyez. Il facture selon la place que la transaction occupe dans un bloc. L'unité est l'octet virtuel (virtual byte, vB). Le prix est exprimé en satoshis par vB (sat/vB). Un satoshi vaut un cent-millionième de bitcoin.
Les frais sont :
frais = taille en vB x taux de frais en sat/vB
Exemple : une transaction de 141 vB à 10 sat/vB coûte 1 410 satoshis. Envoyer un très petit montant coûte autant qu'en envoyer un très grand s'ils ont la même taille. Les frais ne varient pas avec la valeur, seulement avec la taille.
Les octets virtuels viennent de SegWit, qui compte les données de signature avec une remise. Un bloc est limité à 4 millions d'unités de poids (weight units), soit environ 1 million de vB.
Ce qui détermine la taille d'une transaction
Une transaction Bitcoin comporte des entrées (inputs, les pièces que vous dépensez) et des sorties (outputs, la destination des pièces). Plus d'entrées et plus de sorties donnent une transaction plus grosse et des frais plus élevés.
- Un paiement simple avec une entrée et deux sorties (l'une pour le destinataire, l'autre pour vous en rendu de monnaie) pèse environ 140 vB avec une adresse SegWit moderne.
- Si votre portefeuille contient de nombreuses petites pièces et doit les combiner, il utilise de nombreuses entrées, et les frais augmentent.
- Un paiement vers plusieurs destinataires comporte plusieurs sorties, ce qui ajoute aussi de la taille.
Types d'adresses
Les différents types d'adresses donnent des tailles différentes par entrée.
- Les adresses Legacy (commençant par 1) sont les plus volumineuses.
- Les adresses SegWit (commençant par bc1q) sont plus petites par entrée.
- Les adresses Taproot (commençant par bc1p) sont elles aussi petites par entrée, et certaines dépenses complexes deviennent plus petites.
Le même paiement peut donc coûter nettement moins cher depuis une adresse SegWit ou Taproot que depuis une adresse Legacy. C'est le portefeuille qui choisit le type d'adresse, vérifiez donc lequel il utilise.
Estimer les frais
Les portefeuilles estiment le taux de frais en observant le mempool et les blocs récents. Un outil typique affiche plusieurs objectifs :
- Bloc suivant : le taux le plus élevé, pour avoir les meilleures chances d'être dans le prochain bloc.
- Environ 30 minutes : un taux intermédiaire.
- Environ 1 heure : un taux plus bas.
- Économique : un taux minimal pour les paiements qui peuvent attendre longtemps.
Ce sont des estimations, pas des promesses. Si une ruée soudaine remplit le mempool, un paiement attendu dans le prochain bloc peut attendre plus longtemps. La page gas affiche ces objectifs Bitcoin et les convertit en coût en dollars pour un paiement type de 141 vB.
Que se passe-t-il quand le mempool est plein
Quand la demande est forte, le taux de frais nécessaire pour entrer dans le prochain bloc augmente. Les transactions à faibles frais restent dans le mempool. Les nœuds ont une limite de taille pour leur mempool. Quand elle est atteinte, ils suppriment les transactions aux frais les plus bas. Une transaction supprimée n'est pas de l'argent perdu : les pièces n'ont jamais été dépensées sur la chaîne. Votre portefeuille peut la renvoyer.
Les pics d'affluence dans le mempool surviennent par exemple quand beaucoup de gens déplacent leurs pièces en même temps. Suivez la situation sur la page Bitcoin : chaque tuile de bloc montre à quel point il était rempli et les frais qu'il contenait.
Débloquer un paiement : RBF et CPFP
Si vous avez payé trop peu, il existe deux solutions courantes.
- RBF (replace-by-fee, « remplacer par des frais plus élevés »). Vous envoyez une nouvelle version de la même transaction avec des frais plus élevés. Les nœuds remplacent l'ancienne par la nouvelle. Cela nécessite un portefeuille qui le prend en charge, et les anciens nœuds ne l'acceptaient que si la transaction d'origine était marquée comme remplaçable. La plupart des nœuds actuels acceptent un remplacement dans les deux cas, mais un portefeuille qui ne marque jamais les transactions comme remplaçables peut ne pas proposer cette option.
- CPFP (child pays for parent, « l'enfant paie pour le parent »). Vous ou le destinataire créez une nouvelle transaction qui dépense une sortie de la transaction bloquée et paie des frais élevés. Les mineurs incluent les deux ensemble, car ils veulent les frais de l'enfant et que l'enfant ne peut pas être miné avant son parent.
L'expéditeur utilise généralement le RBF, et le destinataire, qui ne peut pas modifier la transaction d'origine, peut utiliser le CPFP.
Pourquoi les blocs ne sont pas espacés d'exactement 10 minutes
Bitcoin vise en moyenne un bloc toutes les 10 minutes environ. Le minage est une loterie : les mineurs tentent de nombreuses combinaisons, et le temps nécessaire pour trouver un bloc valide est aléatoire. Certains blocs arrivent en moins d'une minute, d'autres demandent 30 minutes ou plus. Tous les 2 016 blocs, le réseau ajuste la difficulté du minage pour que la moyenne reste proche de 10 minutes.
Ce caractère aléatoire explique aussi pourquoi les estimations de frais pour le « bloc suivant » peuvent se tromper. Si un bloc arrive en retard, davantage de transactions s'accumulent.
Le voir en direct
Ouvrez Bitcoin sur ChainMonitor pour voir les blocs récents sous forme de tuiles, avec leur taux de remplissage et leurs taux de frais. Cliquez sur un bloc pour voir ses transactions, ou collez l'identifiant d'une transaction dans la recherche de l'en-tête pour vérifier son statut. Pour savoir comment interpréter ce que vous trouvez, voir comment lire une transaction et finalité et confirmations.
Questions fréquentes
Qu'est-ce que le sat/vB ?
C'est le taux de frais de Bitcoin : les satoshis payés pour chaque octet virtuel de taille de transaction. Multipliez-le par la taille de votre transaction pour obtenir les frais.
Pourquoi ma transaction Bitcoin est-elle bloquée ?
Très probablement parce que son taux de frais est inférieur à ce que les mineurs acceptent en ce moment. Elle reste dans le mempool jusqu'à ce que le taux baisse, que vous l'accélériez ou que les nœuds la suppriment.
Comment accélérer une transaction Bitcoin ?
Utilisez le RBF si votre portefeuille le permet, ou demandez au destinataire d'utiliser le CPFP. Les deux paient des frais plus élevés pour la même place.
Envoyer plus de bitcoins coûte-t-il plus cher en frais ?
Non. Les frais dépendent de la taille de la transaction, pas de sa valeur. Une transaction comportant de nombreuses entrées coûte plus cher qu'une transaction simple, quelle que soit la valeur.
Combien de confirmations dois-je attendre ?
Une règle empirique courante est de 6 confirmations pour les paiements importants. Voir finalité et confirmations.