Glossário / Lightning e camada 2
Fechamento forçado
- O que é um fechamento forçado?
- Um fechamento forçado encerra um canal Lightning sem a ajuda da sua contraparte: você transmite a transação de compromisso mais recente, paga taxas on-chain e aguarda um atraso antes que seu próprio saldo possa ser gasto.
Todo canal Lightning mantém uma saída assinada pronta, e um fechamento forçado é o uso dessa saída. Ele custa uma transação on-chain real mais uma para cada pagamento ainda em trânsito, e os canais âncora deixam uma saída de 330 satoshis de cada lado apenas para que a taxa possa ser aumentada depois. Espere receber seu dinheiro de volta em cerca de um dia, não em um segundo.
Como funciona
Existem duas formas de sair de um canal Lightning, e a mais cara é o fechamento forçado, que não precisa de cooperação.
Um fechamento cooperativo é uma negociação: os dois lados concordam com a divisão final, assinam uma transação, e as criptomoedas de todos são saídas gastáveis comuns assim que ela é confirmada. Um fechamento forçado dispensa a negociação. Você publica a transação de compromisso mais recente que possui, e as regras de consenso do bitcoin fazem a arbitragem no lugar do seu par. A assimetria é proposital e age contra quem aperta o botão: o saldo da sua contraparte fica gastável de imediato, enquanto o seu fica bloqueado atrás de um atraso OP_CHECKSEQUENCEVERIFY de to_self_delay blocos, acordado quando o canal foi aberto.
Esse atraso é a janela de punição. Ele existe para que, se a transação que você transmitiu for antiga, mostrando um saldo que você já gastou, o outro lado tenha tempo de publicar uma transação de penalidade e ficar com tudo. O BOLT 2 armazena to_self_delay como um número de 16 bits, então ele pode ser qualquer valor até 65.535 blocos, e exige que um par rejeite um valor que considere grande demais. Um atraso maior torna mais difícil aplicar um golpe contra você e deixa a sua própria saída mais lenta.
Pagamentos em trânsito complicam a aritmética. Cada um precisa da sua própria transação de acompanhamento, pesando 666 ou 706 unidades de peso em um canal âncora, dependendo de ele se resolver por tempo limite ou por segredo, e cada uma é transmitida separadamente assim que sua condição é cumprida. As saídas âncora de 330 satoshis, dimensionadas no limite de poeira de uma saída P2WSH, existem para que qualquer das partes possa anexar uma transação filha e aumentar a taxa de um compromisso que foi assinado quando a mempool estava barata.
Onde você vê isso
Os fechamentos forçados são comuns, e na maioria deles ninguém está trapaceando.
O gatilho habitual é um par que ficou inacessível tempo demais enquanto o prazo de um pagamento se aproxima, então seu nó fecha em vez de arriscar perder o valor. Provedores podam canais que ficaram ociosos. Carteiras fecham automaticamente quando não conseguem alcançar o outro lado depois de uma atualização. Em todos os casos, você descobre porque uma parte do seu saldo aparece de repente como pendente e uma transação de um desconhecido está na mempool com o seu dinheiro dentro.
A regra que poupa dinheiro das pessoas: nunca restaure uma carteira Lightning apenas a partir de uma frase de recuperação e depois a use. Uma frase de recuperação recupera os bitcoins on-chain, mas o estado atual de um canal não está nela, e transmitir um compromisso obsoleto é convidar a penalidade. O que você guarda em vez disso é um arquivo de backup de canais, e o que ele lhe dá é o direito de pedir aos seus pares que fechem, no ritmo deles, com taxas que você não controla. Essa é a razão prática pela qual a Lightning serve para gastar dinheiro e a autocustódia on-chain serve para poupar.
O ambiente de taxas decide o dano. Um fechamento forçado com a mempool tranquila custa alguns milhares de satoshis. O mesmo fechamento durante um pico de taxas pode custar mais do que um canal pequeno contém, e canais cujo saldo está abaixo do custo de varrê-lo são simplesmente abandonados.