Accélération des transactions bitcoin

Accélération des transactions bitcoin avec RBF et CPFP

Dans cet article technique, nous allons examiner comment nous pouvons accélérer une transaction qui a déjà été envoyée mais qui est restée en attente dans le mempool depuis longtemps. Dans ce cas, en fait, cela signifie qu’aucun mineur n’a encore saisi la transaction dans son bloc miné. Cela se produit généralement parce que vous définissez des frais trop bas pour la transaction ou parce que les frais augmentent soudainement immédiatement après l’arrivée de votre transaction dans le mempool (il est conseillé d’utiliser un explorateur pour voir le statut des frais et du mempool, par exemple avec le bot telegram @btcnode_bot).
Voyons maintenant comment nous pouvons résoudre efficacement la situation. Il est important de noter que tant que la transaction n’est pas écrite sur la blockchain, elle ne peut être considérée comme efficace et valable. Vous devez attendre la première confirmation, puis les suivantes.

btcnode_bot mempool fees

Double spend & RBF

Que signifie “double spend” ? Cela signifie produire deux transactions qui dépensent les mêmes UXTOs. Formellement rien ne vous empêche de faire cela. La question est la suivante: “Que fait un nœud s’il voit deux tx de double dépense ?
Vous ne savez pas, parce que vous ne contrôlez pas les nœuds des autres. Par défaut, ils doivent accepter le premier et rejeter les autres, mais ils n’ont aucun moyen de faire respecter ces règles. Avec RBF (replace by fee), vous pouvez aller remplacer une TX qui est déjà dans mempool. Comme les nœuds rejettent par défaut les doubles dépenses, le RBF a été inventé pour “dire” aux nœuds que vous envoyez une TX et que vous pourriez devoir augmenter les frais. En gros, les nœuds acceptent que vous augmentiez les frais.

Mais comme vous n’avez aucun contrôle sur les nœuds, vous ne savez pas quel TX entrera. Ce sont les nœuds des mineurs qui décident du TX à laisser entrer dans le bloc. Les nœuds qui acceptent le RBF admettent qu’une tx ultérieure avec des frais plus élevés remplacera celle qu’ils ont déjà reçue dans le mempool. RBF doit etre défi par l’expéditeur et ce dernier peut augmenter les frais avant que la transaction ne soit confirmée, par exemple via electrum (wallet)[¹] qui prend en charge cette fonction.

rbf electrum wallet

Utiliser la méthode CPFP

C’est un acronyme pour “child pays for parents“. Ce n’est pas une caractéristique, mais cela fait partie du système économique de bitcoin. Fondamentalement, lorsque les mineurs décident de la TX à inclure, ils agissent comme un tout. Ils incluront donc volontiers une transaction à frais élevés même si elle est le résultat d’une transaction à frais faibles[²]. Si la moyenne des frais est supérieure à la valeur actuelle des frais, ils accepteront d’inclure les deux transactions. Voyons comment les appliquer dans les deux situations où vous êtes soit l’expéditeur de la transaction, soit le destinataire de la transaction.

CPFP si vous êtes le bénéficiaire

Pour ce faire, si vous êtes le destinataire, vous pouvez créer une nouvelle transaction, en utilisant l’UTXO reçu (ou l’un de ceux reçus) pour construire une nouvelle transaction pour vous-même (à votre adresse) avec des frais tels que la moyenne avec les frais précédents est plus élevée que les frais actuels par transaction. De cette manière, les deux seront rapidement vérifiés.

CPFP Si vous êtes l’expéditeur de la transaction

Si vous êtes l’expéditeur, vous pouvez toujours utiliser cette méthode, voici comment. Dans la transaction que vous avez envoyée, il y a presque certainement un reste. Prenez alors l’UXTO lié au reste et utilisez-le pour vous constituer une nouvelle transaction à des frais très élevés.

Comme vous avez pu le voir dans cet article, il est donc possible et aussi très simple d’accélérer une transaction qui se trouve dans le mempool depuis longtemps. Nous avons vu comment il est possible de le faire avec les deux techniques les plus utilisées. J’espère vous avoir été utile et avoir apporté une valeur ajoutée. Je reste à votre disposition.

Notes:

[¹] electrum est un portefeuille bitcoin très efficace et utilisé

[²] une transaction ne peut être confirmée sans que le parent ne soit confirmé, car une transaction de fille n’existe pas si le parent n’existe pas.

