Comment sont calculés les frais de transaction Bitcoin ?


Les frais de transactions sont un élément auquel n’importe quel utilisateur de Bitcoin est confronté, en particulier en période de marché haussier, lorsque ces-derniers sont particulièrement élevés. J’ai donc voulu en savoir plus sur ces frais : qu’est-ce qui justifie qu’ils augmentent ainsi, comment mon logiciel ou mon application Bitcoin sait-il quels frais appliquer, etc.

Comment les frais de transaction Bitcoin sont-ils donc calculés ? Ils sont estimés par le logiciel Bitcoin que j’utilise lorsque je fais une transaction, en fonction des transactions récentes, de l’état de saturation du réseau à ce moment-là, et des transactions qui sont déjà en attente de confirmation. L’espace dans les blocs étant limités, plus il y a de transactions en attente et plus les frais auront tendance à être élevés. Le logiciel sélectionne donc des frais adaptés pour que la transaction soit confirmée dans un délai raisonnable, mesuré en nombre de blocs.

Cependant, l’estimation des frais de transaction optimaux est un exercice complexe, qui dépend d’un grand nombre de facteurs. Certaines estimations peuvent parfois conduire à sur-évaluer les frais de transactions, causant in fine des dépenses inutiles aux utilisateurs finaux.

1. Comment les frais de ma transaction Bitcoin sont-ils déterminés ?

Au niveau élémentaire, une transaction Bitcoin n’est rien d’autre que de l’information qui indique d’où proviennent les bitcoins, où ils vont, si la condition pour les envoyer a bien été remplie et quelle sera la nouvelle condition pour les dépenser depuis la nouvelle adresse. Cette information occupe un certain volume, mesuré en octets, de même que n’importe quelle information, qu’il s’agisse d’un fichier MP3, d’une image, ou même de la ligne de texte que vous êtes en train de lire. Lorsque la transaction est ajoutée à un bloc, elle y prend donc une certaine place en octets. Et comme un bloc est de taille limitée (entre 1 et 2 mégaoctets maximum), il est commun qu’il y ait plus de transactions en attente qu’il n’est possible d’en ajouter dans le prochain bloc.

Le mineur qui compose ce prochain bloc a donc la liberté de sélectionner et choisir quelles transactions il souhaite y inclure. En général, les mineurs cherchent à maximiser les frais qu’ils collectent dans le bloc, et vont donc choisir les transactions aux frais les plus élevées. C’est ce mécanisme qui explique que, sauf exception, plus les frais d’une transaction sont importants et plus vite elle sera confirmée par un mineur.

Les frais de transaction Bitcoin sont libelés en “satoshi par octet”. En multipliant ce taux de frais par le poids total de la transaction, on obtient les frais payés effectivement par la transaction. Par exemple, une transaction de 150 octets à 2 satoshis/octet paiera en tout 300 satoshis de frais.

Lorsque le logiciel que j’utilise pour réaliser mes transactions Bitcoin essaie d’estimer les frais de transaction nécessaires pour que ma transaction passe au bout d’un certain nombre N de blocs, il groupe l’ensemble des transactions qui ont été minées récemment en fonction des frais qu’elles ont payé. Par exemple, toutes les transactions qui ont payé autour de 10 satoshis/octet de frais sont groupées dans le même ensemble, et ainsi de suite. Ensuite, il prend les groupes de transactions dans l’ordre croissant et vérifie qu’un pourcentage suffisamment important de transactions du groupe ont été confirmées au bout de N blocs ou moins d’attente. Si ce n’est pas le cas, il passe au groupe suivant, et ainsi de suite jusqu’à trouver le bon groupe. En appliquant les mêmes frais de transactions que ceux de ce groupe, il y a alors de bonnes chances pour que ma transaction soit également minée au bout de N blocs environ.

Cependant cette méthode est relativement rudimentaire, et dans certaines situations elle peut conduire l’utilisateur à faire passer sa transaction avec des frais trop élevés par rapport au temps qu’il était prêt à attendre pour voir sa transaction confirmée (la transaction est minée plus tôt que prévu et on aurait pu payer un peu moins), ou parfois à voir sa transaction s’éterniser plus longtemps que prévu faute de frais suffisamment élevés.

