comienzo
comienzo

El término «mempool» es una contracción de las palabras inglesas «memory» y «pool», que pueden traducirse al francés como «memoria» y «cuenca». Por lo tanto, un mempool es un espacio temporal que contiene transacciones de Bitcoin que esperan ser integradas en un bloque. Este espacio lo mantiene cada nodo de la red.
En este artículo, analizamos la naturaleza técnica de los mempools en Bitcoin, así como su papel en el funcionamiento del protocolo.
Cuando quieras realizar una transacción en Bitcoin, el primer paso es firmarla con las claves privadas contenidas en una billetera. Una vez firmada, la transacción se transmite a un nodo de red que garantiza el cumplimiento de las reglas establecidas. Si la transacción cumple con todos los criterios de validez, este nodo la propaga a otros nodos de la red a la que está conectado. Este proceso de transmisión continúa y, rápidamente, la transacción debería haber llegado a la mayoría de los nodos de la red Bitcoin.

Si la transacción tiene tarifas suficientes, un minero la seleccionará para integrarla en un bloque. Tan pronto como un minero logre generar un bloque válido que contenga la transacción, se confirmará mediante la distribución del nuevo bloque en la red.
El «mempool» se refiere al espacio de almacenamiento temporal que aloja las transacciones validadas por los nodos, pero que aún no están incluidas en un bloque. Mientras una transacción esté pendiente de confirmación, permanecerá en los mempools del nodo.
Aunque el término «el mempool» se usa a menudo como si fuera algo único, sería más exacto hablar en plural de «mempools». De hecho, cada nodo de la red Bitcoin administra su propio mempool, y puede haber diferencias entre los mempools de cada nodo.
.png)
Por lo tanto, el mempool de un nodo evoluciona constantemente de acuerdo con la nueva información que recibe. Cuando los usuarios emiten nuevas transacciones, el nodo las guarda en su mempool. Por el contrario, cuando un minero encuentra un bloque para añadirlo a la cadena de bloques, el nodo examina las transacciones confirmadas en ese bloque y las elimina de su mempool.
.png)
Dado que los mempools representan espacio de almacenamiento para las transacciones pendientes de confirmación, su tamaño es necesariamente limitado. De hecho, cada nodo es libre de definir un límite máximo para su mempool personal.
De forma predeterminada, en Bitcoin Core (la implementación mayoritaria del protocolo Bitcoin), el límite máximo se establece en 300 MB. Esto significa que un nodo aceptará las transacciones pendientes hasta que alcance este límite. Más allá de eso, iniciará un proceso de priorización en función de los costos. Las transacciones que ofrezcan las tarifas más bajas pueden entonces excluirse del mempool del nodo. Concretamente, esto resulta en la eliminación de estas transacciones de su memoria.
Cada nodo puede cambiar el tamaño de su mempool ajustando el parámetro Membpool máximo en el archivo de configuración bitcoin.conf. Sin embargo, la mayoría de los nodos mantienen el límite predeterminado de 300 MB. Por lo tanto, existe una cierta homogeneidad en cuanto a la capacidad de los mempools en Bitcoin.

