Introdução
As criptomoedas têm algumas propriedades bastante únicas. Elas dificilmente serão hackeadas ou terão seu sistema desligado e qualquer um pode usá-las para transferir valores globalmente, sem a intervenção de terceiros.
Para manter esses recursos em funcionamento são necessárias algumas limitações. Como muitos nodes (nós) são responsáveis pela execução de uma rede de criptomoedas, a taxa de transferência é limitada. Sendo assim, o número de transações por segundo (TPS) que uma rede blockchain pode processar é relativamente baixo para uma tecnologia que pretende ser adotada globalmente.
Para superar as limitações inerentes à tecnologia blockchain, várias soluções de escalabilidade foram propostas visando aumentar o número de transações que uma rede é capaz de processar. Neste artigo, falaremos sobre a Lightning Network, uma das extensões do protocolo Bitcoin.
O que é Lightning Network?
Quando você faz a sua primeira transação, você está efetivamente criando um tipo de contrato inteligente com outro usuário. Veremos mais detalhes em breve – por enquanto, basta entender que o contrato inteligente mantém um ledger privado com o outro usuário (sua contraparte). Nesse ledger, você pode registrar muitas transações. Elas são visíveis apenas para você e sua contraparte, mas nenhum de vocês pode trapacear devido a alguns recursos peculiares da configuração.
A qualquer momento, qualquer um deles pode publicar o estado atual do canal na blockchain. Nesse momento, os saldos de cada um são alocados para suas respectivas partes na blockchain.
Por que a Lightning Network é necessária?
Ao afastar esse tipo de experimentação da blockchain, há muito mais flexibilidade. Se algo der errado, a rede Bitcoin real não sofrerá os impactos. As soluções de layer-2 não prejudicam nenhuma das medidas de segurança que mantêm o protocolo funcionando há mais de 10 anos.
Também não há obrigação de mudar a forma tradicional de operação. As transações on-chain (na blockchain) continuam funcionando normalmente para o usuário final, mas agora eles também têm a opção de realizar transações off-chain.
O uso da Lightning Network oferece muitos benefícios. Vamos ver alguns dos principais.
Escalabilidade
Os blocos do Bitcoin são criados a cada dez minutos e podem conter apenas algumas transações. O espaço em cada bloco é escasso, portanto, você deve fazer lances contra outros usuários para que a sua transação seja incluída em tempo hábil. A principal preocupação dos mineradores é receber o pagamento, então eles incluem as transações com taxas mais altas primeiro.
Quando não há muitos usuários tentando enviar fundos ao mesmo tempo, isso não é necessariamente um problema. Você pode definir uma taxa baixa e é provável que sua transação seja incluída no próximo bloco. No entanto, quando todos estão transmitindo transações ao mesmo tempo, a taxa média pode aumentar significativamente. Em algumas ocasiões, esse valor ultrapassou US$ 5. No auge do mercado em alta de 2017, ultrapassou US$ 50.

