Canais de Pagamento

A peça fundamental da Lightning

⚡ Lightning Network

Um canal de pagamento é o jeito de duas pessoas trocarem bitcoin entre si várias vezes, sem registrar cada pagamento na blockchain. É a base de tudo na Lightning — e, voltando ao nosso exemplo, é a comanda do bar.

Abrindo o canal

Imagine que você vai ser cliente frequente do Bar do Bob. Em vez de pagar cada cerveja na blockchain, vocês abrem uma comanda.

Mas tem um detalhe importante: para ninguém poder sair correndo com o dinheiro, vocês trancam o bitcoin num "cofre" que só abre com a assinatura dos dois. Tecnicamente, isso é um endereço multisig 2-de-2, e o bitcoin é colocado lá por uma transação na blockchain — a transação de financiamento (funding).

Por exemplo: você tranca no canal o equivalente a 10 cervejas. A partir daí, esse valor está "dentro" da comanda, e vocês dois controlam como ele é dividido.

Diagrama de abertura de canal: Você e o Bar do Bob trancam bitcoin num cofre multisig 2-de-2 através de uma transação de financiamento on-chain.

Pagando dentro do canal

Com a comanda aberta, cada cerveja é só um novo acordo sobre como dividir o dinheiro do cofre — assinado pelos dois e sem tocar na blockchain.

Seguindo o exemplo (comanda de 10 cervejas):

Cada novo saldo é uma nova versão da transação que fecharia o canal (a transação de compromisso, ou commitment), assinada pelos dois. Só a versão mais recente é a que vale. E isso acontece em milissegundos, quantas cervejas você quiser.

Diagrama mostrando o saldo do canal sendo atualizado a cada cerveja: 10/0, depois 8/2, depois 7/3, cada estado assinado pelos dois e só o último valendo.

Fechando o canal

No fim da noite, alguém publica o último estado da comanda na blockchain (a transação de fechamento). A blockchain então paga a cada um o seu saldo final. No exemplo, você recebe 7 cervejas de volta e o Bob fica com 3.

Repare na economia de novo: por mais cervejas que vocês tenham anotado, só apareceram duas transações na blockchain — a de abrir e a de fechar.

E se alguém tentar trapacear?

Boa pergunta. Como cada saldo antigo é uma transação válida e assinada, em tese alguém poderia tentar publicar um estado antigo — aquele em que tinha mais dinheiro. No nosso exemplo, quem teria essa tentação é você: bastaria fechar a comanda mostrando o estado do começo da noite (10 cervejas suas, 0 do Bob), antes de beber, e sair sem pagar pelo que já tomou.

A Lightning resolve isso com um mecanismo de penalidade: se você publicar um estado antigo, o Bob tem uma janela de tempo para provar a trapaça e ficar com todo o saldo do canal. Ou seja, trapacear sai muito caro — então ninguém tenta. (Os detalhes de como isso funciona ficam para a parte técnica.)

Até aqui falamos de um canal entre duas pessoas. O que transforma a Lightning numa rede é conseguir pagar alguém com quem você não tem canal direto, saltando pelos canais de outras pessoas — o roteamento. É o que veremos na próxima página, Como a Lightning funciona.