-
El desarrollador Antoine Riard descubrió un posible ataque de bloqueo de transacciones en Lightning.
-
Las principales implementaciones de Lightning desplegaron medidas de mitigación en 2023.
Un desarrollador de Bitcoin y la red Lightning, Antoine Riard, publicó un descubrimiento que afecta a la red de segunda capa enfocada en pagos instantáneos con bitcoin (BTC). La vulnerabilidad, que se encontró en diciembre de 2022, ya fue atendida por los principales clientes, que conectan la red Lightning con los nodos.
La vulnerabilidad que Riard explica en su mensaje al correo de Bitcoin-Dev y Lightning-Dev se relaciona con un tipo de ataque de bloqueo de transacciones, conocido como «reemplazo cíclico». Tal tipo de ataque impacta directamente en la seguridad de los canales de Lightning, que se usan para realizar transacciones fuera de la cadena principal de Bitcoin de forma rápida y barata.
Como detalla el desarrollador, el ataque de reemplazo cíclico expone a los nodos de enrutamiento de Lightning a riesgos de seguridad y hasta es capaz de generarles pérdidas de fondos. Esto afecta tanto a los canales heredados como a los canales con salidas ancladas, dice Riard. Lo preocupante es que este ataque «es práctico y puede explotarse incluso si no hay congestión en la mempool de la red Bitcoin». Además, el atacante no necesita tener una alta capacidad de hashrate en la red principal.
El texto asegura que la vulnerabilidad no se ejecutó nunca en el lapso de 10 meses, en el que existió la posibilidad de hacerlo en la red principal de Bitcoin. El autor del correo aclara que «un ataque de reemplazo cíclico no requiere capacidades privilegiadas por parte de un atacante» y añade que «solo se necesita acceso a software básico de Bitcoin y Lightning». «Sin embargo, sigo creyendo que llevar a cabo con éxito un ataque de este tipo requiere un conocimiento técnico sólido de Bitcoin y una preparación adecuada», expresa Riard.
¿Cómo funciona un ataque de reemplazo cíclico?
Como explica una publicación de Antoine Riard sobre los ataques de reemplazo cíclico, en estos casos un atacante envía una transacción con una tarifa más alta que la de una transacción legítima en curso. Incluso, se podría presumir que tanto la transacción legítima como la de reemplazo pueden estar coordinadas por un mismo atacante que controle varios nodos, y tenga la capacidad de crear canales de pago con el nodo de la víctima.
La explicación técnica de este tipo de ataques consiste en la posibilidad de que un atacante transmita su transacción de preimagen de HTLC (contrato con bloqueo temporal y hash) con tarifas más altas que una transacción que en principio parece honesta de HTLC de un nodo de Lightning. Esto desencadena un reemplazo y hace que la transacción anterior sea eliminada de la mempool (memoria temporal para transacciones no aprobadas en Bitcoin), lo que expone a los nodos de reenvío a la pérdida de fondos. El reemplazo de transacciones es un mecanismo legítimo de la mempool para nodos completos, que un atacante puede aprovechar a su favor si la función se encuentra habilitada de manera predeterminada en todos los nodos involucrados.
En términos más sencillos, estos ataques son comparables con el caso de una persona que corta la fila en una tienda, obtiene lo que otra quería comprar y la deja con las manos vacías. Se trata de un modo de «engañar al sistema» anteponiendo una transacción frente a otras para desplazarlas de la mempool y hacerse así con el pago que les correspondía.
El especialista explica que «la red Lightning resuelve el problema de escalabilidad de Bitcoin mediante canales de pago fuera de la cadena» y que «la seguridad de esta capa depende de la capacidad de los participantes para confirmar transacciones en la cadena principal de Bitcoin en cualquier momento».
«Esta capacidad es fundamental, especialmente cuando están en juego saldos fuera de la cadena durante un período limitado de tiempo, regulado por bloqueos de tiempo de Bitcoin Script. Sin embargo, existe una vulnerabilidad relacionada con la interferencia maliciosa en la propagación de transacciones en la red base de Bitcoin, lo que puede llevar a ataques de bloqueo», prosigue en su argumento.
Según la investigación de Riard y otros programadores, «en la actualidad es posible robar la capacidad total del canal de enrutamiento de la red Lightning si la capacidad se puede enrutar completamente como HTLC pendientes».
Mitigaciones en las implementaciones de Lightning
Para abordar esta amenaza, las principales implementaciones de Lightning diseñaron y desplegaron medidas de mitigación. Estas medidas se encuentran en las versiones más recientes de los clientes LDK (v0.0.118), Eclair (v0.9.0), LND (v.0.17.0-beta) y Core-Lightning (v.23.08.01), que permiten a los nodos conectarse con la red.
Entre las estrategias adoptadas se encuentra el «rebroadcasting agresivo», el cual Riard explica de la siguiente manera: «Dado que el atacante de ciclo de reemplazo se beneficia del hecho de que la HTLC-tiempo-agotado generalmente se transmite por los nodos Lightning solo una vez en cada bloque, o incluso menos, las transacciones maliciosas de ciclo de reemplazo solo pagan una cantidad igual a la suma de las tarifas absolutas pagadas por el HTLC, ajustada con la penalización de reemplazo. Volver a transmitir de manera aleatoria y múltiples veces antes del siguiente bloque aumenta el costo absoluto de la tarifa para el atacante».
A pesar de las medidas de mitigación implementadas, Antoine Riard destaca que los ataques de reemplazo cíclico siguen siendo una amenaza para atacantes avanzados y plantea preguntas sobre la seguridad a largo plazo de las transacciones fuera de la cadena. El desarrollador opina que «todavía no se ha determinado si las medidas de mitigación implementadas son lo suficientemente sólidas frente a atacantes avanzados de reemplazo cíclico, especialmente aquellos que pueden combinar diferentes clases de bloqueos de transacción».
Hasta el día de hoy, me resulta incierto si la red Lightning no está afectada por un problema de seguridad crítico de maleabilidad de paquetes a largo plazo bajo las reglas de consenso actuales, y si algún otro protocolo multiparte sensible al tiempo, diseñado o implementado, no está afectado de facto (pérdida de fondos o denegación de servicio).
Antoine Riard, desarrollador de la red Lightning.
El descubrimiento de Antoine Riard también plantea preocupaciones sobre posibles vulnerabilidades en otras aplicaciones de Bitcoin. Se han identificado varias aplicaciones, como los contratos de diferencias de Bitcoin (DLCs), coinjoins, billeteras con rutas sensibles al tiempo, intercambios de pares y transacciones aceleradas, que podrían verse afectadas bajo ciertas condiciones de congestión de la mempool.