frais transaction bitcoin

Les frais d’une transaction bitcoin

Quels sont les frais pour une transaction bitcoin ? Comme le bitcoin est décentralisé, il n’y a pas d’organisation ou d’entreprise qui gère ou demande ces frais. Alors, qu’est-ce que c’est ? Il s’agit d’une incitation économique qui fait partie du protocole bitcoin et qui sert à inciter le mineur qui vérifie le bloc de transaction, à ajouter la transaction dans son bloc après l’avoir validée. Lorsque cela se produit, la transaction reçoit une confirmation et est ensuite inscrite dans la blockchain

L’incitation économique est à la base du protocole bitcoin et c’est ce qui permet d’obtenir une très haute sécurité et une décentralisation en même temps. Le mineur en effet, outre les frais de transaction, obtient également la “reward”, c’est-à-dire un certain nombre de bitcoins (au moment de cet l’article 6.25) pour avoir validé le bloc ayant trouvé le hash correct selon les règles du protocole.

Quand les frais sont-ils payés ?

Les frais sont payés chaque fois que vous créez et envoyez une transaction bitcoin sur le réseau. Les frais sont payés lors de la transaction par la différence entre les inputs[1] et les outputs de la transaction. Presque tous les portefeuilles de bitcoin modernes effectuent ce calcul automatiquement et une valeur de frais est donc fixée directement à partir du portefeuille.

La fee est en fait une valeur qui évolue dans le temps et dépend du nombre de transactions dans le mempool[2] en attente de validation et des offres de redevance dans les autres transactions. Bien sûr, cela dépend aussi du temps que nous voulons attendre pour que notre transaction soit validée et ajoutée à la blockchain.

mempool

Il est conseillé de consulter le mempool pour connaître le nombre de transactions et déterminer le montant des frais à payer pour la transaction. De cette façon, vous payez toujours la valeur minimale possible.

Il y a des moments où l’utilisation de mempool est très faible et donc où le coût d’une transaction est très bas, alors que d’autres fois il y a une surcharge avec une augmentation conséquente des coûts.

Par exemple, la dernière “halving” a eu lieu en mai 2020. Immédiatement après la “halving”, nous avons constaté une forte augmentation du nombre de transactions dans le mempool, ce qui a entraîné une forte hausse des coûts (“cost increases”). En 2017 également, pendant la très forte croissance de la valeur du bitcoin, il y a eu une augmentation tout aussi forte des redevances avec des coûts pouvant aller jusqu’à quelques dizaines de dollars. Toutefois, à l’heure actuelle, la redevance est toujours très faible et est généralement de l’ordre de quelques centimes. Il est possible d’interroger un bot telegram (@btcnode_bot) afin d’établir le bon tarif du moment pour choisir le bon moment pour effectuer vos mouvements de bitcoin.
En fait, le montant dépend aussi de la rapidité avec laquelle nous voulons que notre transaction soit vérifiée.

btcnode_bot telegram bitcoin node

Comment sont exprimés les frais ?

Les frais sont exprimés en sat/b, ce qui signifie satoshi/byte. En pratique, il s’agit du nombre de satoshi à payer pour chaque byte de longueur d’une transaction. Par exemple, une transaction envoyée à plusieurs destinataires est plus longue qu’une transaction envoyée à un seul destinataire et qui dépense tout son “input”. Le Satoshi est la plus petite unité de bitcoin disponible, égale à 10^-8 bitcoins.

Définitions

[1] input/output: Une input est une référence à une output d’une transaction précédente. Les inputs multiples sont souvent énumérées dans une transaction. Une output contient des instructions pour l’envoi de bitcoins. La valeur est le nombre de Satoshi (1 BTC = 100.000.000 Satoshi) que cette output vaudra au moment de la demande.

[2] mempool: Le mempool est l’endroit où toutes les transactions valides attendent d’être confirmées par le réseau Bitcoin. Une taille élevée du mempool indique un trafic réseau plus important, ce qui se traduit par un temps de confirmation moyen plus long et des frais de priorité plus élevés. La taille du mempool est une bonne mesure pour estimer la durée de l’encombrement.

 

J’espère vous avoir fourni des informations et des considérations à valeur ajoutée avec cet article et je reste à votre disposition pour toute clarification et commentaire supplémentaires