Onchain vs Lightning: qual a diferença?
Entendendo as duas principais maneiras de utilizar bitcoin
Muita coisa mudou desde o surgimento do bitcoin. Aprender sobre bitcoin dez anos atrás era uma tarefa relativamente fácil até, apesar da pouca informação existente: você só precisava entender mais ou menos como funciona a rede, o tal do blockchain e começar a brincar. As transações eram muito mais baratas (e o bitcoin também) e pouca gente utilizava. Não havia mercado institucional em formação, milhares de corretoras, Michael Saylors e outras baleias gigantes. Hoje em dia a pessoa que quer se aprofundar sobre o assunto pode acabar esbarrando em muita confusão inicial sobre como funciona, quais os custos, o que é esse negócio de lightning que vivem falando, side-chains e etc. Esse post é pra ajudar a explicar de uma vez por todas as diferenças entre a camada-base (onchain) e a principal camada 2 (lightning), de uma maneira que até a vovó entenda (se ela souber ler é claro).
Bitcoin On-chain
As transações tradicionais no bitcoin envolvem utilizar a blockchain para propagar uma informação que diz que o saldo dos endereços A foi enviado para os endereços B. Conforme explicado no post anterior sobre blockchain (abaixo), esse tipo de transação é ultra segura e ultra descentralizada, mas graças ao trilema não é escalável a longo prazo. Em outras palavras, usar esse tipo de registro para pagar um pão na padaria é o equivalente a usar uma bomba atômica pra matar uma abelha. O custo é simplesmente muito alto pois o valor entregue por uma transação onchain nesse caso é muito maior do que o próprio custo da operação desejada, e esse valor vai aumentar ao longo do tempo.
Se o bitcoin continuar dando certo e for cada vez mais adotado pela massa, as transações onchain se tornarão cada vez mais proibitivas para o cidadão comum e no futuro elas serão usadas exclusivamente para valores mais altos. Com base nessa realidade que envolve os limites de até onde a blockchain pode escalar, novas idéias foram surgindo para que o uso do bitcoin como meio de troca pudesse ser finalmente colocado em prática, e a idéia principal hoje é a Lightning Network.
Lightning network para novatos
A rede lightning é hoje a principal rede de segunda camada para o bitcoin. O nome “segunda camada“ se dá pelo fato de que a rede é construída a partir de transações iniciais realizadas na blockchain convencional, mas com scripts especiais que permitem o uso do saldo envolvido ali de maneiras diferentes.
Imagine o seguinte cenário, José e Pedro são dois amigos que costumam mensalmente transacionar bitcoin para pagar a conta do bar:
Na figura acima temos 4 transações que são registradas na blockchain para pequenas quantias e mesmo pagando um fee mais baixo pela baixa prioridade, ainda assim estão ocupando espaço na blockchain.
Neste cenário, seria interessante eles abrirem uma espécie de “contrato“ onde cada um se compromete a deixar reservada uma quantia X de bitcoin. Assim, eles poderiam transacionar em paralelo e depois apenas consolidar o saldo final em uma única transação quando um deles precisasse usar o dinheiro para alguma coisa. Para isso, ambos instalam em seus full nodes um node lightning e abrem um canal de 3mi satoshis, cada um iniciando com metade. Isso pode ser ilustrado da seguinte maneira:
Essa imagem ilustra como funciona um canal Lightning através de galões de água interligados por um cano. O total permitido nesse canal é de 3mi sats, que foi o valor estipulado no começo do contrato. Nesse momento inicial, cada um tem um saldo de 1,5mi sats. E a partir daí eles começam a transacionar entre si, mandando valores de um galão para o outro, sendo que a capacidade máxima de cada galão é de no máximo 3mi sats. Se um galão atingir o limite máximo, então somente esse galão pode enviar sats para o outro, que estará zerado.
Dessa maneira, José e Pedro passam meses trocando valores entre si sem o uso da blockchain. Todos os registros são feitos localmente em cada node, e esse modelo possui obviamente vários trade-offs com relação à segurança de uma transação tradicional:
Cada node vai ser responsável por armazenar o estado atual do canal, isso é, qual o saldo de cada um através de um histórico de transações locais
A parte onchain ocorre somente em dois momentos: um na abertura e outro no fechamento do canal. Entre esses dois eventos podem ocorrer infinitas transações entre as duas partes, trazendo uma economia gigantesca em taxas de rede (transações entre as duas pontas do canal não pagam nenhuma taxa de rede)
Os nodes lightning precisam estar sempre conectados (hot wallet), o que pode comprometer a segurança pois você literalmente mantém uma carteira ao alcance de hackers. Muito cuidado com a quantidade que você deseja manter ali
Backups lightning são mais complicados porém importantíssimos já que eventos catastróficos podem acontecer como seu node simplesmente queimar e você perder o acesso aos seus canais
Toda vez que uma transação é efetuada entre os nodes, existem mecanismos para evitar que uma ponta tente “sacanear“ a outra, já que a segurança agora é baseada em um modelo de duas pontas e não mais de múltiplos nodes pelo mundo validando todas as transações, mas o risco ainda existe e ele ocorre principalmente no cenário de um dos nodes ficar muito tempo offline, pois aí permitiria que uma das pontas possa propagar uma transação antiga para fechar o canal que não possui o último estado mais recente (por exemplo, uma transação onde a ponta maliciosa esteja com o maior número de satoshis no seu “galão“). Entretanto, caso os dois nodes estejam online e um deles tente sacanear o outro, o node sob ataque pode então enviar uma transação de fechamento que lhe torna dono de todo o saldo do canal, criando assim mais uma peça fundamental na teoria dos jogos onde todas as partes são incentivadas a se comportarem corretamente
Roteamento de transações
Até aí fica bem simples de entender: um canal lightning é um contrato entre duas pontas para que elas realizem transações entre si sem a necessidade de registrar tudo na blockchain, abrindo caminho para microtransações. Mas como que isso pode ser útil de maneira escalável? Preciso abrir dezenas de canais com pessoas conhecidas? E se eu estiver interessado em pagar um loja online por exemplo? Bom, aí vem a melhor parte sobre a lightning: ela forma uma imensa rede de canais interligados, onde os pagamentos podem ser roteados até alcançarem o destino final (veja em https://lnrouter.app/graph):
A foto acima é uma ilustração em tempo real de vários nodes lightning e as linhas mostram todos os canais entre eles. Dessa maneira, José pode ter aquele canal aberto com Pedro, que pode ter um canal aberto com Maria, que pode ter um canal aberto com André. Caso José precise pagar 1mi sats para André, ao invés de abrir um canal diretamente com ele, ele consegue pagar André usando seu canal existente com Pedro, pois o pagamento irá dar vários “pulinhos“ até chegar finalmente no destino final que é André. Em cada pulo os canais podem cobrar uma taxa de roteamento pelo uso do saldo.
Repare que na transação acima todos esses canais precisaram ser atualizados para que o pagamento alcançasse seu destino final. Como esse pagamento de 1mi sats foi bem grande, ele acabou desbalanceando a liquidez entre todos esses canais. Isso é um outro detalhe importante sobre a rede Lightning, gerenciar liquidez é uma parte bem chata mas que existem ferramentas que podem ajudar nisso. A questão principal é que rotear pagamentos não é uma atividade realmente vantajosa a não ser que você tenha muito capital para alocar na rede Lightning. Se você for um usuário comum é preferível que você opte por abrir um node com poucos canais utilizando seu full node doméstico ou use algum serviço de terceiros.
Com essa rede totalmente interligada, hoje em dia é até fácil efetuar um pagamento lightning para algum site não muito conhecido pois existem diversos caminhos de roteamento para alcançar o destino final. Quanto mais canais forem abertos e quanto mais capital for alocado na rede, melhor ela se torna. Em outras palavras, pagar o cafézinho já é muito possível com bitcoin!
Em outros posts comentarei sobre quais as maneiras mais apropriadas para utilizar a rede lightning de acordo com seus objetivos.
Dá pra entender a sistemática, mas é muito difícil pra mim como afegão médio operacionalizar com segurança tanto onchain quanto LN, uma grande barreira para o uso escalonado do bitcoin é intelectual. Outras moedas (Monero, Nano) você baixa um software de carteira, manda fundos a um custo baixo ou sem custo e já está transmitindo valores rapidamente.
Esclarecedor