在以太坊生态中,私钥是用户控制资产的核心凭证,而私钥的存储与管理直接关系到资产安全,为了平衡安全性与便捷性,以太坊社区发展出了标准化的私钥文件格式,这些格式通过加密算法将原始私钥与用户密码绑定,降低私钥泄露风险,本文将深入探讨以太坊私钥文件格式的名称、结构及安全机制,帮助用户理解私钥存储的本质。
以太坊私钥文件格式的核心名称:Keystore与UTC文件
以太坊私钥文件最常用的格式名称是Keystore文件(也称为UTC文件或JSON格式的Keystore),这两种名称本质上指向同一种文件格式,只是在不同场景下的习惯性称呼:
- Keystore:强调文件的“密钥存储”功能,是以太坊生态中最通用的术语;
- UTC文件:早期以太坊客户端(如Mist、geth)中使用的命名规范,UTC全称为“Universal Token Format”,意为“通用代币格式”,后逐渐被Keystore取代,但部分工具仍沿用该名称;
- JSON Keystore:突出文件的结构格式——基于JSON(JavaScript Object Notation)编码,便于程序解析和用户阅读。
Keystore文件的结构与核心字段
Keystore文件本质是一个加密后的JSON文件,其内容包含加密后的私钥、元数据及解密所需的参数,以以太坊官方推荐的scrypt算法为例,一个标准的Keystore文件通常包含以下字段:
{
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f8e5e9",
"crypto": {
"cipher": "aes-128-ctr",
"ciphertext": "a1b2c3d4e5f6...",
"cipherparams": {
"iv": "f7e8d9c0b1a2..."
},
"kdf": "scrypt",
"kdfparams": {
"dklen": 32,
"n": 262144,
"r": 8,
"p": 1,
"salt": "e9f8a7b6c5d4..."
},
"mac": "5f4d3c2b1a0e9f8a7b6c5d4e3f2a1b0c..."
},
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"version": 3
}
各字段含义如下:
- address:通过私钥生成的以太坊地址,用于标识资产归属,是公开信息;
- crypto:加密数据的核心部分,包含私钥加密的所有信息;
- cipher:对称加密算法(如
aes-128-ctr),用于加密原始私钥; - ciphertext:经过对称加密后的私钥密文,是Keystore的核心保护内容;
- cipherparams:对称加密的参数,如初始化向量(IV);
- kdf:密钥派生函数(Key Derivation Function,KDF),用于将用户密码转换为加密密钥,防止暴力破解;
- kdfparams:KDF的参数(如
scrypt算法的n、r、p,控制计算复杂度); - mac:消息认证码(Message Authentication Code),用于验证密码的正确性,防止文件被篡改;
- cipher:对称加密算法(如
- id:文件的唯一标识符(UUID格式),用于区分不同Keystore文件;
- version:Keystore版本号,目前主流为
v3(早期有v1、v2,已不推荐使用)。
