D
开发工具箱

区块链地址校验:别把 0x4e… 抄成 0x4E… 就敢转账

Web3 / 区块链 2026年7月9日 约 1 分钟阅读

把 0x4e833 抄成 0x4E833,钱就飞了?

同事从聊天记录里手抄一个 ETH 地址,把中间的 e 写成了大写 E。以太坊地址本身不区分大小写(都是同一个地址),但混大小写的地址里藏着校验和——把大小写改了,校验和就对不上,肉眼还看不出来。他没校验就转了账,好在对方地址确实有人,没丢;但如果是把字母改成了另一个合法字符,后果可能是永久丢失。

本文讲清各链地址到底怎么「验真伪」,以及本工具怎么自动识别。

以太坊:EIP-55 校验和(大小写即校验)

以太坊地址本质是 20 字节(40 个十六进制字符),原始形式全小写。EIP-55 规定:

  1. 小写地址做 Keccak-256 哈希,得到 64 个十六进制字符。
  2. 逐个字符比对:若哈希对应位 ≥ 8,则地址该位必须为大写;否则必须为小写

这样生成的「混大小写」地址自带校验:只要改了其中任一字母的大小写,校验和立刻不匹配。本工具会:

  • 全小写地址 → 提示「格式合法但未启用 EIP-55」(能用,但没防错保护);
  • 混大小写且校验和通过 → 标记「EIP-55 校验和正确」;
  • 混大小写但校验和失败 → 明确告诉你「大小写被改动了」,这正是抄错的高危信号。

经验:收到别人给的 ETH 地址,优先用本工具验一下 EIP-55;自己发地址时,也尽量发带校验和的混大小写版本。

比特币 / 波场:Base58Check 双重哈希

比特币地址是 Base58(去除了 0、O、I、l 等易混字符)编码,结构为:

[版本字节 1 字节] + [载荷 20 字节左右] + [校验和 4 字节]

校验和 = SHA256(SHA256(版本字节 + 载荷)) 的前 4 字节。解码后比对这 4 字节即可判断地址有没有被截断或篡改。

  • 比特币:版本字节 0x00 → 普通地址(1 开头);0x05 → P2SH(3 开头)。
  • 波场 TRON:版本字节固定 0x41,地址以 T 开头,载荷同样是 20 字节(对应以太坊风格的地址)。

本工具会自动识别并分别校验,给出类型(如「P2PKH」「Tron 地址」)与「Base58Check 校验和正确」的结论。

Solana:只有长度,没有校验和

Solana 地址是 ed25519 公钥的 Base58 编码,32 字节,本身没有内置校验和。所以本工具只能验证:

  • 能否成功 Base58 解码;
  • 解码后是否恰好 32 字节。

这意味着 Solana 地址无法像 ETH/BTC 那样靠校验和防错——粘贴时一定要逐字核对,或借助钱包的二维码/复制按钮,避免手敲。

各链校验能力一览

编码校验方式能防什么
以太坊hex(0x)EIP-55 大小写校验和字母大小写被改
比特币Base58Check双重 SHA256 前 4 字节截断、字符篡改
波场 TRONBase58Check同 BTC,版本 0x41同上
SolanaBase58仅长度(32 字节)仅验证编码合法性

常见问题

Q:格式合法就代表这个地址有人、能收到币吗? 不。校验只证明「地址长得对、自洽」,和它是否已在链上、是否有余额毫无关系。转账前最好先小额测试。

Q:为什么全小写的 ETH 地址也算「有效」? 因为地址本身不区分大小写,全小写在链上完全可用。只是它放弃了 EIP-55 的防错能力,所以本工具会特别提示。

Q:地址以 0x 开头但只有 39 位,能校吗? 不能。以太坊地址固定 40 个十六进制字符(20 字节),少一位直接判为不适用,无需继续。

Q:Base58 里的 0/O/1/l 怎么分? Base58 字母表故意剔除了 0、O、I、l 这四个易混字符,所以从设计上就降低了手抄出错的概率——但中间的字母大小写、整体长度仍要核对。

Q:校验工具需要联网查区块链吗? 不需要。本工具只做本地格式与校验和计算,不向任何节点发请求,地址也不会外泄。需要恢复助记词时,可配合 BIP39 助记词 工具。