Glossário / Lightning e camada 2
Alias de nó
- O que é um alias de nó?
- Um alias de nó é o nome de 32 bytes que um nó Lightning escreve em seu próprio node_announcement assinado, dando a exploradores e carteiras algo legível para exibir em vez de uma chave pública bruta.
Cada nó Lightning escolhe o próprio nome e o assina, e nisso consiste todo o mecanismo e também todo o problema. O BOLT 7 dá ao campo exatamente 32 bytes, preenche o restante com zeros e instrui o software que recebe a indicar que o nome é autossinado. Nada impede que dois nós se chamem do mesmo modo, então nunca trate um alias como prova de quem você está pagando.
Como funciona
Um alias de nó viaja dentro do node_announcement, mensagem de gossip do tipo 257, assinada pela mesma chave que ele nomeia.
A mensagem carrega uma assinatura, um campo de bits de funcionalidades, um carimbo de data e hora, o node_id, um rgb_color de 3 bytes, o alias de 32 bytes e os endereços de rede nos quais o nó aceita conexões. Definir o alias e a cor é opcional; que o alias seja UTF-8 válido não é, e todo byte final não usado deve ser zero.
Trinta e dois bytes são um orçamento de bytes, não uma contagem de caracteres. O campo contém UTF-8 válido, então um nome em um sistema de escrita que gasta vários bytes por caractere cabe em menos letras do que um nome em latim simples.
Trocar de nome é barato. Um nó deve definir cada carimbo de data e hora acima do anterior, então um nome novo é apenas um node_announcement novo que os pares aceitam no lugar do registro antigo e colocam na fila para retransmissão. Não há registro, nem taxa, nem verificação de unicidade no protocolo.
O campo não é espaço publicitário gratuito. O BOLT 7 ignora anúncios de nós que ainda não estejam associados a um canal conhecido, e nenhum canal pode ser anunciado até que sua saída de depósito tenha seis confirmações, então um nome legível custa uma transação on-chain e capital travado antes que alguém o retransmita.
O BOLT 7 traz uma seção de segurança escrita especificamente sobre aliases. Como são definidos pelo usuário, são um vetor de injeção tanto ao serem renderizados quanto ao serem armazenados, então os implementadores são instruídos a sanitizá-los antes de inseri-los em HTML ou JavaScript e a usar instruções preparadas ao persisti-los. O software que exibe um alias também é instruído a insinuar sua origem autossinada.
Onde você o vê
Aliases de nó aparecem em qualquer lugar onde o grafo da Lightning é desenhado para uma pessoa.
O BOLT 7 permite que o software que recebe use o alias e o rgb_color para referenciar nós em suas interfaces, e é por isso que um explorador de grafo ou um seletor de pares mostra um nome em vez de uma chave. Um operador de roteamento se apoia nisso, já que o node_id não é algo que alguém digite duas vezes.
Se você tem um depende do que sua carteira realmente é. A Phoenix executa um nó Lightning real e autocontido no celular, então tem uma chave de identidade e poderia anunciar um nome. A Wallet of Satoshi no modo de custódia guarda as chaves em seu nome, então não há nenhum nó seu no grafo nem nada para nomear.
Nada do que você paga ou recebe depende do nome: faturas, rotas e aberturas de canal se baseiam todas no node_id.
Alias de nó vs endereço Lightning
Um alias de nó nomeia uma máquina, enquanto um endereço Lightning nomeia um lugar onde se pede uma fatura. Você não pode pagar um alias: ele não carrega domínio, nem endpoint, nem valor, e nada no protocolo o resolve em algo pagável. Um endereço Lightning faz o trabalho oposto, resolvendo via HTTPS e entregando à sua carteira uma fatura real.
Alias de nó vs short channel ID
Um short channel ID é o localizador de oito bytes da saída de depósito de um canal, e o BOLT 7 também permite que um par forneça um alias de short channel ID para ocupar seu lugar. Esse segundo alias não compartilha nada com um alias de nó além da palavra. Um nó pode enviar um channel_update para um canal que não foi anunciado, com short_channel_id definido como um alias fornecido por seu par em vez do real, e deve definir dont_forward e nunca repassar essa atualização, por motivos de privacidade. Um alias é um nome público que um nó quer que seja visto, o outro é um substituto privado de um número que um nó quer manter oculto.