以太坊密钥什么格式?一文详解私钥、公钥、地址与助记词

在使用以太坊钱包或开发以太坊应用时,了解密钥的格式至关重要,密钥是控制以太坊资产的唯一凭证,格式认错了,资产可能就找不回来了,本文将系统介绍以太坊各类密钥的标准格式,帮助你全面掌握这一基础知识。

私钥(Private Key)格式

私钥是以太坊账户的控制核心,本质上一个 256位(32字节)的随机数。

格式特征:

  • 通常以 64位十六进制字符串 表示(每两位十六进制表示1字节)
  • 有些场景会加上 0x 前缀,变成66位
  • 示例格式:0x8da4ef21b864d2cc526dbdb2a120bd2874c36c9d0a1fb7f8c63d7f7a8b41de8f(仅为格式示例)

重要规则:

  • 私钥的取值范围为 1 到 2²⁵⁶−1 之间
  • 谁掌握了私钥,谁就掌握了该账户的全部控制权
  • 私钥无法从公钥或地址反推出来

公钥(Public Key)格式

公钥由私钥通过椭圆曲线算法 secp256k1 生成,常见两种格式:

非压缩格式(以太坊采用)

  • 共130个十六进制字符(含前缀)
  • 以 04 开头,后面依次是X坐标(64字符)和Y坐标(64字符)

压缩格式

  • 共66个十六进制字符
  • 以 02 或 03 开头,只保留X坐标

以太坊在计算地址时使用的是非压缩公钥去掉 04 前缀后的部分。

以太坊地址(Address)格式

地址是公钥经过 Keccak-256 哈希运算后取后20字节得到的。

格式特征:

  • 以 0x 开头,共 42个字符(0x + 40位十六进制)
  • 示例格式:0x742d35Cc6634C0532925a3b844Bc454e4438f44e

EIP-55 校验和地址: 为了防止地址输入错误,以太坊引入了大小写混合编码规则,地址中的字母按校验算法决定大小写,钱包转账时可以通过大小写校验来检测地址是否抄写错误。

Keystore 文件格式

Keystore 是私钥的加密存储格式,通常是 JSON 文件(如 UTC--2024-01-15T08-30-45.123Z--address)。

包含的主要字段:

{
  "crypto": {
    "cipher": "aes-128-ctr",
    "ciphertext": "加密后的私钥数据",
    "kdf": "scrypt",
    "kdfparams": { ... },
    "mac": "校验码"
  },
  "id": "UUID",
  "version": 3,
  "address": "对应账户地址"
}

Keystore 文件需要配合密码才能解密出私钥,相对直接存储明文私钥更安全,是目前主流钱包(如 MetaMask 导出、MyEtherWallet)支持的备份方式之一。

助记词(Mnemonic)格式

助记词遵循 BIP-39 标准,是人类可读的私钥备份形式。

格式特征:

  • 由固定词库(英文2048个单词,也有中文词库)中的单词组成
  • 常见为 12个或24个单词
  • 示例:legal winner thank year wave sausage worth useful legal winner thank yellow(BIP-39 测试向量)

派生路径: 助记词通过 BIP-32/BIP-44 标准派生出树状结构的密钥,以太坊默认派生路径为:

m/44'/60'/0'/0/0

这也是为什么同一组助记词在不同钱包中可以生成相同的以太坊地址。

各格式之间的关系

助记词/私钥(种子) → 派生出私钥
私钥(32字节) → 椭圆曲线运算 → 公钥(64字节)
公钥 → Keccak-256哈希取后20字节 → 地址
私钥 + 密码 → 加密 → Keystore文件

安全提示

  1. 私钥和助记词绝不能透露给任何人,包括所谓的“客服”
  2. 不要以明文形式将私钥存储在联网设备、云端备忘录或聊天记录中
  3. 建议使用纸质或金属板离线备份助

本文转载自互联网,如有侵权,联系删除

本文地址:http://chang-bai-shan-m.nerago.com/post/113325.html

相关推荐