Lightning Network: Canais de pagamentos, como funcionam?

in #lightningnetwork7 years ago

O funcionamento principal por trás da rede Lightning Network é através de canais de pagamento, mais você sabe como isso funciona na prática? Bom nesse artigo vou explicar para você a visão geral como funciona esses canais que é a base fundamental da rede.

A abertura

Tudo começa com uma transação normal de bitcoin em uma wallet que der suporte a pagamentos Lighting definindo o valor que você pretende financiar com alguém, essa transação ocorre na rede principal do Bitcoin. Lembra da nossa padaria do exemplo do artigo sobre a Introdução a Lightning Network? Pois bem vou usar ela aqui novamente para ilustrar o nosso exemplo.

José e Maria como clientes fiéis que tomam café todos os dias nessa padaria resolve ambos abrir um canal com a padaria, então temos o seguinte cenário:

_Abertura dos canais de José e Maria com a Padaria_

O financiamento

Na imagem acima José abriu um canal de 5mBTC e Maria um canal com 2mBTC nesse ponto temos os seguintes registros em cada wallet:

CANAL JOSÉ
Amount Local: Quantidade de bitcoins disponível do seu lado, nesse exemplo 5mBTC; Amount Remote: Quantidade de bitcoins disponível no lado da Padaria, aqui a Padaria detêm de 0mBTC já que o único financiador foi José.

CANAL MARIA
Amount Local: Quantidade de bitcoins disponível do seu lado, nesse exemplo 2mBTC; Amount Remote: Quantidade de bitcoins disponível no lado da Padaria, aqui a Padaria detêm de 0mBTC já que o único financiador foi Maria.

Bom agora que vimos como estão distribuídos os fundos você percebeu que os canais de José e Maria estão aptos para realizar pagamentos direto para a padaria. Vale lembrar que os fundos estão 100% do lado dos financiadores a Padaria não consegue nesse momento realizar pagamento nem para José nem para Maria já que o saldo do seu lado é 0mBTC isso só será possível quando ela possuir saldos nesses canais.

Outra questão neste cenário é que esses canais são limitados pelos valores que foram financiados ou seja, não é possível enviar mais que o valor que foi financiado, aqui não é Banco é bitcoin.

Considere um canal de pagamento como se fosse um cartão de crédito pre-pago - Tayrone Santos.

Atualizando os saldos

Passaram alguns dias e a padaria recebeu alguns pagamentos de José e Maria, agora temos o seguinte cenário:

Perceba que agora a padaria possui os seguintes saldos:

Saldo pelo canal de Josè 2mBTC
Saldo pelo canal da Maria 0.5mBTC

Então, a padaria tem um saldo total em canais de 2,5mBTC. Eu poderia parar por aqui, por que este é o primeiro cenário que vejo para a rede Lightning está funcionado, o próprio usuário abrindo canal direto com o comerciante que pretende adquirir produtos/serviços. Porém, em teoria a Lightning Network deve permitir que qualquer pessoa na rede façam pagamentos em qualquer direção, encontrando um caminho com a menor taxa possível, e isso acontece através do roteamento de pagamentos.

O roteamento

Rotear um pagamento na rede LN não é nada mais do que você pagar a outro usuário sem possuir canal direto com ele. Observe o nosso exemplo dos canais de José, Maria e a padaria:

Vamos supor que Maria queira pagar algo para José, mas ela não possui canal com ele, porém ambos estão ligados ao NÓ da padaria, para isso é possível desde que todas as partes até José tenham fundos suficientes para enviar e receber o pagamento.

Olhá só: Maria deseja enviar 0.5mBTC para José usando o NÓ da padaria, nesse cenário a padaria recebe o pagamento de Maria e em seguida o envia para José, tudo isso de forma automática. Vale lembrar que, a padaria pode cobrar uma taxa algo em torno de 2 a 10 satoshi para este roteamento e isso só acontece se a padaria tiver saldo suficiente entre ela e José.

No nosso exemplo a padaria possuía 2mBTC do seu lado por este motivo foi possível rotear o pagamento de Maria até José, caso contrário o pagamento não seria realizado. Bom, é aqui onde muitos questionam sob uma certa centralização da rede, onde teria que existir alguns HUBs para funcionar como intermediários para disponibilizar liquidez para a rede. Mas calma! Nada será centralizado como falam, lembra que, quando abrimos um canal o saldo fica do nosso lado, o que eu quero dizer é que para existir este “HUB centralizador” ele teria que abrir canais com boa parte dos usuários da rede e isso tem um custo já que o limite por canal é de 167mBTC.

Conclusão

Enfim, esse é todo o conceito por trás dos canais de pagamentos, existem outros aspectos como a fee nos pagamentos mas isso depende da configuração de cada NÓ. Além dos dois cenários mostrados aqui tem inúmeros casos onde podemos usar canais de pagamentos, tudo vai depender da necessidade do usuário.

Além disso, os canais de pagamentos nos proporcionam um grau de privacidade maior já que as transações na LN não ficam registradas em uma blockchain pública.

O que achou deste artigo? Tem algo para acrescentar? Deixa sua opinião.

Principais implementações Lightning Network
Eclair: https://github.com/ACINQ/eclair
Lightning Labs LND: https://github.com/LightningNetwork/lnd
Blockstream c-lighntning: https://github.com/ElementsProject/lightning
MIT DCI Lit: https://github.com/mit-dci/lit

TWITTER: https://twitter.com/jtayronesantos
FACEBOOK: https://www.facebook.com/jtayronesantos
GITHUB: https://github.com/jtayrone
MEDIUM: https://medium.com/@tayrone

Sort:  

Followed and Upvoted, Keep up the good work and looking forward to more from you.

Thank you.