Descripción General
Una factura Lightning es una solicitud de pago estandarizada usada en la Red Lightning, definida por la especificación BOLT 11. A diferencia de las transacciones Bitcoin en cadena donde el remitente inicia un pago a una dirección, los pagos Lightning son de tipo pull: el destinatario genera una factura que contiene toda la información que el pagador necesita para enrutar un pago hacia él. La factura se presenta típicamente como una larga cadena alfanumérica o código QR.
Estructura de la Factura
Una factura BOLT 11 codifica varios datos:
lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlcuszp33fs9nqa9...
Desglose del prefijo:
┌──────────┬─────────────────────────────────────────┐
│ ln │ Red Lightning │
│ bc │ red principal de Bitcoin (tb para testnet)│
│ 15u │ Monto: 15 micro-BTC (1.500 sats) │
└──────────┴─────────────────────────────────────────┘
Campos de datos codificados:
┌──────────────────────────────────────────────────────┐
│ payment_hash → Identificador único del pago │
│ timestamp → Cuándo se creó la factura │
│ expiry → Por cuánto tiempo es válida │
│ (predeterminado: 3600 segundos/1h) │
│ description → Descripción del pago legible │
│ destination → Clave pública del nodo destinatario│
│ routing_hints → Rutas de enrutamiento sugeridas │
│ min_final_cltv → Timelock mínimo para el salto final│
│ signature → Firma del destinatario │
└──────────────────────────────────────────────────────┘
Flujo de Pago
Destinatario Pagador
│ │
│ 1. Generar secreto R │
│ Calcular H = hash(R) │
│ │
│ 2. Crear factura con H ────────► │
│ (vía código QR, texto, etc.) │
│ │
│ 3. Decodificar factura│
│ 4. Encontrar ruta │
│ 5. Enviar pago │
│ via HTLCs │
│ ◄──── cadena HTLC ──────────── │
│ │
│ 6. Revelar R para reclamar pago │
│ ──── R se propaga de vuelta ───► │
│ │
│ ¡Pago completado! │
Tipos de Facturas
Facturas con monto especificado: Incluyen un monto de pago específico. El pagador debe enviar exactamente ese monto.
Facturas de monto cero: Permiten al pagador elegir el monto. Útiles para donaciones o propinas.
Facturas AMP: Permiten dividir el pago en múltiples rutas usando pagos de múltiples rutas atómicas (Atomic Multi-Path).
Limitaciones de las Facturas
- De un solo uso: Cada factura solo debe pagarse una vez. Reutilizar una factura es un riesgo de seguridad porque el secreto de pago (preimagen) se revela al primer pago.
- Vencimiento: Las facturas caducan (predeterminado: 1 hora). Las facturas vencidas no pueden pagarse.
- El destinatario debe estar en línea: El nodo Lightning del destinatario debe estar ejecutándose para generar facturas y recibir pagos.
Alternativas y Extensiones
- LNURL: Un protocolo que permite enlaces de pago reutilizables, retiros e interacciones Lightning más amigables con el usuario
- BOLT 12 (Ofertas): Un formato de factura de próxima generación que soporta códigos de pago reutilizables, recurrencia y privacidad del pagador
- Keysend: Permite enviar pagos sin factura, generando espontáneamente la preimagen de pago en el lado del remitente
- Lightning Address: Un formato similar al correo electrónico ([email protected]) que resuelve a endpoints LNURL para pagos sin interrupciones
Conceptos Erróneos Comunes
- Las facturas no son direcciones. A diferencia de las direcciones Bitcoin que pueden recibir múltiples pagos, una factura Lightning estándar está destinada a un único pago.
- El monto de la factura no está bloqueado en la billetera del remitente. El remitente puede elegir no pagar una factura en cualquier momento antes de iniciar el pago.
- El vencimiento de la factura no significa que los fondos se pierden. Si una factura vence antes del pago, no se mueve dinero. El destinatario simplemente genera una nueva factura.