Visão Geral
Uma fatura Lightning é uma solicitação de pagamento padronizada usada na Rede Lightning, definida pela especificação BOLT 11. Ao contrário das transações Bitcoin on-chain onde o remetente inicia um pagamento para um endereço, os pagamentos Lightning são baseados em pull: o destinatário gera uma fatura contendo todas as informações que o pagador precisa para rotear um pagamento até ele. A fatura é tipicamente apresentada como uma longa string alfanumérica ou código QR.
Estrutura da Fatura
Uma fatura BOLT 11 codifica várias informações:
lnbc15u1p3xnhl2pp5jptserfk3zk4qy42tlcuszp33fs9nqa9...
Detalhamento do prefixo:
┌──────────┬─────────────────────────────────────────┐
│ ln │ Rede Lightning │
│ bc │ mainnet do Bitcoin (tb para testnet) │
│ 15u │ Valor: 15 micro-BTC (1.500 sats) │
└──────────┴─────────────────────────────────────────┘
Campos de dados codificados:
┌──────────────────────────────────────────────────────┐
│ payment_hash → Identificador único do pagamento │
│ timestamp → Quando a fatura foi criada │
│ expiry → Por quanto tempo a fatura é válida │
│ (padrão: 3600 segundos / 1 hora) │
│ description → Descrição do pagamento legível │
│ destination → Chave pública do nó destinatário │
│ routing_hints → Caminhos de roteamento sugeridos │
│ min_final_cltv → Timelock mínimo para o salto final │
│ signature → Assinatura do destinatário │
└──────────────────────────────────────────────────────┘
Fluxo de Pagamento
Destinatário Pagador
│ │
│ 1. Gerar segredo R │
│ Computar H = hash(R) │
│ │
│ 2. Criar fatura com H ─────────► │
│ (via código QR, texto, etc.) │
│ │
│ 3. Decodificar fatura│
│ 4. Encontrar rota │
│ 5. Enviar pagamento │
│ via HTLCs │
│ ◄──── cadeia HTLC ──────────── │
│ │
│ 6. Revelar R para reivindicar pag.│
│ ──── R se propaga de volta ────► │
│ │
│ Pagamento concluído! │
Tipos de Faturas
Faturas com valor especificado: Incluem um valor de pagamento específico. O pagador deve enviar exatamente esse valor.
Faturas de valor zero: Permitem ao pagador escolher o valor. Úteis para doações ou gorjetas.
Faturas AMP: Permitem dividir o pagamento em múltiplos caminhos usando pagamentos de múltiplos caminhos atômicos (Atomic Multi-Path).
Limitações das Faturas
- De uso único: Cada fatura deve ser paga apenas uma vez. Reutilizar uma fatura é um risco de segurança porque o segredo de pagamento (pré-imagem) é revelado no primeiro pagamento.
- Expiração: As faturas expiram (padrão: 1 hora). Faturas expiradas não podem ser pagas.
- O destinatário deve estar online: O nó Lightning do destinatário deve estar em execução para gerar faturas e receber pagamentos.
Alternativas e Extensões
- LNURL: Um protocolo que permite links de pagamento reutilizáveis, saques e interações Lightning mais amigáveis ao usuário
- BOLT 12 (Ofertas): Um formato de fatura de próxima geração que suporta códigos de pagamento reutilizáveis, recorrência e privacidade do pagador
- Keysend: Permite enviar pagamentos sem fatura, gerando espontaneamente a pré-imagem de pagamento no lado do remetente
- Lightning Address: Um formato semelhante a e-mail (usuá[email protected]) que resolve para endpoints LNURL para pagamentos sem interrupções
Conceitos Equivocados Comuns
- Faturas não são endereços. Ao contrário dos endereços Bitcoin que podem receber múltiplos pagamentos, uma fatura Lightning padrão é destinada a um único pagamento.
- O valor da fatura não está bloqueado na carteira do remetente. O remetente pode optar por não pagar uma fatura a qualquer momento antes de iniciar o pagamento.
- A expiração da fatura não significa que os fundos são perdidos. Se uma fatura expirar antes do pagamento, nenhum dinheiro é movido. O destinatário simplesmente gera uma nova fatura.