Enrutamiento en Lightning
Encontrar una ruta de canales Lightning desde quien envía hasta quien recibe, que puede pasar por varios intermediarios.
Traducción hecha con ayuda de IA, pendiente de revisión humana. Lee el original (en inglés).
El enrutamiento en Lightning es el proceso de encontrar una ruta a través de la red de canales Lightning que pueda llevar tu pago desde quien envía hasta quien recibe, cuando no existe un canal directo entre ambos.
La mayoría de los usuarios de Lightning no tiene canales directos con las personas a las que paga: eso exigiría una transacción on-chain de apertura con cada contraparte, lo que anularía el sentido de la red. En su lugar, tu nodo Lightning (en inglés) enruta los pagos a través de nodos intermedios que sí tienen una ruta hasta el destino, de forma atómica, mediante HTLCs encadenados.
Cómo funciona por dentro:
- Construir el grafo. Los nodos Lightning comparten un protocolo de gossip (en inglés) en el que anuncian qué canales existen, su capacidad y sus políticas de comisiones. Tu nodo mantiene una vista local de ese grafo.
- Encontrar una ruta. Correr una variante del algoritmo de Dijkstra para hallar una secuencia de canales desde ti hasta el destino, con capacidad suficiente del lado que corresponde en cada canal, optimizando comisiones y confiabilidad.
- Enrutar el pago en capas, como una cebolla. Cada salto conoce solo el salto anterior y el siguiente, no la ruta completa. Es el enrutamiento cebolla (onion routing) de Sphinx (en inglés), parecido al de Tor.
- Los HTLCs bloquean el pago en cada salto. Si cualquier salto falla, el pago entero se deshace de forma atómica: no pierdes dinero en una ruta a medias.
- Si el enrutamiento falla, reintentar. Las billeteras modernas reintentan con otras rutas o dividen el pago entre varias (pagos atómicos multirruta / AMP (en inglés)).
Los problemas difíciles del enrutamiento:
- La liquidez es privada. El gossip te dice que un canal existe y cuál es su capacidad total, pero no de qué lado está el saldo. El enrutamiento tiene que sondear o adivinar.
- Los canales se vacían. Un canal que sirvió para enrutar hace un minuto puede haberse quedado sin saldo del lado que corresponde después de que pasó tu pago. Los pagos de otras personas son invisibles para ti.
- Los pagos grandes son más difíciles. La probabilidad de encontrar una ruta completa cae a medida que el monto del pago se acerca a la capacidad típica de un canal. AMP y el splicing de canales ayudan, pero los pagos enormes suelen exigir varios intentos o coordinarse por otra vía.
La confiabilidad del enrutamiento ha mejorado muchísimo desde 2020: la mayoría de los pagos cotidianos de menos de unos cientos de miles de sats se enruta al primer intento. Los pagos más grandes o hacia destinos más remotos todavía fallan de vez en cuando, pero esas fallas tienen remedio y nunca se pierden fondos.
Consulta el tema a fondo sobre el enrutamiento en Lightning (en inglés) para el tratamiento más profundo: enrutamiento en origen, cifrado cebolla, pagos multirruta, heurísticas de búsqueda de rutas y las técnicas de sondeo que usan las billeteras para encontrar liquidez.
Ideas clave
- Elige una ruta de canales conectados con capacidad suficiente
- Usa los datos de gossip de la red Lightning para conocer el estado actual de los canales
- Se apoya en HTLCs efímeros que garantizan pagos de varios saltos sin necesidad de confiar en nadie
Fuentes (1)
Términos relacionados (7)
Publicado el . No hay correcciones registradas para esta página.
Editar esta página en GitHub