Glossário / Lightning e camada 2
Saída âncora
- O que é uma saída âncora?
- As saídas âncora são as duas vias de escape de 330 satoshis ligadas a uma transação de compromisso da Lightning, uma com chave para cada parceiro, de modo que qualquer um dos lados pode aumentar a taxa em um fechamento assinado de antemão.
Os canais âncora dão a cada parceiro uma saída minúscula que, a princípio, só ele pode gastar, servindo apenas de ponto de apoio para um aumento de taxa posterior. O BOLT 3 fixa o valor em 330 satoshis, e depois de 16 blocos qualquer pessoa pode varrer uma âncora que ninguém reclamou. Se você opera uma carteira Lightning, mantenha uma saída on-chain de reserva, porque a âncora não pode pagar uma taxa sozinha.
Como funciona
Uma saída âncora guarda 330 satoshis atrás da chave de financiamento de um parceiro do canal, e o motivo pelo qual um compromisso carrega duas delas em vez de um único ponto de apoio compartilhado é um ataque.
O script é curto: a chave pública de financiamento, OP_CHECKSIG, OP_IFDUP e depois um ramo OP_NOTIF que contém OP_16 e OP_CHECKSEQUENCEVERIFY. Sua própria assinatura o abre imediatamente. Dezesseis blocos após o compromisso ser confirmado, uma testemunha vazia o abre para qualquer pessoa, que é como o BOLT 3 impede que o troco abandonado se firme permanentemente no conjunto de bitcoins ativos. Esse caminho só importa se as taxas caírem o suficiente para que varrer 330 satoshis valha a pena.
Uma âncora para cada parte é o desenho contra o pinning. Se você der às duas partes um único ponto de apoio compartilhado, sua contraparte pode acoplar a ele uma transação filha grande e de taxa baixa, inflando a família de transações não confirmadas até que o seu próprio aumento de taxa fique fora de alcance e o compromisso perca o prazo para o qual foi transmitido. O BOLT 3 atribui a uma mudança no Bitcoin Core 0.19 o mérito de fazer a defesa de âncoras separadas funcionar, e prende cada âncora a uma chave de financiamento. É também por isso que todas as outras saídas de um compromisso desse tipo carregam um bloqueio de sequência, inclusive a to_remote.
Nada disso é gratuito. Os dois valores das âncoras saem do saldo do financiador, 660 satoshis no total, e o peso base a partir do qual uma transação de compromisso é precificada sobe de 724 para 1124 unidades de peso. O que o financiador compra são transações HTLC de segunda etapa que não carregam nenhuma taxa: com a option_anchors a taxa delas deve ser zero, e elas são assinadas com SIGHASH_SINGLE mais SIGHASH_ANYONECANPAY, de modo que você anexa sua própria entrada na transmissão e paga a taxa vigente naquele momento. O BOLT 9 a lista nos bits 22 e 23, como um tipo de compromisso com âncoras e transações HTLC de taxa zero.
Onde você a vê
As saídas âncora ficam visíveis em um explorador de blocos no momento em que um canal Lightning se fecha sem cooperação, como duas das saídas, de 330 satoshis cada uma, que parecem um erro de alguém. O BOLT 3 dispensa uma delas somente quando não há nenhum HTLC em trânsito e o saldo de uma das partes está abaixo do limite de poeira.
Qual das nossas 41 análises de carteira coloca você diante de uma delas depende da custódia. A Phoenix, com nota 4,0 aqui, roda um nó Lightning real de autocustódia no próprio celular, e nossa análise registra que a recuperação após um fechamento forçado leva aproximadamente 720 blocos, então a âncora é sua para administrar. A Muun, com nota 3,8, também é de autocustódia, mas seus pagamentos Lightning podem precisar de uma troca submarina que é liquidada on-chain. A Wallet of Satoshi, com nota 2,7, tem custódia por padrão. Uma saída de 330 satoshis não consegue pagar uma transação filha, então aumentar a taxa significa gastar a âncora junto com uma saída que você já tinha.
Saída âncora vs âncora efêmera
Uma saída âncora pode ser gasta por uma chave de financiamento específica durante seus primeiros 16 blocos, enquanto uma âncora efêmera não tem chave desde o primeiro segundo e não guarda nenhum valor que valha a pena defender.
Os canais zero_fee_commitments mais recentes do BOLT 3, com os bits de recurso 40 e 41, dispensam o par em favor de uma única shared_anchor construída sobre o script padrão pay to anchor: OP_1 seguido dos dois bytes 0x4e73, gasto com uma testemunha vazia por qualquer pessoa. Seu valor é de 240 satoshis, o limite de poeira padrão para esse script, e só fica menor quando sobra menos que isso, o que a regra da poeira efêmera permite porque então o compromisso não paga nenhuma taxa. Os dois respondem a uma mesma ameaça por extremos opostos: as âncoras com chave vencem o pinning dando a cada lado uma alavanca que ninguém mais pode acionar; a sem chave, deixando o compromisso impossível de minerar até que alguém anexe a taxa.