Le mempool, c'est quoi ?

Le mempool (ou memory pool) représente la zone d'attente des transactions d'une blockchain. Une fois qu'une transaction est vérifiée par un nœud, celle-ci patiente à l'intérieur du mempool jusqu'à ce qu'elle soit captée par un mineur et insérée dans un bloc.

Ainsi, plus le nombre de transactions au sein du mempool est élevé, plus le réseau est congestionné. Cela se traduira notamment par un temps de confirmation moyen plus long des transactions, car celles-ci attendent d'être incluses dans le prochain bloc.

Pour décrire en profondeur le mempool, je m'appuierais sur l'exemple de la blockchain Bitcoin. Même si le mempool est également présent chez d'autres réseaux, notamment Ethereum, celui de Bitcoin est le plus probant.

Notez que pour Bitcoin, il n'y a pas de mempool globale. Chaque nœud conserve son propre ensemble de transactions non confirmées auxquelles il a été exposé.

Supposons que la taille totale du mempool à un moment donné soit d'environ 5 MB. Dans un tel cas, les transactions devront patienter au moins 4 ou 5 blocs jusqu'à ce qu'elles soient confirmées.

La taille d'un bloc de Bitcoin étant limité à 1 MB et le temps moyen de création de 10 minutes, les transactions nouvelles dans cette configuration devront patienter environ 50 minutes avant d'être insérées dans un bloc.

Notez que depuis l'implémentation de SegWit, cette limite est aujourd'hui plus complexe à déterminer. Selon les circonstances, la taille d'un bloc de Bitcoin atteint régulièrement les 1,4 à 1,5 MB.

Selon les données de Blockchain.com, la taille du mempool a atteint son point le plus haut le 11 janvier 2018, soit près d'un mois après que le Bitcoin ait touché les 20 000 dollars. Avec une taille de 137 MB, cela signifie qu'une transaction à cette période devait en moyenne attendre le minage de 137 blocs avant d'être confirmée, soit près de... 23 heures.

Taille mempool Bitcoin

Taille du mempool de Bitcoin en octets - Source : Blockchain.com

L'ordre de priorité des transactions dans le mempool

En fonction de la congestion du réseau Bitcoin, la transaction pourra donc rester un certain temps dans le mempool. Toutefois, il est possible pour une transaction de passer en priorité devant les autres. Cela dépend des frais payés par l'expéditeur pour l'envoi de sa transaction sur le réseau.

Plus les frais engagés seront importants, plus la position de la transaction dans la liste d'attente sera haute. Le plus souvent exprimé en satoshis/bytes, les mineurs donnent la priorité aux transactions qui maximisent ce ratio.

Selon les données du site Bitcoinfees.earn.com, à l'heure de l'écriture de ces lignes, une transaction avec 1 à 2 satoshis/bytes devra au minimum attendre le minage de 3 blocs avant d'être confirmée.

À titre de comparaison, si l'expéditeur paie plus de 100 satoshis/bytes pour l'envoi de sa transaction, celle-ci sera intégrée au prochain bloc, sauf si un grand nombre de transactions paient des frais plus importants.

Pour illustrer l'importance de cette particularité, observons le graphique ci-dessous. Lorsque la congestion du réseau Bitcoin, le ratio moyen de satoshis/bytes augmente irrémédiablement :

Transaction non confirmées Bitcoin

Transactions Bitcoin en attente de confirmations selon leur ratio satoshis/bytes - Source : Johen Hoenicke.de

Il est toutefois possible d'accélérer la confirmation d'une transaction grâce au Replace-by-Fee (RBF). Le RBF est une fonctionnalité de Bitcoin permettant à l'émetteur d'une transaction encore non confirmée de la remplacer par une autre en augmentant les frais lui étant associés.

Certains portefeuilles intègrent nativement cette fonctionnalité particulièrement pratique en cas de forte congestion du réseau. C'est notamment le cas du portefeuille logiciel Electrum, disponible sur Windows, MacOS et Linux.

👉 Pour en savoir plus, lisez notre tutoriel d'utilisation du Replace-by-Fee avec Electrum

Les raisons d'être du mempool

Le mempool a pour la première fois été décrit dans la proposition BIP 35 le 16 août 2012 par Jeff Garzik. L'idée de ce contributeur de Bitcoin était que les nœuds externes puissent accéder au mempool des autres nœuds. Selon eux, l'intégration du mempool comporte plusieurs avantages :

  • Les clients de Simplified Payment Verification - également appelés « portefeuilles allégés » - peuvent prendre connaissance des transactions avant qu'elles ne soient confirmées et ajoutées dans un bloc ;
  • Les mineurs peuvent consulter les transactions comportant le plus haut ratio satoshis/bytes et prévoir leur activité en fonction ;
  • Cela permet de réaliser un diagnostic du réseau à distance. La congestion de la blockchain Bitcoin est connue en temps réel.

 

En conclusion, le mempool est donc une partie très importante du réseau Bitcoin et assure le bon fonctionnement d'une blockchain en répertoriant les transactions en fonction des frais qui leur sont appliquées.

Véritable chef d'orchestre des transactions, c'est notamment grâce au mempool qu'il est possible de savoir à quel point le réseau d'une blockchain est congestionné.

👉 Découvrez tous nos articles explicatifs sur la blockchain

Newsletter 🍞
Recevez un récapitulatif de l'actualité crypto chaque dimanche 👌 Et c'est tout.

A propos de l'auteur : Clément Wardzala

twitter-soothsayerdatatwitter-soothsayerdata

Rédacteur en chef de Cryptoast, je découvre le Bitcoin et la technologie blockchain en 2017. Depuis, je m'efforce de partager un contenu qualitatif pour que le secteur se démocratise auprès de tous.
Tous les articles de Clément Wardzala.

guest
0 Commentaires
Inline Feedbacks
View all comments