Embora o bitcoin (BTC) seja uma grande disrupção para a forma como as pessoas veem o dinheiro, a criptomoeda primária conta com dificuldades para ser escalável. Sendo assim, as transações de BTC, além de serem caras, são demoradas.
Para resolver esses problemas surgiram soluções como a Lightning Network (LN).
Em resumo, LN é uma rede que se define como descentralizada. Ela utiliza a funcionalidade de contratos inteligentes no blockchain para permitir pagamentos instantâneos em uma rede de participantes.
A LN é a promessa de trazer para o Bitcoin bilhões de transações por segundo e com baixas taxas. No entanto, algumas dificuldades são encontradas nessa jornada, pois a tecnologia ainda está em fase experimental.
Um detalhe que vale ser ressaltado é que aqueles que executam os nós da Lightning também precisam executar os nós da principal criptomoeda.
A transação problemática
Recentemente um desenvolvedor de Bitcoin criou e executou uma transação complexa na blockchain do BTC. A mesma derrubou uma grande parte da Lightning Network em 9 de outubro.
Essa transação foi um pagamento multi-assinatura. Ou seja, uma que depende de várias chaves criptográficas para assinar uma única transação, impedindo que apenas uma pessoa faça a transferência.
O fundador da Bitmatrix, Burak Keceli, decidiu testar os limites do que é possível. Por isso, ele criou um multi-sig 998 de 999, onde 998 chaves tiveram que ser usadas para assinar a transação de um possível 999.
A transação foi concluída e custou ao desenvolvedor apenas U$4,82 em taxas. Apesar de o valor parecer alto, ele é relativamente barato, considerando a complexidade da transferência.
O grande dilema foi que a transação trouxe problemas para a Lightning Network
Usuários da LN reclamaram que não conseguiram ficar em sincronia com a rede. Como resultado, a solução de escalabilidade se tornou inacessível para esses utilizadores através de seus próprios nós.
O fato obscuro veio de um bug na biblioteca de análise de uma implementação do Bitcoin chamada btcd. Esse bug, que já corrigido, estava verificando erroneamente um limite de uma versão antiga do código.