2. Quels frais choisir pour ma transaction Bitcoin ?

Lorsque je cherche à ajuster les frais de ma transaction Bitcoin, la première question que je me pose toujours est : suis-je pressé ? En effet, la réponse à cette interrogation va me permettre de définir une durée-cible au bout de laquelle j’aimerai que ma transaction ait été minée dans un bloc. Parfois, il s’agit d’une transaction personnelle pour laquelle il m’importe peu qu’elle soit confirmée dans l’heure qui suit ou dans deux semaines. Dans d’autres cas, comme lorsqu’un commerçant est impliqué par exemple, je peux souhaiter que la transaction soit vite confirmée : au bout de quelques heures tout au plus.

Avec cette information en tête, je peux ensuite ajuster le nombre de blocs au bout duquel il me convient que ma transaction soit confirmée, en gardant à l’esprit qu’un nouveau bloc Bitcoin est découvert toutes les 10 minutes en moyenne. Le logiciel ou l’application que j’utilise va alors se charger de calculer les frais à appliquer pour parvenir à cet objectif. Si j’utilise directement Bitcoin Core, alors la méthode de calcul des frais est celle détaillée plus haut, et qui ne tient qu’assez peu compte du mempool (c.à.d. l’ensemble des transactions en attente d’être ajoutées dans un bloc), préférant privilégier l’analyse des transactions récemment minées. D’autres solutions logicielles, comme le wallet mobile BlueWallet par exemple, vont préférer centrer leur analyse des frais sur les transactions du mempool.

Mon humble opinion, essentiellement empirique, est que les deux approches sont complémentaires. En analysant les temps de confirmation des transactions récemment minées en fonction de leurs frais, j’ai une bonne idée de combien il fallait payer récemment pour voir sa transaction minée au bout d’un nombre de blocs définis. En étudiant les transactions présentes dans le mempool, j’obtiens une bonne représentation de l’état d’encombrement du réseau à l’instant, et du volume de transactions au travers duquel ma propre transaction devra se frayer un chemin pour parvenir jusqu’à un bloc – chemin taillé au moyen des frais de transaction.

Pour ajuster au mieux mes frais de transaction, j’aime donc exploiter le site mempool.space en complément de l’estimateur de frais intégré dans le logiciel que j’utilise. Ce n’est pas une science exacte, mais cet explorateur de blocs permet d’apprécier à la fois les frais des transactions dans les blocs récents et l’état de congestion du mempool à un instant donné, et se base sur ce-dernier pour donner des recommandations de frais pour faire passer sa transaction plus ou moins rapidement.

Capture d’écran du site Web mempool.space. Les blocs jaunes représentent le nombre de transactions dans le mempool, regroupées par les frais de transaction appliqués. Les blocs violets sont les blocs bitcoin les plus récemment confirmés, chacun contenant des informations sur le nombre de transactions et une fourchette ainsi que la moyenne des coûts de transaction payés par bloc.
Capture d’écran du site mempool.space avec une recommandation des frais de transaction à appliquer.

Un utilisateur plus avancé (ou plus déterminé à ne pas payer plus qu’il ne faut) pourra analyser finement la répartition des transactions dans le mempool : combien d’entre elles sont à 1 satoshi/octet, combien à 2 satoshis/octet, etc.

3. Pourquoi faut-il payer des frais de transaction ?

Il existe différentes raisons qui expliquent l’utilité des frais de transaction sur un réseau ouvert et décentralisé comme Bitcoin. L’une d’entre elles, on l’a vu, est que l’espace dans les blocs est limité, et que les frais de transactions fournissent un bon mécanisme pour permettre de déterminer quelle transaction doit passer en premier. Cependant, cette justification est insuffisante, puisqu’on pourrait très bien imaginer un protocole Bitcoin fonctionnant sur la base du premier arrivé, premier servi, où les transactions seraient ajoutées dans les blocs au fur et à mesure qu’elles arrivent (comprendre : dans l’ordre où elles sont détectées par le mineur qui trouve le bloc en question).

