Aller au contenu principal
Confidentialité

Change avoidance

Le change avoidance consiste à éviter de produire un output de change quand c'est possible. Permet une meilleure confidentialité (heuristique de change cassée). Implémenté par Branch-and-Bound dans Bitcoin Core. Fonctionne uniquement quand un input correspond exactement.

L'idée

Le change avoidance est une technique de sélection d'UTXO qui consiste à choisir un sous-ensemble dont la somme correspond exactement (ou presque) au montant à payer plus les frais. Résultat : la transaction n'a qu'un seul output, celui du destinataire, sans change. Aucun observateur ne peut alors attribuer un output de change au wallet émetteur — l'heuristique principale des chaînalystes est neutralisée.

Mise en œuvre concrète

L'algorithme Branch-and-Bound intégré à Bitcoin Core 0.17 (2018) cherche un sous-ensemble d'UTXO tel que :

montant_cible ≤ somme(UTXO) ≤ montant_cible + cost_of_change

Le paramètre cost_of_change représente le coût marginal d'ajouter un output de change. À un fee rate de 50 sat/vB, ce coût atteint plusieurs milliers de sats : il devient économique de payer un peu plus en frais d'input pour éviter un output supplémentaire.

| Fee rate | cost_of_change (P2WPKH) | Largeur de la fenêtre | |----------|--------------------------|----------------------| | 10 sat/vB | ~310 sats | Étroite | | 50 sat/vB | ~1 550 sats | Modérée | | 200 sat/vB | ~6 200 sats | Large |

Plus les frais sont élevés, plus le change avoidance devient probable.

Bénéfices

  • Confidentialité : l'heuristique du change est cassée
  • Frais : pas d'output supplémentaire à payer
  • UTXO set hygiene : pas de petit output « poussière » qui traîne
  • Simplicité : transactions plus petites, parfois 70 octets de moins

C'est l'un des rares cas où optimisation des frais et confidentialité s'alignent.

Limites

Le change avoidance ne fonctionne que si l'algorithme trouve une combinaison qui tombe pile dans la fenêtre. Cela dépend du nombre et de la granularité des UTXO :

  • Peu d'UTXO → peu de combinaisons, succès rare
  • UTXO toutes de taille similaire → idem
  • Beaucoup d'UTXO de tailles variées → succès fréquent

D'où l'intérêt, pour qui veut maximiser le change avoidance, d'accumuler des UTXO de tailles bien réparties (et non d'écraser systématiquement par consolidation).

Risques contre-intuitifs

Un change avoidance trop systématique peut également servir de signal : « cette transaction n'a pas de change » est en soi une caractéristique. Sur des wallets exotiques, cela peut pointer vers un usage privacy-conscious et créer un fingerprint. La meilleure stratégie reste donc de mélanger styles de transactions, et de combiner avec d'autres techniques (Payjoin, CoinJoin, lightning).

À retenir

Le change avoidance est une optimisation puissante, gratuite voire bénéfique en frais, et largement intégrée dans Bitcoin Core et Sparrow. C'est l'un des premiers gestes de privacy on-chain que tout utilisateur sérieux devrait connaître.

Termes lies

← Retour au glossaire complet

Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.