Aller au contenu
buybitcoinsmart

Glossaire / Transactions et frais

Mempool

Aussi appelé Memory pool.

Qu'est-ce que le mempool ?
Le mempool est l'ensemble des transactions valides dont un nœud a eu connaissance mais qu'il n'a pas encore vues dans un bloc, conservées en mémoire pendant qu'elles attendent qu'un mineur les prenne en charge.

Il n'existe pas un mempool unique. Chaque nœud conserve le sien, plafonné dans Bitcoin Core à 300 mégaoctets par défaut, et supprime les transactions les moins chères lorsque ce plafond est atteint. Ce qu'un site de mempool vous montre est la vue d'un seul nœud sur la file d'attente, suffisamment proche pour choisir des frais mais qui ne fait jamais autorité.

Comment cela fonctionne

L'arrivée est un processus de filtrage, pas un ticket de file d'attente. Lorsqu'une transaction atteint un nœud, elle est vérifiée par rapport aux règles de consensus puis par rapport à la politique de relais propre à ce nœud, et ce n'est que si elle passe les deux que le nœud la stocke et la transmet à ses pairs. Une transaction rejetée n'est tout simplement pas transmise, et si suffisamment de pairs la rejettent, elle n'atteint jamais un mineur.

Le stockage est borné, ce qui surprend ceux qui s'attendent à ce qu'une salle d'attente soit infinie. Le réglage -maxmempool vaut 300 mégaoctets par défaut, et lorsque le stock se remplit, le nœud évince les transactions au taux de frais le plus bas et relève son propre seuil d'acceptation au-dessus du minimum habituel. Tout ce qui attend encore après -mempoolexpiry heures est également écarté, et cette valeur par défaut est de 336 heures, soit exactement 14 jours. Depuis Bitcoin Core 0.14.0, le contenu survit à un redémarrage en étant écrit dans un fichier mempool.dat, de sorte que l'arrêt de votre nœud n'efface plus ce qu'il savait.

L'ordre est déterminé par le prix par unité de taille. Un mineur qui assemble un bloc candidat trie par taux de frais et remplit le budget de 4 000 000 unités de poids en partant du haut, en jugeant une transaction avec les parents non confirmés dont elle dépend. Bitcoin Core 31.0 a reconstruit le mempool autour de cette idée même, en regroupant les transactions connectées en grappes pouvant compter jusqu'à 64 membres et en les classant selon le taux auquel elles seraient réellement minées. L'heure d'arrivée ne compte pas, ce qui explique qu'une transaction diffusée ce matin puisse être dépassée tout l'après-midi par des transactions plus tardives payant davantage.

Parce que chaque nœud applique ses propres réglages, le contenu diffère d'une machine à l'autre. Un nœud redémarré il y a une heure en sait moins qu'un nœud actif depuis un mois, un nœud exécutant Bitcoin Knots filtre différemment d'un nœud exécutant Bitcoin Core, et des transactions peuvent être remises directement aux mineurs sans avoir jamais circulé sur le réseau.

Pourquoi cela compte lorsque vous achetez du bitcoin

Vérifier la file d'attente avant de déplacer des pièces est l'habitude la moins coûteuse du bitcoin. Le même retrait peut coûter quelques centaines de satoshis un week-end calme et des dizaines de milliers pendant une ruée, et rien dans votre portefeuille ne vous avertit de la situation dans laquelle vous vous trouvez. Un coup d'œil au taux du prochain bloc avant d'appuyer sur retirer vaut plus que n'importe quel réglage de frais qu'un portefeuille propose.

La plateforme d'échange que vous utilisez change l'importance de ce point. Binance, Kraken et Coinbase facturent tous les retraits de bitcoin selon le réseau, de sorte que le montant qu'ils annoncent grimpe lorsque la file est longue et redescend lorsqu'elle se vide, et attendre une heure calme vaut de l'argent réel. Les plateformes qui publient des frais de retrait fixes perçoivent au contraire le même montant quel que soit l'état de la file, ce qui les rend pénalisantes un jour calme et avantageuses pendant la congestion. Savoir sur quel modèle vous vous trouvez vous dit si attendre vous apporte quelque chose.

