区块链地址校验:别把 0x4e… 抄成 0x4E… 就敢转账
把 0x4e833 抄成 0x4E833,钱就飞了?
同事从聊天记录里手抄一个 ETH 地址,把中间的 e 写成了大写 E。以太坊地址本身不区分大小写(都是同一个地址),但混大小写的地址里藏着校验和——把大小写改了,校验和就对不上,肉眼还看不出来。他没校验就转了账,好在对方地址确实有人,没丢;但如果是把字母改成了另一个合法字符,后果可能是永久丢失。
本文讲清各链地址到底怎么「验真伪」,以及本工具怎么自动识别。
以太坊:EIP-55 校验和(大小写即校验)
以太坊地址本质是 20 字节(40 个十六进制字符),原始形式全小写。EIP-55 规定:
- 对小写地址做 Keccak-256 哈希,得到 64 个十六进制字符。
- 逐个字符比对:若哈希对应位 ≥ 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 字节 | 截断、字符篡改 |
| 波场 TRON | Base58Check | 同 BTC,版本 0x41 | 同上 |
| Solana | Base58 | 仅长度(32 字节) | 仅验证编码合法性 |
常见问题
Q:格式合法就代表这个地址有人、能收到币吗? 不。校验只证明「地址长得对、自洽」,和它是否已在链上、是否有余额毫无关系。转账前最好先小额测试。
Q:为什么全小写的 ETH 地址也算「有效」? 因为地址本身不区分大小写,全小写在链上完全可用。只是它放弃了 EIP-55 的防错能力,所以本工具会特别提示。
Q:地址以 0x 开头但只有 39 位,能校吗? 不能。以太坊地址固定 40 个十六进制字符(20 字节),少一位直接判为不适用,无需继续。
Q:Base58 里的 0/O/1/l 怎么分? Base58 字母表故意剔除了 0、O、I、l 这四个易混字符,所以从设计上就降低了手抄出错的概率——但中间的字母大小写、整体长度仍要核对。
Q:校验工具需要联网查区块链吗? 不需要。本工具只做本地格式与校验和计算,不向任何节点发请求,地址也不会外泄。需要恢复助记词时,可配合 BIP39 助记词 工具。