Saltar al contenido
buybitcoinsmart

Glosario / Lightning y capa 2

Factura BOLT11

También se conoce como Factura Lightning o BOLT 11.

¿Qué es una factura BOLT11?
Una factura BOLT11 es la larga cadena de caracteres que empieza por lnbc y que una billetera Lightning genera para solicitar un pago; codifica el monto, un hash de pago, una expiración y una firma.

Todo pago Lightning parte de una de estas facturas. La factura fija un hash de pago de 256 bits que solo el destinatario puede desbloquear, y expira al cabo de una hora salvo que el emisor indique otra cosa, y por eso una captura de pantalla de un código QR antiguo no sirve de nada. Pagar una es seguro en el sentido de que el dinero o bien llega al nodo indicado, o bien vuelve a usted.

Cómo funciona

Una factura BOLT11 es un código bech32 con un prefijo que indica la red y un cuerpo formado por campos etiquetados.

El prefijo, llamado parte legible por humanos, es lnbc en la mainnet, lntb en la testnet, lntbs en la signet y lnbcrt en la regtest. Justo después viene el monto, escrito como un número más una letra multiplicadora: m para milésimas de bitcoin, u para millonésimas, n para milmillonésimas y p para billonésimas. Así, lnbc2500u pide 0,0025 bitcoin. Si se omite el monto por completo, se obtiene una factura abierta que completa el pagador.

El cuerpo es una secuencia de campos etiquetados, cada uno formado por una etiqueta de un solo carácter, una longitud y un valor. Dos son obligatorios: el hash de pago, etiqueta p, 256 bits escritos como 52 caracteres bech32, y el secreto de pago, etiqueta s, otros 52 caracteres que el pagador debe repetir en la carga útil cebolla final. El BOLT 11 indica a quien escribe la factura que incluya exactamente uno de cada uno, y a quien la lee que haga fallar el pago de inmediato si no hay ningún campo s válido. Después vienen los opcionales: una descripción o, para descripciones largas, un hash de la descripción; una expiración, de 3600 segundos por defecto; una delta de expiración CLTV final mínima, de 18 bloques por defecto, que es el margen de seguridad que el destinatario quiere en el último salto; un ID de nodo del beneficiario; una dirección on-chain alternativa; y route hints (pistas de ruta) que indican al pagador cómo llegar a un nodo cuyos canales no están anunciados.

Todo el conjunto va firmado. La firma ocupa 520 bits, un valor de 64 bytes más un byte de recuperación, y eso es lo que permite a una billetera derivar el destino del pago a partir de la factura aunque no haya ningún campo de ID de nodo. Al final va una suma de comprobación bech32 de seis caracteres, de modo que un carácter mal escrito se detecta en lugar de enviar dinero a ninguna parte.

El hash de pago es el mecanismo que convierte una factura en algo más que un archivo de texto. El destinatario genera una preimagen aleatoria, calcula su hash y lo pone en la factura. Cada salto de la ruta bloquea en ese mismo hash el monto que reenvía, y solo revelar la preimagen libera el dinero. Por eso un pago liquidado deja al pagador con una preimagen cuyo hash coincide con el de la factura, un recibo criptográfico que ningún comerciante puede negar de forma verosímil.

Por qué importa cuando compra bitcoin

En la factura es donde se cometen varios errores evitables cuando usted retira fondos de un exchange.

El primero es la expiración. Los procesos de retiro de un exchange pueden tardar minutos, y una factura generada al comienzo de un proceso lento puede haber expirado para cuando se pague. Si un retiro por Lightning falla sin una razón evidente, vuelva a generar la factura en su billetera antes de suponer que el fallo es del exchange. El valor predeterminado es una hora, pero las billeteras que esperan pagos rápidos suelen establecerlo en diez o quince minutos.

El segundo es el monto. Una factura que incluye un monto solo puede pagarse por ese monto, que es justo lo que usted quiere, porque elimina la posibilidad de escribir un cero de más. Una factura sin monto, a veces llamada factura abierta o de monto cero, es cómoda para donaciones y peligrosa en un proceso de retiro. Prefiera la versión con la cifra ya incluida.

