Categorias
Como funcionam? Mastering Bitcoin

A Lightning Network em Acção

No último artigo vimos o que é e como funciona a Lightning Network. Com o objectivo de  interiorizarmos esse conhecimento vamos analisar um exemplo de um pagamento que ocorra na LN.

Consideramos 4 intervenientes: Ana, Bruno, Carlos e Diana. Têm abertos entre si canais de pagamentos a pares, de forma a que a Ana está ligada ao Bruno. O Bruno conectado ao Carlos. E, por fim, o Carlos à Diana. Para simplificação, vamos assumir que cada participante alocou 2 bitcoins a cada canal. Assim, a capacidade de cada canal é de 4 bitcoins.

LNex0

A Ana quer pagar 1 bitcoin à Diana. Elas não têm um canal aberto entre elas e para isso teriam que alocar mais dinheiro, que ficaria bloqueado nesse novo canal. Mas elas não o querem fazer. Abrir um novo canal implicaria também publicar as transacções de fundação e resolução na blockchain e assim esperar pelas suas confirmações.

De que forma indirecta pode a Ana pagar à Diana?

LNex

A Ana está a operar um nó da LN que mantém o estado dos seus pagamentos com o Bruno e consegue descobrir caminhos entre nós através de canais de pagamentos já abertos. Esse nó também é capaz de se ligar pela Internet ao nó da Diana. Aqui é criado um número aleatório S para ser usado como segredo. Como o nó não quer revelar o segredo a ninguém, vai submetê-lo a uma função de dispersão que “codifica” o segredo – a dispersão H do segredo. É esta versão encriptada do segredo que vai enviar ao nó da Ana, para que ela possa endereçar-lhe o pagamento.

O nó da Ana vai descobrir o caminho mais eficiente até ao nó da Diana, que neste caso será através dos nós do Bruno e do Carlos.

O nó da Ana vai então construir uma transacção HTLC bloqueada ao segredo S, com um reembolso ao fim de 10 blocos e para o montante de 1,002 bitcoins. Só alguém que tenha o segredo S consegue desbloquear o dinheiro. Os 0,002 extra serão gastos para pagar aos nós intermédios em taxas de transmissão. Agora, a Ana envia para o Bruno esta transacção. Esta transacção diz que a Ana está a atribuir 1,002 bitcoins, da sua parte do canal, ao Bruno, se ele souber o segredo, ou serem reembolsadas se passarem 10 blocos.

Agora o Bruno tem este compromisso da Ana de que poderá reclamar 1,002 bitcoins se conseguir descobrir o segredo S durante os próximos 10 blocos. Portanto, está motivado para conseguir descobrir o segredo. Com esse objectivo, vai criar uma transacção HTLC também bloqueada ao segredo S no canal que tem com o Carlos. Vai alocar 1,001 bitcoins a esta transacção durante 9 blocos, que o Carlos poderá reclamar se souber o segredo.

Desta forma, está a passar o incentivo de descobrir o segredo S para o Carlos para que ele possa trabalhar cooperativamente e descubra o segredo. Se o Carlos conseguir achar o segredo o Bruno será recompensado com 0,001 bitcoins, a diferença entre as 2 transacções. Senão forem capazes de descobrir o segredo dentro dos prazos estabelecidos, ninguém fica a perder já que serão activados os reembolsos e recuperarão as moedas que tinham alocado às transacções.

Agora, que o Carlos também está incentivado a descobrir o segredo vai fazer a sua transmissão do pagamento.  Para isso, vai criar outra transacção HTLC que colocará no canal que tem com a Diana. Esta transacção será de 1 bitcoin, desbloqueada se o segredo for apresentado e válida por 8 blocos.

Neste último salto o processo muda pois a Diana tem o segredo R. Assim sendo, ela consegue reclamar o pagamento e ficar com 1 bitcoin que lhe estava destinada. Para recompensar os participantes na transmissão deste pagamento, a Diana vai enviar o segredo S para o Carlos.

Agora que o Carlos tem o segredo consegue desbloquear a transacção que o Bruno tinha enviado para ele e reclamar para si 1,001 bitcoins. Ele tinha enviado 1 bitcoin para a Diana que subtrai àquilo que recebeu do Bruno. Desta forma, o Carlos ganhou 0,001 bitcoins pela transmissão do pagamento através do seu nó. Para que o efeito continue, ele vai também enviar o segredo S que já conhece para o Bruno.

O Bruno poderá, agora que já conhece o segredo, desbloquear a transacção que tinha recebido da Ana e reclamar 1,002 bitcoins. Também ele será recompensado com 0,001 bitcoins depois de feitas as contas visto que enviou 1,001 bitcoins para o Carlos.

No final desta operação, os balanços de cada canal estão alterados reflectindo o novo estado. O montante de 1 bitcoin foi enviado da Ana para a Diana, sem que elas tivessem que abrir um novo canal directo. Nenhum dos participantes tinha que confiar em nenhuma das partes pois as suas transacções estavam protegidas pelo código e as condições por ele impostas. Todos os intervenientes foram recompensados pela energia gasta e pelo pequeno risco de ter os seus fundos bloqueados durante alguns blocos a uma transacção que poderia não se ter concretizado.

Apesar deste processo parecer mais complexo do que uma simples transacção na blockchain, tem as suas vantagens. Sendo executado na LN o processo é instantâneo e portanto as intervenientes não têm que esperar pelas confirmações necessárias. Utilizando esta ferramenta, a Ana pode dar uso às bitcoins que tem destinadas no canal de pagamento aberto com o Bruno, sem ter que recorrer a mais fundos.

A complexidade aparente de todo o processo será efectuada pelas carteiras de cada parte sem assoberbar os utilizadores. Para eles o processo deverá ser tão simples como ler um código QR e premir um botão enviar.  

Deixe um comentário