Si alguna vez ejecutó una transacción de criptomonedas, como enviar fondos a otra dirección de billetera , es posible que haya notado un retraso. Estas transacciones retrasadas generalmente se mantienen en lo que se llama un "mempool".
Esta guía detalla qué es un mempool, cómo funciona y por qué es una parte esencial de una transacción de criptomonedas.
)
Un mempool es una especie de "sala de espera" en el nodo de una cadena de bloques donde se almacenan las transacciones no minadas. El término "mempool" es una combinación de dos palabras: "memoria" y "pool" y se refiere al espacio donde las transacciones pendientes esperan en fila antes de agregarse a la cadena de bloques.
Bitcoin fue la primera cadena de bloques en introducir y utilizar el concepto de grupo de memoria de transacciones (mempool). Otras cadenas de bloques como Ethereum también adoptaron posteriormente el término. Todas las blockchains tienen algún tipo de mempool, aunque puedan tener un término diferente para ello. Por ejemplo, la cadena de bloques Parity utiliza el término "Cola de transacciones" para representar mempools en su cadena.
Los mempools desempeñan un papel importante en el funcionamiento de los nodos de blockchain . Para que una transacción se complete y registre en una cadena de bloques, primero debe agregarse a un bloque. Sin embargo, no todos los nodos de una red blockchain pueden crear un nuevo bloque. Por ejemplo, en las cadenas de bloques que operan mediante un mecanismo de prueba de trabajo , como Bitcoin, solo los mineros pueden agregar transacciones a un nuevo bloque. En cuanto a las cadenas de bloques que utilizan un mecanismo de prueba de participación , como Ethereum, solo los validadores o proponentes pueden agregar transacciones a un bloque.
Después de iniciar una transacción, los usuarios deben depender de un minero o un validador para aprobar la transacción y agregarla a la cadena de bloques. Esto no sucede instantáneamente. En cambio, hay un retraso entre el momento en que se inició una transacción y el momento en que se completará. Durante este tiempo, la transacción se almacena en un mempool en espera de confirmación.
Primero, debes tener en cuenta que las cadenas de bloques no tienen un solo grupo de memoria. Por el contrario, cada nodo de una red blockchain particular tiene su propio grupo de memoria de transacciones. Por ejemplo, cada nodo en la cadena de bloques de Bitcoin tiene su propio grupo de transacciones en espera de ser agregadas al libro público. Juntos, los mempools de nodos individuales forman un mempool colectivo.
Cuando un usuario inicia una transacción, se envía a un nodo. Luego, el nodo agregará la transacción a su mempool y la pondrá en una cola, en espera de validación. Una vez validada la transacción, se marcará como 'pendiente'. Los mineros sólo pueden agregar transacciones marcadas como "pendientes" a un nuevo bloque.
Para ilustrar la dinámica de mempool y el ciclo de vida de las transacciones, supongamos que desea enviar 0,01 BTC a un amigo.
Primero, ingresará la dirección de la billetera de su amigo, aceptará las tarifas de transacción de blockchain y luego presionará "Enviar".
La transacción se agregará al mempool más cercano como una transacción "en cola".
A continuación, la transacción se transmitirá a otros nodos de la red, pero aún no estará disponible en la cadena de bloques. En cambio, cada nodo realiza pruebas individuales para verificar que la transacción sea genuina.
Si los nodos aprueban la transacción, su estado cambia de "en cola" a "pendiente".
Finalmente, un minero seleccionará la transacción pendiente y la agregará a un nuevo bloque.
A continuación, el minero transmitirá este bloque a todos los nodos. Como resultado, todos los nodos ahora tendrán acceso a todas las transacciones incluidas en el nuevo bloque.
En esta etapa, los nodos que todavía tienen su transacción almacenada en sus mempools la eliminarán.
Finalmente, su transacción se completa y su amigo recibe 0,01 BTC.
La congestión en un mempool de transacciones ocurre cuando la demanda de transacciones excede la cantidad de transacciones que pueden caber en un bloque. Varios factores pueden desencadenar un retraso en mempool. Éstas incluyen:
Gráfico de transacciones promedio de Bitcoin por bloque: Ycharts.com
Comprender estos factores y cómo afectan la congestión de mempool es importante para los usuarios y desarrolladores. Les permite anticipar posibles retrasos y realizar los ajustes necesarios para ahorrar en tarifas de gas y evitar retrasos.
Dado que muchas transacciones ocurren al mismo tiempo, existen varios factores que determinan qué transacciones tienen prioridad dentro de un mempool. Destacamos algunos de ellos a continuación.
Uno de los factores principales que determinan el orden de ejecución de las transacciones dentro de un mempool son las tarifas asociadas a cada transacción. Los mineros y validadores están motivados por las ganancias y pueden elegir qué transacciones quieren agregar a un nuevo bloque. Como era de esperar, prefieren las transacciones con tarifas más altas, ya que esto se traduce en mayores recompensas.
Por lo tanto, las tarifas asociadas con una transacción influyen en gran medida en sus posibilidades de ser incluida en un bloque. Los mineros normalmente organizan las transacciones dentro de sus mempools en términos de tarifas por unidad de datos de transacción, comúnmente representadas como satoshis/byte. A partir de ahí, priorizan las transacciones con las tarifas más altas hasta que el bloque esté lleno.
Este enfoque basado en tarifas crea un mercado competitivo dentro de los mempools. Obliga a los usuarios a elegir entre pagar tarifas más altas para completar rápidamente la transacción o tarifas más bajas a expensas de períodos de espera más largos.
No obstante, los usuarios pueden estimar la tarifa óptima que no es demasiado costosa pero que aun así garantizaría una confirmación oportuna. Esto se puede lograr considerando algunos factores como datos históricos, volumen de transacciones, congestión de la red y distribución de tarifas dentro del mempool. Las plataformas más populares, como las carteras y los intercambios de criptomonedas , tienen herramientas que pueden analizar el estado actual de un mempool y recomendar las tarifas más adecuadas.
Aún así, hacer estimaciones precisas de las tarifas no es una ciencia exacta y persisten desafíos. Por ejemplo, las condiciones de la red pueden cambiar rápidamente, haciendo que los datos históricos no sean confiables. Además, las tarifas pueden volverse muy volátiles durante los períodos de alta demanda, lo que genera fluctuaciones inesperadas en las tarifas.
La congestión de la red afecta la forma en que se procesan las transacciones y la dinámica de las tarifas del gas de varias maneras:
Los mempools no tienen que mantener una lista coincidente de todas las transacciones que esperan ser agregadas a un bloque. Sin embargo, deben saber qué transacciones ya se han agregado a la cadena de bloques para poder eliminarlas de su mempool en caso de que todavía estén almacenadas allí. Cuando un minero transmite un nuevo bloque a los nodos, puede verificar esta información y así lograr la sincronización de mempool. Esto garantiza que sólo las transacciones no minadas se mantengan en los mempools.
El espacio de bloque, por otro lado, es la capacidad disponible para incluir transacciones en un nuevo bloque. Dado que este espacio es limitado, los mineros o validadores priorizan las transacciones con tarifas de gas más altas mientras que el resto se envía a los mempools en espera de confirmación.
Cada transacción agregada a un mempool es un dato de no más de unos pocos kilobytes (kb). La suma de todos los bytes que componen las transacciones es el tamaño del mempool. Un tamaño de mempool mayor indica que hay numerosas transacciones esperando confirmación. También podría significar un aumento en el tráfico de la red.
Tabla de tallas de Mempool. Fuente: Blockchain.com
Si bien los mempools no tienen un tamaño máximo predefinido, los nodos pueden establecer límites de tamaño para sus mempools. Normalmente se establece en 300 MB para Bitcoin. Cuando el mempool alcanza este umbral, los nodos pueden imponer un requisito de tarifa de transacción mínima. Cualquier transacción con una tarifa inferior a este límite se expulsa del mempool. Al hacerlo, los nodos pueden evitar fallas debido a una sobrecarga de transacciones pendientes.
Es importante comprender cómo el tamaño de mempool afecta las tarifas y los tiempos de transacción, ya que permite a los usuarios elegir los mejores momentos para realizar una transacción. Hay varios sitios web que rastrean el tamaño global de mempool en la red Bitcoin, como mempool.space y BitcoinTicker.co.
Ahora, veamos cómo funcionan los mempools en Bitcoin y Ethereum, las dos cadenas de bloques más grandes del mundo.
Todas las transacciones válidas enviadas a través de la red Bitcoin no se agregan instantáneamente a la cadena de bloques. Tienen que esperar en el mempool de Bitcoin.
Originalmente, las tarifas de transacción en Bitcoin se medían en la cantidad de satoshis por byte de transacción. Sin embargo, esto cambió después de la actualización de SegWit. Ahora, las transacciones en un mempool de Bitcoin se miden en unidades de peso. Esta actualización introdujo lo que se conoce como función SegWit.
Como resultado de la actualización, los bloques de Bitcoin ahora pueden acomodar hasta cuatro veces más transacciones.
Al igual que Bitcoin, la cadena de bloques Ethereum utilizó inicialmente el mempool de Ethereum para servir como almacenamiento temporal para las transacciones que esperaban ser agregadas a un bloque por los mineros. Sin embargo, después de que Ethereum pasó de un mecanismo de consenso de prueba de trabajo a uno de prueba de participación, la red introdujo el concepto de constructor de bloques.
Los creadores de bloques son entidades de terceros especializadas que compilan transacciones para crear un paquete de transacciones optimizado que puede formar un bloque. Lo hacen reordenando o incluyendo ciertas transacciones en el paquete desde un grupo de memoria de transacciones. Finalmente, ofrecen los paquetes a los proponentes/validadores para que los incluyan en un bloque pagando una tarifa.
El valor de un bloque depende de las transacciones que contiene. Por lo tanto, incentiva a los creadores de bloques a crear los bloques más lucrativos, ya que es probable que los validadores los prioricen y confirmen más rápido. En consecuencia, al igual que en otras cadenas de bloques, cuantas más tarifas pague en Ethereum, mayores serán las posibilidades de que su transacción se confirme antes.
Un mempool es un componente vital en las transacciones de blockchain. Actúa como una especie de "sala de espera" donde las transacciones no confirmadas esperan su validación y, en última instancia, su inclusión en un nuevo bloque. Comprender la mecánica de un mempool, como la cola de transacciones, la validación y la priorización de tarifas, es esencial para los usuarios de criptomonedas.
Si alguna vez ejecutó una transacción de criptomonedas, como enviar fondos a otra dirección de billetera , es posible que haya notado un retraso. Estas transacciones retrasadas generalmente se mantienen en lo que se llama un "mempool".
Esta guía detalla qué es un mempool, cómo funciona y por qué es una parte esencial de una transacción de criptomonedas.
)
Un mempool es una especie de "sala de espera" en el nodo de una cadena de bloques donde se almacenan las transacciones no minadas. El término "mempool" es una combinación de dos palabras: "memoria" y "pool" y se refiere al espacio donde las transacciones pendientes esperan en fila antes de agregarse a la cadena de bloques.
Bitcoin fue la primera cadena de bloques en introducir y utilizar el concepto de grupo de memoria de transacciones (mempool). Otras cadenas de bloques como Ethereum también adoptaron posteriormente el término. Todas las blockchains tienen algún tipo de mempool, aunque puedan tener un término diferente para ello. Por ejemplo, la cadena de bloques Parity utiliza el término "Cola de transacciones" para representar mempools en su cadena.
Los mempools desempeñan un papel importante en el funcionamiento de los nodos de blockchain . Para que una transacción se complete y registre en una cadena de bloques, primero debe agregarse a un bloque. Sin embargo, no todos los nodos de una red blockchain pueden crear un nuevo bloque. Por ejemplo, en las cadenas de bloques que operan mediante un mecanismo de prueba de trabajo , como Bitcoin, solo los mineros pueden agregar transacciones a un nuevo bloque. En cuanto a las cadenas de bloques que utilizan un mecanismo de prueba de participación , como Ethereum, solo los validadores o proponentes pueden agregar transacciones a un bloque.
Después de iniciar una transacción, los usuarios deben depender de un minero o un validador para aprobar la transacción y agregarla a la cadena de bloques. Esto no sucede instantáneamente. En cambio, hay un retraso entre el momento en que se inició una transacción y el momento en que se completará. Durante este tiempo, la transacción se almacena en un mempool en espera de confirmación.
Primero, debes tener en cuenta que las cadenas de bloques no tienen un solo grupo de memoria. Por el contrario, cada nodo de una red blockchain particular tiene su propio grupo de memoria de transacciones. Por ejemplo, cada nodo en la cadena de bloques de Bitcoin tiene su propio grupo de transacciones en espera de ser agregadas al libro público. Juntos, los mempools de nodos individuales forman un mempool colectivo.
Cuando un usuario inicia una transacción, se envía a un nodo. Luego, el nodo agregará la transacción a su mempool y la pondrá en una cola, en espera de validación. Una vez validada la transacción, se marcará como 'pendiente'. Los mineros sólo pueden agregar transacciones marcadas como "pendientes" a un nuevo bloque.
Para ilustrar la dinámica de mempool y el ciclo de vida de las transacciones, supongamos que desea enviar 0,01 BTC a un amigo.
Primero, ingresará la dirección de la billetera de su amigo, aceptará las tarifas de transacción de blockchain y luego presionará "Enviar".
La transacción se agregará al mempool más cercano como una transacción "en cola".
A continuación, la transacción se transmitirá a otros nodos de la red, pero aún no estará disponible en la cadena de bloques. En cambio, cada nodo realiza pruebas individuales para verificar que la transacción sea genuina.
Si los nodos aprueban la transacción, su estado cambia de "en cola" a "pendiente".
Finalmente, un minero seleccionará la transacción pendiente y la agregará a un nuevo bloque.
A continuación, el minero transmitirá este bloque a todos los nodos. Como resultado, todos los nodos ahora tendrán acceso a todas las transacciones incluidas en el nuevo bloque.
En esta etapa, los nodos que todavía tienen su transacción almacenada en sus mempools la eliminarán.
Finalmente, su transacción se completa y su amigo recibe 0,01 BTC.
La congestión en un mempool de transacciones ocurre cuando la demanda de transacciones excede la cantidad de transacciones que pueden caber en un bloque. Varios factores pueden desencadenar un retraso en mempool. Éstas incluyen:
Gráfico de transacciones promedio de Bitcoin por bloque: Ycharts.com
Comprender estos factores y cómo afectan la congestión de mempool es importante para los usuarios y desarrolladores. Les permite anticipar posibles retrasos y realizar los ajustes necesarios para ahorrar en tarifas de gas y evitar retrasos.
Dado que muchas transacciones ocurren al mismo tiempo, existen varios factores que determinan qué transacciones tienen prioridad dentro de un mempool. Destacamos algunos de ellos a continuación.
Uno de los factores principales que determinan el orden de ejecución de las transacciones dentro de un mempool son las tarifas asociadas a cada transacción. Los mineros y validadores están motivados por las ganancias y pueden elegir qué transacciones quieren agregar a un nuevo bloque. Como era de esperar, prefieren las transacciones con tarifas más altas, ya que esto se traduce en mayores recompensas.
Por lo tanto, las tarifas asociadas con una transacción influyen en gran medida en sus posibilidades de ser incluida en un bloque. Los mineros normalmente organizan las transacciones dentro de sus mempools en términos de tarifas por unidad de datos de transacción, comúnmente representadas como satoshis/byte. A partir de ahí, priorizan las transacciones con las tarifas más altas hasta que el bloque esté lleno.
Este enfoque basado en tarifas crea un mercado competitivo dentro de los mempools. Obliga a los usuarios a elegir entre pagar tarifas más altas para completar rápidamente la transacción o tarifas más bajas a expensas de períodos de espera más largos.
No obstante, los usuarios pueden estimar la tarifa óptima que no es demasiado costosa pero que aun así garantizaría una confirmación oportuna. Esto se puede lograr considerando algunos factores como datos históricos, volumen de transacciones, congestión de la red y distribución de tarifas dentro del mempool. Las plataformas más populares, como las carteras y los intercambios de criptomonedas , tienen herramientas que pueden analizar el estado actual de un mempool y recomendar las tarifas más adecuadas.
Aún así, hacer estimaciones precisas de las tarifas no es una ciencia exacta y persisten desafíos. Por ejemplo, las condiciones de la red pueden cambiar rápidamente, haciendo que los datos históricos no sean confiables. Además, las tarifas pueden volverse muy volátiles durante los períodos de alta demanda, lo que genera fluctuaciones inesperadas en las tarifas.
La congestión de la red afecta la forma en que se procesan las transacciones y la dinámica de las tarifas del gas de varias maneras:
Los mempools no tienen que mantener una lista coincidente de todas las transacciones que esperan ser agregadas a un bloque. Sin embargo, deben saber qué transacciones ya se han agregado a la cadena de bloques para poder eliminarlas de su mempool en caso de que todavía estén almacenadas allí. Cuando un minero transmite un nuevo bloque a los nodos, puede verificar esta información y así lograr la sincronización de mempool. Esto garantiza que sólo las transacciones no minadas se mantengan en los mempools.
El espacio de bloque, por otro lado, es la capacidad disponible para incluir transacciones en un nuevo bloque. Dado que este espacio es limitado, los mineros o validadores priorizan las transacciones con tarifas de gas más altas mientras que el resto se envía a los mempools en espera de confirmación.
Cada transacción agregada a un mempool es un dato de no más de unos pocos kilobytes (kb). La suma de todos los bytes que componen las transacciones es el tamaño del mempool. Un tamaño de mempool mayor indica que hay numerosas transacciones esperando confirmación. También podría significar un aumento en el tráfico de la red.
Tabla de tallas de Mempool. Fuente: Blockchain.com
Si bien los mempools no tienen un tamaño máximo predefinido, los nodos pueden establecer límites de tamaño para sus mempools. Normalmente se establece en 300 MB para Bitcoin. Cuando el mempool alcanza este umbral, los nodos pueden imponer un requisito de tarifa de transacción mínima. Cualquier transacción con una tarifa inferior a este límite se expulsa del mempool. Al hacerlo, los nodos pueden evitar fallas debido a una sobrecarga de transacciones pendientes.
Es importante comprender cómo el tamaño de mempool afecta las tarifas y los tiempos de transacción, ya que permite a los usuarios elegir los mejores momentos para realizar una transacción. Hay varios sitios web que rastrean el tamaño global de mempool en la red Bitcoin, como mempool.space y BitcoinTicker.co.
Ahora, veamos cómo funcionan los mempools en Bitcoin y Ethereum, las dos cadenas de bloques más grandes del mundo.
Todas las transacciones válidas enviadas a través de la red Bitcoin no se agregan instantáneamente a la cadena de bloques. Tienen que esperar en el mempool de Bitcoin.
Originalmente, las tarifas de transacción en Bitcoin se medían en la cantidad de satoshis por byte de transacción. Sin embargo, esto cambió después de la actualización de SegWit. Ahora, las transacciones en un mempool de Bitcoin se miden en unidades de peso. Esta actualización introdujo lo que se conoce como función SegWit.
Como resultado de la actualización, los bloques de Bitcoin ahora pueden acomodar hasta cuatro veces más transacciones.
Al igual que Bitcoin, la cadena de bloques Ethereum utilizó inicialmente el mempool de Ethereum para servir como almacenamiento temporal para las transacciones que esperaban ser agregadas a un bloque por los mineros. Sin embargo, después de que Ethereum pasó de un mecanismo de consenso de prueba de trabajo a uno de prueba de participación, la red introdujo el concepto de constructor de bloques.
Los creadores de bloques son entidades de terceros especializadas que compilan transacciones para crear un paquete de transacciones optimizado que puede formar un bloque. Lo hacen reordenando o incluyendo ciertas transacciones en el paquete desde un grupo de memoria de transacciones. Finalmente, ofrecen los paquetes a los proponentes/validadores para que los incluyan en un bloque pagando una tarifa.
El valor de un bloque depende de las transacciones que contiene. Por lo tanto, incentiva a los creadores de bloques a crear los bloques más lucrativos, ya que es probable que los validadores los prioricen y confirmen más rápido. En consecuencia, al igual que en otras cadenas de bloques, cuantas más tarifas pague en Ethereum, mayores serán las posibilidades de que su transacción se confirme antes.
Un mempool es un componente vital en las transacciones de blockchain. Actúa como una especie de "sala de espera" donde las transacciones no confirmadas esperan su validación y, en última instancia, su inclusión en un nuevo bloque. Comprender la mecánica de un mempool, como la cola de transacciones, la validación y la priorización de tarifas, es esencial para los usuarios de criptomonedas.