Pular para o conteúdo
buybitcoinsmart

Glossário / Nós e software

Addrv2

O que é o Addrv2?
O Addrv2 é a mensagem ponto a ponto que os nós de bitcoin usam para divulgar endereços de pares que a mensagem addr mais antiga não consegue expressar, cada um marcado com um id de rede de um byte para Tor v3, I2P ou Cjdns.

Especificação no BIP-155.

A mensagem addr mais antiga carrega um campo de endereço fixo de 16 bytes, que não comporta um endereço onion Tor v3 de 32 bytes. O BIP-155 substitui esse campo por um id de rede de um byte mais um endereço de até 512 bytes, limitado a 1.000 entradas por mensagem. Execute um nó por Tor para manter suas reservas fora do endereço IP da sua casa, e o addrv2 é como os outros nós ficam sabendo que ele existe.

Como funciona

O Addrv2 mantém o formato da mensagem que ele sucede e reescreve um campo.

Cada entrada carrega cinco coisas: um carimbo de data e hora Unix de quando aquele nó foi visto conectado pela última vez, um campo de bits de serviço movido para a codificação CompactSize para que não custe sempre oito bytes, um id de rede de um byte, o próprio endereço e uma porta de 16 bits que deve ser zero onde a rede não tem nenhuma. O BIP-155 reserva sete ids: 0x01 IPv4 com 4 bytes, 0x02 IPv6 com 16, 0x03 Tor v2 com 10, 0x04 Tor v3 com 32, 0x05 I2P com 32, 0x06 Cjdns com 16 e 0x07 Yggdrasil com 16. Uma mensagem com mais de 1.000 entradas, um endereço mais longo que 512 bytes ou um endereço cujo comprimento não concorda com seu id devem ser todos rejeitados.

Dois desses ids precisam de uma nota de rodapé. O Tor v2 deixou de funcionar: a versão 2.0.0 do BIP, datada de 2025-10-01, registra que os clientes não devem mais divulgar nem retransmitir o id 0x03 e devem ignorá-lo ao receber, e o Bitcoin Core mantém o número em seu enum enquanto documenta TORV2 como não mais compatível. O Core não implementa o sétimo id de forma alguma, já que esse enum, BIP155Network em src/netaddress.h, vai de IPV4 = 1 a CJDNS = 6 e para aí, com MAX_ADDRV2_SIZE definido com os mesmos 512 bytes que a especificação nomeia.

O suporte é negociado em vez de presumido. Um nó o anuncia enviando sendaddrv2, e o momento é rígido: somente depois da mensagem version do par e antes do verack, o que o Core aplica desconectando um par que envie uma mensagem atrasada. Nunca envie, e o par continua usando o formato legado, descartando em silêncio todo tipo de endereço que o campo antigo não consegue expressar. A versão 2.1.0, datada de 2026-08-03, fechou uma lacuna relacionada ao determinar que endereços IPv4 encapsulados em IPv6, a faixa ::ffff:0:0/96, não devem trafegar sob o id IPv6, porque uma máquina que chega sob dois ids é contada como dois pares separados.

Onde você o vê

O Addrv2 aparece no Bitcoin Core como um rótulo de rede, e não como algo que você lê diretamente.

A chamada getpeerinfo marca cada conexão com um nome de rede, e getnodeaddresses aceita um como argumento: o texto de ajuda em src/rpc/net.cpp usa getnodeaddresses 4 "i2p" e -named getnodeaddresses network=onion count=12 como exemplos. A chamada getaddrmaninfo vai além, dividindo o pool de endereços armazenado por rede, com contagens new, tried e total antes de acrescentar um total all_networks. As linhas além de ipv4 e ipv6 contêm endereços que nenhuma mensagem addr poderia ter codificado, seja como for que seu nó tenha ouvido falar deles pela primeira vez.

O caso onion mostra quão pouco de fato trafega. Um endereço Tor v3 tem 56 caracteres base32 antes do sufixo .onion, codificando uma chave pública ed25519 de 32 bytes, um checksum SHA3-256 de dois bytes e uma versão de um byte. Só a chave pública vai para a rede, e o nó que a recebe reconstrói o resto, já que a versão é sempre 3 e o checksum é uma função do que ele já tem.

Para quem guarda bitcoins, isso é encanamento com uma consequência visível. Carteiras que encaminham tudo por Tor por padrão, entre elas a Wasabi, e carteiras que chegam ao seu próprio nó por Tor, como a Blockstream Green, todas dependem de que pares onion possam ser encontrados em primeiro lugar.

Addrv2 vs um endereço de bitcoin

Um endereço de bitcoin e um endereço addrv2 compartilham três letras e nada mais. Uma entrada addrv2 é uma localização em uma rede, uma resposta a onde uma máquina fica, e nenhuma quantidade delas pode receber bitcoins. Cole um endereço onion no campo de envio de uma carteira e ele será rejeitado como malformado, o que é o resultado correto.

Não confundir com

Perguntas frequentes

Preciso ativar o addrv2 no meu nó?

Não. O Bitcoin Core envia a mensagem sendaddrv2 por você, dentro da janela que o BIP-155 exige: depois da mensagem version do par e antes do verack, e apenas quando a versão de protocolo negociada é pelo menos 70016, já que um software mais antigo pode rejeitar um tipo de mensagem que não conhece. Um par que nunca responde com uma continua recebendo o formato addr mais antigo.

O addrv2 criptografa o tráfego do meu nó?

Não. O addrv2 muda apenas de quais endereços um nó consegue falar, não como o próprio enlace é protegido. Criptografar a conexão é uma negociação separada, o transporte v2 definido pelo BIP-324, que o Bitcoin Core sinaliza com seu próprio bit de serviço.

Por que o BIP-155 ainda lista um id de rede para Tor v2?

O id permanece na tabela, mas fica marcado como não mais utilizado. A versão 2.0.0 do BIP, datada de 2025-10-01, registra que o Tor v2 não está mais operacional e que os clientes não devem divulgar nem retransmitir o id 0x03 e devem ignorá-lo ao receber. O Bitcoin Core mantém TORV2 = 3 em seu enum BIP155Network e documenta o id como não mais compatível.

Leia a seguir

Termos relacionados

Mais em Nós e software

Ler esta página em inglês