Saltar al contenido
buybitcoinsmart

Glosario / Lightning y capa 2

Route hint

¿Qué es un route hint?
Un route hint (pista de ruta) es un elemento de una factura Lightning que nombra un nodo público, un canal y sus comisiones, para que un pagador pueda llegar a un destinatario cuyos propios canales no están anunciados.

Un canal privado nunca aparece en el grafo de gossip público, así que la propia factura tiene que llevar el último tramo de la ruta. BOLT 11 hace obligatorio un route hint cuando el beneficiario no tiene ningún canal público, y cada salto ocupa 51 bytes: ID de nodo, ID de canal, comisión base, comisión proporcional y delta CLTV. Retirar fondos a una billetera para teléfono sin ningún canal anunciado solo funciona porque esos bytes están ahí.

Cómo funciona

Un route hint viaja en el campo etiquetado de BOLT 11 que se escribe con el carácter r, y ese campo contiene una lista en lugar de un único valor.

Cada elemento consta de cinco valores colocados uno tras otro: un pubkey de 264 bits, un short_channel_id de 64 bits, un fee_base_msat de 32 bits, un fee_proportional_millionths de 32 bits y un cltv_expiry_delta de 16 bits. En total son 408 bits, exactamente 51 bytes por salto. Los elementos forman una ruta hacia delante, desde un nodo público hasta el beneficiario, y cada pubkey nombra el nodo del comienzo de su canal, no el del final.

Los tres últimos valores son los que un nodo público difundiría en el mensaje channel_update según BOLT 7. Un canal privado no difunde nada, así que la factura es el único lugar donde un pagador averigua lo que cobra ese salto.

La regla para quien escribe la factura es de alcance limitado: si no hay ningún canal público asociado a la clave del beneficiario, la factura debe llevar al menos un campo r. Quien la escribe puede incluir varios para ofrecer rutas alternativas, con la preferida en primer lugar. El techo es el propio campo etiquetado, cuyos datos no pueden superar 1023 grupos de 5 bits, es decir, 639 bytes, lo que deja espacio para doce saltos como máximo en un solo campo.

Los route hints son un consejo, no una instrucción: el pagador puede usar la secuencia de canales indicada, y la especificación llama al campo "limited routing assistance" (asistencia de enrutamiento limitada). El cegado de rutas de BOLT 4 es la respuesta posterior al mismo problema. En lugar de un ID de nodo y un ID de canal en claro, el destinatario entrega al remitente un punto de introducción más ID de nodo ajustados y datos cifrados para cada salto, de modo que el remitente obtiene una ruta utilizable sin averiguar quién está en ella.

Dónde aparece

Los route hints son lo que un decodificador de facturas muestra como información de enrutamiento adicional para una ruta privada.

El vector de prueba de la mainnet de la propia especificación es una factura de 20 milibitcoin enrutada a través de dos saltos indicados en ella: el canal 66051x263430x1800, con una comisión base de 1 milisatoshi, 20 partes por millón y una delta CLTV de 3 bloques, y después el 197637x395016x2314, con 2 milisatoshis, 30 partes por millón y 4 bloques. Esos dos saltos ocupan 164 de los caracteres bech32 de la factura, más que el hash de pago y el secreto de pago juntos.

La misma estructura aparece en la práctica. Phoenix, una de las 41 billeteras reseñadas en este sitio, mantiene sus canales con ACINQ y no con el grafo abierto, y allí donde esos canales no se anuncian, la regla anterior obliga a que cada factura nombre el nodo de ACINQ. Las propias preguntas frecuentes de ACINQ, citadas en esa reseña, ya admiten que ACINQ conoce el destino y el monto de sus pagos; un route hint extiende esa divulgación hacia fuera, ya que quien le paga averigua con qué proveedor opera usted. Si retira fondos por Lightning desde un exchange como Strike, es el exchange, como pagador, quien paga la comisión base y la comisión proporcional del salto indicado, tal como las lee en la factura que emitió su billetera.

Route hint frente a liquidez entrante

Un route hint le dice a un pagador cómo dar con usted; la liquidez entrante decide si el pago cabe una vez que llega.

Los dos fallan de formas que desde fuera parecen idénticas, y solo uno se arregla editando una factura. Un route hint puede estar perfectamente formado e indicar las comisiones correctas, y aun así el pago muere en el último salto porque su lado de ese canal no tiene espacio. Phoenix publica el precio de solucionarlo: recibir es gratis cuando usted ya tiene liquidez entrante, y cuesta un 1 % más las comisiones de minería cuando la billetera tiene que actuar on-chain para hacer espacio. Si un pago falla mientras el remitente insiste en que la ruta se resolvió, compruebe la capacidad antes de culpar a la factura.

No confundir con

Preguntas frecuentes

¿Expone un route hint mi canal privado?

Sí, ante cualquiera que lea la factura. El campo r detalla el ID de nodo de su par y el ID corto de canal del canal que usted tiene con ese par, ambos en claro, y ese es el precio de ser alcanzable cuando sus canales no están anunciados. El cegado de rutas de BOLT 4 es el enfoque más reciente, que los oculta detrás de un punto de introducción.

¿Por qué falla un pago cuando el route hint parece correcto?

Porque un route hint da indicaciones, no capacidad. El canal indicado sigue necesitando saldo suficiente del lado de su par para llevar el monto, y ningún campo de una factura puede crearlo. Compruebe su liquidez entrante antes de reescribir nada.

¿Puede una factura llevar más de un route hint?

Sí. BOLT 11 permite a quien escribe la factura incluir varios campos r como opciones de enrutamiento alternativas, con la preferida en primer lugar, y cada campo puede encadenar varios saltos propios. Un solo campo está limitado por el tope de 639 bytes para los datos de un campo etiquetado, lo que deja espacio para doce saltos como máximo.

Para seguir leyendo

Términos relacionados

Más en la sección Lightning y capa 2

Leer esta página en inglés