Glossaire / Transactions et frais
Relais de paquets
- Qu'est-ce que le relais de paquets ?
- Le relais de paquets permet à un nœud d'accepter ensemble un groupe de transactions non confirmées liées entre elles, afin qu'un enfant qui paie des frais élevés puisse porter un parent que le réseau refuserait autrement.
Spécifié dans BIP-331.
Le relais de paquets corrige un décalage qui a subsisté pendant des années : les mineurs évaluaient des groupes, tandis que le réseau qui acheminait les transactions vers eux les évaluait une par une. Bitcoin Core 28.0, publié en octobre 2024, a livré le relais opportuniste pour le cas d'un parent et d'un enfant, et le BIP 331 spécifie la version générale. Si vous avez déjà augmenté les frais d'un paiement entrant bloqué et vu cette augmentation disparaître, voici pourquoi.
Comment cela fonctionne
Un nœud décide de garder ou non une transaction dès qu'elle arrive, et pendant la majeure partie de l'histoire du bitcoin il prenait cette décision sans rien savoir de ce à quoi la transaction était rattachée.
Imaginez la défaillance. Un parent arrive en payant moins que ce que le nœud exige alors et il est rejeté plutôt que stocké. Un enfant arrive quelques instants plus tard en dépensant une sortie de ce parent, et faute de trace du parent, le nœud ne peut pas valider l'enfant non plus : celui-ci atterrit dans une petite réserve d'orphelins, d'environ cent transactions par défaut, et il est oublié. Les frais portés par l'enfant ne sont jamais comptés. Le minage tenant compte des ancêtres, présent dans Bitcoin Core depuis 2016, ne pouvait pas aider, car rien n'atteignait jamais un mineur.
Le relais opportuniste d'un parent et d'un enfant ferme la version courante de ce trou. Quand un orphelin apparaît dont le parent manquant a été récemment rejeté pour avoir payé trop peu, le nœud réexamine les deux comme une unité, les jugeant sur les frais combinés rapportés à la taille combinée, et accepte les deux si la paire franchit le seuil. La portée est délibérément étroite : un parent, un enfant. Un lot comportant plusieurs parents sous-évalués reste hors de portée.
Le BIP 331 définit le mécanisme général : les pairs annoncent leur prise en charge avec un message sendpackages pendant la poignée de main, puis utilisent ancpkginfo, getpkgtxns et pkgtxns pour demander l'ensemble des ancêtres d'une transaction avant d'en juger quoi que ce soit. Vous pouvez déjà remettre un groupe à votre propre nœud avec la commande RPC submitpackage, plafonnée à 25 transactions et 101 kilovbytes.
Les protocoles qui en ont le plus besoin signent leurs transactions bien avant de les diffuser. Un engagement Lightning est convenu des mois avant le jour où il pourrait servir, alors que personne ne sait quels seront les frais, aussi la conception moderne le signe à des frais nuls ou presque et laisse le côté qui en a besoin ajouter les frais par une sortie d'ancrage. Cela ne fonctionne que si l'engagement et son enfant payeur de frais voyagent ensemble. La même version a ajouté les transactions TRUC, spécifiées dans le BIP 431, qui restreignent la topologie afin qu'un attaquant ne puisse pas enterrer la paire sous des déchets.
Où le voir
Le relais de paquets est invisible quand il fonctionne, et ce que vous remarquez, c'est son absence : la question qui décide de vos options est de savoir si le parent bloqué existe quelque part.
Si le parent se trouve dans les mempools et se confirme lentement, une augmentation des frais ordinaire suffit et aucun paquet n'intervient. Le relais de paquets concerne le cas plus difficile, où une plateforme a construit son lot de retraits sous le plancher du moment, où aucun nœud n'en a gardé de copie, et où rien de ce que vous payez de votre côté ne sauve une transaction que le réseau n'a jamais acceptée.
Cherchez l'identifiant de transaction sur deux ou trois explorateurs indépendants, car chacun rapporte le mempool de son propre nœud. Rien nulle part signifie qu'il n'y a rien à augmenter, et la correction revient à l'expéditeur. Les utilisateurs de Lightning rencontrent le même mécanisme lors des fermetures forcées, où un engagement à frais nuls plus une dépense d'ancrage constituent désormais la sortie standard d'un canal.
Une réserve honnête : les améliorations de relais ne s'appliquent qu'entre pairs qui les exécutent, donc la propagation dépend de l'adoption à travers le réseau plutôt que de la version de votre propre nœud.
Relais de paquets vs child pays for parent
Child pays for parent est la stratégie, et le relais de paquets est la tuyauterie qui la rend possible. La première décrit le fait d'attacher un enfant bien rémunéré pour qu'un mineur prenne les deux ; le second est la capacité du réseau à déplacer et juger cette paire comme un seul objet. Vous pouvez utiliser la stratégie sans relais de paquets chaque fois que le parent se trouve déjà dans les mempools, ce qui couvre la plupart des paiements bloqués. Le relais de paquets est ce qui fait fonctionner la technique quand le parent est évalué sous ce que le réseau acceptera d'acheminer.