Visão Geral
Os BOLTs (Basis of Lightning Technology) são os documentos de especificação técnica que definem como a Lightning Network opera. De forma semelhante a como os RFCs definem os protocolos de internet, os BOLTs garantem que as diferentes implementações do Lightning (LND, CLN, Eclair, LDK) possam interoperar de forma transparente. As especificações são desenvolvidas de forma colaborativa e mantidas no GitHub.
Especificações BOLT
BOLT # Título Propósito
──────────────────────────────────────────────────────────────────
1 Base Protocol Mensagens e conexão
2 Peer Protocol for Channel Mgmt Abertura/fechamento de canais
3 Bitcoin Transaction and Script Formatos de transação on-chain
4 Onion Routing Protocol Privacidade no roteamento de pagamentos
5 Recommendations for On-chain TX Gerenciamento de taxas e políticas
7 P2P Node and Channel Discovery Protocolo de gossip da rede
8 Transport and Authentication Comunicação criptografada
9 Assigned Feature Flags Anúncio de capacidades
11 Invoice Protocol for Payments Codificação de solicitações de pagamento
Por Que a Interoperabilidade Importa
O valor da Lightning Network depende de que todos os participantes possam realizar transações entre si, independentemente da implementação de software que usem. Os BOLTs fornecem a linguagem comum que torna isso possível. Um pagamento iniciado de um nó LND pode ser roteado por nós CLN e chegar a um nó Eclair sem nenhum problema de compatibilidade, porque todas as implementações seguem os mesmos BOLTs.
Evolução
Os BOLTs são documentos vivos que evoluem conforme a Lightning Network amadurece. As mudanças propostas são discutidas entre as equipes de implementação, testadas para compatibilidade e formalmente adotadas quando o consenso é alcançado. As adições recentes incluem especificações para ofertas (BOLT12), que melhoram o formato de fatura original com recursos como códigos de pagamento reutilizáveis e privacidade do pagador.
Conceitos Errados Comuns
Os BOLTs definem o protocolo, não a implementação. Cada implementação do Lightning (LND, CLN, Eclair, LDK) é livre para organizar seu código e adicionar recursos conforme desejar, desde que respeite as especificações BOLT para comunicação entre implementações.