Fuente: Bitcoin Magazine; traducido por Wuzhu, Jinse Caijing
Todo el que ha utilizado Bitcoin ha utilizado el mempool. Entonces, ¿qué es el mempool?
Desde un punto de vista técnico, no existe un "pool de memoria" que sea "único". Cada nodo completo de Bitcoin opera su propio pool de memoria, que es un caché de transacciones de Bitcoin válidas que han sido transmitidas a la red pero que aún no han sido confirmadas en un bloque. Los nodos intercambian mensajes entre sí para ver qué transacciones tienen o no tienen, y para intercambiar transacciones que no poseen.
Cada mempool es esencialmente una "isla" separada con su propio conjunto de transacciones no confirmadas y, a veces, incluso sus propias variables de configuración y ajustes. El tamaño del mempool es configurable y el valor predeterminado es de 300 MB. Además, hay una tasa mínima, que se ajusta dinámicamente y se puede configurar a un valor. Esto se utiliza para decidir qué transacciones se expulsarán del mempool cuando esté lleno y lleguen más transacciones. Hay algunas otras opciones configurables, como las opciones datacarrier y datacarriersize, que afectan a las transacciones que incluyen la salida OP_RETURN.
Las razones por las cuales diferentes nodos ejecutan un pool de memoria son diversas, por lo que las demandas también son diferentes. Sin embargo, al final, la satisfacción de estas demandas se logra mediante la sincronización de todos los nodos que ejecutan sus propios pools de memoria e interactúan entre sí.
Se puede imaginar cada pool de memoria como una verdadera piscina, que están interconectadas a través de canales subyacentes. Cuanto más grande es el pool de memoria, más profunda es la piscina subyacente. Los mineros, los intercambios, los exploradores de bloques, todos ellos se convierten en las piscinas más profundas. Todos tienen sus propias motivaciones para querer entender cada transacción no confirmada que está esperando ser empaquetada en un bloque. Los mineros lo hacen para asegurarse de que tienen las transacciones más rentables en el siguiente bloque. Los intercambios lo hacen para asegurarse de que entienden todas las transacciones pendientes. Los exploradores de bloques, porque todo su servicio depende de mostrar de la manera más completa posible el conjunto de datos sobre la cadena de bloques y el pool de memoria. Tu nodo ordinario en realidad solo necesita ser lo suficientemente profundo como para incluir la parte de tarifas más alta en el "pool de memoria".
Ahora imagina que cada transacción es una gota de líquido; cuanto mayor sea la tarifa, mayor será la densidad del líquido. Este líquido fluye a través de los canales entre los pools de minería, y al llegar a cada pool de minería, la gota de líquido recibida se copia y luego se envía a cualquier otro pool de minería que aún no haya recibido ese líquido. A medida que los pools de minería se llenan, cuando el líquido se desborda, el líquido de menor densidad (tarifas más bajas) será el primero en desbordarse por el borde del pool.
Al final, algunos mineros afortunados sacarán una cierta cantidad de líquido del fondo del grupo minero y lo verterán en el último canal de vidrio, formando un canal de vidrio largo y serpenteante, lleno de líquido y que permanecerá allí para siempre (blockchain). Esta es solo una forma intuitiva de pensar en el sistema y cubrir la mayor parte de su dinámica.
Esta disposición de interconexión de piscinas de minería proporciona diferentes usos para diferentes usuarios.
Comerciante
Cuando un usuario realiza una transacción, el mempool tiene dos propósitos. La primera, y más importante, es enviar sus transacciones a los mineros. Si la transacción no entra en el mempool del minero, es imposible que se empaquete en bloques. Los mempools enlazan y comparten transacciones entre sí, asegurando que una vez que una transacción se coloca en un mempool, termina en el mempool de todos los mineros. Tener una red robusta y descentralizada que garantice que las transacciones puedan ser enviadas eventualmente por los usuarios a todos los mineros, independientemente de los cambios en la conectividad y la fragmentación de la red, es invaluable.
El segundo uso es la estimación de tarifas, lo cual es especialmente importante para los usuarios de Layer 2, ya que siempre necesitan asegurarse de que las transacciones de respuesta a estados inválidos se confirmen a tiempo. Al observar las tarifas de transacción en estos bloques, se puede estimar el costo hasta cierto punto, pero esto no proporciona información sobre el estado del mempool después del último bloque. No puede explicar picos repentinos, la afluencia de especuladores en el mempool, o el aumento de transacciones que aún no ha terminado en la siguiente ola. Dado que no se puede ver el mempool, la estimación de tarifas no puede garantizar si ha considerado el estado actual de las transacciones pendientes.
Receptor
Cuando recibes Bitcoin, tu nodo verifica la transacción y todo el bloque que contiene esa transacción. La transacción que te paga se transmite y finalmente entra en el pool de memoria de los mineros, quienes encontrarán un bloque que será transmitido a la red, y luego tu nodo descargará y verificará ese bloque.
Pero la forma en que realmente funciona no es así (a menos que desactive el pool de memoria del nodo y funcione solo en modo de bloque). Su nodo verificará cada transacción cuando la reciba por primera vez en el pool de memoria y la almacenará en caché como una transacción válida de Bitcoin. Cuando un minero encuentra un bloque, en realidad solo reenvía el encabezado del bloque y una pequeña porción de información comprimida (debido a la falta de una mejor explicación simple), esta información puede usarse para determinar qué transacciones están incluidas en el bloque. Luego, su nodo recuperará las transacciones previamente verificadas, verificará el encabezado del bloque y, si todo pasa, reenviará el "bloque compacto".
Esta optimización es en realidad la razón por la que los mineros ya no dependen de redes de retransmisión centralizadas y con licencia, como el FIBRE mantenido anteriormente por Matt Corrallo y la efímera Falcon Network. Debido a la baja velocidad de retransmisión de las redes peer-to-peer, los mineros en el pasado debían conectarse a la Falcon Network para asegurar que la latencia de retransmisión de bloques con otros mineros fuera baja.
Minero
Los mineros claramente quieren ver todo. Son entidades impulsadas por el lucro que desean poder filtrar las transacciones en espera que contengan las tarifas de pago más altas. Esta es su forma de maximizar las ganancias y generar ingresos para seguir expandiendo su negocio y mantenerse competitivos.
En realidad, obtienen fondos del pool de memoria. Su motivación para obtener cualquier transacción válida con pago es tan fuerte que a lo largo de la historia, en el presente y casi con certeza en el futuro, han establecido numerosos sistemas, e incluso arreglos informales disponibles en la sociedad, destinados a permitir a los usuarios enviar transacciones directamente a los mineros, en lugar de a través de una red peer-to-peer abierta.
Exploradores de bloques, herramientas de análisis en cadena, etc.
Ellos, al igual que los mineros, esperan ver cada transacción pendiente que se ha creado y se ha transmitido al mundo. La principal diferencia entre ambos es que los mineros obtienen ganancias directamente al cobrar tarifas por estas transacciones, mientras que los exploradores de blockchain y las empresas de análisis obtienen ganancias indirectamente al mostrar, analizar y proporcionar análisis de información sobre estas transacciones en productos rentables.
No puedo enumerar ejemplos específicos que involucren datos de caché de memoria de la piscina, pero es bien sabido que las empresas de análisis en cadena compran regularmente metadatos de actividad de transacciones en cadena obtenidos de manera privada. También operan nodos de Bitcoin de brujas, que se conectan de manera peer-to-peer con otros nodos en toda la red para reducir el rango de los nodos que inicialmente transmitieron la transacción.
Los exploradores de bloques también obtienen beneficios a través de la visualización de datos de blockchain y de la memoria, y todo su modelo de negocio gira en torno a esto. Si se puede presentar esta información de manera práctica o novedosa, entonces acceder a más datos y mostrárselos a los usuarios significa que se pueden obtener más oportunidades de ingresos potenciales.
La información desea fluir
Todos estos diferentes tipos de usuarios se benefician de un "único" pool de memoria pública, por una razón simple: la información fluye libremente entre ellos. Siempre que haya suficientes tarifas a través del filtro de retransmisión mínimo, cumple con el consenso y no representa un riesgo de denegación de servicio legítima o agotamiento de recursos para un solo nodo, puede proporcionar valor al difundir información en cada pool de memoria individual de los usuarios en la red.
Si no hay un grupo de memoria pública completamente funcional, la única alternativa viable para todos estos usuarios individuales con diferentes propósitos es una solución centralizada, o una situación caótica difícil de gestionar, es decir, intentar apresuradamente y de manera desorganizada construir grupos de memoria pública fragmentados, donde cada usuario necesita rastrear individualmente estos grupos de memoria pública.
Esto no solo puede generar preocupaciones sobre la manipulación de las tarifas de datos, el engaño a los usuarios y el valor que los mineros pueden extraer debido a transacciones intermedias en privado. Sin un pool de memoria pública saludable y abierto, estos son problemas que Bitcoin debe enfrentar.
En artículos posteriores, investigaré estas cuestiones, así como los diferentes tipos de filtros de memoria y las razones de su existencia.
El contenido es solo de referencia, no una solicitud u oferta. No se proporciona asesoramiento fiscal, legal ni de inversión. Consulte el Descargo de responsabilidad para obtener más información sobre los riesgos.
Enciclopedia dorada | ¿Qué es el memory pool de Bitcoin? ¿Cómo funciona?
Fuente: Bitcoin Magazine; traducido por Wuzhu, Jinse Caijing
Todo el que ha utilizado Bitcoin ha utilizado el mempool. Entonces, ¿qué es el mempool?
Desde un punto de vista técnico, no existe un "pool de memoria" que sea "único". Cada nodo completo de Bitcoin opera su propio pool de memoria, que es un caché de transacciones de Bitcoin válidas que han sido transmitidas a la red pero que aún no han sido confirmadas en un bloque. Los nodos intercambian mensajes entre sí para ver qué transacciones tienen o no tienen, y para intercambiar transacciones que no poseen.
Cada mempool es esencialmente una "isla" separada con su propio conjunto de transacciones no confirmadas y, a veces, incluso sus propias variables de configuración y ajustes. El tamaño del mempool es configurable y el valor predeterminado es de 300 MB. Además, hay una tasa mínima, que se ajusta dinámicamente y se puede configurar a un valor. Esto se utiliza para decidir qué transacciones se expulsarán del mempool cuando esté lleno y lleguen más transacciones. Hay algunas otras opciones configurables, como las opciones datacarrier y datacarriersize, que afectan a las transacciones que incluyen la salida OP_RETURN.
Las razones por las cuales diferentes nodos ejecutan un pool de memoria son diversas, por lo que las demandas también son diferentes. Sin embargo, al final, la satisfacción de estas demandas se logra mediante la sincronización de todos los nodos que ejecutan sus propios pools de memoria e interactúan entre sí.
Se puede imaginar cada pool de memoria como una verdadera piscina, que están interconectadas a través de canales subyacentes. Cuanto más grande es el pool de memoria, más profunda es la piscina subyacente. Los mineros, los intercambios, los exploradores de bloques, todos ellos se convierten en las piscinas más profundas. Todos tienen sus propias motivaciones para querer entender cada transacción no confirmada que está esperando ser empaquetada en un bloque. Los mineros lo hacen para asegurarse de que tienen las transacciones más rentables en el siguiente bloque. Los intercambios lo hacen para asegurarse de que entienden todas las transacciones pendientes. Los exploradores de bloques, porque todo su servicio depende de mostrar de la manera más completa posible el conjunto de datos sobre la cadena de bloques y el pool de memoria. Tu nodo ordinario en realidad solo necesita ser lo suficientemente profundo como para incluir la parte de tarifas más alta en el "pool de memoria".
Ahora imagina que cada transacción es una gota de líquido; cuanto mayor sea la tarifa, mayor será la densidad del líquido. Este líquido fluye a través de los canales entre los pools de minería, y al llegar a cada pool de minería, la gota de líquido recibida se copia y luego se envía a cualquier otro pool de minería que aún no haya recibido ese líquido. A medida que los pools de minería se llenan, cuando el líquido se desborda, el líquido de menor densidad (tarifas más bajas) será el primero en desbordarse por el borde del pool.
Al final, algunos mineros afortunados sacarán una cierta cantidad de líquido del fondo del grupo minero y lo verterán en el último canal de vidrio, formando un canal de vidrio largo y serpenteante, lleno de líquido y que permanecerá allí para siempre (blockchain). Esta es solo una forma intuitiva de pensar en el sistema y cubrir la mayor parte de su dinámica.
Esta disposición de interconexión de piscinas de minería proporciona diferentes usos para diferentes usuarios.
Comerciante
Cuando un usuario realiza una transacción, el mempool tiene dos propósitos. La primera, y más importante, es enviar sus transacciones a los mineros. Si la transacción no entra en el mempool del minero, es imposible que se empaquete en bloques. Los mempools enlazan y comparten transacciones entre sí, asegurando que una vez que una transacción se coloca en un mempool, termina en el mempool de todos los mineros. Tener una red robusta y descentralizada que garantice que las transacciones puedan ser enviadas eventualmente por los usuarios a todos los mineros, independientemente de los cambios en la conectividad y la fragmentación de la red, es invaluable.
El segundo uso es la estimación de tarifas, lo cual es especialmente importante para los usuarios de Layer 2, ya que siempre necesitan asegurarse de que las transacciones de respuesta a estados inválidos se confirmen a tiempo. Al observar las tarifas de transacción en estos bloques, se puede estimar el costo hasta cierto punto, pero esto no proporciona información sobre el estado del mempool después del último bloque. No puede explicar picos repentinos, la afluencia de especuladores en el mempool, o el aumento de transacciones que aún no ha terminado en la siguiente ola. Dado que no se puede ver el mempool, la estimación de tarifas no puede garantizar si ha considerado el estado actual de las transacciones pendientes.
Receptor
Cuando recibes Bitcoin, tu nodo verifica la transacción y todo el bloque que contiene esa transacción. La transacción que te paga se transmite y finalmente entra en el pool de memoria de los mineros, quienes encontrarán un bloque que será transmitido a la red, y luego tu nodo descargará y verificará ese bloque.
Pero la forma en que realmente funciona no es así (a menos que desactive el pool de memoria del nodo y funcione solo en modo de bloque). Su nodo verificará cada transacción cuando la reciba por primera vez en el pool de memoria y la almacenará en caché como una transacción válida de Bitcoin. Cuando un minero encuentra un bloque, en realidad solo reenvía el encabezado del bloque y una pequeña porción de información comprimida (debido a la falta de una mejor explicación simple), esta información puede usarse para determinar qué transacciones están incluidas en el bloque. Luego, su nodo recuperará las transacciones previamente verificadas, verificará el encabezado del bloque y, si todo pasa, reenviará el "bloque compacto".
Esta optimización es en realidad la razón por la que los mineros ya no dependen de redes de retransmisión centralizadas y con licencia, como el FIBRE mantenido anteriormente por Matt Corrallo y la efímera Falcon Network. Debido a la baja velocidad de retransmisión de las redes peer-to-peer, los mineros en el pasado debían conectarse a la Falcon Network para asegurar que la latencia de retransmisión de bloques con otros mineros fuera baja.
Minero
Los mineros claramente quieren ver todo. Son entidades impulsadas por el lucro que desean poder filtrar las transacciones en espera que contengan las tarifas de pago más altas. Esta es su forma de maximizar las ganancias y generar ingresos para seguir expandiendo su negocio y mantenerse competitivos.
En realidad, obtienen fondos del pool de memoria. Su motivación para obtener cualquier transacción válida con pago es tan fuerte que a lo largo de la historia, en el presente y casi con certeza en el futuro, han establecido numerosos sistemas, e incluso arreglos informales disponibles en la sociedad, destinados a permitir a los usuarios enviar transacciones directamente a los mineros, en lugar de a través de una red peer-to-peer abierta.
Exploradores de bloques, herramientas de análisis en cadena, etc.
Ellos, al igual que los mineros, esperan ver cada transacción pendiente que se ha creado y se ha transmitido al mundo. La principal diferencia entre ambos es que los mineros obtienen ganancias directamente al cobrar tarifas por estas transacciones, mientras que los exploradores de blockchain y las empresas de análisis obtienen ganancias indirectamente al mostrar, analizar y proporcionar análisis de información sobre estas transacciones en productos rentables.
No puedo enumerar ejemplos específicos que involucren datos de caché de memoria de la piscina, pero es bien sabido que las empresas de análisis en cadena compran regularmente metadatos de actividad de transacciones en cadena obtenidos de manera privada. También operan nodos de Bitcoin de brujas, que se conectan de manera peer-to-peer con otros nodos en toda la red para reducir el rango de los nodos que inicialmente transmitieron la transacción.
Los exploradores de bloques también obtienen beneficios a través de la visualización de datos de blockchain y de la memoria, y todo su modelo de negocio gira en torno a esto. Si se puede presentar esta información de manera práctica o novedosa, entonces acceder a más datos y mostrárselos a los usuarios significa que se pueden obtener más oportunidades de ingresos potenciales.
La información desea fluir
Todos estos diferentes tipos de usuarios se benefician de un "único" pool de memoria pública, por una razón simple: la información fluye libremente entre ellos. Siempre que haya suficientes tarifas a través del filtro de retransmisión mínimo, cumple con el consenso y no representa un riesgo de denegación de servicio legítima o agotamiento de recursos para un solo nodo, puede proporcionar valor al difundir información en cada pool de memoria individual de los usuarios en la red.
Si no hay un grupo de memoria pública completamente funcional, la única alternativa viable para todos estos usuarios individuales con diferentes propósitos es una solución centralizada, o una situación caótica difícil de gestionar, es decir, intentar apresuradamente y de manera desorganizada construir grupos de memoria pública fragmentados, donde cada usuario necesita rastrear individualmente estos grupos de memoria pública.
Esto no solo puede generar preocupaciones sobre la manipulación de las tarifas de datos, el engaño a los usuarios y el valor que los mineros pueden extraer debido a transacciones intermedias en privado. Sin un pool de memoria pública saludable y abierto, estos son problemas que Bitcoin debe enfrentar.
En artículos posteriores, investigaré estas cuestiones, así como los diferentes tipos de filtros de memoria y las razones de su existencia.