Si vous avez déjà effectué une transaction en crypto-monnaie, par exemple en envoyant des fonds à une autre adresse de portefeuille, vous avez peut-être remarqué un délai. Ces transactions différées sont généralement conservées dans ce que l'on appelle un "mempool".
Ce guide explique en détail ce qu'est un mempool, comment il fonctionne et pourquoi il est un élément essentiel d'une transaction en crypto-monnaie.
)
Un mempool est une sorte de "salle d'attente" sur le nœud d 'une blockchain où sont stockées les transactions non minées. Le terme "mempool" est une combinaison de deux mots - "memory" et "pool" - et fait référence à l'espace où les transactions en attente font la queue avant d'être ajoutées à la blockchain.
Bitcoin a été la première blockchain à introduire et à utiliser le concept de pool de mémoire de transaction (mempool). D'autres blockchains, comme Ethereum, ont également adopté ce terme par la suite. Toutes les blockchains disposent d'un certain type de mempool, même si le terme utilisé est différent. Par exemple, la blockchain Parity utilise le terme "Transaction Queue" pour représenter les mempools sur sa chaîne.
Les Mempools jouent un rôle majeur dans le fonctionnement des nœuds de la blockchain. Pour qu'une transaction soit réalisée et enregistrée sur une blockchain, elle doit d'abord être ajoutée à un bloc. Cependant, tous les nœuds d'un réseau de blockchain ne peuvent pas créer un nouveau bloc. Par exemple, sur les blockchains qui utilisent un mécanisme de preuve de travail, comme le Bitcoin, seuls les mineurs peuvent ajouter des transactions à un nouveau bloc. En ce qui concerne les blockchains utilisant un mécanisme de preuve d'enjeu, comme Ethereum, seuls les validateurs ou les proposants peuvent ajouter des transactions à un bloc.
Après avoir initié une transaction, les utilisateurs doivent compter sur un mineur ou un validateur pour approuver la transaction et l'ajouter à la blockchain. Cela ne se produit pas instantanément. Au lieu de cela, il y a un délai entre le moment où une transaction a été initiée et le moment où elle sera achevée. Pendant ce temps, la transaction est stockée dans un pool de mémoire en attente de confirmation.
Tout d'abord, vous devez savoir que les blockchains n'ont pas qu'un seul pool de mémoire. Au contraire, chaque nœud d'un réseau de blockchain particulier dispose de son propre pool de mémoire de transaction. Par exemple, chaque nœud de la chaîne de blocs Bitcoin possède sa propre réserve de transactions qui attendent d'être ajoutées au grand livre public. L'ensemble des mempools de chaque nœud constitue un mempool collectif.
Lorsqu'un utilisateur effectue une transaction, celle-ci est envoyée à un nœud. Le nœud ajoute alors la transaction à son pool de mémoire et la place dans une file d'attente, en attendant la validation. Une fois la transaction validée, elle sera marquée comme étant "en attente". Les mineurs peuvent uniquement ajouter des transactions marquées comme "en attente" à un nouveau bloc.
Pour illustrer la dynamique du mempool et le cycle de vie des transactions, supposons que vous souhaitiez envoyer 0,01 milliard de dollars à un ami.
Vous devez d'abord saisir l'adresse du portefeuille de votre ami, accepter les frais de transaction de la blockchain, puis cliquer sur "Envoyer".
La transaction sera ajoutée au mempool le plus proche en tant que transaction "en file d'attente".
Ensuite, la transaction sera diffusée aux autres nœuds du réseau, mais elle ne sera pas encore disponible sur la blockchain. Au lieu de cela, chaque nœud effectue des tests individuels pour vérifier que la transaction est authentique.
Si les nœuds approuvent la transaction, son statut passe de "en file d'attente" à "en attente".
Finalement, la transaction en attente sera sélectionnée par un mineur et ajoutée à un nouveau bloc.
Ensuite, le mineur diffuse ce bloc à tous les nœuds. Par conséquent, tous les nœuds auront désormais accès à toutes les transactions incluses dans le nouveau bloc.
À ce stade, les nœuds qui ont encore votre transaction stockée dans leur pool de mémoire la supprimeront.
Enfin, votre transaction est terminée et votre ami reçoit les 0,01 BTC.
La congestion d'un pool de transactions se produit lorsque la demande de transactions dépasse le nombre de transactions pouvant tenir dans un bloc. Plusieurs facteurs peuvent être à l'origine de l'arriéré de mempool. Il s'agit notamment de
Graphique des transactions moyennes par bloc du Bitcoin : Ycharts.com
Il est important pour les utilisateurs et les développeurs de comprendre ces facteurs et leur impact sur la congestion du mempool. Il leur permet d'anticiper les retards potentiels et de faire les ajustements nécessaires pour économiser les frais d'essence et éviter les retards.
Lorsque de nombreuses transactions ont lieu en même temps, plusieurs facteurs déterminent la priorité des transactions au sein d'un pool de mémoire. Nous vous en présentons quelques-unes ci-dessous.
L'un des principaux facteurs déterminant l'ordre d'exécution des transactions au sein d'un pool de mémoire est le montant des frais liés à chaque transaction. Les mineurs et les validateurs sont motivés par le profit, et ils peuvent choisir les transactions qu'ils souhaitent ajouter à un nouveau bloc. Il n'est donc pas surprenant qu'ils privilégient les transactions assorties de frais plus élevés, car cela se traduit par des récompenses plus importantes.
Par conséquent, les frais associés à une transaction influencent fortement ses chances d'être incluse dans un bloc. Les mineurs organisent normalement les transactions à l'intérieur de leur pool de mémoire en termes de frais par unité de données de transaction, communément représentées en satoshis/octet. À partir de là, ils donnent la priorité aux transactions présentant les taux de frais les plus élevés jusqu'à ce que le bloc soit complet.
Cette approche payante crée un marché concurrentiel au sein des mempools. Elle oblige les utilisateurs à choisir entre des frais plus élevés pour une transaction rapide et des frais moins élevés pour des périodes d'attente plus longues.
Néanmoins, les utilisateurs peuvent estimer le montant optimal qui n'est pas trop élevé mais qui permet d'obtenir une confirmation dans les délais. Pour ce faire, il faut tenir compte de certains facteurs tels que les données historiques, le volume des transactions, la congestion du réseau et la répartition des frais au sein du pool de mémoire. La plupart des plateformes populaires, comme les portefeuilles et les bourses de crypto-monnaies, disposent d'outils capables d'analyser l'état actuel d'un mempool et de recommander les frais les plus appropriés.
Cependant, l'estimation précise des frais n'est pas une science exacte et des défis subsistent. Par exemple, les conditions du réseau peuvent changer rapidement, ce qui rend les données historiques peu fiables. En outre, les redevances peuvent devenir très volatiles pendant les périodes de forte demande, ce qui entraîne des fluctuations inattendues des redevances.
L'encombrement du réseau influe de diverses manières sur le traitement des transactions et sur la dynamique des frais de gaz :
Les Mempools n'ont pas besoin de conserver une liste de toutes les transactions qui attendent d'être ajoutées à un bloc. Cependant, ils doivent savoir quelles transactions ont déjà été ajoutées à la blockchain afin de pouvoir les retirer de leur pool de mémoire si elles y sont encore stockées. Lorsqu'un mineur diffuse un nouveau bloc aux nœuds, ceux-ci peuvent vérifier cette information et ainsi réaliser la synchronisation mempool. Cela permet de s'assurer que seules les transactions non minées sont conservées dans les mempools.
L'espace de bloc, quant à lui, est la capacité disponible pour inclure des transactions dans un nouveau bloc. Comme cet espace est limité, les mineurs ou les validateurs donnent la priorité aux transactions dont les frais de gaz sont les plus élevés, tandis que les autres sont envoyées dans les réservoirs de mémoire en attente de confirmation.
Chaque transaction ajoutée à un pool de mémoire est un morceau de données ne dépassant pas quelques kilo-octets (kb). La somme de tous les octets composant les transactions est la taille du mempool. Une taille de mempool plus importante indique qu'il y a de nombreuses transactions en attente de confirmation. Il peut également s'agir d'un pic de trafic sur le réseau.
Tableau des tailles Mempool. Source : Blockchain.com
Les mempools n'ont pas de taille maximale prédéfinie, mais les nœuds peuvent fixer des limites de taille pour leurs mempools. Cette valeur est normalement fixée à 300 Mo pour Bitcoin. Lorsque le pool de mémoire atteint ce seuil, les nœuds peuvent imposer des frais de transaction minimaux. Toutes les transactions dont le taux de frais est inférieur à cette limite sont exclues du pool de mémoire. De cette manière, les nœuds peuvent éviter de se bloquer en raison d'une surcharge de transactions en attente.
Il est important de comprendre comment la taille du mempool affecte les frais et les délais de transaction, car cela permet aux utilisateurs de choisir les meilleurs moments pour effectuer une transaction. Il existe plusieurs sites web qui suivent la taille globale du mempool sur le réseau Bitcoin, tels que mempool.space et BitcoinTicker.co.
Voyons maintenant comment les mempools fonctionnent dans Bitcoin et Ethereum, les deux plus grandes blockchains au monde.
Toutes les transactions valides envoyées sur le réseau Bitcoin ne sont pas ajoutées instantanément à la blockchain. Ils doivent attendre dans le pool de mémoire Bitcoin.
À l'origine, les frais de transaction en bitcoins étaient mesurés en nombre de satoshis par octet de transaction. Toutefois, cette situation a changé après la mise à niveau SegWit. Aujourd'hui, les transactions dans un pool de bitcoins sont mesurées en unités de poids. Cette mise à jour a introduit ce que l'on appelle une fonction SegWit.
Grâce à cette mise à jour, les blocs de bitcoins peuvent désormais accueillir jusqu'à quatre fois plus de transactions.
Comme le bitcoin, la blockchain Ethereum a d'abord utilisé le mempool Ethereum pour servir de stockage temporaire aux transactions en attente d'être ajoutées à un bloc par les mineurs. Cependant, après le passage d'Ethereum d'un mécanisme de consensus par preuve de travail à un mécanisme de consensus par preuve d'enjeu, le réseau a introduit le concept de constructeur de blocs.
Les constructeurs de blocs sont des entités tierces spécialisées qui compilent les transactions pour créer un ensemble de transactions optimisé pouvant former un bloc. Ils le font en réorganisant ou en incluant certaines transactions dans le paquet à partir d'un pool de mémoire de transaction. Enfin, ils proposent aux proposants/valideurs d'inclure les paquets dans un bloc moyennant des frais.
La valeur d'un bloc dépend des transactions qu'il contient. Cela incite donc les créateurs de blocs à créer les blocs les plus lucratifs, car ils sont susceptibles d'être priorisés et confirmés plus rapidement par les validateurs. Par conséquent, comme dans d'autres blockchains, plus vous payez de frais sur Ethereum, plus vous avez de chances que votre transaction soit confirmée rapidement.
Le mempool est un élément essentiel des transactions de la blockchain. Il s'agit d'une sorte de "salle d'attente" où les transactions non confirmées attendent d'être validées et, en fin de compte, d'être incluses dans un nouveau bloc. Il est essentiel pour les utilisateurs de crypto-monnaies de comprendre les mécanismes d'un mempool, tels que la mise en file d'attente des transactions, la validation et la hiérarchisation des frais.
Si vous avez déjà effectué une transaction en crypto-monnaie, par exemple en envoyant des fonds à une autre adresse de portefeuille, vous avez peut-être remarqué un délai. Ces transactions différées sont généralement conservées dans ce que l'on appelle un "mempool".
Ce guide explique en détail ce qu'est un mempool, comment il fonctionne et pourquoi il est un élément essentiel d'une transaction en crypto-monnaie.
)
Un mempool est une sorte de "salle d'attente" sur le nœud d 'une blockchain où sont stockées les transactions non minées. Le terme "mempool" est une combinaison de deux mots - "memory" et "pool" - et fait référence à l'espace où les transactions en attente font la queue avant d'être ajoutées à la blockchain.
Bitcoin a été la première blockchain à introduire et à utiliser le concept de pool de mémoire de transaction (mempool). D'autres blockchains, comme Ethereum, ont également adopté ce terme par la suite. Toutes les blockchains disposent d'un certain type de mempool, même si le terme utilisé est différent. Par exemple, la blockchain Parity utilise le terme "Transaction Queue" pour représenter les mempools sur sa chaîne.
Les Mempools jouent un rôle majeur dans le fonctionnement des nœuds de la blockchain. Pour qu'une transaction soit réalisée et enregistrée sur une blockchain, elle doit d'abord être ajoutée à un bloc. Cependant, tous les nœuds d'un réseau de blockchain ne peuvent pas créer un nouveau bloc. Par exemple, sur les blockchains qui utilisent un mécanisme de preuve de travail, comme le Bitcoin, seuls les mineurs peuvent ajouter des transactions à un nouveau bloc. En ce qui concerne les blockchains utilisant un mécanisme de preuve d'enjeu, comme Ethereum, seuls les validateurs ou les proposants peuvent ajouter des transactions à un bloc.
Après avoir initié une transaction, les utilisateurs doivent compter sur un mineur ou un validateur pour approuver la transaction et l'ajouter à la blockchain. Cela ne se produit pas instantanément. Au lieu de cela, il y a un délai entre le moment où une transaction a été initiée et le moment où elle sera achevée. Pendant ce temps, la transaction est stockée dans un pool de mémoire en attente de confirmation.
Tout d'abord, vous devez savoir que les blockchains n'ont pas qu'un seul pool de mémoire. Au contraire, chaque nœud d'un réseau de blockchain particulier dispose de son propre pool de mémoire de transaction. Par exemple, chaque nœud de la chaîne de blocs Bitcoin possède sa propre réserve de transactions qui attendent d'être ajoutées au grand livre public. L'ensemble des mempools de chaque nœud constitue un mempool collectif.
Lorsqu'un utilisateur effectue une transaction, celle-ci est envoyée à un nœud. Le nœud ajoute alors la transaction à son pool de mémoire et la place dans une file d'attente, en attendant la validation. Une fois la transaction validée, elle sera marquée comme étant "en attente". Les mineurs peuvent uniquement ajouter des transactions marquées comme "en attente" à un nouveau bloc.
Pour illustrer la dynamique du mempool et le cycle de vie des transactions, supposons que vous souhaitiez envoyer 0,01 milliard de dollars à un ami.
Vous devez d'abord saisir l'adresse du portefeuille de votre ami, accepter les frais de transaction de la blockchain, puis cliquer sur "Envoyer".
La transaction sera ajoutée au mempool le plus proche en tant que transaction "en file d'attente".
Ensuite, la transaction sera diffusée aux autres nœuds du réseau, mais elle ne sera pas encore disponible sur la blockchain. Au lieu de cela, chaque nœud effectue des tests individuels pour vérifier que la transaction est authentique.
Si les nœuds approuvent la transaction, son statut passe de "en file d'attente" à "en attente".
Finalement, la transaction en attente sera sélectionnée par un mineur et ajoutée à un nouveau bloc.
Ensuite, le mineur diffuse ce bloc à tous les nœuds. Par conséquent, tous les nœuds auront désormais accès à toutes les transactions incluses dans le nouveau bloc.
À ce stade, les nœuds qui ont encore votre transaction stockée dans leur pool de mémoire la supprimeront.
Enfin, votre transaction est terminée et votre ami reçoit les 0,01 BTC.
La congestion d'un pool de transactions se produit lorsque la demande de transactions dépasse le nombre de transactions pouvant tenir dans un bloc. Plusieurs facteurs peuvent être à l'origine de l'arriéré de mempool. Il s'agit notamment de
Graphique des transactions moyennes par bloc du Bitcoin : Ycharts.com
Il est important pour les utilisateurs et les développeurs de comprendre ces facteurs et leur impact sur la congestion du mempool. Il leur permet d'anticiper les retards potentiels et de faire les ajustements nécessaires pour économiser les frais d'essence et éviter les retards.
Lorsque de nombreuses transactions ont lieu en même temps, plusieurs facteurs déterminent la priorité des transactions au sein d'un pool de mémoire. Nous vous en présentons quelques-unes ci-dessous.
L'un des principaux facteurs déterminant l'ordre d'exécution des transactions au sein d'un pool de mémoire est le montant des frais liés à chaque transaction. Les mineurs et les validateurs sont motivés par le profit, et ils peuvent choisir les transactions qu'ils souhaitent ajouter à un nouveau bloc. Il n'est donc pas surprenant qu'ils privilégient les transactions assorties de frais plus élevés, car cela se traduit par des récompenses plus importantes.
Par conséquent, les frais associés à une transaction influencent fortement ses chances d'être incluse dans un bloc. Les mineurs organisent normalement les transactions à l'intérieur de leur pool de mémoire en termes de frais par unité de données de transaction, communément représentées en satoshis/octet. À partir de là, ils donnent la priorité aux transactions présentant les taux de frais les plus élevés jusqu'à ce que le bloc soit complet.
Cette approche payante crée un marché concurrentiel au sein des mempools. Elle oblige les utilisateurs à choisir entre des frais plus élevés pour une transaction rapide et des frais moins élevés pour des périodes d'attente plus longues.
Néanmoins, les utilisateurs peuvent estimer le montant optimal qui n'est pas trop élevé mais qui permet d'obtenir une confirmation dans les délais. Pour ce faire, il faut tenir compte de certains facteurs tels que les données historiques, le volume des transactions, la congestion du réseau et la répartition des frais au sein du pool de mémoire. La plupart des plateformes populaires, comme les portefeuilles et les bourses de crypto-monnaies, disposent d'outils capables d'analyser l'état actuel d'un mempool et de recommander les frais les plus appropriés.
Cependant, l'estimation précise des frais n'est pas une science exacte et des défis subsistent. Par exemple, les conditions du réseau peuvent changer rapidement, ce qui rend les données historiques peu fiables. En outre, les redevances peuvent devenir très volatiles pendant les périodes de forte demande, ce qui entraîne des fluctuations inattendues des redevances.
L'encombrement du réseau influe de diverses manières sur le traitement des transactions et sur la dynamique des frais de gaz :
Les Mempools n'ont pas besoin de conserver une liste de toutes les transactions qui attendent d'être ajoutées à un bloc. Cependant, ils doivent savoir quelles transactions ont déjà été ajoutées à la blockchain afin de pouvoir les retirer de leur pool de mémoire si elles y sont encore stockées. Lorsqu'un mineur diffuse un nouveau bloc aux nœuds, ceux-ci peuvent vérifier cette information et ainsi réaliser la synchronisation mempool. Cela permet de s'assurer que seules les transactions non minées sont conservées dans les mempools.
L'espace de bloc, quant à lui, est la capacité disponible pour inclure des transactions dans un nouveau bloc. Comme cet espace est limité, les mineurs ou les validateurs donnent la priorité aux transactions dont les frais de gaz sont les plus élevés, tandis que les autres sont envoyées dans les réservoirs de mémoire en attente de confirmation.
Chaque transaction ajoutée à un pool de mémoire est un morceau de données ne dépassant pas quelques kilo-octets (kb). La somme de tous les octets composant les transactions est la taille du mempool. Une taille de mempool plus importante indique qu'il y a de nombreuses transactions en attente de confirmation. Il peut également s'agir d'un pic de trafic sur le réseau.
Tableau des tailles Mempool. Source : Blockchain.com
Les mempools n'ont pas de taille maximale prédéfinie, mais les nœuds peuvent fixer des limites de taille pour leurs mempools. Cette valeur est normalement fixée à 300 Mo pour Bitcoin. Lorsque le pool de mémoire atteint ce seuil, les nœuds peuvent imposer des frais de transaction minimaux. Toutes les transactions dont le taux de frais est inférieur à cette limite sont exclues du pool de mémoire. De cette manière, les nœuds peuvent éviter de se bloquer en raison d'une surcharge de transactions en attente.
Il est important de comprendre comment la taille du mempool affecte les frais et les délais de transaction, car cela permet aux utilisateurs de choisir les meilleurs moments pour effectuer une transaction. Il existe plusieurs sites web qui suivent la taille globale du mempool sur le réseau Bitcoin, tels que mempool.space et BitcoinTicker.co.
Voyons maintenant comment les mempools fonctionnent dans Bitcoin et Ethereum, les deux plus grandes blockchains au monde.
Toutes les transactions valides envoyées sur le réseau Bitcoin ne sont pas ajoutées instantanément à la blockchain. Ils doivent attendre dans le pool de mémoire Bitcoin.
À l'origine, les frais de transaction en bitcoins étaient mesurés en nombre de satoshis par octet de transaction. Toutefois, cette situation a changé après la mise à niveau SegWit. Aujourd'hui, les transactions dans un pool de bitcoins sont mesurées en unités de poids. Cette mise à jour a introduit ce que l'on appelle une fonction SegWit.
Grâce à cette mise à jour, les blocs de bitcoins peuvent désormais accueillir jusqu'à quatre fois plus de transactions.
Comme le bitcoin, la blockchain Ethereum a d'abord utilisé le mempool Ethereum pour servir de stockage temporaire aux transactions en attente d'être ajoutées à un bloc par les mineurs. Cependant, après le passage d'Ethereum d'un mécanisme de consensus par preuve de travail à un mécanisme de consensus par preuve d'enjeu, le réseau a introduit le concept de constructeur de blocs.
Les constructeurs de blocs sont des entités tierces spécialisées qui compilent les transactions pour créer un ensemble de transactions optimisé pouvant former un bloc. Ils le font en réorganisant ou en incluant certaines transactions dans le paquet à partir d'un pool de mémoire de transaction. Enfin, ils proposent aux proposants/valideurs d'inclure les paquets dans un bloc moyennant des frais.
La valeur d'un bloc dépend des transactions qu'il contient. Cela incite donc les créateurs de blocs à créer les blocs les plus lucratifs, car ils sont susceptibles d'être priorisés et confirmés plus rapidement par les validateurs. Par conséquent, comme dans d'autres blockchains, plus vous payez de frais sur Ethereum, plus vous avez de chances que votre transaction soit confirmée rapidement.
Le mempool est un élément essentiel des transactions de la blockchain. Il s'agit d'une sorte de "salle d'attente" où les transactions non confirmées attendent d'être validées et, en fin de compte, d'être incluses dans un nouveau bloc. Il est essentiel pour les utilisateurs de crypto-monnaies de comprendre les mécanismes d'un mempool, tels que la mise en file d'attente des transactions, la validation et la hiérarchisation des frais.