Taxa Média de Transação do Bitcoin (em USD)
Isso pode parecer insignificante para transações que movimentam milhares de dólares em Bitcoin, mas para pagamentos menores, é insustentável. Quem vai querer pagar por um café de US$ 3 com uma taxa adicional de US$ 5?
Com a Lightning Network, você ainda deve pagar duas taxas – uma para abrir seu canal e outra para fechá-lo. Mas após a abertura do canal, você e sua contraparte podem fazer milhares de transações gratuitamente. Quando terminar, basta publicar o estado final na blockchain.
De maneira geral, se mais usuários contarem com soluções off-chain como a Lightning Network, o espaço de cada bloco será usado com mais eficiência. Transferências de baixo valor e alta frequência podem ser realizadas através de canais de pagamento, enquanto o espaço de bloco é usado para transações maiores e para abertura/fechamento de canais. Com isso, o sistema se tornaria mais acessível a uma base de usuários muito mais ampla, permitindo a escalabilidade do sistema a longo prazo.
Micropagamentos
A Lightning é muito mais interessante para micropagamentos. As taxas das transações regulares inviabilizam o envio de pequenas quantias na blockchain principal. Dentro de um canal, no entanto, você pode enviar uma pequena fração de Bitcoin gratuitamente.
Os micropagamentos são adequados para muitos casos de uso. Alguns especulam que eles poderiam ser um substituto viável para os modelos baseados em assinatura, onde os usuários pagam pequenas quantias cada vez que usam determinado serviço.
Privacidade
Se Alice tiver um canal com Bob e Bob tiver um canal com Carol, Alice e Carol poderão enviar pagamentos uma para a outra através de Bob. Se Dan estiver conectado a Carol, Alice poderá enviar pagamentos a ele. Podemos imaginar isso se expandindo para uma ampla rede de canais de pagamento interconectados. Em tal configuração, após o fechamento do canal, não é possível ter certeza para quem Alice enviou fundos.
Como funciona a Lightning Network?
Explicamos como a Lightning Network depende dos canais (channels) entre os nodes. Vamos conferir mais detalhes.
Endereços com múltiplas assinaturas (multisignature)
Para inicializar um canal Lightning, os participantes bloqueiam os fundos em um esquema 2-de-2. Existem apenas duas chaves privadas capazes de assinar e ambas são necessárias para a movimentação de moedas. Vamos usar nossos amigos Alice e Bob como exemplo novamente. Eles farão muitos pagamentos um ao outro nos próximos meses, então decidem abrir um canal da Lightning Network.
Primeiro, os dois depositam, digamos, 3 BTC cada no endereço multisig de propriedade conjunta. Vale reiterar que Bob não pode transferir fundos do endereço sem que Alice concorde, e vice-versa.
Agora, eles podem apenas manter anotações e ajustar os saldos de cada lado. Ambos têm um saldo inicial de 3 BTC. Se Alice quiser fazer um pagamento de 1 BTC para Bob, por que não simplesmente anotar que Alice agora possui 2 BTC e Bob possui 4 BTC? Os saldos podem ser rastreados dessa maneira até que eles decidam transferir os fundos para outro endereço.
Isso é possível, mas não é o cenário ideal. E o mais importante, com esse método é incrivelmente fácil que algum deles não coopere, certo? Se, no fim das contas, Alice tiver 6 BTC e Bob nenhum, Bob não perderá nada caso se recuse a liberar os fundos (exceto, talvez, sua amizade com Alice).
Hash Timelock Contracts (HTLC)
O sistema mencionado acima não tem muito a oferecer, considerando as opções de configurações confiáveis de hoje. Fica muito mais interessante quando introduzimos um mecanismo que impõe o “contrato” entre Alice e Bob. Se uma das partes não seguir as regras, a outra ainda terá uma maneira de retirar seus fundos do canal.
Os HTLCs são criados através da combinação de hashlocks e timelocks. Na prática, os HTLCs podem ser usados para criar pagamentos condicionais – o destinatário deve fornecer um segredo antes de um prazo determinado ou o remetente poderá recuperar os fundos. A explicação desta próxima parte provavelmente fica mais fácil com um exemplo, então vamos voltar ao exemplo de Alice e Bob.
Abrindo e fechando canais
No exemplo de Alice e Bob, eles criaram transações que financiam o endereço multisignature compartilhado por eles. Mas essas transações ainda não foram publicadas na blockchain! Antes disso, no entanto, precisamos fazer mais uma coisa.

Três moedas de Bob e três moedas de Alice.
Ela poderia tentar transmitir a transação imediatamente, mas seria inválida porque Bob não incluiu sua assinatura. Alice deve entregar a transação incompleta a ele primeiro. Após Bob adicionar sua assinatura, a transação se tornará válida.
Ainda não estabelecemos um mecanismo para garantir que todos atuem honestamente. Como dissemos anteriormente, se sua contraparte se recusar a cooperar, seus fundos ficarão efetivamente bloqueados. Vamos ver detalhes sobre o mecanismo que evita esse tipo de situação. São diferentes peças móveis, então vamos com calma.
Cada parte precisa inventar um segredo – vamos chamar esses segredos de "As" e "Bs". Seriam péssimos segredos se Alice e Bob os revelassem, então eles os manterão ocultos por enquanto. O par irá gerar os respectivos hashes dos segredos – h(As) e h(Bs). Então, em vez de compartilhar seus segredos, eles compartilham esses hashes um com o outro.

Alice e Bob compartilham os hashes de seus segredos um com o outro.
Se você pensar em um channel (canal) como o mini-ledger que mencionamos anteriormente, as transações de compromisso são as atualizações feitas no ledger. Sempre que você cria um novo par de transações de compromisso, você está reequilibrando os fundos entre os dois participantes.

