News

LND limita lo que un solo peer puede hacer acumular a un nodo

Dos versiones de LND ponen un tope a cuántos identificadores de canal puede hacer acumular un peer mientras se sincroniza el grafo de Lightning. No hubo fondos en riesgo. Lo que estaba en riesgo era que el nodo siguiera en pie, que no es lo mismo que nada.

3 min de lecturaLND
LND limita lo que un solo peer puede hacer acumular a un nodo

Qué pasó

El 13 de agosto de 2026, LND - la implementación de Lightning más desplegada - publicó v0.21.2-beta y v0.20.3-beta. Ambas traen la misma corrección en la capa de gossip. Según las notas de la versión: "Un peer que respondía a nuestro query_channel_range podía antes hacernos almacenar en memoria una cantidad impredecible de short channel IDs, ya que el único límite era un tope grueso de 67MB sobre los bytes a los que podía descomprimirse una única respuesta zlib".

Qué cambia

Cuando un nodo Lightning arranca o se reconecta, pregunta a los peers a los que está conectado qué canales conocen dentro de un rango de bloques. Las respuestas llegan como listas de identificadores cortos de canal, opcionalmente comprimidas, y una sola pregunta puede responderse a lo largo de muchos mensajes.

El límite anterior estaba medido en la unidad equivocada. Acotaba los bytes a los que podía expandirse una respuesta comprimida, no cuántos identificadores podía acumular una consulta entera y, según el pull request, una respuesta comprimida transporta muchos más identificadores que una sin comprimir, así que los dos conjuntos de trabajo nunca coincidían. Un peer podía entonces responder una sola pregunta con todos los datos que quisiera, repartidos en suficientes mensajes. Peor aún: una respuesta que fallaba la validación dejaba en su lugar lo ya acumulado, de modo que un atacante podía fijar memoria provocando un error a propósito.

Las nuevas versiones limitan los identificadores decodificados a 100.000 por conjunto de mensajes y a 100.000 en el total de una misma consulta de rango, contabilizan cada respuesta según su codificación real y descartan el estado acumulado apenas una respuesta falla la validación. El peer que hace esto no necesita ningún canal con el nodo al que le habla. El gossip es la parte de un nodo Lightning que habla con desconocidos, así que sus límites son una propiedad de seguridad y no un parámetro de ajuste.

Qué no cambia

Aquí no interviene ninguna clave, firma ni saldo de canal, y las notas de la versión no reportan pérdidas. Es un límite de recursos, y que un nodo sin actualizar se cayera o no dependía de cuánta memoria tuviera.

Pero un nodo que no está corriendo no está mirando, y en Lightning eso importa de una forma en que no importa en cadena. Si una contraparte publica un estado viejo del canal, el lado honesto tiene que notarlo y gastar la salida de revocación dentro del plazo que ambos acordaron: eso es BOLT 5, la regla del protocolo frente a las trampas, no la política de un proveedor. Una watchtower existe precisamente porque el nodo puede estar caído. Esta es la parte de operar Lightning que una seed phrase no cubre: el self-custody de una wallet en cadena es un problema de respaldo, mientras que un canal es además un problema de disponibilidad.

Contexto

Las mismas dos versiones corrigen dos problemas de base de datos con la misma forma: una migración de pagos que fallaba con rutas históricas que llevaban un total blinded sin los datos cifrados que deberían acompañarlo, y bases de datos de canales inicializadas sin una clave de versión persistida, que podían saltarse migraciones obligatorias y luego fallar al arrancar. Las claves son la parte de un nodo Lightning que un respaldo restaura. El estado es la parte que tiene que sobrevivir a cada actualización posterior.

Etiquetado

Boletín

Bitcoin, sin ruido

Qué ha pasado en Bitcoin, qué cambia de verdad, y las fuentes para que puedas comprobarnos. Un número cada vez, directo a tu correo.

  • Un correo por número, nunca una secuencia automática
  • Sin píxeles de seguimiento y sin compartir direcciones
  • Baja desde cualquier número con un clic

Recibe el próximo número

Un correo por número, sin píxeles de seguimiento, y te puedes dar de baja desde cualquiera de ellos. No compartimos tu dirección. Política de privacidad