Les raisons principales justifiant les frais de transaction sont ailleurs. D’une part, ces frais fournissent un excellent filtre anti-spam. En effet, en l’absence de ces-derniers, des attaquants pourraient littéralement inonder le réseau de transactions pour un coût proche de zéro et le rendre inutilisable : on parle alors d’attaque par déni de service. D’autre part, les frais entrent en compte dans la rétribution des mineurs qui sécurisent le réseau au moyen de leur puissance de calcul. Aujourd’hui, les frais représentent encore une part minoritaire de cette rémunération, dont l’essentiel provient encore de la subside de bloc, des bitcoins que le mineur est autorisé à créer lorsqu’il trouve un nouveau bloc. Mais à mesure que cette subside décroit dans le temps au rythme des halvings, les frais de transactions prendront une place de plus importantes, et devront même assurer l’intégralité de la compensation des mineurs après l’année 2140, quand le dernier bitcoin aura été miné (commentaire: ladite année est une estimation en fonction du rythme de minage moyen de 10 minutes par nouveau bloc, prévu dans le protocole Bitcoin).

On le voit, les frais de transactions sont une composante essentielle du réseau Bitcoin, dont il serait illusoire de vouloir se passer. Ils garantissent la résistance du réseau face à certaines attaques, participent à aligner les intérêts des mineurs avec ceux du reste des utilisateurs et permettent en plus un mécanisme de sélection et d’ordonnancement des transactions “au plus offrant”.

4. Ma transaction est bloquée en raison de frais insuffisants, que faire ?

Il peut arriver que l’on estime mal les frais nécessaires pour faire passer une transaction en temps voulu, notamment lorsque le marché est agité et que l’encombrement du réseau Bitcoin varie rapidement. Une transaction peut alors prendre plus de temps que prévu à être confirmée. Si c’est le cas, pas de panique ! Notez d’abord qu’il est vraisemblable que les frais de transaction moyens finiront par redescendre un jour ou l’autre, ce qui rend probable qu’un mineur décidera d’inclure votre transaction dans un bloc à ce moment-là. Donc si ce n’est pas pressé, il suffit d’attendre.

Cependant, il y a de nombreuses situations ou attendre n’est pas une option. Dans ce cas-là, il est possible d’augmenter à posteriori les frais, grâce à 2 mécanismes :

  • Replace-By-Fee (RBF) consiste à republier la même transaction (c’est-à-dire qui implique les mêmes bitcoins) avec des frais plus élevés. Si la transaction initiale indique que RBF est activé (ce qui est le cas aujourd’hui sur bon nombre de portefeuilles logiciels), alors un mineur voyant la nouvelle transaction avec les frais plus élevés remplacera la première par celle-ci, et la fera donc passer plus rapidement.
  • Child Pays For Parent (CPFP) consiste à dépenser la sortie de la transaction (en anglais, « Output ») en attente de confirmation dans une nouvelle transaction aux frais suffisamment élevés pour motiver un mineur à inclure les deux transactions dans le même bloc. Elle n’augmente donc pas directement les frais de la transaction “coincée”, mais donne une raison supplémentaire de la valider car cela permet alors au mineur d’inclure également la seconde transaction et ses frais alléchants.

Écrit par Fanis Michalakis


Gardez vous vos crypto-monnaies sur une plateforme en ligne? Attention, dans ce cas vous n’êtes pas le véritable propriétaire de vos crypto-monnaies!

Vous risquez notamment de perdre le tout, sans aucun recours, en cas de de piratage de la plateforme en ligne ou de votre compte personnelle ou en cas de défaillance de la plateforme en ligne.

Il est dès lors impératif que chaque individu prenne possession des ses crypto-monnaies, en transférant ses crypto-monnaies hors ligne sur un portefeuille pour crypto-monnaies sécurisé auquel seul ledit individu a accès.

Ne perdez donc plus de temps et achetez à l’instant votre portefeuille pour crypto-monnaies de Trezor, le leader du marché de la sécurité de crypto-monnaies!

Cliquez ce lien pour explorer les différents modèles de portefeuilles pour crypto-monnaies disponibles.

Les deux modèles de Trezor: Trezor One (gauche) – Trezor Model T (droite)

N’économisez pas sur la sécurité de vos crypto-monnaies!

Articles récents