Short Channel ID

Componha e decomponha a referência compacta de um canal Lightning

Um Short Channel ID, ou SCID, ocupa 8 bytes e descreve onde encontrar uma funding output na blockchain: altura do bloco, posição da transação no bloco e índice da saída. A forma humana 700000x1337x0 e as formas decimal e hexadecimal abaixo representam exatamente os mesmos 64 bits.

A ferramenta apenas converte representações. Ela não consulta a blockchain e não prova que o valor corresponde a um canal real. Um SCID também pode ser um alias local, sem relação com uma saída on-chain.

Conteúdo

Ferramenta

Edite bloco, índice da transação e índice da saída para compor um SCID. No sentido inverso, cole somente um valor público ou fictício em formato humano, decimal ou hexadecimal. O cálculo roda localmente no navegador.

Short Channel ID

Short Channel ID

O SCID identifica um canal pela localização da sua saída de financiamento na blockchain: bloco, índice da transação e índice da saída, empacotados em 64 bits (escritos como blocoxtxxsaída).

Compor

Limites: bloco e transação usam 24 bits; saída usa 16 bits.

SCID (string):
SCID (decimal):
SCID (hex):
Bytes (bloco | tx | saída):

Decompor

O valor deve caber em 64 bits. Um alias pode não representar uma localização on-chain.

Bloco: · Tx: · Saída:
SCID (string):
SCID (decimal):
SCID (hex):

Fonte primária

A definição vem da BOLT 7. Ela especifica os campos de 3, 3 e 2 bytes, nessa ordem, e a escrita decimal separada pela letra minúscula x. A BOLT 4 usa o mesmo tipo no payload onion para indicar o canal de saída de um hop. A BOLT 2 define aliases enviados em channel_ready.

Anatomia dos 64 bits

Campos do Short Channel ID
Campo Tamanho Exemplo Significado
blockheight 24 bits / 3 bytes 700000 Altura do bloco que contém a funding transaction.
txindex 24 bits / 3 bytes 1337 Posição da funding transaction na lista de transações daquele bloco.
outputindex 16 bits / 2 bytes 0 Índice da funding output dentro da transação, equivalente ao vout.
SCID = blockheight x txindex x outputindex

SCID_uint64 =
    (blockheight << 40)
  | (txindex    << 16)
  |  outputindex

Os limites vêm do espaço reservado para cada campo: bloco e transação aceitam valores de 0 a 16.777.215; saída aceita de 0 a 65.535. O SCID inteiro aceita de 0 a 264 - 1.

Short Channel ID dividido em altura do bloco, índice da transação e índice da saída, apontando para uma funding output.
A referência termina em uma saída de transação; ela não contém txid, saldo nem política de roteamento.
Descrição longa do diagrama

Uma pilha representa a blockchain. O primeiro campo do SCID escolhe um bloco pela altura. Dentro desse bloco, o segundo campo escolhe uma transação pela posição na lista. Dentro da transação, o terceiro campo escolhe uma saída pelo índice. A saída destacada é a funding output do canal.

Exemplo trabalhado

Para 700000x1337x0, cada campo é preenchido com zeros à esquerda até ocupar seu tamanho fixo:

blockheight = 700000 = 0x0aae60  (3 bytes)
txindex     =   1337 = 0x000539  (3 bytes)
outputindex =      0 = 0x0000    (2 bytes)

bytes = 0a ae 60 | 00 05 39 | 00 00
uint64 = 0x0aae600005390000
decimal = 769658139530821632

Esse txindex não é o txid. Ele é apenas a posição da transação na ordenação daquele bloco. Para chegar ao txid, é necessário obter o bloco correspondente e ler sua lista de transações.

Onde o SCID aparece

O SCID identifica o canal usado como referência; ele não contém fees, CLTV, capacidade disponível ou direção. Esses dados vêm do channel_update e do grafo de gossip, enquanto a liquidez remota continua privada e incerta para a busca de caminho.

Como verificar on-chain

Decompor o número é só o primeiro passo. Para validar um SCID público, um nó precisa:

  1. interpretar chain_hash para escolher a blockchain correta;
  2. obter o bloco na altura indicada;
  3. selecionar a transação pelo índice dentro do bloco;
  4. selecionar a saída pelo vout indicado;
  5. verificar o script e as assinaturas exigidas pelo channel_announcement;
  6. confirmar que a saída ainda é um UTXO e tem profundidade suficiente.

Uma reorganização pode substituir o bloco naquela altura e invalidar a referência. Por isso a BOLT 7 exige confirmações antes do anúncio e define como podar canais cuja funding output foi gasta ou reorganizada para fora da cadeia.

SCID real, aliases e splices

Nem todo valor usado no campo short_channel_id aponta para a blockchain. Com option_scid_alias, um peer pode fornecer em channel_ready um alias não relacionado ao SCID real. Isso permite encaminhar por canais privados e por canais cuja funding transaction ainda não confirmou, sem expor necessariamente a posição on-chain.

O alias é válido no contexto dos peers que o negociaram; não deve ser tratado como coordenada pública de bloco, transação e saída. A ferramenta consegue decompor seus bits, mas os três números resultantes podem não ter significado on-chain.

Splicing cria outra distinção. Quando uma splice transaction substitui a funding output ativa, um novo channel_announcement pode usar o SCID da splice. Assim, o canal lógico pode continuar entre os mesmos nós enquanto sua referência on-chain muda.

Limites e armadilhas

Mapa de dependências conceituais

Antes de usar esta ferramenta

Depois desta ferramenta

Referências técnicas usadas