Transação de Alice com duas saídas (outputs) – uma para seu próprio endereço e outra para um novo multisig. Ela ainda precisa da assinatura de Bob para validar a transação.
Bob faz o mesmo – uma saída paga a ele mesmo, a outra paga outro endereço multisig. Ele assina a transação e passa para Alice.

Temos duas transações incompletas que são muito semelhantes.
Os novos endereços multisignature (destino dos 3 outputs de BTC) possuem algumas propriedades peculiares. Vamos dar uma olhada na transação incompleta que Alice assinou e enviou a Bob. O output do multisig pode ser gasto nas seguintes condições:
- Ambas as partes podem assinar a transação cooperativamente.
- Bob pode gastar o valor do output por conta própria após um determinado período (devido ao timelock).
- Alice pode gastar o valor se souber o segredo Bs de Bob.
Em relação à transação que Bob enviou à Alice:
- Ambas as partes podem assinar a transação cooperativamente.
- Alice pode gastar o valor por conta própria após um determinado período.
- Bob pode gastar o valor se souber o segredo As de Alice.
Tenha em mente que nenhuma das partes conhece o segredo da outra, então o item 3) ainda não é uma possibilidade. Outra observação importante é que, se você assinar uma transação, sua contraparte pode gastar o valor imediatamente, pois não há condições especiais para o output (saída). Você pode esperar que o timelock expire para gastar os fundos por conta própria ou cooperar com a outra parte para gastá-los imediatamente.
Ok! Agora você pode publicar as transações no endereço multisignature 2-de-2 original. Finalmente é seguro fazê-lo, já que você pode recuperar seus fundos caso a sua contraparte abandone o canal.
Assim que as transações forem confirmadas, o canal estará funcionando. Esse primeiro par de transações nos mostra o estado atual do mini-ledger. Atualmente, ele pagará 3 BTC para Bob e 3 BTC para Alice.
Quando Alice quiser fazer um novo pagamento a Bob, eles criam duas novas transações que substituirão o primeiro conjunto. O processo é o mesmo – as transações estarão parcialmente assinadas. Primeiramente, no entanto, Alice e Bob descartam seus antigos segredos e usam novos hashes para a próxima rodada de transações.

Se Alice quisesse pagar 1 BTC para Bob, por exemplo, as duas novas transações creditariam 2 BTC para Alice e 4 BTC para Bob. Desta forma, o saldo estaria atualizado.
Qualquer uma das partes pode assinar e transmitir uma das transações mais recentes a qualquer momento para “resolvê-la” na blockchain. Mas a parte que fizer isso precisará esperar até que o timelock expire, enquanto a outra pode gastar imediatamente. Lembre-se, se Bob assinar e transmitir a transação de Alice, ela terá um output (saída) que não envolve condições.
Quer começar a investir em criptomoedas? Compre Bitcoin na Binance!
Como a Lightning Network evita trapaças?
Alice recebe sua moeda imediatamente. Bob, por outro lado, deve esperar até que o timelock expire para gastar o valor do endereço multisig. Você se lembra da outra condição que mencionamos, que permitiria que Alice gastasse os mesmos fundos imediatamente? Para isso, ela precisava de um segredo que ela não tinha naquele momento. Mas agora ela tem essa informação – assim que a segunda rodada de transações foi criada, Bob revelou seu segredo.
Enquanto Bob fica sentado, incapaz de fazer qualquer coisa enquanto espera que o timelock expire, Alice pode movimentar os fundos. Esse mecanismo de "punição" faz com que seja muito improvável que os participantes tentem trapacear, já que a contraparte terá acesso às suas moedas.
Roteamento de transações
Falamos sobre isso anteriormente – é possível conectar os canais (channels). Se não fosse possível, a Lightning Network não seria tão útil para pagamentos. Você bloquearia US$ 500 em um canal com uma cafeteria apenas para obter sua dose diária de café pelos próximos meses?
Você não precisa fazer isso. Se Alice abrir um canal com Bob e Bob já tiver um com Carol, Bob pode encaminhar pagamentos através das duas. Esse mecanismo também funciona em múltiplos "hops" (saltos), ou seja, Alice pode efetivamente pagar qualquer pessoa que esteja conectada a uma dessas "rotas".

