O chain ID do Ethereum fornece um contexto que o texto de um endereço, sozinho, não oferece. O identificador retornado por eth_chainId é o valor configurado para a assinatura de transações com proteção contra repetição prevista na EIP-155. Já o identificador de rede retornado por net_version responde a uma pergunta definida separadamente. Manter o nome de cada método junto ao resultado evita transformar dois identificadores distintos em um número sem explicação.
Para interpretar esses dados, separe três elementos: o texto do endereço, o tipo de identificador informado e o contexto de rede em discussão. As distinções abaixo podem ser estudadas por meio de documentação e respostas já registradas, sem assinar solicitações na carteira.
Chain ID e network ID têm funções diferentes
A documentação JSON-RPC do Ethereum define net_version como o método que retorna o identificador da rede atual em uma string. Ao registrar esse resultado, preserve seu significado: trata-se do network ID informado pelo nó que respondeu à consulta.
O método eth_chainId, por sua vez, retorna o chain ID atualmente configurado, associado à assinatura de transações com a proteção da EIP-155. As definições atribuem funções diferentes aos dois identificadores. Por isso, antes de interpretar um valor, identifique qual método o forneceu.
Uma comparação numérica não substitui essas definições. Mesmo que um registro apresente números iguais nos dois campos, mantenha os campos separados. A coincidência dos valores não explica, por si só, por que foram configurados dessa maneira nem torna os dois métodos equivalentes.
Como interpretar a notação e o contexto da resposta
A EIP-695 especifica que eth_chainId deve retornar uma string que representa um inteiro em formato hexadecimal. Por exemplo, 0x1 representa o número um. Ao comparar valores registrados, diferencie uma mudança de notação de uma mudança no número representado.
A proposta recomenda dar preferência a eth_chainId, em vez de net_version, para identificar a cadeia com a qual se está comunicando. Essa recomendação depende de uma implementação correta. Citar a especificação não autentica um endpoint, isto é, o ponto de acesso ao serviço, nem estabelece sua segurança.
Também existe um contexto definido para a resposta: o chain ID retornado deve corresponder às informações do bloco mais recente conhecido pelo cliente. Isso é um requisito da especificação, não uma comprovação de que qualquer resposta individual o cumpra.
Se esse bloco não especificar um chain ID, a EIP-695 determina que o cliente trate a consulta como um método sem suporte e retorne um erro adequado. A condição importa: uma falha qualquer na consulta não demonstra que essa situação ocorreu. Ao analisar um registro, deixe um erro sem explicação como uma questão em aberto, sem preencher a lacuna com um identificador presumido.
O papel do chain ID na proteção contra repetição
A EIP-155 descreve um esquema protegido de cálculo do hash da transação que inclui o chain ID. As condições previstas são que o número do bloco tenha atingido o limite de ativação da proposta e que um chain ID esteja disponível. Aqui, o ponto relevante é a presença desse identificador no esquema, sem entrar na construção ou assinatura de transações.
A proposta também preserva o esquema de assinatura anterior, com valores de v iguais a 27 e 28, sob as regras anteriores. Essa compatibilidade dentro da EIP-155 não estabelece a política atual de aceitação de toda cadeia ou de todo cliente.
Além disso, a EIP-155 incentiva futuras redes de teste, cadeias de consórcio e cadeias alternativas que adotem a proposta a escolher identificadores únicos. Esse incentivo não comprova que todas as cadeias independentes realmente usem valores distintos.
Dessas premissas resulta uma dedução limitada: a separação por chain ID discutida aqui depende tanto do uso do esquema protegido quanto de valores diferentes de chain ID. O esquema inclui o identificador, a proposta preserva o esquema anterior e recomenda valores únicos aos adotantes. Essas premissas não garantem a mesma proteção para o esquema antigo, para cadeias que compartilhem um identificador ou para todo tipo de solicitação assinada.
Por que o formato do endereço não identifica a cadeia
A documentação de contas do Ethereum descreve o endereço de uma conta controlada externamente, ou EOA, como um valor de 20 bytes, representado por 40 caracteres hexadecimais e pelo prefixo 0x. Essa descrição trata da representação do endereço.
Separadamente, a documentação de redes do Ethereum explica que redes independentes podem seguir o protocolo sem interagir entre si. A EIP-695, apresentada acima, define um método específico para consultar o identificador da cadeia.
A combinação dessas premissas permite uma inferência lógica: uma string hipotética com o formato documentado de um endereço de 20 bytes não consegue, sozinha, estabelecer a identidade da cadeia. Seu padrão de caracteres não seleciona um contexto entre redes independentes. Essa conclusão é uma dedução baseada nas fontes, não uma afirmação citada diretamente da página de contas.
O alcance da inferência é apenas a identificação. Ela não estabelece saldos iguais, contratos implantados, existência de fundos, controle por chave privada ou possibilidades de recuperação de ativos em redes diferentes. O formato do endereço e o contexto da cadeia precisam continuar separados na análise.
Exemplo hipotético: um endereço repetido em duas fichas
Imagine duas fichas de documentação fictícias, A e B. Ambas mostram a string 0x1111111111111111111111111111111111111111. Para este exercício, suponha que a ficha A registre uma resposta de eth_chainId igual a 0x65, enquanto a ficha B registre 0xca. São dados inventados para fins didáticos, sem afirmações sobre endpoints reais ou contas existentes.
O endereço repetido fornece a mesma representação nas duas fichas. Já os resultados estipulados de chain ID fornecem contextos de cadeia diferentes. Pela dedução anterior, o texto do endereço não permite decidir, isoladamente, qual contexto é o pretendido.
Agora imagine cobrir os campos de chain ID. O endereço mantém sua aparência, mas o exercício perde a indicação explícita do contexto da cadeia. Ao revelar os campos novamente, a distinção volta a ficar visível. Nenhuma etapa desse exemplo atribui saldo, comprova a implantação de um contrato ou estabelece quem controla uma conta.
Checklist de identificação somente por leitura
- Defina o contexto pretendido. Anote qual cadeia está sendo discutida antes de interpretar o endereço.
- Preserve os nomes dos métodos. Registre um resultado existente de
eth_chainIdcomo chain ID e um denet_versioncomo network ID. - Confira a representação. Compare os inteiros representados, sem tratar toda diferença textual como um valor diferente.
- Mantenha os limites da resposta. Considere o requisito relativo ao bloco mais recente conhecido pelo cliente e deixe erros inexplicados em aberto.
- Delimite a proteção contra repetição. Identifique o esquema protegido e a diferença entre os chain IDs antes de concluir que há separação por esse identificador.
- Use o formato do endereço para sua finalidade. Ele descreve a representação; a identidade da cadeia continua sendo uma pergunta separada.
Esse checklist pode ser aplicado à documentação ou a respostas já registradas. Não exige enviar transações nem assinar solicitações na carteira. Material educativo preparado com auxílio de inteligência artificial; o exemplo hipotético ilustra as distinções documentadas.
Leitura relacionada: Endereço, chave privada e frase de recuperação: a função de cada um.