以太坊作为全球第二大区块链平台,其货币地址(通常称为“以太坊地址”)是用户接收、发送ETH及ERC-20代币的核心标识,理解以太坊地址的生成规则、格式要求及安全机制,对确保资产安全、顺利完成交易至关重要,本文将从地址生成原理、编码格式、校验规则及安全注意事项等方面,全面解析以太坊货币地址的核心规则。
以太坊地址的本质:从公钥到地址的转换
以太坊地址并非随机字符串,而是通过非对称加密算法从用户私钥推导而来,其生成过程遵循严格的数学逻辑,具体步骤如下:
-
私钥生成:
私钥是一个随机生成的256位(32字节)无符号整数,相当于用户的“密码”或“所有权凭证”,私钥必须由用户妥善保管,一旦泄露,地址中的资产将面临被盗风险。 -
公钥生成:
通过椭圆曲线数字签名算法(ECDSA,具体使用secp256k1曲线),将私钥转换为对应的公钥,公钥同样是一个256位整数,但格式上会编码为64字节(32字节x坐标 + 32字节y坐标)。 -
地址生成:
以太坊地址的生成过程是对公钥进行多次哈希和编码:- 第一步:对公钥进行Keccak-256哈希(一种加密哈希算法),得到一个32字节的哈希值;
- 第二步:取哈希值后20字节(即去掉前12字节),作为地址的核心“标识符”;
- 第三步:在20字节地址前添加以太坊网络前缀(主网为
0x),最终形成42位的以太坊地址格式。
以太坊地址的格式规则:长度、前缀与编码
以太坊地址的格式需严格遵循以下规则,以确保网络识别和交易验证的准确性:
-
长度与结构:
- 标准以太坊地址长度为42位字符,其中前2位为固定前缀
0x,后40位为16进制(Base16)编码的地址主体(即前文提到的20字节哈希值,每字节对应2个16进制字符)。 - 示例:
0x742d35Cc6634C0532925a3b8D4cD9e1c1b2a3c4d(这是一个有效的以太坊主网地址)。
- 标准以太坊地址长度为42位字符,其中前2位为固定前缀
-
字符集:
地址主体(0x后的40位)仅允许包含16进制字符,即数字0-9和字母a-f(不区分大小写,但通常习惯用小写),若出现其他字符(如g-z、等),地址将被视为无效。 -
前缀
0x的意义:0x是以太坊地址的“网络标识符”,用于区分不同区块链网络(如以太坊主网、测试网Ropsten/Kovan等)或其他加密资产(如比特币地址以1或3开头)。所有以太坊地址必须以0x开头,否则无法被钱包或节点识别。
地址校验规则:如何验证地址有效性
为确保地址的正确性,以太坊通过校验和(Checksum)机制防止输入错误(如手动输错字符),校验和规则由以太坊改进提案EIP-55提出,具体实现如下:
-
校验和生成原理:
- 将地址的40位16进制字符(不含
0x)转换为大写形式; - 对这40位字符进行Keccak-256哈希,得到哈希值;
- 取哈希值的前4字节(8个16进制字符),与原始地址字符逐位进行“异或(XOR)”运算,标记哪些字符需要大写。
- 将地址的40位16进制字符(不含
-
校验和验证方法:
- 一个有效的以太坊地址,其
0x后的字符中,大写字母的位置必须与校验和标记的位置一致。 - 示例:地址

- 一个有效的以太坊地址,其