Esta uniformidad tiene una consecuencia: cuando se rechaza una transacción de mempools de 300 MB, de hecho se elimina de la red Bitcoin, como si se hubiera cancelado. Para evitar este escenario, se utiliza un indicador denominado» Velocidad de purga » nos informa de las tarifas de transacción mínimas necesarias para evitar que los mempools de nodos los olviden.
Por ejemplo, si el número acumulado de transacciones pendientes que ofrecen más de 2 SAT/VB alcanza los 300 MB, la velocidad de purga se establecerá en 2 SATs/VB. Las transacciones que ofrezcan comisiones por debajo de este límite se excluirán entonces de los mempools. Naturalmente, esta tasa fluctúa según la demanda de espacio en los bloques y la oferta generada por la actividad minera.
.png)
➤ Descubre el papel de los nodos en Bitcoin.
Como se explicó en la parte anterior, para que un nodo acepte agregar una nueva transacción no confirmada a su mempool, el mempool debe cumplir con ciertas reglas. Estas normas se dividen en dos tipos:
Las reglas de consenso se parecen un poco a las leyes fundamentales del protocolo Bitcoin. Garantizan la coherencia e integridad de todo el sistema al definir los criterios mediante los cuales se validan las transacciones y los bloques. Una transacción que infrinja las reglas de consenso no se puede incluir en un bloque válido. Por ejemplo, una transacción con una firma no válida no se pudo extraer en la cadena de bloques. Estas reglas de consenso son las mismas para todos los usuarios de Bitcoin y se aplican de forma colectiva.
Las reglas de estandarización, por otro lado, las determina cada nodo de Bitcoin de forma independiente. Definen criterios adicionales para la estructura de las transacciones no confirmadas que el nodo está dispuesto a aceptar en su mempool y distribuirlas entre sus pares. Cada nodo configura y ejecuta estas reglas localmente. Pueden variar de un nodo a otro y solo se aplican a las transacciones no confirmadas. Por lo tanto, un nodo solo aceptará una transacción que considere no estándar si ya está incluida en un bloque válido.
Si bien estas reglas pueden diferir de un nodo a otro, la mayoría mantiene la configuración predeterminada establecida en Bitcoin Core. Dado que esta implementación representa más del 98% de la red de Bitcoin, de hecho existe una homogeneidad de las reglas de estandarización en todos los nodos.
Una transacción que, aunque esté de acuerdo con las reglas de consenso, no respete estas reglas de estandarización, tendrá dificultades para propagarse en la red. Sin embargo, se puede incluir en un bloque válido si alguna vez llega a un menor. En la práctica, estas transacciones, que se describen como no estándar, generalmente se transmiten directamente a un minero a través de canales externos a la red peer-to-peer de Bitcoin. Esta suele ser la única forma de confirmar este tipo de transacción.
Para ilustrar la distinción entre estos dos tipos de reglas, tomemos como ejemplo las comisiones por transacción. Desde una perspectiva consensuada, no hay requisitos de comisiones. Por lo tanto, una transacción puede no tener comisiones y, sin embargo, puede integrarse en un bloque que cumpla con las reglas de consenso. La red de nodos aceptará el bloque. Por ejemplo, esta es una transacción extraída sin comisiones: fd456524104a6674693c2994693c29946543f8a0befccce5a352bda55ec8559fc630f5f3
Por otro lado, de forma predeterminada, las reglas de estandarización exigen que las transacciones asignen al menos 1 Sat/VB en comisiones. Por lo tanto, si un nodo recibe una transacción no confirmada sin comisiones, se negará a integrarla en su mempool y no la transmitirá a los demás nodos.
Por lo tanto, una transacción sin comisiones es válida según las reglas de consenso y no estándar según las reglas de mempool, debido a la política predeterminada de Bitcoin Core para el parámetro Tarifa de MinRelayTX Es de 0,00001 (en BTC/KB).
➤ Obtenga más información sobre las tarifas de transacción de Bitcoin.
El mempool representa un depósito temporal dentro de los nodos para las transacciones de Bitcoin en espera de confirmación. Cada nodo de la red tiene su propio mempool.
La capacidad de los mempools está restringida, generalmente a 300 MB, de acuerdo con la configuración estándar de Bitcoin Core. Por lo tanto, solo pueden contener un volumen limitado de transacciones, priorizadas de acuerdo con sus tarifas. Durante los períodos de congestión, se establece una «tasa de purga» para indicar la tarifa mínima requerida para evitar que una transacción quede excluida de los mempools.
Para integrarse en un bloque, las transacciones de Bitcoin deben respetar las reglas de consenso. Cada nodo aplica individualmente una segunda capa de reglas más restrictivas, denominadas reglas de estandarización o reglas de mempool. Las transacciones que no cumplen estas reglas adicionales no se agregan al mempool del nodo y, por lo tanto, no se propagan por la red.

