﻿---
title: "Идентификатор сети"
description: "Руководство с приоритетом проверки: идентификаторы EVM-сетей, домены защиты legacy-транзакций от повтора по EIP-155, типизированные транзакции, CHAINID, проверки кошелька и RPC, домены EIP-712 и идентификаторы сетей вне EVM."
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Идентификатор сети

> Только в образовательных целях; не является инвестиционным советом или инвестиционной рекомендацией. Инвестиции могут привести к убыткам.

<a id="answer"></a>

## Краткий ответ

В экосистеме EVM идентификатор сети — это настроенное целое число, используемое как параметр домена защиты от повтора. EIP-155 связывает его с защищёнными подписями legacy-транзакций; типизированные форматы, например тип 2, включают его в собственную подписываемую нагрузку; `CHAINID` предоставляет его во время исполнения EVM; `eth_chainId` сообщает его через JSON-RPC. Это связанные интерфейсы, а не универсальный сертификат идентичности.

Глобальная уникальность и постоянство значения не гарантированы. Частные сети и спорные форки могут повторно использовать его, RPC способен сообщить ложное значение, а по одному адресу в разных сетях могут находиться разные код и состояние. В EIP-712 поле идентификатора сети в домене необязательно, а для необработанных сообщений и систем вне EVM действуют другие правила повтора и идентификации сети. Поэтому нужно точно установить схему подписи, конечную точку, генезис или контрольную точку и домен приложения.

<a id="mechanism"></a>

## Как это работает

1. Сначала определите экосистему и смысл идентификатора: целое EIP-155 в EVM, домен EIP-712, пространство имён и ссылка CAIP-2, строковый идентификатор Cosmos, хеш генезиса Solana или другая схема. Не сравнивайте число без квалификатора между экосистемами.
2. Зафиксируйте доверенный снимок сети: URL RPC, ожидаемый идентификатор сети в десятичном и шестнадцатеричном виде, генезис или финализированную контрольную точку, головной блок, конфигурацию клиента, `codeHash` ключевого контракта и время источника. Название и значок сети в кошельке — недоверенные метаданные.
3. Для подписи EVM запросите `eth_chainId` и без потери точности разберите шестнадцатеричную величину JSON-RPC. Сравните нормализованное целое с ожидаемой конфигурацией и состоянием провайдера кошелька; не подменяйте его `net_version` и отклоняйте несовпадение до создания подписи.
4. Точно восстановите домен подписи. Различайте незащищённые legacy-транзакции, защищённое legacy-кодирование EIP-155 и типизированные конверты; для EIP-712 проверяйте поля домена, `verifyingContract`, nonce и срок действия; для ретранслируемых намерений и намерений смарт-аккаунта исследуйте внутренний хеш протокола.
5. Проверьте цель исполнения в активной сети: получателя, сумму, calldata, адрес токена, код контракта или реализацию прокси, nonce аккаунта, комиссии и смоделированное состояние. Идентификатор сети разделяет домены, но не подтверждает подлинность этих объектов.
6. Считайте EIP-1193 `chainChanged`, смену аккаунтов и отключение жёсткими границами состояния. Сбросьте кэшированные котировки, разрешения, nonce, результаты симуляции и запросы подписи, перечитайте сеть и цель и отправляйте проверенную сырую транзакцию только в закреплённую конечную точку.
7. Сверьте транзакцию в целевой сети: сырые подписанные байты и хеш, принятие RPC, статус квитанции, номер и хеш блока, использование nonce, изменения состояния и требуемую финальность. Отслеживайте расколы сети, изменение идентификатора, путаницу доменов L1/L2 и дрейф провайдера; при необъяснимом различии прекращайте операцию.

<a id="example"></a>

## Примеры с расчётами

- **Шлюз между шестнадцатеричным и десятичным значениями RPC.** Десятичный идентификатор Base равен `8453`, а `eth_chainId` представляет его как `0x2105`: `2 * 4096 + 1 * 256 + 0 * 16 + 5 = 8453`. Ethereum Mainnet — `1 = 0x1`, Arbitrum One — `42161 = 0xa4b1`. Если кошелёк ожидает `8453`, но получает `0x1`, он должен прекратить операцию до подписи, а не доверять показанному названию сети.
- **Значение v защищённой legacy-транзакции.** Для legacy-транзакций EIP-155 `v = 35 + 2 * chainId + yParity`. При идентификаторе `1` получаются `37` или `38`, при идентификаторе `61` — `157` или `158`. Обратно, `floor((37 - 35) / 2) = 1`. Этот расчёт неприменим к полю y-parity типизированной транзакции и к незащищённым legacy-подписям со значениями `27` или `28`.
- **Типизированная транзакция и отклонение не той сетью.** Нагрузка типа 2 привязана к `chain_id=8453`. При `21,000 gas`, базовой комиссии `20 gwei`, максимальной приоритетной комиссии `2 gwei` и максимальной комиссии `30 gwei` эффективная цена газа равна `min(30, 20 + 2) = 22 gwei`, а комиссия — `21,000 * 22 gwei = 0.000462 ETH`. Корректно проверяющая сеть с идентификатором `1` отклонит подписанную нагрузку из-за несовпадения домена, поэтому само отклонение не расходует газ в этой сети; в сети 8453 транзакция всё равно может завершиться неудачей по другой причине.
- **Система вне EVM и два идентификатора.** Развёртывание Cosmos EVM может иметь строковый идентификатор Cosmos SDK `local-1` и независимый целочисленный идентификатор EVM `262144 = 0x40000`. Нативная подпись Cosmos использует строку вместе с номером и sequence аккаунта, а подпись EVM-транзакции — числовой домен. Solana вместо этого предоставляет хеш генезиса и использует недавний хеш блока или долговечный nonce в сообщениях транзакций, а не целое EIP-155.

