﻿---
title: "链 ID"
description: "以验证为先的指南，涵盖 EVM 链 ID、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.

# 链 ID

> 仅供教育参考，不构成投资、法律或安全建议。链 ID 匹配可以降低特定重放风险，但不能验证 RPC、网络、合约、资产、签名请求或最终状态的真实性。

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

## 直接答案

在 EVM 生态系统中，链 ID 是一个配置整数，用作重放域参数。EIP-155 将其绑定到受保护的传统交易签名；类型 2 等类型化交易格式将其编码在各自的签名载荷中；`CHAINID` 在 EVM 执行期间公开该值；`eth_chainId` 则通过 JSON-RPC 报告该值。这些是相互关联的接口，而不是通用的身份证明。

链 ID 不保证在全球范围内唯一或永久不变。私有网络和争议性分叉可以复用该值，RPC 也可能提供虚假信息；同一地址在不同链上可能具有不同代码与状态。EIP-712 的链 ID 域字段是可选的，而原始消息和非 EVM 系统采用不同的重放防护及网络身份规则。因此，正确使用链 ID 还必须核验具体签名机制、端点、创世状态或检查点以及应用域。

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

## 运作机制

1. 首先识别生态系统和标识符语义：EVM EIP-155 整数、EIP-712 域、CAIP-2 命名空间引用、Cosmos 字符串链 ID、Solana 创世哈希或其他机制。切勿跨生态系统比较没有命名空间的数字。
2. 固定可信网络快照：RPC URL、预期链 ID 的十进制和十六进制表示、创世状态或已最终确认的检查点、链头区块、客户端配置、关键合约 `codeHash` 及来源时间戳。钱包中的网络名称和图标是不可信元数据。
3. 对 EVM 签名查询 `eth_chainId`，并在不损失精度的前提下解析十六进制 JSON-RPC 数量。将规范化整数与预期配置及钱包提供者状态比较；不得以 `net_version` 替代，并应在构造签名前拒绝任何不匹配。
4. 重建准确的签名域。区分不受保护的传统交易、受 EIP-155 保护的传统编码与类型化封装；对于 EIP-712，应核验域字段、`verifyingContract`、nonce 和截止时间；对于中继意图或智能账户意图，应检查协议内部哈希。
5. 核验当前链上的执行目标：接收方、价值、调用数据、代币地址、合约代码或代理实现、账户 nonce、费用及模拟状态。链 ID 可以隔离签名域，但不能证明其中任何对象真实无误。
6. 将 EIP-1193 `chainChanged`、账户变更与断开连接视为严格状态边界。丢弃缓存的报价、授权额度、nonce、模拟结果和签名请求，重新读取链与目标，并且只把经过复核的原始交易广播到已固定的端点。
7. 在目标链上核对交易：原始签名字节及哈希、RPC 接收结果、收据状态、区块号和区块哈希、nonce 使用情况、状态变化及所需最终性。监控链分裂、ID 变更、L1/L2 域混淆及提供者漂移；遇到无法解释的差异时应默认拒绝继续。

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

## 算例

- **十六进制与十进制 RPC 门禁。** Base 的十进制链 ID 为 `8453`，`eth_chainId` 将其表示为 `0x2105`：`2 * 4096 + 1 * 256 + 0 * 16 + 5 = 8453`。以太坊主网为 `1 = 0x1`，Arbitrum One 为 `42161 = 0xa4b1`。如果钱包预期值为 `8453`，收到的却是 `0x1`，就必须在签名前中止，而不能信任界面显示的网络名称。
- **受保护传统交易的 v 值。** 对于 EIP-155 传统交易，`v = 35 + 2 * chainId + yParity`。链 ID 为 `1` 时，v 值为 `37` 或 `38`；链 ID 为 `61` 时，v 值为 `157` 或 `158`。反向计算时，`floor((37 - 35) / 2) = 1`。该算法不适用于类型化交易的 y-parity 字段，也不适用于使用 `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`。正确执行规则且配置为 ID `1` 的链会因签名域不匹配而拒绝该载荷，因此拒绝本身不会在该链上消耗燃料费；即使在 ID 8453 上，该交易仍可能因其他原因失败。
- **非 EVM 与双重标识符。** Cosmos EVM 部署可以同时采用 Cosmos SDK 字符串 ID `local-1` 和独立的 EVM 整数 ID `262144 = 0x40000`。Cosmos 原生签名使用该字符串及其账户编号和序列；EVM 交易签名使用整数域。Solana 则公开创世哈希，并在交易消息中使用近期区块哈希或持久 nonce，而不是 EIP-155 整数。

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

## 风险

- 连接到错误的 RPC 端点或钱包当前链。
- 信任恶意 RPC 对链 ID、状态或广播结果的虚假报告。
- 混淆链 ID 的十六进制和十进制表示。
- 使用不安全的数值类型解析大型链 ID，导致精度损失。
- 把 `net_version` 当作始终等于 `eth_chainId`。
- 漏掉 EIP-1193 `chainChanged` 事件或网络切换竞态。
- 切换网络后继续使用缓存的 nonce、报价、授权或模拟结果。
- 假设链 ID 已在全球登记且绝不冲突。
- 在复用同一链 ID 的私有网络或分叉间签名。
- 未定义分叉更改或保留 ID 时的处理方式。
- 接受没有 EIP-155 域的不受保护传统交易。
- 把传统交易的 `v` 公式用于类型化交易或其他签名。
- 假设原始消息或 `personal_sign` 请求包含链域。
- 在 EIP-712 域中遗漏或错误编码链 ID。
- 遗漏 `verifyingContract`、应用 nonce、截止时间或用途。
- 仅凭合约地址相同就信任它，而不比较代码和状态。
- 混淆 L1、L2、桥接源端和目标端签名域。
- 忽略中继意图、许可或智能账户操作的内部域。
- 把钱包添加网络元数据、区块浏览器标签或图标当作网络认证。
- 把 EVM 语义套用到 Cosmos、Solana、Bitcoin 或其他协议。

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

## 常见误区

- 链 ID 是全球唯一且永久有效的官方登记编号。
- 正确的链 ID 可以证明 RPC 端点、网络和合约真实可信。
- 每个以太坊签名都会自动承诺链 ID。
- 不同链 ID 可以防止每一种签名消息和应用意图被重放。
- 每条区块链都使用 EIP-155 式整数链 ID。

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

## 相关主题

- [EIP-712 类型化签名](/zh-cn/crypto/eip712-typed-signature/)
- [钱包签名](/zh-cn/crypto/wallet-signature/)
- [RPC 节点](/zh-cn/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/zh-cn/crypto/chain-id/index.mdx
