Invoices
Os pedidos de pagamento da Lightning
⚡ Lightning Network
Na Lightning, para receber um pagamento, você primeiro cria uma invoice (um "pedido de pagamento"). É o equivalente ao Bar do Bob dizer: "me paga o valor de uma cerveja, e aqui está como provar que o pagamento chegou".
O que tem dentro de uma invoice
Uma invoice é um texto codificado (normalmente começa com lnbc e é mostrado como um QR code). Por dentro, ela carrega coisas como:
- Valor — quanto deve ser pago (também pode ser uma invoice "em aberto", sem valor fixo).
- Descrição — uma nota sobre o que é o pagamento (ex.: "1 cerveja").
- Cadeado (hash do pagamento) — a "trava" do pagamento. É o hash de um segredo que só o recebedor conhece.
- Validade — uma invoice expira depois de um tempo (costuma ser de uso único).
- Assinatura — assinada pela chave do recebedor, provando que a invoice é dele.
O segredo que prova o pagamento
A parte mais inteligente é o par segredo / cadeado — o mesmo "cadeado com segredo" que vimos em Como a Lightning funciona.
Quando o Bob cria a invoice, a carteira dele sorteia um segredo (chamado de preimage) e coloca na invoice apenas o cadeado (o hash desse segredo).
O pagamento só se completa quando esse segredo é revelado. Como só o Bob conhece o segredo, revelá-lo prova que foi ele quem recebeu — e é exatamente isso que destrava o pagamento ao longo de todo o caminho na rede. Na prática, o segredo revelado funciona como um recibo da cerveja.
Lightning Address (mais prático)
Uma invoice é de uso único e expira, então não dá para imprimir num cartaz fixo no balcão do bar. Para isso existe a Lightning Address, que parece um e-mail (ex.: bardobob@carteira.com). Ela é fixa e reutilizável: quando alguém vai pagar, a carteira usa esse endereço para buscar uma invoice nova automaticamente nos bastidores.
Na parte técnica, vamos ver o formato exato das invoices (o padrão BOLT 11) — e a ideia é ter por aqui um decodificador de invoice para você espiar o conteúdo de uma.