Nesse cenário, Alice pode utilizar múltiplas rotas para chegar até Frank. Na prática, ela sempre vai usar a mais fácil.
Os intermediários podem cobrar uma pequena taxa por seu papel de roteamento (embora não seja uma obrigação). A Lightning Network ainda é muito nova, então um mercado de taxas ainda não se concretizou. E expectativa de muitos é ver taxas baseadas na liquidez fornecida.
Normalmente, na blockchain, sua taxa se baseia apenas no espaço que sua transação ocupa em um bloco – o valor da transação não importa – a taxa para pagamentos de US$ 1 ou US$ 10.000.000 será a mesma. Por outro lado, na Lightning Network não existe a questão de espaço no bloco.

Saldo dos usuários antes e depois de uma transferência de 0,3 BTC de Alice para Frank.
Se Alice quiser enviar 0,3 BTC para Frank, ela "empurra" 0,3 BTC para o lado de Carol do canal. Então, Carol envia 0,3 BTC de seu saldo local ao seu canal com Frank. Como resultado, o saldo de Carol permanece o mesmo: +0,3 BTC de Alice e -0,3 BTC para Frank.
Carol não tem prejuízos ao atuar como uma conexão entre Frank e Alice, mas ela perde em termos de flexibilidade. Observe, agora ela pode gastar 0,6 BTC em seu canal com Alice, mas apenas 0,1 BTC no canal com Frank.
Imagine que Alice esteja conectada apenas a Carol, enquanto Frank está conectado a uma rede muito mais ampla. Antes, Carol podia enviar um total de 0,4 BTC para outras pessoas através de Frank, mas agora ela só pode enviar 0,1 BTC, pois é o valor restante que ela tem no canal.
Como mencionado anteriormente, não há uma exigência para a cobrança de taxas. Alguns usuários talvez não se preocupem com a redução da liquidez. Outros podem simplesmente abrir canais diretamente com o destinatário.
Limitações da Lightning Network
Seria fantástico se a Lightning Network provasse ser a solução para todos os problemas de escalabilidade do Bitcoin. Infelizmente, ela tem suas próprias deficiências e limitações.
Usabilidade
No momento, isso não é possível com a Lightning Network. As opções são limitadas quando se trata de aplicativos de smartphone – geralmente, os nodes da Lightning exigem acesso a um node de Bitcoin para serem totalmente utilizáveis.
Além disso, depois que um cliente é configurado, o usuário precisa abrir canais antes de efetuar pagamentos. Este pode ser um processo demorado e complicado para um recém-chegado, com pouco conhecimento sobre conceitos como capacidade de inbound/outbound.
Dito isso, melhorias estão sendo feitas constantemente para reduzir as barreiras de entrada e fornecer uma experiência mais simplificada aos usuários.
Liquidez
Uma das maiores críticas à Lightning Network é a sua capacidade restrita de realizar transações. Não é possível gastar mais do que foi bloqueado em um canal. Se você gastar todos os seus fundos até que o saldo remoto represente todos os fundos do canal (channel), você precisará fechar o canal. Como alternativa, você pode esperar até que alguém lhe pague, mas essa não é a opção ideal.
Hubs centralizados
Por conta do problema mencionado na seção anterior, existe uma preocupação de que a rede facilite a criação de “hubs” gigantes. Ou seja, hubs de grandes organizações/entidades, fortemente conectadas e com muita liquidez. Nesse cenário, qualquer pagamento com valores significativos precisaria ser encaminhado através dessas entidades.
Obviamente, essa não seria uma situação interessante. Isso enfraqueceria o sistema, pois se algumas dessas entidades ficassem offline ou tivessem problemas, a grande maioria das conexões entre peers (pares) seria interrompida. Há também um risco maior de censura, já que existem apenas alguns pontos pelos quais as transações estão fluindo.
O estado atual da Lightning Network
Atualmente, em março de 2022, a Lightning Network funciona bem. A rede possui mais de 35.000 nodes online, 85.000 channels ativos e mais de 3.570 BTC de capacidade.

Distribuição global de nodes da Lightning Network. Fonte: explorer.acinq.co
Considerações finais
Desde o lançamento da mainnet (rede principal) em 2018, a Lightning Network teve um crescimento impressionante, apesar de muitos considerarem que ela ainda está na versão beta.
Ainda existem alguns obstáculos em termos de usabilidade a serem superados, pois atualmente é necessário um certo grau de proficiência técnica para operar um node da Lightning. Mas com o rápido desenvolvimento que estamos presenciando, as barreiras de entrada serão cada vez menores.
Se esses problemas forem resolvidos, a Lightning Network pode se tornar uma parte fundamental do ecossistema Bitcoin, oferecendo um enorme ganho em termos de escalabilidade e velocidade das transações.