A Lightning Network (LN) fez alguns avanços significativos ao longo de 2018. Avaliar o quão longe a segunda camada do Bitcoin chegou desde o seu lançamento revela alguns desenvolvimentos impressionantes e um tamanho considerável aumento na adoção. Com atualmente mais de 18 mil canais abertos e quase 487 BTC no total dentro desses canais, o LN está pronto para se expandir ainda mais como uma rede de pagamentos P2P viável.
No entanto, o LN ainda enfrenta alguns obstáculos notáveis antes de atingir todo o seu potencial e obter maior adoção por comerciantes e usuários. Navegar pelos problemas em torno do rebalanceamento dos canais do LN e o desenvolvimento de seu espaço de design deve ser uma etapa vital na adoção futura da rede, e algumas soluções intrigantes estão sendo propostas.
Contents
O problema do reequilíbrio do LN
O problema de rebalanceamento origina-se do projeto do canal de pagamento bidirecional do LN e da necessidade de uma transação de financiamento em cadeia. O valor que um canal é financiado por duas partes abrindo um LN fora da rede é predeterminado pelas partes e é conhecido como compromisso do canal.
Se Alice e Bob abrem um canal e Alice deposita 2 BTC enquanto Bob também deposita 2 BTC, então o compromisso do canal é 4 BTC. Bob e Alice podem trocar BTC dentro deste canal fora da rede quantas vezes quiserem, sem taxas e liquidação quase instantânea.
No entanto, o valor trocado depende do saldo do remetente, uma vez que não pode exceder o saldo do remetente, tornando os canais LN fora da cadeia convenientes para entidades que financiarão o canal com um valor maior, porque interagirão por meio do canal regularmente. Por outro lado, usar o canal LN para casos únicos é atualmente inconveniente, pois tanto a transação de financiamento quanto a transação de fechamento do canal requerem taxas na cadeia e tempo para realizar.
Onde as limitações funcionais do problema de rebalanceamento entram em jogo é com usuários que procuram fazer transações por meio do LN com várias partes ou partes com as quais eles não têm um canal aberto. Se Alice quiser abrir um canal com Bob, Charlie e Daisy, ela deve abrir cada canal individualmente e financiá-los com uma quantia definida. Ela não pode processar grandes transações para qualquer uma das partes porque seu financiamento está distribuído e bloqueado em canais separados, exigindo que ela abra e feche novos canais de forma consistente com base na dinâmica em evolução de quem está pagando e quanto está pagando.
O LN aborda esse problema permitindo que os usuários façam transações por meio de canais de pagamento encadeados na rede usando Hash Time-Locked Contracts (HTLCs). Os usuários não precisam explicitamente abrir canais de pagamento direto com outras partes com as quais desejam negociar, uma vez que os HTLCs criam a possibilidade de nós intermediários entre duas partes interagentes funcionando como nós de roteamento.
Eventualmente, o potencial de HTLCs e nós de roteamento estende a capacidade do LN ao ponto onde os usuários não precisarão abrir canais diretos com ninguém na rede, e os pagamentos serão automaticamente roteados entre os usuários com base no protocolo. No entanto, o problema do reequilíbrio está no caminho da realização prática desse objetivo. Então, qual é o problema exatamente?
Se Alice e Bob desejam fazer transações sem abrir um canal de pagamento direto, eles podem fazê-lo se Charlie tiver um canal de pagamento aberto com os dois.
Alice 2 → 2 Charlie 2 → 2 Bob
No exemplo acima, Charlie tem um saldo de 2 BTC com Alice e Bob (4 BTC no total), enquanto Alice e Bob têm um saldo (saldo de envio) de 2 BTC com Charlie.
Se Alice deseja enviar Bob 1 BTC sem abrir um canal direto com ele, ela pode fazer isso por meio de Charlie como o nó de roteamento. No entanto, isso requer que todos os saldos na cadeia de pagamento sejam atualizados de acordo, levando aos seguintes saldos abaixo.
Alice 1 → 3 Charlie 1 → 3 Bob
O canal de Charlie com Alice recebe 1 BTC para atualizar para 3 BTC enquanto seu saldo com Bob diminui para 1 BTC porque ele enviou 1 BTC (de Alice) para Bob. Charlie ainda mantém 4 BTC, mas seu canal com Bob foi reduzido para 1 BTC. Você pode ver onde isso está indo à medida que as transações se tornam mais complexas com várias partes envolvidas.
Eventualmente, se Alice deseja enviar a Bob outro 1 BTC pela mesma rota de pagamento, Charlie terá 0 BTC em seu saldo de envio com o canal compartilhado com Bob, desativando efetivamente o canal de roteamento entre Alice e Bob porque ele está desequilibrado. Eles poderiam simplesmente fechar seus canais e reabri-los com novos saldos, mas esse método não é dimensionado bem e apresenta inconveniências que os comerciantes gostariam de evitar.
O dilema resultante é o problema de rebalanceamento, que se torna mais complexo com múltiplas rotas de pagamento originadas de mais intermediários e nós de roteamento.
Os nós de roteamento recebem pequenas taxas por seu trabalho, portanto, o rebalanceamento é, em grande parte, seu objetivo no contexto do problema. Várias soluções foram propostas para superar o problema de rebalanceamento, muitas das quais são inteligentes e oferecem várias vantagens e desvantagens.
Resolvendo o reequilíbrio do LN
Embora existam várias soluções propostas disponíveis para rebalanceamento no LN, nenhuma delas é perfeita. Fornecer um exemplo de alguns dos mais conhecidos oferecerá um vislumbre da inovação em curso nesta área. Existem dois tipos principais de métodos para contornar os problemas de rebalanceamento:
- On-Chain
- Fora da corrente
Vamos avaliar dois dos métodos primários; emenda para pagamentos dentro da rede e circulares para fora da rede.
Métodos On-Chain
O método mais simples é abrir e fechar canais, reembolsá-los e começar novamente. No entanto, isso custa taxas e tempo na rede para cada canal (bem como tempo de confirmação na rede) que Charlie fecha e abre, uma solução inconveniente. Outra solução que usa um método na cadeia é conhecida como splicing, que é uma maneira um pouco mais eficiente de aproveitar a funcionalidade de abrir / fechar na cadeia.
Por exemplo, vamos usar a situação em que Charlie fica com 1 BTC em seu canal com Bob e Alice deseja enviar 1 BTC para Bob novamente. Por causa do exemplo, Alice agora tem 3 BTC em seu canal de envio com Charlie.
Alice 3 → 3 Charlie 1 → 3 Bob
|
|
Alice 2 → 4 Charlie 0 → 4 Bob
Com base nessa dinâmica, se Alice deseja enviar mais 1 BTC a Bob, ela não pode porque Charlie não tem BTC restante em seu saldo de envio com Bob. O Splicing permite que Charlie feche seu canal com Alice e o reabra em dois estágios.
- Splicing Out
- Splicing In
Na emenda, Charlie fecha seu canal com Alice e o reembolsa com 3 BTC enquanto mantém 1 BTC na cadeia, ainda equivalente ao total de 4 BTC que tinha anteriormente. Agora, a configuração do canal ficaria assim:
Alice 2 → 3 Charlie 0 → 4 Bob
1 BTC na cadeia (Charlie)
O segundo estágio – conexão – é onde Charlie fecha seu canal com Bob e adiciona 1 BTC que está na cadeia após a união de saída, levando à seguinte dinâmica:
Alice 2 → 3 Charlie 1 → 4 Bob
Charlie agora pode encaminhar um pagamento de 1 BTC ou menos entre Alice e Bob novamente. No entanto, Charlie incorre em duas instâncias distintas de taxas na cadeia para a emenda de saída e de entrada. As taxas incorridas são o motivo de Charlie cobrar pequenas taxas por ser o nó de roteamento entre Alice e Bob.
No geral, o splicing é mais eficiente do que fechar e reabrir os canais entre as partes, já que apenas Charlie está envolvido. Apesar de sua maior eficiência, ele ainda incorre em custos com taxas e requer o tempo de confirmação de uma transação na rede, o que não é ideal para os comerciantes reequilibrarem seu canal. Estruturas de taxas deste modelo também levam a complexidades de reequilíbrio adicional.
Métodos fora da cadeia
Um método separado para rebalanceamento de canal usando uma estrutura totalmente fora da cadeia é conhecido como pagamentos circulares e é melhor compreendido com um modelo de pagamento um pouco mais complexo. Essencialmente, os pagamentos circulares são autopagamentos por meio de um caminho de roteamento especificado, onde um nó se reequilibra pagando a si mesmo por meio de transações fora da cadeia em vez de abrir um novo canal.
Por exemplo, Charlie deseja reequilibrar seu canal com Bob no gráfico abaixo. Os pagamentos circulares podem realmente funcionar como um triângulo porque simplesmente precisa haver um mínimo de 3 nós envolvidos.
No exemplo acima, Charlie enviaria 1 BTC (sentido anti-horário) de seu canal com Alice para si mesmo através da direção das setas, eventualmente recebendo 1 BTC em seu canal com Bob. Como resultado, o saldo de envio de Charlie com Bob agora é 2 BTC.
Charlie pode posteriormente encaminhar um pagamento de 2 BTC de Alice para Bob na direção oposta (sentido horário). Alice não pode enviar 2 BTC diretamente por meio de seu canal com Bob porque ela tem apenas 1 BTC no canal, mas pode usar Charlie para enviá-lo a Bob.
Com mais nós e valores de canal, o processo pode se tornar um ecossistema autossustentável com base em estruturas de taxas. Os nós de rebalanceamento são concluídos inteiramente fora da cadeia, sem necessidade de transações na cadeia. Um nó de roteamento pode reequilibrar seu canal sempre que quiser, simplesmente iniciando uma transação para si mesmo.
Os pagamentos circulares também vêm com suas ressalvas. Eles geram taxas pelos nós de roteamento no ciclo de autopagamento. Quanto maior a cadeia de transações, mais taxas pagas. Os nós ainda não precisam esperar pelos tempos de confirmação da transação na cadeia, mas a estrutura de taxas pode se tornar complicada e é limitada pelos saldos dos nós de roteamento na cadeia de pagamento.
Os comerciantes em tal ecossistema também agregariam a maior parte do BTC trocado em pagamentos circulares se fizessem parte da cadeia por um longo período porque estão apenas recebendo, em vez de pagar. Tal sistema pode acabar produzindo roteamento competitivo e balanços de canal desnecessariamente grandes por não comerciantes para que funcione de forma consistente.
Outros desenvolvimentos no LN
Superar o rebalanceamento dos canais do LN é vital para a capacidade do LN de operar sem que os usuários tenham que abrir canais de pagamento direto entre si, uma de suas propriedades mais poderosas. Imagine ir a uma nova cafeteria ou restaurante de fast food e ter que abrir um canal de pagamento e depositar uma determinada quantia de BTC a cada vez. Esse método é inconveniente não apenas para o cliente, mas também para o comerciante.
Eventualmente, essas soluções devem funcionar em conjunto com outros desenvolvimentos para permitir que os usuários façam transações perfeitamente usando o LN sem ter que abrir um canal direto. O único requisito seria que o comerciante e o cliente tivessem carteiras Bitcoin compatíveis com LN.
Conforme o LN continua progredindo, há vários outros componentes importantes que valem a pena mencionar. Especificamente, o LN também permite Micropagamentos de roteamento de cebola para maior privacidade da camada de rede e o Lightning Labs fez avanços na atualização do segurança de seu LN aplicativo de desktop lançado em setembro.
A experiência do usuário do LN é voltada principalmente para desenvolvedores também, no momento. Uma alta barreira técnica para a adoção é natural com tecnologias emergentes, mas a UI / UX já está melhorando rapidamente com o LN. Pierre Rochard fornece alguns guias excelentes sobre o uso do LN, especialmente com Joule – a nova extensão LN Chrome.
Leia: O que são trocas de submarinos?
Além disso, a progressão das trocas submarinas também deve facilitar o reabastecimento e a interoperabilidade do canal, uma consideração importante para aumentar a flexibilidade do LN entre os comerciantes. Inclusão recente da Blockstream de compatível com satélite Os micropagamentos do LN também são outro passo significativo para usuários sem conexão com a Internet, abrindo o poder do LN para muitas pessoas sem acesso bancário.
O LN do Bitcoin está fazendo avanços notáveis tanto no desenvolvimento quanto na adoção. Canais de reequilíbrio em cadeias de roteamento representam um obstáculo para a rede atingir seu potencial máximo, mas deve acabar se revelando um salto de velocidade em sua aceleração em direção a uma camada de pagamentos P2P viável e onipresente.