Pesquisadores da Universidade do Luxemburgo e da Universidade Norueguesa de Ciência e Tecnologia mostraram que a Lightning Network (LN) não é tão privada quanto pensávamos que era.
Isso porque apesar de ser inicialmente uma solução de escalabilidade para a rede Bitcoin, como ela funciona sem transmitir as transações nem guardando-as publicamente no blockchain, com resultado, também era vista como uma solução de privacidade.
No entanto, os pesquisadores descobriram maneiras não custosas de revelar o saldo de canais na LN, o que anteriormente se achava que seria uma informação protegida.
Um perde e ganha entre privacidade e eficiência
Para quem não sabe como funciona, pode começar pelo nosso artigo “Por dentro da Lightning Network“, mas basicamente, as pessoas podem fazer várias transações, através de canais de pagamento, apenas mudando o estado do canal.
O protocolo garante que somente o último estado do canal possa ser confirmado no fechamento do canal, então apenas uma abertura e um fechamento de canal podem conter milhares de transações por trás.
Os nós da Lightning só precisam conversar entre si sobre os canais disponíveis para roteamento e suas capacidades totais para permitir pagamentos entre pessoas que não tem um canal aberto entre si.
Nas transações “multi-saltos”, o remetente cria uma rota com base no seu conhecimento local do gráfico. Como os saldos dos canais locais não são públicos, os pagamentos geralmente falham devido ao saldo insuficiente em um salto intermediário.
Nesse caso, o pagamento é tentado em várias rotas até que seja bem-sucedido. Isso constitui uma compensação pelo aumento da eficiência da privacidade: os saldos ocultos melhoram a privacidade, mas prejudicam a eficiência do roteamento.
No entanto, o estudo mostrou que é possível descobrir facilmente os saldos dos canais usando uma sondagem. Levaria menos de um minuto por canal e seria necessária uma certa quantidade de saldo, mas não precisaria gastar nada.
O algoritmo foi descrito no documento e testado na rede de testes do Bitcoin. Foi argumentado que o equilíbrio da LN entre privacidade e eficiência de roteamento é falho: os saldos dos canais não são bem protegidos nem bem utilizados.
Como a sondagem funciona
Vamos imaginar que existe um canal entre Yan e Neto. Yan tem 3 BTC e Neto tem 7. E eu não conheço esses valores, apenas posso saber que eles têm 10 moedas em capacidade total.
Primeiro, eu tento enviar um pagamento de 5 bitcoins. Isso não passa, porque Yan não tem moedas suficientes consigo. A partir disso, posso concluir que Yan tem entre 0 e 5 BTC.
Então, procuro enviar 2,5 BTC e agora o pagamento passa. A partir disso, conclui-se que Yan tinha entre 2,5 e 5 moedas. Repetindo esse processo, qualquer um pode descobrir o saldo de Yan (e também o de Neto, que somam um valor conhecido) com alta precisão.
É importante notar que os saldos dos canais Lightning são compartilhados. Quando Gustavo abre um canal com Isac, ambos podem depositar, por exemplo, 1 BTC cada.
Se Isac pagasse a Gustavo 0,5 BTC, o “estado” do saldo do canal seria atualizado, mas o Bitcoin continuaria intacto. Gustavo tem uma reivindicação desses 0,5 BTC, então o saldo do canal agora é de 1,5 BTC para Gustavo e 0,5 para Isac.
Como uma comanda de bar, os pagamentos na Lightning são somente adiados, então Gustavo receberá seu 1,5 BTC no blockchain quando o canal fechar.
Soluções foram sugeridas
No final de tudo, há uma escolha a se fazer, é mais importante privacidade de saldo ou eficiência de roteamento de pagamentos? Essa pergunta deve ser respondida, pois, nenhuma solução vem sem trade-offs.
Para enfatizar a privacidade, foi proposta uma modificação do tratamento de erros que oculta detalhes do canal incorreto do nó de envio. Isso interromperia a técnica de sondagem, mas tornaria as falhas de roteamento mais comuns, pois o remetente não saberia qual canal da rota tentada falhou.
Para melhorar a eficiência, foi proposta uma nova chamada de API que permitiria ao remetente consultar saldos de canais dos quais não faz parte.
Porém, é discutido que se encontrassem um meio termo, a combinação das abordagens podem ajudar a Lightning Network a ter o melhor dos dois mundos: ocultar dados privados quando possível e utilizar dados públicos para aumentar a eficiência.
Recomendado para você:
