Chaque personne ayant utilisé le Bitcoin a utilisé le mempool. Alors, qu'est-ce que le mempool ?
D'un point de vue technique, il n'existe pas de "pool de mémoire" unique. Chaque nœud complet de Bitcoin gère son propre pool de mémoire, qui est un cache des transactions Bitcoin valides qui ont été diffusées sur le réseau mais qui n'ont pas encore été confirmées dans un bloc. Les nœuds échangent des messages pour voir les transactions qu'ils possèdent ou ne possèdent pas, et échangent les transactions qu'ils n'ont pas.
Chaque pool de mémoire est essentiellement une "île" indépendante, possédant son propre ensemble de transactions non confirmées, parfois même avec ses propres variables et paramètres de configuration. La taille du pool de mémoire peut être configurée, avec une valeur par défaut de 300 Mo. De plus, il existe un taux minimum qui s'ajuste dynamiquement et peut être configuré à une valeur. Cela sert à décider quelles transactions seront expulsées du pool de mémoire lorsque celui-ci est plein et que d'autres transactions continuent d'affluer. Il existe également d'autres options configurables, telles que les options datacarrier et datacarriersize, qui affectent les transactions contenant des sorties OP_RETURN.
Les raisons pour lesquelles différents nœuds fonctionnent des pools de mémoire varient, donc les besoins sont également différents, mais finalement, la satisfaction de ces besoins est réalisée par la synchronisation de l'exécution de leurs propres pools de mémoire par tous les nœuds et leur interaction mutuelle.
On peut imaginer chaque pool de mémoire comme un véritable bassin, qui sont interconnectés par des canaux sous-jacents. Plus le pool de mémoire est grand, plus le bassin sous-jacent est profond. Les mineurs, les échanges, les explorateurs de blocs, tous ces acteurs deviennent les bassins les plus profonds. Chacun a ses propres motivations pour vouloir comprendre chaque transaction non confirmée en attente d'être empaquetée dans un bloc. Les mineurs le font pour s'assurer qu'ils ont les transactions les plus rentables dans le prochain bloc. Les échanges, pour être sûrs de connaître toutes les transactions en attente. Les explorateurs de blocs, parce que l'ensemble de leur service consiste à afficher aussi complètement que possible l'ensemble des données sur la blockchain et le pool de mémoire. Votre nœud ordinaire a en réalité seulement besoin d'être suffisamment profond pour inclure la partie des taux les plus élevés dans le "pool de mémoire".
Imaginez maintenant chaque transaction comme une goutte de liquide, plus le taux est élevé, plus la densité du liquide est grande. Ces liquides circulent dans les canaux entre les pools miniers, après avoir atteint chaque pool minier, une goutte de liquide reçue sera copiée, puis envoyée à tout autre pool minier qui n'a pas encore reçu ce liquide par le biais des canaux. Au fur et à mesure que les pools miniers se remplissent, lorsque le liquide déborde, le liquide de densité plus faible (taux plus bas) débordera en premier du bord du pool minier.
Finalement, certains mineurs chanceux puiseront une certaine quantité de liquide au fond de la piscine de minage et le verseront dans le dernier canal en verre, formant un long canal en verre sinueux, rempli de liquide et y restant pour toujours (blockchain). C'est juste une façon intuitive de penser au système et de couvrir la plupart de ses dynamiques.
Cette arrangement d'interconnexion des pools de minage offre différentes utilisations pour différents utilisateurs.
Traders
Lorsqu'un utilisateur effectue une transaction, la mémoire tampon a deux utilisations. D'abord, et c'est le plus important, elle envoie leurs transactions aux mineurs. Si une transaction n'entre pas dans la mémoire tampon d'un mineur, elle ne peut pas être empaquetée dans un bloc. Les mémoires tampon se relient et partagent des transactions entre elles, garantissant qu'une fois qu'une transaction est placée dans une mémoire tampon, elle finira par entrer dans la mémoire tampon de tous les mineurs. Disposer d'un réseau puissant et décentralisé, capable de garantir que les transactions finissent par être envoyées par les utilisateurs à tous les mineurs, sans être affectées par les changements de connexion réseau et la fragmentation, est extrêmement précieux.
Le deuxième usage est l'estimation des frais, ce qui est particulièrement important pour les utilisateurs de Layer 2, car ils doivent toujours s'assurer que les transactions de réponse aux états invalides peuvent être confirmées à temps. En examinant simplement les taux de frais des transactions dans ces blocs, il est possible d'estimer les frais dans une certaine mesure, mais cela ne fournit aucune information sur l'état de la mémoire après le dernier bloc. Cela ne peut pas expliquer les pics soudains, l'afflux de spéculateurs dans la mémoire, ou la prochaine vague de transactions qui n'est pas encore terminée. Étant donné qu'il est impossible de voir la mémoire, l'estimation des frais ne peut pas garantir qu'elle prend en compte l'état actuel des transactions en attente.
Destinataire
Lorsque vous recevez des bitcoins, votre nœud valide la transaction ainsi que tout le bloc contenant cette transaction. La transaction qui vous est envoyée est diffusée et finit par entrer dans la mémoire des mineurs, qui trouveront un bloc. Ce bloc sera diffusé sur le réseau, puis votre nœud téléchargera et validera ce bloc.
Mais la façon dont cela fonctionne réellement n'est pas ainsi (à moins que vous ne désactiviez la mémoire tampon des nœuds et que vous ne fonctionniez qu'en mode bloc). Votre nœud vérifie chaque transaction lorsqu'elle est reçue pour la première fois dans la mémoire tampon et la met en cache en tant que transaction Bitcoin valide. Lorsque les mineurs trouvent un bloc, ils ne transmettent en réalité que l'en-tête du bloc et un petit morceau d'informations compressées (en raison du manque d'une meilleure explication simple), ces informations pouvant être utilisées pour déterminer quelles transactions sont incluses dans le bloc. Ensuite, votre nœud récupère les transactions préalablement vérifiées, vérifie l'en-tête du bloc et, si tout est validé, il retransmet le "bloc compact".
Cette optimisation est en fait la raison pour laquelle les mineurs ne dépendent plus des réseaux de relais centralisés et sous licence, comme le FIBRE maintenu auparavant par Matt Corrallo et le réseau Falcon qui a existé brièvement. En raison de la lenteur des vitesses de relais des réseaux pair-à-pair, les mineurs devaient autrefois se connecter au réseau Falcon pour garantir un faible délai de relais de blocs avec d'autres mineurs.
Mineur
Les mineurs veulent évidemment tout voir. Il s’agit d’entités à but lucratif qui souhaitent être en mesure de filtrer les transactions avec les frais de paiement les plus élevés du plus grand ensemble possible de transactions en attente. C’est ainsi qu’ils maximisent leurs profits et génèrent des revenus pour continuer à développer leur entreprise et à rester compétitifs.
Ils obtiennent en réalité des fonds à partir du pool de mémoire. Leur motivation à obtenir n'importe quelle transaction payante valide est si forte qu'ils ont historiquement, actuellement et presque certainement à l'avenir établi de nombreux systèmes, voire des arrangements informels disponibles dans la société, visant à permettre aux utilisateurs de soumettre directement des transactions aux mineurs, plutôt que par le biais d'un réseau pair à pair ouvert.
Explorateurs de blocs, outils d'analyse en chaîne, etc.
Ils espèrent voir chaque transaction en attente créée et diffusée dans le monde entier, tout comme les mineurs. La principale différence entre les deux réside dans le fait que les mineurs tirent des bénéfices directement des frais associés à ces transactions, tandis que les explorateurs de blockchain et les sociétés d'analyse en tirent des bénéfices de manière indirecte en affichant, analysant et fournissant des analyses d'informations dans des produits rentables.
Je ne peux pas citer d'exemples spécifiques impliquant des données de pool de mémoire cache, mais il est bien connu que les entreprises d'analyse blockchain achètent régulièrement des métadonnées sur les activités de transaction blockchain obtenues en privé. Elles exploitent également des nœuds de Bitcoin de sorcière, qui se connectent autant que possible en pair à pair avec d'autres nœuds sur le réseau afin de restreindre la portée du nœud qui a initialement diffusé la transaction.
Les explorateurs de blocs tirent également profit de la visualisation des données de la blockchain et des pools de mémoire, leur modèle commercial entier tourne autour de cela. Si ces informations peuvent être présentées de manière pratique ou novatrice, alors accéder à plus de données et les montrer aux utilisateurs signifie qu'il est possible d'obtenir plus d'informations potentielles sur les profits.
L'information désire circuler
Tous ces différents types d'utilisateurs bénéficient d'un "piscine de mémoire publique" pour une raison simple : les informations circulent librement entre eux. Tant qu'il y a suffisamment de frais passant par le filtre de relais minimum, cela respecte le consensus et n'expose pas un seul nœud à un risque légitime de déni de service ou d'épuisement des ressources, cela permet de fournir de la valeur pour la diffusion d'informations dans chaque piscine de mémoire individuelle du réseau pour tous les types d'utilisateurs.
Sans un pool de mémoire publique complet, la seule alternative viable pour tous ces utilisateurs individuels aux différentes fins est une solution centralisée, ou un désordre difficile à gérer, c'est-à-dire une tentative hâtive et chaotique de construire des pools de mémoire publique fragmentés, où chaque utilisateur doit suivre individuellement ces pools de mémoire publique.
Cela pourrait non seulement entraîner des manipulations des données tarifaires, tromper les utilisateurs et des préoccupations concernant la valeur extractible par les mineurs en raison de transactions relayées en privé. Sans un pool de mémoire public sain et ouvert, ce sont des problèmes que Bitcoin doit affronter.
Dans les articles suivants, j'explorerai ces questions, ainsi que les différents types de filtres de mémoire et les raisons de leur existence.
Le contenu est fourni à titre de référence uniquement, il ne s'agit pas d'une sollicitation ou d'une offre. Aucun conseil en investissement, fiscalité ou juridique n'est fourni. Consultez l'Avertissement pour plus de détails sur les risques.
Encyclopédie dorée | Qu'est-ce que le pool de mémoire Bitcoin ? Comment ça fonctionne ?
Source : Bitcoin Magazine ; Traduction : Wu Zhu, Jinse Caijing
Chaque personne ayant utilisé le Bitcoin a utilisé le mempool. Alors, qu'est-ce que le mempool ?
D'un point de vue technique, il n'existe pas de "pool de mémoire" unique. Chaque nœud complet de Bitcoin gère son propre pool de mémoire, qui est un cache des transactions Bitcoin valides qui ont été diffusées sur le réseau mais qui n'ont pas encore été confirmées dans un bloc. Les nœuds échangent des messages pour voir les transactions qu'ils possèdent ou ne possèdent pas, et échangent les transactions qu'ils n'ont pas.
Chaque pool de mémoire est essentiellement une "île" indépendante, possédant son propre ensemble de transactions non confirmées, parfois même avec ses propres variables et paramètres de configuration. La taille du pool de mémoire peut être configurée, avec une valeur par défaut de 300 Mo. De plus, il existe un taux minimum qui s'ajuste dynamiquement et peut être configuré à une valeur. Cela sert à décider quelles transactions seront expulsées du pool de mémoire lorsque celui-ci est plein et que d'autres transactions continuent d'affluer. Il existe également d'autres options configurables, telles que les options datacarrier et datacarriersize, qui affectent les transactions contenant des sorties OP_RETURN.
Les raisons pour lesquelles différents nœuds fonctionnent des pools de mémoire varient, donc les besoins sont également différents, mais finalement, la satisfaction de ces besoins est réalisée par la synchronisation de l'exécution de leurs propres pools de mémoire par tous les nœuds et leur interaction mutuelle.
On peut imaginer chaque pool de mémoire comme un véritable bassin, qui sont interconnectés par des canaux sous-jacents. Plus le pool de mémoire est grand, plus le bassin sous-jacent est profond. Les mineurs, les échanges, les explorateurs de blocs, tous ces acteurs deviennent les bassins les plus profonds. Chacun a ses propres motivations pour vouloir comprendre chaque transaction non confirmée en attente d'être empaquetée dans un bloc. Les mineurs le font pour s'assurer qu'ils ont les transactions les plus rentables dans le prochain bloc. Les échanges, pour être sûrs de connaître toutes les transactions en attente. Les explorateurs de blocs, parce que l'ensemble de leur service consiste à afficher aussi complètement que possible l'ensemble des données sur la blockchain et le pool de mémoire. Votre nœud ordinaire a en réalité seulement besoin d'être suffisamment profond pour inclure la partie des taux les plus élevés dans le "pool de mémoire".
Imaginez maintenant chaque transaction comme une goutte de liquide, plus le taux est élevé, plus la densité du liquide est grande. Ces liquides circulent dans les canaux entre les pools miniers, après avoir atteint chaque pool minier, une goutte de liquide reçue sera copiée, puis envoyée à tout autre pool minier qui n'a pas encore reçu ce liquide par le biais des canaux. Au fur et à mesure que les pools miniers se remplissent, lorsque le liquide déborde, le liquide de densité plus faible (taux plus bas) débordera en premier du bord du pool minier.
Finalement, certains mineurs chanceux puiseront une certaine quantité de liquide au fond de la piscine de minage et le verseront dans le dernier canal en verre, formant un long canal en verre sinueux, rempli de liquide et y restant pour toujours (blockchain). C'est juste une façon intuitive de penser au système et de couvrir la plupart de ses dynamiques.
Cette arrangement d'interconnexion des pools de minage offre différentes utilisations pour différents utilisateurs.
Traders
Lorsqu'un utilisateur effectue une transaction, la mémoire tampon a deux utilisations. D'abord, et c'est le plus important, elle envoie leurs transactions aux mineurs. Si une transaction n'entre pas dans la mémoire tampon d'un mineur, elle ne peut pas être empaquetée dans un bloc. Les mémoires tampon se relient et partagent des transactions entre elles, garantissant qu'une fois qu'une transaction est placée dans une mémoire tampon, elle finira par entrer dans la mémoire tampon de tous les mineurs. Disposer d'un réseau puissant et décentralisé, capable de garantir que les transactions finissent par être envoyées par les utilisateurs à tous les mineurs, sans être affectées par les changements de connexion réseau et la fragmentation, est extrêmement précieux.
Le deuxième usage est l'estimation des frais, ce qui est particulièrement important pour les utilisateurs de Layer 2, car ils doivent toujours s'assurer que les transactions de réponse aux états invalides peuvent être confirmées à temps. En examinant simplement les taux de frais des transactions dans ces blocs, il est possible d'estimer les frais dans une certaine mesure, mais cela ne fournit aucune information sur l'état de la mémoire après le dernier bloc. Cela ne peut pas expliquer les pics soudains, l'afflux de spéculateurs dans la mémoire, ou la prochaine vague de transactions qui n'est pas encore terminée. Étant donné qu'il est impossible de voir la mémoire, l'estimation des frais ne peut pas garantir qu'elle prend en compte l'état actuel des transactions en attente.
Destinataire
Lorsque vous recevez des bitcoins, votre nœud valide la transaction ainsi que tout le bloc contenant cette transaction. La transaction qui vous est envoyée est diffusée et finit par entrer dans la mémoire des mineurs, qui trouveront un bloc. Ce bloc sera diffusé sur le réseau, puis votre nœud téléchargera et validera ce bloc.
Mais la façon dont cela fonctionne réellement n'est pas ainsi (à moins que vous ne désactiviez la mémoire tampon des nœuds et que vous ne fonctionniez qu'en mode bloc). Votre nœud vérifie chaque transaction lorsqu'elle est reçue pour la première fois dans la mémoire tampon et la met en cache en tant que transaction Bitcoin valide. Lorsque les mineurs trouvent un bloc, ils ne transmettent en réalité que l'en-tête du bloc et un petit morceau d'informations compressées (en raison du manque d'une meilleure explication simple), ces informations pouvant être utilisées pour déterminer quelles transactions sont incluses dans le bloc. Ensuite, votre nœud récupère les transactions préalablement vérifiées, vérifie l'en-tête du bloc et, si tout est validé, il retransmet le "bloc compact".
Cette optimisation est en fait la raison pour laquelle les mineurs ne dépendent plus des réseaux de relais centralisés et sous licence, comme le FIBRE maintenu auparavant par Matt Corrallo et le réseau Falcon qui a existé brièvement. En raison de la lenteur des vitesses de relais des réseaux pair-à-pair, les mineurs devaient autrefois se connecter au réseau Falcon pour garantir un faible délai de relais de blocs avec d'autres mineurs.
Mineur
Les mineurs veulent évidemment tout voir. Il s’agit d’entités à but lucratif qui souhaitent être en mesure de filtrer les transactions avec les frais de paiement les plus élevés du plus grand ensemble possible de transactions en attente. C’est ainsi qu’ils maximisent leurs profits et génèrent des revenus pour continuer à développer leur entreprise et à rester compétitifs.
Ils obtiennent en réalité des fonds à partir du pool de mémoire. Leur motivation à obtenir n'importe quelle transaction payante valide est si forte qu'ils ont historiquement, actuellement et presque certainement à l'avenir établi de nombreux systèmes, voire des arrangements informels disponibles dans la société, visant à permettre aux utilisateurs de soumettre directement des transactions aux mineurs, plutôt que par le biais d'un réseau pair à pair ouvert.
Explorateurs de blocs, outils d'analyse en chaîne, etc.
Ils espèrent voir chaque transaction en attente créée et diffusée dans le monde entier, tout comme les mineurs. La principale différence entre les deux réside dans le fait que les mineurs tirent des bénéfices directement des frais associés à ces transactions, tandis que les explorateurs de blockchain et les sociétés d'analyse en tirent des bénéfices de manière indirecte en affichant, analysant et fournissant des analyses d'informations dans des produits rentables.
Je ne peux pas citer d'exemples spécifiques impliquant des données de pool de mémoire cache, mais il est bien connu que les entreprises d'analyse blockchain achètent régulièrement des métadonnées sur les activités de transaction blockchain obtenues en privé. Elles exploitent également des nœuds de Bitcoin de sorcière, qui se connectent autant que possible en pair à pair avec d'autres nœuds sur le réseau afin de restreindre la portée du nœud qui a initialement diffusé la transaction.
Les explorateurs de blocs tirent également profit de la visualisation des données de la blockchain et des pools de mémoire, leur modèle commercial entier tourne autour de cela. Si ces informations peuvent être présentées de manière pratique ou novatrice, alors accéder à plus de données et les montrer aux utilisateurs signifie qu'il est possible d'obtenir plus d'informations potentielles sur les profits.
L'information désire circuler
Tous ces différents types d'utilisateurs bénéficient d'un "piscine de mémoire publique" pour une raison simple : les informations circulent librement entre eux. Tant qu'il y a suffisamment de frais passant par le filtre de relais minimum, cela respecte le consensus et n'expose pas un seul nœud à un risque légitime de déni de service ou d'épuisement des ressources, cela permet de fournir de la valeur pour la diffusion d'informations dans chaque piscine de mémoire individuelle du réseau pour tous les types d'utilisateurs.
Sans un pool de mémoire publique complet, la seule alternative viable pour tous ces utilisateurs individuels aux différentes fins est une solution centralisée, ou un désordre difficile à gérer, c'est-à-dire une tentative hâtive et chaotique de construire des pools de mémoire publique fragmentés, où chaque utilisateur doit suivre individuellement ces pools de mémoire publique.
Cela pourrait non seulement entraîner des manipulations des données tarifaires, tromper les utilisateurs et des préoccupations concernant la valeur extractible par les mineurs en raison de transactions relayées en privé. Sans un pool de mémoire public sain et ouvert, ce sont des problèmes que Bitcoin doit affronter.
Dans les articles suivants, j'explorerai ces questions, ainsi que les différents types de filtres de mémoire et les raisons de leur existence.