A Lightning Network é um protocolo de segunda camada do Bitcoin, criado para resolver a escalabilidade da rede. Assim, enquanto na camada um do Bitcoin as transações podem ter taxas elevadas e podem demorar 10 minutos até horas para serem confirmadas, na rede Lightning as transações tem taxas irrisórias e são instantâneas, sem a necessidade de confirmar cada transação diretamente na blockchain.
Apesar de ser uma tecnologia relativamente nova – foi criada em 2017 – a Lightning Network vem se desenvolvendo ano após ano e tem se mostrado uma solução efetiva para escalar o Bitcoin.
Com isso, hoje já existem diversas carteiras lightning e exchanges com suporte a essa rede, facilitando com que mais usuários façam pagamentos de forma barata e rápida, sem depender de intermediários.
Além disso, um ponto importante de mencionar é que a rede Lightning é descentralizada e de código aberto. Isso permite que qualquer pessoa acesse o código, proponha melhorias e contribua para o desenvolvimento da rede.
Portanto, assim como acontece na camada um do Bitcoin, que também é de código aberto e desenvolvedores podem propor melhorias através das BIPs, na Lightning as propostas de melhoria são feitas através de BOLTs.
Nesse artigo você vai entender o que são BOLTs e quais as principais em funcionamento.
Vamos nessa!?
Como funciona a Lightning Network?
Antes de entendermos o que são BOLTs, vale a pena dizer que a Lightning Network não é uma blockchain, mas sim uma rede de canais de pagamento entre nós Lightning, que estabelecem conexões peer-to-peer ao bloquear fundos dentro da rede.
Uma vez que não tem uma cadeia de blocos para realizar as operações, as transações são feitas de maneira “off-chain” pelos usuários. Ou seja, os fundos nunca saem de dentro da rede Lightning, eles ficam transitando de um canal para outro.
O que são canais da rede lightning?
Os canais Lightning são o que permite que os usuários da rede Lightning enviem e recebam dinheiro entre si. Eles funcionam como tubos de dinheiro interligados, facilitando a transferência de pagamentos entre os usuários. Assim, cada canal Lightning é estabelecido entre dois nós na Lightning Network.
Para transferir valores para a rede Lightning, é preciso abrir um canal. Feito isso, o usuário poderá transacionar pagamentos com base nos limites dos canais e sair da rede a qualquer momento, para isso basta fechar um canal e transferir os valores de volta para a blockchain Bitcoin, a camada um.
Por que a Lightning foi criada?
A Lightning foi criada para possibilitar o uso do Bitcoin para pagamentos de valores pequenos, como um cafezinho, com taxas baratas, de forma instantânea e globalmente.
Para se ter uma ideia, enquanto a rede Lightning pode processar até um milhão de transações por segundo (TPS) e liquidar todas de forma imediata, o Bitcoin pode processar aproximadamente só 7 transações por segundo.
Em setembro de 2023, a River lançou um relatório estimando que entre 279 mil e 1 milhão de carteiras estavam usando ativamente a rede Lightning, realizando aproximadamente 6,6 milhões de transações. Isso representa um crescimento de 1.212% em dois anos, comparado às 501 mil transações registradas em agosto de 2021.
À medida que mais pessoas começam a utilizar a rede Lightning, os desenvolvedores vão recebendo feedbacks, analisando pontos críticos, possíveis falhas de segurança, entendendo como melhorar a privacidade e descobrindo novos casos de uso.
A partir disso, são debatidas melhorias no protocolo e é aqui que entram os BOLTs (Basis of Lightning Technology), que são especificações que orientam essas atualizações.
O que é BOLT na rede Lightning?
BOLT é a sigla para Basis of Lightning Technology ou, em português, Base para a Tecnologia Lightning, e é um conjunto de especificações técnicas ou protocolos que definem as regras e procedimentos para o funcionamento da Lightning Network.
O BOLT foi lançado em 2017 por um grupo de desenvolvedores da rede Lightning e passou por várias atualizações e revisões desde então.
Além disso, esses protocolos são de código aberto, disponíveis para qualquer pessoa que queira usar ou desenvolver aplicativos e serviços relacionados à Lightning Network.
O BOLT abrange vários tópicos sobre pagamentos, abertura e fechamento de canais, roteamento e encaminhamento, interações p2p, fatura, tratamento de erros, resolução de disputas, mensagens e redes.
Portanto, qualquer implementação da rede Lightning como LND, eClair e c-lightning, deve seguir os padrões BOLT.
Vamos conhecer brevemente cada uma dessas implementações:
LND (Lightning Network Daemon)
O LND, ou Lightning Network Daemon, é uma implementação da Lightning Network desenvolvida pela Lightning Labs.
Basicamente, ele é um software que permite que os usuários criem nós na Lightning, gerenciem canais de pagamento, enviem e recebam transações e executem outras operações necessárias para participar da rede Lightning.
LND é uma das implementações mais populares da Lightning Network e é conhecida por ser robusta e flexível, oferecendo uma variedade de ferramentas e APIs para desenvolvedores integrarem a rede Lightning em suas aplicações.
eClair
eClair é uma implementação da Lightning Network desenvolvida pela ACINQ, uma empresa francesa de tecnologia focada em soluções para a rede Bitcoin.
Dito isso, eClair é uma implementação que foi projetada para ser uma solução eficiente e escalável para a Lightning Network, permitindo que os usuários criem e gerenciem nós, estabeleçam canais de pagamento, e enviem e recebam transações rápidas e baratas fora da cadeia principal do Bitcoin.
Essa implementação também é conhecida por sua robustez e por ser amigável para desenvolvedores, oferecendo uma API que facilita a integração da Lightning Network em diversos serviços e aplicações.
Além disso, a ACINQ também desenvolve uma carteira móvel chamada Eclair Mobile, que permite aos usuários interagir com a Lightning Network de maneira simples e intuitiva.
c-lightning
Já c-lightning é uma implementação da Lightning Network desenvolvida pela Blockstream, e é escrita em C, o que a torna eficiente e rápida.
c-lightning permite que os usuários configurem nós na Lightning Network, gerenciem canais de pagamento, e façam transações off-chain rápidas e de baixo custo.
Além disso, devido à sua flexibilidade e eficiência, c-lightning é uma escolha popular entre desenvolvedores e empresas que desejam implementar a Lightning Network em suas plataformas.
Portanto, a padronização das regras e procedimentos para o protocolo operar garante que as diferentes implementações da Lightning Network se comuniquem e trabalhem juntas em consenso.
Assim, conforme a Lightning Network cresce, os BOLTs são atualizados e melhorados, e novos BOLTs podem ser criados caso ocorram grandes mudanças no protocolo que afetem como todas as implementações da Lightning Network funcionam juntas.
Outro ponto interessante é que os BOLTs são projetados para serem compatíveis com as melhorias no protocolo Bitcoin (as BIPs). Isso é importante porque permite a interoperabilidade entre as diferentes camadas do Bitcoin.
Camadas do BOLT
Existem várias camadas no BOLT, cada uma definindo um conjunto específico de regras e protocolos, como podemos visualizar na imagem abaixo:
Vamos entender melhor cada uma delas, de cima para baixo:
- Camada de Pagamento: a camada mais alta da rede, que apresenta uma interface de pagamento confiável para os aplicativos. Define as regras para usar contratos Hash Time Locked (HTLCs) para rotear pagamentos entre nós, especifica o formato das mensagens HTLC e define o processo de troca de pré-imagens para liberação de pagamentos.
- Camada de Roteamento: define as regras para a criação de canais de pagamento entre nós, especifica as mensagens utilizadas para abertura e fechamento de canais e define o formato das atualizações do canal utilizadas para ajustar o saldo do canal.
- Camada Ponto a Ponto: inclui os protocolos que os nós usam para negociar recursos, formatar mensagens e codificar campos de mensagens.
- Camada de Mensagens: abrange os protocolos de transporte criptográfico que protegem as mensagens na Lightning Network.
- Camada de Conexão de Rede: contém os protocolos que interagem diretamente com os principais protocolos da Internet (TCP/IP), protocolos de sobreposição (Tor v2/v3) e serviços de Internet (DNS).
Bora entender agora quais são os BOLTs já criados?!
Leia também: o que é Lightning Address?
Conhecendo todos os BOLTs
Abaixo está uma lista com todos os BOLTs existentes, com o link para você conseguir visualizá-los direto no Github:
- BOLT #1 : Protocolo Base
- BOLT #2 : Protocolo de pares para gerenciamento de canais
- BOLT #3 : Transação Bitcoin e Formatos de Script
- BOLT # 4 : Protocolo de roteamento Onion
- BOLT #5 : Recomendações para tratamento de transações em cadeia
- BOLT #7 : Descoberta de nós e canais P2P
- BOLT #8 : Transporte criptografado e autenticado
- BOLT #9 : Sinalizadores de recursos atribuídos
- BOLT #10 : Bootstrap DNS e localização assistida de nós
- BOLT #11 : Protocolo de fatura para pagamentos Lightning
- BOLT #12 : Ofertas e faturas estáticas
Ué, mas não está faltando o BOLT 6 (Anúncios do IRC) aí? Vejo que você está atento!
O BOLT 6 não está na lista porque foi substituído pelo BOLT 7.
BOLT 1: Protocolo Base
Este BOLT define os formatos de mensagens, tipos de dados e gestão de conexões entre pares.
Abaixo estão os tópicos que este padrão cobre:
- Manipulação de conexão e multiplexação
- Formato de mensagem relâmpago
- Formato Tipo-Comprimento-Valor
- Tipos Fundamentais
- Configurar mensagens
- Mensagens de controle
BOLT 2: Protocolo de pares para gerenciamento de canais
Discute operações de canal como abertura, fechamento e gerenciamento.
Abaixo estão os tópicos que este padrão abrange:
- Definição do ID do canal
- Estabelecimento de canais (abertura, aceitação, financiamento, etc.)
- Canal Fechado
- Operações de canal (HTLCs, taxas de atualização, revogação e reconhecimento, expirações de CTLV, etc.)
- Retransmissão de mensagem
BOLT 3: Transação Bitcoin e Formatos de Script
Ele nos informa como devem ser os formatos necessários para transações on-chain com Bitcoin. Inclui financiamento, commitment, transações HTLC (Hash Time-Locked Contract) e derivação de chaves.
Abaixo estão os tópicos que este padrão cobre:
- Ordenação de saída de transação
- Uso do Segwit
- Saída da transação de financiamento
- Transação commitment
- Transações HTLC-timeout e HTLC-success
- Fechando a transação
- Tarifas
- Limites de poeira
- Construção de Transação de Commitment
- Chaves
BOLT 4: Protocolo de roteamento Onion
Este padrão descreve o mecanismo de Onion Routing usado para roteamento de pagamentos seguros e privados dentro da Lightning Network.
Abaixo você pode ver os tópicos que esta regra cobre:
- Convenções
- Geração de Chaves
- Fluxo de bytes pseudo-aleatórios
- Estrutura de pacotes ( formatação de carga útil , pagamentos básicos de várias partes e ocultação de rota )
- Aceitando e encaminhando um pagamento
- Segredo partilhado
- Chaves Efêmeras Ofuscantes
- Construção de Pacotes
- Encaminhamento de pacotes
- Geração de enchimento
- Retornando Erros
- Teste de vetor
BOLT 5: Recomendações para tratamento de transações em cadeia
O BOLT 5 aborda o fechamento de canais da maneira boa (fechamento mútuo), ruim (fechamento unilateral) e feia (transação revogada).
Abaixo você pode conferir os tópicos que esta regra cobre:
- Transação de commitment
- Falha em um canal
- Tratamento de proximidade mútua
- Tratamento Fechado Unilateral: Transação de Commitment Local
- Tratamento Unilateral de Fechamento: Transação de Commitment Remoto
- Tratamento de fechamento de transação revogada
- Geração de transações HTLC
BOLT 7: Descoberta de nós e canais P2P
Este padrão define os mecanismos para descobrir nós e canais Lightning na rede, incluindo anúncios de nós e atualizações de canais.
Abaixo estão todos os tópicos que esta regra cobre:
- Definição de “short_channel_id”
- A mensagem de “announcement_signatures”
- A mensagem de “channel_announcement”
- Mensagem de “node_announcement”
- Mensagem de “channel_update”
- Mensagens de consulta
- Sincronização inicial
- Retransmissão
- Taxas HTLC
- Removendo a visualização da rede
- Recomendações para roteamento
BOLT 8: Transporte criptografado e autenticado
Ele especifica os requisitos para transporte seguro e criptografia de mensagens entre nós do Lightning.
Abaixo estão os tópicos que o BOLT 8 cobre:
- Visão geral de mensagens criptográficas
- Especificação de Handshake de Troca de Chave Autenticada
- Especificação da mensagem Lightning
- Rotação de chave de mensagem do Lightning
- Considerações de segurança
BOLT 9: sinalizadores de recursos atribuídos
Este padrão estabelece uma estrutura para atribuição de sinalizadores de recursos para habilitar extensões de protocolo opcionais dentro da Lightning Network.
Os sinalizadores de recursos permitem que os participantes da rede indiquem seu suporte a novos recursos ou recursos experimentais e ajudam a coordenar a ativação desses recursos em toda a rede. Esses sinalizadores são representados por bits, onde os bits ímpares indicam recursos opcionais e os bits pares indicam recursos obrigatórios.
Portanto, os sinalizadores de recursos são geralmente implementados por meio de um processo de consenso, no qual os participantes da rede sinalizam seu apoio a um recurso específico ajustando um sinalizador nas mensagens de protocolo que trocam. Assim, quando uma maioria suficiente de participantes sinaliza seu apoio, o recurso pode ser ativado na rede.
Esse sistema de sinalizadores de recursos permite uma implementação mais gradual e coordenada de novos recursos, garantindo compatibilidade e minimizando interrupções na rede.
Além disso, ele também permite compatibilidade com versões anteriores, já que implementações mais antigas ainda podem funcionar sem suportar os novos recursos.
BOLT 10: Bootstrap DNS e localização assistida de nós
O BOLT 10 define um método para os nós da Lightning Network encontrarem conexões iniciais usando registros DNS e serviços de localização de nós assistidos.
Usamos DNS para:
- Bootstrap: Ajudar novos nós a encontrar outros nós na rede quando não têm contatos conhecidos.
- Localização assistida de nós: Ajudar nós a descobrir o endereço de rede atual de pares que já conhecem.
Abaixo estão os tópicos abordados por esta regra:
BOLT 11: Protocolo de fatura para pagamentos Lightning
Este padrão especifica o formato e a semântica das faturas da Lightning Network, que são usadas para solicitar e receber pagamentos.
Abaixo estão os tópicos que o BOLT 11 cobre:
- Visão geral da codificação
- Parte legível por humanos
- Parte de dados
- Interações entre pagador e beneficiário
BOLT 12: Protocolo flexível para pagamentos relâmpago (ofertas)
O BOLT 12 resolve uma limitação do BOLT 11.
Por questões de segurança, as faturas do BOLT 11 só podem ser usadas uma vez. Assim, o BOLT 12 soluciona isso, permitindo criar novas faturas em tempo real sem precisar de servidores web (diferente dos LnURLs).
Além de gerar faturas, as ofertas no BOLT 12 são diferentes porque:
- São reutilizáveis, permitindo receber pagamentos de várias pessoas.
- Podem ser usadas tanto para receber quanto para solicitar pagamentos.
Para os usuários, isso significa poder fazer solicitações de pagamento reutilizáveis, ter mais privacidade e maior resistência à censura.
Você pode conhecer e entender mais sobre o BOLT 12 em seu site oficial.
Conclusão
Apesar da rede Lightning ter crescido muito desde 2018 e mesmo com milhares de transações sendo feitas mensalmente, muitos ainda consideram que a Lightning está em fase experimental e não está pronta para atender bilhões de pessoas.
E de fato, xistem alguns desafios para a adoção em massa da lightning.
Primeiro, porque a Lightning é um pouco mais complexa de usar quando o usuário faz a própria custódia dos saldos, se comparado a camada um do Bitcoin.
Segundo, o entendimento de abertura e fechamento de canais, bem como saber executar um nó na Lightning requer algum conhecimento técnico e envolve riscos. Isso para os novatos é uma barreira grande e faz com que acabem optando por usar carteiras custodiantes, por exemplo, onde não precisam se envolver com as questões técnicas que acontecem nos backstages do protocolo.
No entanto, temos visto desenvolvedores trabalhando incansavelmente para reduzir esses pontos de fricção.
Lembre-se, o aperfeiçoamento leva tempo. Portanto, à medida que novas ferramentas forem criadas, novos BOLTs surgirão para melhorar todos os aspectos de usabilidade da rede Lightning, da experiência do usuário ao desempenho.
Espero que esse artigo tenha ajudado você a entender melhor o que são os BOLTs da rede Lightning.
Não esqueça de compartilhá-lo com amigos e opt out!
Compartilhe em suas redes sociais:
Fundadora da Area Bitcoin, um dos maiores projetos de educação de Bitcoin do mundo, publicitária, apaixonada por tecnologia e mão na massa full time. Já participou das principais conferências de Bitcoin como Adopting, Satsconf, Surfin Bitcoin e Bitcoin Conference.
Curtiu esse artigo? Considere nos pagar um cafezinho para continuarmos escrevendo novos conteúdos! ☕