<a id="risks"></a>

## Риски

- Подключение не к той конечной точке RPC или не к той активной сети кошелька.
- Доверие вредоносному RPC, который лжёт об идентификаторе, состоянии или результате отправки.
- Путаница шестнадцатеричного и десятичного представления идентификатора.
- Потеря точности при разборе большого идентификатора небезопасным числовым типом.
- Использование `net_version` как безусловного эквивалента `eth_chainId`.
- Пропуск EIP-1193 `chainChanged` или гонка при переключении сети.
- Повторное использование кэшированных nonce, котировок, разрешений или симуляций после переключения.
- Предположение о глобальной регистрации и отсутствии коллизий идентификаторов.
- Подпись в частных сетях или форках, повторно использующих один идентификатор.
- Отсутствие заданного поведения при смене или сохранении идентификатора после форка.
- Принятие незащищённой legacy-транзакции без домена EIP-155.
- Применение legacy-формулы `v` к типизированным транзакциям или другим подписям.
- Предположение, что сырое сообщение или запрос `personal_sign` содержит домен сети.
- Пропуск или неверное кодирование идентификатора в домене EIP-712.
- Пропуск `verifyingContract`, nonce приложения, срока действия или назначения.
- Доверие одинаковым адресам контрактов без сравнения кода и состояния.
- Путаница доменов L1, L2, исходной и целевой сторон моста.
- Игнорирование внутреннего домена ретранслируемого намерения, permit или операции смарт-аккаунта.
- Восприятие метаданных добавления сети, меток обозревателя или значков как проверки подлинности сети.
- Перенос семантики EVM на Cosmos, Solana, Bitcoin или другой протокол.

<a id="misconceptions"></a>

## Распространённые заблуждения

- Идентификатор сети — глобально уникальный и постоянный официальный регистрационный номер.
- Верный идентификатор подтверждает подлинность RPC, сети и контрактов.
- Каждая подпись Ethereum автоматически включает идентификатор сети.
- Разные идентификаторы предотвращают повтор любого подписанного сообщения и намерения приложения.
- Каждый блокчейн использует целочисленный идентификатор в стиле EIP-155.

<a id="related"></a>

## Связанные темы

- [Типизированная подпись EIP-712](/ru/crypto/eip712-typed-signature/)
- [Подпись кошелька](/ru/crypto/wallet-signature/)
- [RPC-узел](/ru/crypto/rpc-node/)

<a id="sources"></a>

## Источники

- [EIP-155: Simple replay attack protection](https://eips.ethereum.org/EIPS/eip-155) - Ethereum Improvement Proposals (дата обращения: 2026-08-12)
- [EIP-1559: Fee market change for ETH 1.0 chain](https://eips.ethereum.org/EIPS/eip-1559) - Ethereum Improvement Proposals (дата обращения: 2026-08-12)
- [EIP-1344: ChainID opcode](https://eips.ethereum.org/EIPS/eip-1344) - Ethereum Improvement Proposals (дата обращения: 2026-08-12)
- [EIP-1193: Ethereum Provider JavaScript API](https://eips.ethereum.org/EIPS/eip-1193) - Ethereum Improvement Proposals (дата обращения: 2026-08-12)
- [EIP-3085: wallet_addEthereumChain RPC Method](https://eips.ethereum.org/EIPS/eip-3085) - Ethereum Improvement Proposals (дата обращения: 2026-08-12)
- [EIP-712: Typed structured data hashing and signing](https://eips.ethereum.org/EIPS/eip-712) - Ethereum Improvement Proposals (дата обращения: 2026-08-12)
- [CAIP-2: Blockchain ID Specification](https://standards.chainagnostic.org/CAIPs/caip-2) - Chain Agnostic Improvement Proposals (дата обращения: 2026-08-12)
- [getGenesisHash RPC Method](https://solana.com/docs/rpc/http/getgenesishash) - Solana Documentation (дата обращения: 2026-08-12)

Source: https://wiki.fcontext.com/ru/crypto/chain-id/index.mdx
