Guides ·

离线生成 Ethereum 钱包:完整指南


在连接互联网时生成 Ethereum 钱包很方便,但也是不必要的风险。您的助记词或私钥存在于联网设备上的每一秒,都暴露在键盘记录器、剪贴板恶意软件、权限过高的浏览器扩展和远程访问木马的威胁之下。解决方案很简单:离线生成钱包,写下备份,只将公共地址带到网上。

本指南详细介绍了从熵生成到可用 Ethereum 地址的完整技术过程,并解释了为什么您离线生成的密钥在 Layer 2 网络如 PolygonArbitrumOptimismBase 上同样有效。

为什么要离线生成?

Ethereum 钱包本质上就是一个私钥。持有该密钥的人控制资金。当您使用在线服务或联网浏览器生成钱包时,私钥会经过您无法完全控制的多层软件:浏览器的 JavaScript 引擎、浏览器扩展、操作系统的内存管理,以及可能泄漏数据的网络栈。

离线生成完全消除了网络攻击向量。如果机器没有网络连接——WiFi 已禁用、以太网已拔出、蓝牙已关闭——那么无论运行什么软件,私钥都无法被远程窃取。

理想的设置是:

  1. 一台干净的机器(全新安装的操作系统,或 Live USB 发行版)。
  2. 没有任何形式的网络连接。
  3. 一个完全在浏览器中运行并使用 Web Crypto API 获取随机性的工具。
  4. 用于记录助记词的纸张或金属。

SafeSeed 的 Ethereum 助记词生成器专为这种场景设计。它完全在客户端运行——没有 API 调用,没有服务器通信,没有分析。您可以加载页面,断开互联网,然后在完全隔离的环境中生成钱包。有关离线安全实践的更广泛了解,请参阅冷存储指南 2026

secp256k1 和 Keccak-256

两个密码学原语定义了 Ethereum 的密钥系统:用于密钥生成的 secp256k1 椭圆曲线,以及用于地址派生的 Keccak-256。

secp256k1:椭圆曲线

Ethereum 继承了 Bitcoin 的 secp256k1 曲线。这是一条定义在素数域上的特定曲线,因其效率高且没有已知弱点而被选择。曲线的定义方程为:

y^2 = x^3 + 7 (mod p)

其中 p 是一个 256 位素数。系统的安全性依赖于椭圆曲线离散对数问题(ECDLP):给定曲线上的一个公共点,计算出产生它的标量(私钥)在计算上是不可行的。

Ethereum 上的私钥是一个 256 位整数——32 字节,或 64 个十六进制字符。公钥通过将曲线的生成点 G 乘以私钥标量来派生。这个乘法是单向操作:正向计算容易,反向逆推实际上不可能。

生成的公钥是曲线上的一个点,具有 x 和 y 坐标,未压缩形式总共 64 字节(128 个十六进制字符,前缀为 04)。有关 secp256k1 与 Solana 使用的 ed25519 曲线的比较,请参阅 secp256k1 vs ed25519

Keccak-256:从公钥到地址

Ethereum 不直接使用公钥作为地址。它将 Keccak-256(SHA-3 的变体)应用于未压缩公钥(不含 04 前缀),产生 32 字节的哈希。该哈希的最后 20 字节成为 Ethereum 地址,前缀为 0x

私钥(32 字节)
    → secp256k1 乘法 → 公钥(64 字节)
    → Keccak-256 哈希 → 32 字节
    → 取最后 20 字节 → Ethereum 地址(0x...)

这个哈希步骤不仅仅是大小缩减。它提供了额外的保护层:即使在 secp256k1 中发现了允许从地址部分恢复公钥的缺陷,Keccak-256 哈希也会使恢复完整密钥变得更加困难。然而在实践中,一旦您从某个地址发起交易,完整的公钥就会在交易签名中暴露在链上。

从助记词到 ETH 地址

大多数现代钱包不要求您管理原始私钥。它们使用 BIP39 助记词和 HD 钱包派生从单个备份生成密钥树。

步骤 1:生成熵

过程从 128 或 256 位密码学安全随机数()开始。这个熵是后续一切的种子。在 SafeSeed 上,这种随机性来自浏览器的 crypto.getRandomValues(),它从操作系统的 CSPRNG 获取。

对于 12 词助记词,生成 128 位熵。对于 24 词短语,256 位。有关熵如何变为单词的完整分解,请参阅 BIP39 详解

步骤 2:熵到助记词

对熵进行 SHA-256 哈希以生成校验和。校验和位附加到熵上,组合后的位串被分成 11 位的段。每段映射到 BIP39 词表中 2,048 个单词之一,产生 12 或 24 个单词。

步骤 3:助记词到主种子

助记词(加上可选的密码短语)输入 PBKDF2-HMAC-SHA512,迭代 2,048 次,产生 512 位主种子。这个主种子是整个 HD 钱包树的根。

步骤 4:主种子到主密钥

