Una de las partes importantes en todo el proceso de funcionamiento de las redes de criptomonedas es gracias a la mempool. Esta sección de almacenamiento es una pieza fundamental detrás del procesamiento de las transacciones de toda la red de criptomonedas.
Cuando un usuario de criptomonedas realiza una transacción, el primer lugar donde se anota esta es en lo que se conoce como mempool. Una mempool, es una memoria temporal intermedia en donde se almacenan de forma momentánea las transacciones de los usuarios. Una vez que la transacción llega a este lugar, los mineros van seleccionando las mismas para procesarlas. Es en este último punto, cuando la transacción realmente se hace efectiva y pasa a integrarse en la cadena de bloques.
Teniendo claro esto podemos decir que la mempool, es una “sala de espera”. Una en el que las transacciones se almacenan hasta ser procesadas por los mineros. Pero ¿Cómo funciona? ¿Qué utilidad tiene? Todo eso y más lo revisaremos en este artículo.
¿Cómo funciona un mempool?
Como hemos comentado en un principio una mempool es un espacio de almacenamiento temporal para las transacciones de criptomonedas. Esta es una tarea bastante sencilla de realizar. En Bitcoin por ejemplo, las funciones de un mempool están reguladas por el BIP-35. Recordemos que un BIP, es un documento que estandariza diversos procedimientos o funciones dentro de Bitcoin. Para ver mejor el funcionamiento de un mempool, lo mejor es dividirlo en fases de la siguiente manera:
Primera fase: Recepción de las transacciones.
En esta primera fase, la mempool recibe las transacciones que generan los usuarios dentro de la red. Recuerde que cada usuario usa su monedero para crear una transacción de criptomonedas. Este es un proceso sencillo que no lleva más de 10 segundos en realizarse. Una vez terminada esta operación, la transacción comienza su largo viaje a la confirmación. Para ello, la transacción se transmite a la red para que esta pueda procesarla.
Ahora bien imagine el mismo proceso pero en una escala mucho más masiva. Imagine que cientos de miles de usuarios al mismo tiempo realizan la misma actividad en un período de tiempo relativamente corto. Esto obviamente genera un alto tráfico de transacciones en la red. Un tráfico que debe ser manejado de la forma más eficiente por la siguiente fase del proceso.
Es acá donde la mempool juega su primer papel al recibir todas estas transacciones y almacenes importantes. Todo con el fin de que en su debido momento sean atendidas y procesadas de forma efectiva por los mineros.
Segunda fase: Acceso a las transacciones
Durante esta fase, los mineros de la criptomoneda se enteraron de cada una de las transacciones que han sido realizadas por los usuarios. Todas y cada una de estas transacciones se encuentran en la mempool a la espera de que sean procesadas.
Para hacer esto, los mineros acceden a la mempool y comienzan a seleccionar las transacciones a incluir en el siguiente bloque de la cadena de bloques. Con cada transacción elegida, la mempool se libera en espacio y la red se equilibra. En pocas palabras, mientras menos transacciones en la mempool, menos presión en la red y más rápidas son las confirmaciones. Esta es la razón por la cual cuando una mempool está “llena”, las confirmaciones suelen tardar más.
Para explicarlo de forma más sencilla imagine lo siguiente. Está usted en una sala de espera pública esperando a ser atendido. En la sala existen varios agentes de atención que procesan rápidamente sus solicitudes. Si en la sala de espera hay pocas personas, los agentes podrán resolver su petición rápidamente. Sin embargo, si la sala de espera está abarrotada, a los agentes les llevará más tiempo atenderle.
Pues bien, es precisamente lo que pasa en la mempool y la red de mineros. La resolución de las transacciones por los mineros (los agentes) es muy rápida. Sin embargo, los mineros les llevará más tiempo confirmar su transacción si la mempool está abarrotada. Esta situación lleva a los usuarios a pagar más comisiones con el fin de tomar una mayor prioridad para los mineros. Mientras mayor la comisión, mayor la probabilidad de ser elegido rápidamente para procesar sus transacciones. Una situación de competencia que puede ver marcadamente en las alzas de precios de comisiones cuando las mempools están en sus límites.
¿Qué utilidad tiene la mempool?
La principal utilidad de una mempool, es su capacidad de almacenar las transacciones de la red para que puedan ser procesadas luego. Esto permite a los usuarios realizar sus operaciones con total comodidad y saber que las mismas recibirán la respuesta adecuada en su momento.
En segundo lugar, la mempool es un buen medio para ecualizar el nivel de comisiones de la red. Con una mempool poco utilizada y una red descongestionada, el valor de las comisiones desciende. Pero con el aumento de las transacciones y una mayor ocupación de la mempool, las comisiones aumentan. Esto debido a que los usuarios empiezan a pagar mayores comisiones para que sus transacciones sean prioritarias.
Otra utilidad de las mempool está ligada al nivel de seguridad y capacidad de resistencia frente a ataques DDoS. Por ejemplo, la mempool puede limitarse para recibir una cantidad determinada de transacciones. De esta manera se evita que la red se sobresature y se vulnere el acceso a la misma por parte de quienes usan la red.
Riesgos de la Mempool
Si bien la mempool en las criptomonedas es de gran utilidad para capturar las transacciones dentro de la red, esto puede representar un grave riesgo bajo ciertas condiciones. Esto es especialmente cierto si los usuarios aceptan como definitivas las transacciones que están aún en ella. Para ponerlo de forma sencilla, una transacción dentro de una mempool es simplemente una transacción cuyo estado es ambivalente. La hemos enviado a la red y estamos a la espera de que este el proceso, pero hasta entonces, dichas transacciones en la mempool no significan que no hayan hecho un pago de forma efectiva e irreversible.
Esto significa que si por ejemplo, un usuario malicioso nos envía una transacción con un bajo fee o comisión, esto llegará a la mempool. Pero mientras este allí, es posible que dicho usuario pueda invalidarla y hacer un “doble gasto” de esas monedas. Esto porque habrá realizado una transacción de pago a nosotros, pero por otro lado, puede hacer una transacción de pago a un tercero con un mayor fee. Esto haría que la transacción al tercero y con un fee más alto sea procesada por la red en primer lugar, haciendo que nuestras transacciones con más bajo fee se vea invalidada.
Esto es considerado por muchos detractores de las criptomonedas como un fallo, pero la verdad es que no lo es. Es simplemente, la forma en como trabajan las criptomonedas. De allí, que los proyectos de criptomonedas avisan a sus usuarios que no deben aceptar como transacciones válidas que están en el mempool. Sino que en su lugar, solo deben aceptar como definitivas una transacción que haya sido confirmada y este dentro de la cadena de bloques. Para el caso de Bitcoin, esto significa que las transacciones como mínimo deben tener 3 confirmaciones (6 es mejor) y en Ethereum al menos unas 30 confirmaciones, para considerar a las mismas irreversibles.