Bitcoin Magazine
El Tema Central: Cluster Mempool, Los Problemas Son Más Fáciles En Fragmentos
Cluster Mempool1 es una reelaboración completa de cómo el mempool maneja la organización y clasificación de transacciones, conceptualizado e implementado por Suhas Daftuar y Pieter Wuille. El diseño tiene como objetivo simplificar la arquitectura general, alinear mejor la lógica de clasificación de transacciones con los incentivos del minero, y mejorar la seguridad para los protocolos de segunda capa. Se fusionó en Bitcoin Core en el PR #336292 el 25-11-2025.
El mempool es un conjunto gigante de transacciones pendientes que tu nodo debe rastrear por varias razones: estimación de comisiones, validación de reemplazo de transacciones y construcción de bloques si eres un minero.
Estos son muchos objetivos diferentes para que una sola función de tu nodo los atienda. Bitcoin Core hasta la versión 30.0 organiza el mempool de dos maneras diferentes para ayudar en estas funciones, ambas desde el punto de vista relativo de cualquier transacción dada: tasa de comisión combinada mirando hacia adelante de la transacción y sus hijos (tasa de comisión descendiente), y tasa de comisión combinada mirando hacia atrás de la transacción y sus padres (tasa de comisión ancestral).
Estas se utilizan para decidir qué transacciones expulsar de tu mempool cuando está lleno, y cuáles incluir primero al construir una nueva plantilla de bloque.
Cuando un minero está decidiendo si incluir una transacción en su bloque, su nodo mira esa transacción, y cualquier ancestro que debe ser confirmado primero para que sea válida en un bloque, y observa la tasa de comisión promedio por byte en todos ellos juntos considerando las comisiones individuales que pagaron como un todo. Si ese grupo de transacciones encaja dentro del límite de tamaño de bloque mientras supera a otros en comisiones, se incluye en el siguiente bloque. Esto se hace para cada transacción.
Cuando tu nodo está decidiendo qué transacciones expulsar de su mempool cuando está lleno, observa cada transacción y cualquier hijo que tenga, expulsando la transacción y todos sus hijos si el mempool ya está lleno con transacciones (y sus descendientes) pagando una tasa de comisión más alta.
Mira el gráfico de ejemplo anterior de transacciones, las tasas de comisión se muestran así entre paréntesis (tasa de comisión ancestral, tasa de comisión descendiente). Un minero mirando la transacción E probablemente la incluiría en el siguiente bloque, una transacción pequeña pagando una comisión muy alta con un solo ancestro pequeño. Sin embargo, si el mempool de un nodo se estuviera llenando, miraría la transacción A con dos hijos masivos pagando una comisión relativa baja, y probablemente la expulsaría o no la aceptaría y mantendría si acabara de ser recibida.
Estos dos rankings, u ordenamientos, están completamente en desacuerdo entre sí. El mempool debería propagar de manera confiable lo que los mineros minarán, y los usuarios deberían tener confianza en que su mempool local predice con precisión lo que los mineros minarán.
El funcionamiento del mempool de esta manera es importante para:
El comportamiento actual del mempool no se alinea completamente con la realidad de los incentivos de Minar, lo que crea puntos ciegos que pueden ser problemáticos para la seguridad de segunda capa al crear incertidumbre sobre si una transacción llegará a un minero, así como presión para canales de transmisión no públicos a los mineros, potencialmente empeorando el primer problema.
Esto es especialmente problemático cuando se trata de reemplazar transacciones no confirmadas, ya sea simplemente para incentivar a los mineros a incluir un reemplazo antes, o como parte de un protocolo de segunda capa que se está aplicando en cadena.
El reemplazo según el comportamiento existente se vuelve impredecible dependiendo de la forma y el tamaño de la red de transacciones en la que está atrapada la tuya. En una situación simple de aumento de comisiones, esto puede fallar en propagar y reemplazar una transacción, incluso cuando minar el reemplazo sería mejor para un minero.
En el contexto de los protocolos de segunda capa, la lógica actual permite a los participantes potencialmente lograr que se expulsen transacciones ancestrales necesarias del mempool, o hacer que no sea posible que otro participante envíe una transacción hija necesaria al mempool bajo las reglas actuales debido a transacciones hijas que el participante malicioso creó, o la expulsión de transacciones ancestrales necesarias.
Todos estos problemas son el resultado de estos rankings de inclusión y expulsión inconsistentes y los desajustes de incentivos que crean. Tener un solo ranking global solucionaría estos problemas, pero reordenar globalmente todo el mempool para cada nueva transacción es poco práctico.
Las transacciones que dependen unas de otras son un gráfico, o una serie dirigida de "rutas". Cuando una transacción gasta salidas creadas por otra en el pasado, está vinculada con esa transacción pasada. Cuando adicionalmente gasta salidas creadas por una segunda transacción pasada, vincula ambas transacciones históricas juntas.
Cuando no están confirmadas, cadenas de transacciones como estas deben tener las transacciones anteriores confirmadas primero para que las posteriores sean válidas. Después de todo, no puedes gastar salidas que aún no se han creado.
Este es un concepto importante para entender el mempool, está explícitamente ordenado direccionalmente.
Todo es solo un gráfico.
En cluster mempool, el concepto de un cluster es un grupo de transacciones no confirmadas que están directamente relacionadas entre sí, es decir, gastando salidas creadas por otras en el cluster o viceversa. Esto se convierte en una unidad fundamental de la nueva arquitectura de mempool. Analizar y ordenar todo el mempool es una tarea poco práctica, pero analizar y ordenar clusters es mucho más manejable.
Cada cluster se divide en fragmentos, pequeños conjuntos de transacciones del cluster, que luego se clasifican en orden de tasa de comisión más alta por byte a más baja, respetando las dependencias direccionales. Así que, por ejemplo, digamos que de la tasa de comisión más alta a la más baja los fragmentos en el cluster (A) son: [A,D], [B,E], [C,F], [G, J], y por último [I, H].
Esto permite preclasificar todos estos fragmentos y clusters, y una clasificación más eficiente de todo el mempool en el proceso.
Los mineros ahora pueden simplemente tomar los fragmentos de tasa de comisión más alta de cada cluster y ponerlos en su plantilla, si todavía hay espacio pueden bajar a los siguientes fragmentos de tasa de comisión más alta, continuando hasta que el bloque esté aproximadamente lleno y solo necesite averiguar las últimas pocas transacciones que puede ajustar. Este es aproximadamente el método de construcción de plantilla de bloque óptimo asumiendo acceso a todas las transacciones disponibles.
Cuando los mempools de los nodos se llenan, pueden simplemente tomar los fragmentos de tasa de comisión más baja de cada cluster, y comenzar a expulsarlos de su mempool hasta que no esté por encima del límite configurado. Si eso no fue suficiente, pasa a los siguientes fragmentos de tasa de comisión más baja, y así sucesivamente, hasta que esté dentro de sus límites de mempool. Hecho de esta manera, elimina casos extremos extraños fuera de alineación con los incentivos de Minar.
La lógica de reemplazo también se simplifica drásticamente. Compara el cluster (A) con el cluster (B) donde la transacción K ha reemplazado a G, I, J y H. El único criterio que debe cumplirse es que el nuevo fragmento [K] debe tener una tasa de comisión de fragmento más alta que [G, J] y [I, H], [K] debe pagar más en comisiones totales que [G, J, I, H], y K no puede superar un límite superior de cuántas transacciones está reemplazando.
En un paradigma de cluster, todos estos diferentes usos están alineados entre sí.
Esta nueva arquitectura nos permite simplificar los límites de grupo de transacciones, eliminando limitaciones previas sobre cuántos ancestros no confirmados puede tener una transacción en el mempool y reemplazándolos con un límite de cluster global de 64 transacciones y 101 kvB por cluster.
Este límite es necesario para mantener el costo computacional de preclasificar los clusters y sus fragmentos lo suficientemente bajo como para que sea práctico que los nodos lo realicen de manera constante.
Esta es la verdadera visión clave del cluster mempool. Al mantener los fragmentos y clusters relativamente pequeños, simultáneamente haces que la construcción de una plantilla de bloque óptima sea económica, simplificas la lógica de reemplazo de transacciones (aumento de comisiones) y por lo tanto mejoras la seguridad de segunda capa, y corriges la lógica de expulsión, todo a la vez.
No más computación costosa y lenta sobre la marcha para la construcción de plantillas, o comportamiento impredecible en el aumento de comisiones. Al corregir el desajuste de incentivos en cómo el mempool estaba gestionando la organización de transacciones en diferentes situaciones, el mempool funciona mejor para todos.
Cluster mempool es un proyecto que ha estado en desarrollo durante años, y tendrá un impacto material en asegurar que las plantillas de bloques rentables estén abiertas a todos los mineros, que los protocolos de segunda capa tengan comportamientos de mempool sólidos y predecibles en los que construir, y que Bitcoin pueda continuar funcionando como un sistema monetario descentralizado.
Para aquellos interesados en profundizar en los detalles de cómo se implementa cluster mempool y funciona bajo el capó, aquí hay dos hilos de Delving Bitcoin que puedes leer:
Resumen de Implementación de Alto Nivel (Con Justificación de Diseño): https://delvingbitcoin.org/t/an-overview-of-the-cluster-mempool-proposal/393
Cómo Funcionan Los Diagramas de Tasa de Comisión de Cluster Mempool: https://delvingbitcoin.org/t/mempool-incentive-compatibility/553
¡Consigue tu copia de The Core Issue hoy!
No pierdas tu oportunidad de poseer The Core Issue — ¡con artículos escritos por muchos Core Developers explicando los proyectos en los que trabajan ellos mismos!
Esta pieza es la Carta del Editor presentada en la última edición impresa de Bitcoin Magazine, The Core Issue. La estamos compartiendo aquí como una vista anticipada de las ideas exploradas a lo largo del número completo.
[1] https://github.com/bitcoin/bitcoin/issues/27677
[2] https://github.com/bitcoin/bitcoin/pull/33629
Esta publicación The Core Issue: Cluster Mempool, Problems Are Easier In Chunks apareció por primera vez en Bitcoin Magazine y está escrita por Shinobi.