512 位种子输入 HMAC-SHA512,密钥为 "Bitcoin seed"(是的,即使对于 Ethereum 也是如此——这是 BIP32 惯例)。输出被分割:左边 256 位成为主私钥,右边 256 位成为主链码。

步骤 5:派生 Ethereum 密钥

Ethereum 使用 BIP44 定义的派生路径 m/44'/60'/0'/0/0。路径中的每个层级代表一次子密钥派生:

  • 44' — 用途:BIP44 多账户层次结构。
  • 60' — 币种类型:60 是 Ethereum 的 SLIP44 索引。
  • 0' — 账户:第一个账户。
  • 0 — 找零:外部链(接收地址)。
  • 0 — 地址索引:第一个地址。

在每个层级,父密钥和链码通过 HMAC-SHA512 组合以产生子密钥。硬化派生(由撇号标示)使用私钥作为输入,在分支之间提供更强的隔离。

步骤 6:私钥到地址

m/44'/60'/0'/0/0 处派生的私钥是一个 256 位整数。它乘以 secp256k1 生成点以产生公钥。公钥用 Keccak-256 哈希,最后 20 字节成为您的 Ethereum 地址。

SafeSeed 的 Ethereum 私钥生成器让您看到派生的每个步骤,从原始熵到最终地址。

Layer 2 网络上的相同密钥

Ethereum 最实用的特性之一是您的密钥在所有 EVM 兼容网络上完全相同地工作。在 Ethereum 主网上控制地址 0xABC... 的同一个私钥也控制 Polygon、Arbitrum、Optimism 和 Base 上的 0xABC...。不需要额外的密钥生成。

这是因为所有 EVM 链使用相同的密码学原语——用于签名的 secp256k1 和用于地址派生的 Keccak-256——以及相同的账户模型。地址从私钥确定性地派生,由于派生是相同的,地址也是相同的。

链之间的区别在于链 ID——嵌入在交易签名中的网络标识符(EIP-155),用于防止重放攻击。当您为 Polygon(链 ID 137)签署交易时,该签名在 Ethereum 主网(链 ID 1)上无效。这是交易级别的保护,不是密钥级别的。

对于您的离线生成工作流程,这意味着单个助记词备份保护所有 EVM 链上的资产。生成一次,备份一次,在任何地方使用相同的地址。这是仔细离线生成的最强论据之一:风险在您的密钥涉及的每条链上都会被放大。

有关 EVM 链上共享地址的安全影响的更多信息,请参阅 EVM 地址安全

使用地址验证器验证

离线生成钱包后,您应该在向其发送任何资金之前验证地址格式正确。使用 Ethereum 地址验证器确认:

  1. 格式检查: 地址以 0x 开头并包含正好 40 个十六进制字符。
  2. EIP-55 校验和: 混合大小写编码正确。如果地址是正确生成的,大写和小写字母将与小写地址的 Keccak-256 哈希匹配。

您可以在同一台气隙机器上运行验证器。打开工具,断开连接,粘贴地址并验证。如果校验和通过,您可以确信地址从您使用的任何介质(纸张、金属、QR 码)正确转录。

有关地址验证在不同链上如何工作的详细说明,请参阅如何验证加密地址

导出到 MetaMask 或其他钱包

一旦您的助记词已生成并安全备份,您最终需要在钱包应用程序中使用它。最常见的选择是 MetaMask(浏览器扩展或移动端)、Rabby、Rainbow,以及 Ledger 或 Trezor 等硬件钱包。

导入 MetaMask

MetaMask 直接接受 BIP39 助记词:

  1. 在干净的浏览器配置文件上安装 MetaMask。
  2. 选择"导入现有钱包"。
  3. 输入您的 12 或 24 个单词。
  4. 设置本地密码(这只在设备上加密密钥;它不是助记词的一部分)。

MetaMask 将在 m/44'/60'/0'/0/0 处派生密钥并显示相应地址。验证它是否与您离线生成的地址匹配。如果不匹配,转录过程中出了问题——在解决差异之前不要向任何地址发送资金。

导入硬件钱包

Ledger 和 Trezor 设备在初始化期间接受 BIP39 助记词。直接在硬件设备的屏幕上输入短语——永远不要在电脑上。硬件钱包将在相同路径派生相同的密钥并产生相同的地址。这是将离线生成与日常使用结合的黄金标准:助记词在气隙机器上生成,私钥永远不存在于联网计算机上。

多个账户

派生路径 m/44'/60'/0'/0/0 产生第一个账户。递增最后一个索引给您额外的地址:m/44'/60'/0'/0/1m/44'/60'/0'/0/2,依此类推。全部从相同的助记词派生。大多数钱包在您点击"添加账户"时自动处理。

离线 Ethereum 钱包生成不是偏执——这是基本的操作安全。断开连接、生成和转录所需的几分钟是一项投资,它保护您在该地址上持有的每一个 ETH、代币和 NFT,跨越每条 EVM 链,只要您持有密钥。密码学是可靠的。唯一的变量是您处理它的谨慎程度。