La congestion survient aussi sans avertissement et pour des raisons sans rapport avec les paiements. Les vagues de création de jetons de 2023 et le lancement de Runes en avril 2024 ont tous deux rempli des blocs de données, poussant les épargnants ordinaires dans une surenchère qu'ils n'avaient aucun intérêt à rejoindre. Si vous effectuez des achats récurrents via Swan ou River avec des retraits automatiques, la réponse sensée est un seuil qui déplace les pièces en moins de transactions plus importantes plutôt qu'un calendrier hebdomadaire fixe qui ignore l'état de la file.

Lire la file avant d'appuyer sur retirer

Ouvrez n'importe quel tableau de bord de mempool et vous voyez trois choses : les transactions en attente, les tranches de taux de frais dans lesquelles elles se situent, et les blocs projetés que ces tranches rempliraient. Une tranche étiquetée pour le prochain bloc est ce que vous payez pour être miné en une dizaine de minutes ; les tranches plus basses sont ce que vous payez pour attendre.

Mettez-y des chiffres avec un balayage d'une pièce vers une sortie. Cette transaction fait environ 110 octets virtuels avec une entrée SegWit native, donc à 2 sat/vB elle coûte 220 satoshis et à 90 sat/vB elle coûte 9 900 satoshis. La transaction est identique octet pour octet dans les deux cas. Seul le moment que vous avez choisi diffère, et c'est toute la leçon.

Le plancher mérite aussi d'être connu. Offrez trop peu et votre transaction peut ne jamais être acceptée par les pairs, elle n'apparaîtra donc pas sur les explorateurs et ne pourra pas être augmentée. Offrez délibérément un peu bas et vous pariez que la file se vide dans les 14 jours, après quoi les nœuds l'écartent et les pièces de votre portefeuille redeviennent dépensables.

Mempool vs politique de mempool

Un mempool est un conteneur ; la politique est le portier. Le conteneur détient tout ce qui a passé les vérifications, et sa taille et son expiration sont configurables de la même manière que la politique, mais les deux répondent à des questions différentes. La politique décide si une transaction est autorisée à entrer et à être relayée ; le mempool décide de ce qui lui arrive ensuite, y compris quelles transactions sont évincées lorsque l'espace manque.

Mempool vs bloc

Un bloc est un enregistrement réglé et permanent avec une limite stricte de 4 000 000 unités de poids ; un mempool est une estimation temporaire, privée et en principe illimitée de ce que les prochains blocs pourraient contenir. Les transactions quittent le mempool lorsqu'elles sont minées, et elles le quittent à nouveau si la branche qui les contient est abandonnée, auquel cas elles retournent en attente. Le fait d'être dans un mempool n'est un engagement de personne.

À ne pas confondre avec

Questions fréquentes

Y a-t-il un mempool mondial unique ?

Non. Chaque nœud conserve sa propre copie, constituée de ce que ses pairs lui ont relayé et filtrée par ses propres paramètres, de sorte que deux nœuds détiennent rarement exactement les mêmes transactions. Les sites de mempool publient la vue d'un seul nœud comme approximation utile.

Combien de temps une transaction reste-t-elle dans le mempool ?

Jusqu'à ce qu'elle soit minée, remplacée ou expirée. Bitcoin Core écarte tout ce qui attend encore après 336 heures, soit 14 jours, et un nœud dont la limite de 300 mégaoctets est atteinte évince les transactions les moins chères bien avant ce délai.

Ma transaction a disparu du mempool. Où est-elle passée ?

Soit elle a expiré, soit elle a été évincée pour avoir payé trop peu, soit un remplacement avec des frais plus élevés a pris sa place. Les pièces n'ont jamais été dépensées, votre portefeuille peut donc reconstruire et rediffuser le paiement avec un taux de frais plus élevé.

À lire ensuite

Termes associés

Plus de termes : Transactions et frais

Lire cette page en anglais