Pular para o conteúdo
buybitcoinsmart

Glossário / Lightning e camada 2

Splicing

O que é o splicing?
O splicing redimensiona um canal Lightning aberto ao gastar sua saída de financiamento em uma nova, maior ou menor, de modo que o canal mantém seu histórico e continua utilizável o tempo todo.

Antes do splicing, mudar o tamanho de um canal significava fechá-lo e abrir outro: duas transações on-chain, duas taxas e uma lacuna em que o canal não existia. Um splice faz isso com uma única transação. As mensagens splice_init, splice_ack e splice_locked fazem parte da especificação da Lightning, e o Core Lightning lançou uma implementação experimental na v23.08 em agosto de 2023.

Como funciona

O splicing gasta a saída de financiamento antiga e cria uma nova na mesma transação, com os dois pares assinando.

Os pares primeiro concordam sobre o que está mudando. Um deles envia splice_init indicando um valor a adicionar ou remover; o outro responde com splice_ack. Depois, eles constroem juntos a transação de splice usando o protocolo de construção interativa, cada um adicionando as entradas e saídas que está contribuindo, de modo que um splice que adiciona fundos traz bitcoins on-chain de quem está recarregando, e um splice que remove fundos cria uma saída de troco que paga diretamente a esse par.

A parte que faz o splicing valer a pena é o que acontece enquanto a transação está sem confirmação. O canal não para. Os dois pares mantêm transações de compromisso contra a saída de financiamento antiga e a nova ao mesmo tempo, e os pagamentos continuam fluindo sob quaisquer estados que ainda sejam válidos. Quando o splice tem confirmações suficientes, splice_locked desativa a saída antiga e o canal segue com seu novo tamanho, sua antiga identidade de canal e seu histórico de roteamento acumulado intactos.

O custo é uma transação on-chain em vez de duas, e a economia é maior do que isso sugere. Fechar e reabrir também quebra a reputação pública do canal, obriga o nó a reconstruir uma relação de roteamento e deixa os fundos indisponíveis enquanto as duas transações são confirmadas. O splicing evita as três coisas. Também significa que um saldo on-chain e um saldo Lightning na mesma carteira podem ser apresentados como um único número, já que os fundos podem se mover entre eles sem que o canal jamais termine.

Onde você vê isso

O splicing é mais visível em carteiras que deixaram de mostrar dois saldos.

O Core Lightning o adicionou sob o sinalizador experimental-splicing na v23.08, expondo splice_init, splice_update e splice_signed como comandos de baixo nível. A ACINQ o levou a usuários comuns na Phoenix para Android v2.0.0 em agosto de 2023, junto com o financiamento duplo, que é como essa carteira deixou de distinguir em sua interface entre fundos on-chain e fundos Lightning: depositar on-chain faz splice no seu canal existente em vez de abrir um segundo.

Para o operador de um nó, o uso prático é reequilibrar capital sem rotatividade. Um canal que ficou pequeno demais para o tráfego que carrega é recarregado no lugar. Um canal que tem mais do que precisa é esvaziado em parte para o armazenamento a frio enquanto permanece aberto. Ambas as coisas antes eram um fechamento, uma espera e uma reabertura, com duas taxas on-chain e com o histórico de roteamento reiniciado.

O suporte não é universal. Uma implementação e seu par precisam falar as mensagens de splicing, então se você pode fazer splice em um determinado canal depende de quem está do outro lado dele. Se sua carteira ainda pede que você feche um canal para mover fundos para fora, a contraparte ou o software ainda não o adotou.

Splicing vs fechamento forçado

O splicing muda o tamanho de um canal mantendo-o vivo; um fechamento forçado encerra o canal de forma unilateral. Um fechamento forçado é o que você faz quando seu par está inacessível ou se comportando mal: você transmite seu compromisso mais recente, seu próprio saldo fica bloqueado por um atraso de aproximadamente um dia, e o canal se foi. Um splice exige que os dois pares cooperem e assinem, produz um canal que ainda funciona e não impõe atraso aos fundos de ninguém. O splicing é uma operação de manutenção que você planeja; um fechamento forçado é um recurso de emergência que custa tempo e uma taxa desfavorável.

Não confundir com

Perguntas frequentes

Posso usar meu canal enquanto um splice está sendo confirmado?

Sim. Os dois pares mantêm transações de compromisso para a saída de financiamento antiga e a nova ao mesmo tempo, então os pagamentos continuam enquanto a transação de splice espera confirmações. A saída de financiamento antiga só é desativada quando os dois pares confirmam que a nova está travada.

Minha carteira aceita splicing?

Depende do software e do seu parceiro de canal, já que as duas pontas precisam falar as mensagens de splicing. O Core Lightning o adicionou na v23.08 e a ACINQ o lançou na Phoenix para Android v2.0.0, ambos em agosto de 2023.

Termos relacionados

Mais em Lightning e camada 2

Ler esta página em inglês