El tercero es la reutilización. Una factura BOLT11 es de un solo uso por diseño. Publicar una en una página de donaciones significa que el pago del segundo donante o bien falla o bien, si el sistema que recibe el pago está mal construido, vuelve a pagar el hash del primer donante. Ese es precisamente el problema que las ofertas BOLT12 se diseñaron para resolver, y por eso esa especificación se integró en el estándar Lightning en septiembre de 2024, el primer BOLT nuevo desde 2017. Hasta que tanto su billetera como su contraparte admitan las ofertas, una dirección Lightning es la forma práctica de publicar un destino reutilizable.

Por último, compruebe que el exchange realmente admite Lightning antes de hacer planes contando con ello. Strike, reseñado en este sitio, admite retiros tanto por Lightning como on-chain. Muchas de las plataformas de nuestra comparativa de exchanges no lo admiten, y en ellas la forma más barata de mover montos pequeños es no moverlos a menudo.

Leer una factura campo por campo

Al desmontar una factura corta, deja de parecer ruido.

Un código que empieza por lnbc1500n ya le dice dos cosas antes de decodificar nada: es una factura de la mainnet y pide 1500 nanobitcoin, es decir, 0,0000015 bitcoin, o 150 satoshis. Lo que sigue es una marca de tiempo y después los campos etiquetados. Un campo d lleva una descripción breve como "table 4"; un campo x de 600 establecería la expiración en diez minutos en lugar de la hora predeterminada; un campo c cambiaría la delta CLTV final de 18 bloques si el destinatario quiere un margen de seguridad mayor.

Si el nodo del destinatario no tiene canales públicos, un campo r lleva un route hint: el ID de nodo de un par bien conectado, el ID corto de canal que debe usarse, y la comisión y la delta de ese par. Sin él, su billetera consultaría el grafo público, no vería ninguna ruta y se rendiría. Por eso las facturas de las billeteras móviles suelen ser notablemente más largas que las de los grandes nodos públicos.

Factura BOLT11 frente a URI de Bitcoin

Una factura BOLT11 es una solicitud de pago Lightning; un URI de Bitcoin es una solicitud de pago on-chain. La forma URI, bitcoin: seguido de una dirección y parámetros opcionales, apunta a la blockchain y puede pagarse desde cualquier billetera, cualquier número de veces y por cualquier monto. Una factura apunta a un nodo, expira y está pensada para pagarse una sola vez. Cada vez más billeteras muestran un código QR unificado que lleva ambos, para que el pagador elija, pero las dos cargas útiles son estándares distintos con modos de fallo distintos.

Factura BOLT11 frente a dirección Lightning

Una factura BOLT11 es la solicitud de pago en sí; una dirección Lightning es una forma de ir a buscar una. Escribir una dirección como you@example.com en una billetera desencadena una solicitud HTTPS a ese dominio, que responde con una factura BOLT11 recién generada por el monto que usted eligió. La dirección es reutilizable y legible por humanos porque no es en absoluto una solicitud de pago: es un puntero a un servidor que acuñará una bajo demanda.

No confundir con

Preguntas frecuentes

¿Por qué expiró tan rápido mi factura Lightning?

Porque el emisor estableció una expiración corta. El valor predeterminado de BOLT11 es de 3600 segundos, una hora, pero las billeteras y los terminales de punto de venta acortan habitualmente la expiración a diez o quince minutos para que el precio cotizado no pueda variar. Genere una factura nueva y vuelva a pagar.

¿Puedo pagar dos veces la misma factura Lightning?

No. Cada factura fija un único hash de pago, y una vez que el destinatario revela la preimagen, ese hash queda gastado. Un segundo pago a la misma factura normalmente fallará, y por eso los destinos reutilizables usan en su lugar una dirección Lightning o una oferta BOLT12.

¿Qué significa el monto en lnbc2500u?

Significa 2500 millonésimas de bitcoin, es decir, 0,0025 BTC. Los montos de BOLT11 usan letras multiplicadoras después de la cifra: m para milésimas de bitcoin, u para millonésimas, n para milmillonésimas y p para billonésimas.

¿Es seguro pagar una factura de un desconocido?

Más seguro que un envío on-chain, porque o bien el pago llega al nodo indicado en la factura, o bien falla y se reembolsa automáticamente. De lo que no le protege es de pagar a la persona equivocada, así que verifique la descripción y el monto que muestra su billetera antes de confirmar.

Para seguir leyendo

Términos relacionados

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

Leer esta página en inglés