Transactions et frais

Transactions

Les bitcoins ne peuvent pas être regroupés. Un utilisateur recevant deux paiements de N et M bitcoins conservera deux montants dans son portefeuille quand bien même son logiciel, pour plus d’ergonomie, les affichera regroupés. L’utilisateur accumulera au fur et à mesure des paiements qu’il recevra une collection de montants différents (appelées données d’entrée). Lorsqu’il voudra les dépenser, son logiciel calculera le meilleur ensemble de données d’entrée pour minimiser la taille des données de sortie et limiter les frais de transaction.

  • Exemple: Un utilisateur reçoit 13 paiements de 1 x 2,3 XBT, 5 x 1,0 XBT, 2 x 0,7 XBT, 1 x 0,5 XBT, 1 x 0,3 XBT, 2 x 0,2 XBT et 1 x 0,1 XBT. Son logiciel lui indiquera alors qu’il possède 10,0 XBT.
  • (Cas 1) : Lorsqu’il voudra dépenser 3,0 XBT, le meilleur ensemble en données de sortie consiste à regrouper les 2,3 XBT et 0,7 XBT reçus précédemment.
  • (Cas 2) : S’il voulait dépenser 3,05 XBT, le meilleur ensemble en données de sortie consiste à regrouper les 2,3 XBT avec les 0,7 XBT reçus précédemment et de fractionner la transaction de 0,1 XBT en une transaction de sortie de 0,05 XBT et de conserver l’autre fraction transactionnelle de 0,05 XBT dans son portefeuille.

Frais

Le paiement de frais de transaction est facultatif. Les mineurs choisissent l’ordre de priorité des transactions à traiter dans les blocs nouveaux à créer en fonction des utilisateurs qui paient les frais de transaction. Plus un utilisateur paie des frais de transaction élevés, plus sa transaction sera traitée rapidement. En cas de frais identiques, la priorité est donnée aux transactions les plus anciennes. Les transactions effectuées sans frais de transaction sont traitées après toutes les autres (ces transactions commencent à être traitées en moyenne à partir de 120 minutes et jusqu’à un temps potentiellement infini).

Les frais de transaction les plus compétitifs qui permettent d’offrir une confirmation quasi-immédiate (allant de 0 à 35 minutes en moyenne) se situent aux alentours de 80 satoshis / octet (0.00000080 XBT / octet). Ainsi, en 2016, pour une taille médiane de transaction de 265 octets, cela représente un coût approximatif de 21.200 satoshis (soit moins de 0,11 ) quel que soit le montant en bitcoins à transférer.

Pour décourager la multiplication des petits montants de transaction, le logiciel applique des frais de transaction obligatoires pour toute transaction inférieure à 0.01 XBT. Ces frais représentent 0.0001 XBT.

Plus les assemblages des données d’entrées sont nombreux pour réaliser une dépense, plus l’encodage de la transaction est longue et plus les frais augmentent (même s’ils restent d’un montant globalement très faible). L’algorithme du logiciel Bitcoin est conçu pour éviter le plus possible le regroupement de données d’entrées de montant inférieur à 0.01 XBT pour limiter ces frais de transaction obligatoires.

Si les bitcoins à dépenser sont d’un montant trop faible ou trop récent, le paiement de frais de transaction est nécessaire pour être traité immédiatement. Chaque transaction à traiter est affectée d’un ordre de priorité qui est déterminé par son montant, son ancienneté et sa taille (liée au nombre de données d’entrée regroupées pour être dépensées). Plus précisément le logiciel calcule un quotient déterminé par le nombre de bitcoins à dépenser multiplié par l’âge de la transaction et divisé par la taille des données d’entrées regroupées pour être dépensées. En dessous d’un certain quotient, la transaction requiert le paiement de frais pour être traitée immédiatement.

  • Si l’utilisateur choisit de ne pas payer de frais de transaction, le quotient finit par augmenter au fur et à mesure que le temps s’écoule jusqu’à ce qu’il dépasse la valeur seuil : la transaction est alors traitée sans frais mais est décalée dans le temps,
  • Plus le nombre de bitcoins à dépenser est élevé, plus le quotient est élevé et plus l’utilisateur a une chance de voir sa transaction traitée rapidement ou sans frais,
  • Pour un même montant en bitcoins à dépenser, les transactions comportant un regroupement faible de données d’entrées sont traitées plus rapidement que les autres.

Le logiciel Bitcoin calcule en général les frais optimaux à payer pour que la transaction soit traitée immédiatement à l’instant du transfert. Ces frais varient en fonction du degré d’encombrement des transactions à traiter à l’instant de transfert mais ils restent globalement très négligeables. L’utilisateur est le seul à décider du montant des frais de transaction qu’il est prêt à payer