大小写不同的两个地址不是两个地址:校验和混用与易混字符的转账核对法 图 1
大小写不同的两个地址不是两个地址:校验和混用与易混字符的转账核对法 · 图 1

以太坊地址如果全小写,读起来是一串难记的十六进制字符。EIP-55 提出了一种大小写混排的写法,把校验信息编码进字母的大小写里,钱包粘贴地址时会用红字或警告提示大小写异常。很多用户由此形成一个误解:大小写不对的地址是无效地址,会被网络拒绝。真相恰恰相反——校验和只是给人看的信号,链上验证时地址不区分大小写,一个大小写被全部改掉的地址和原地址在链上是同一个地址,转账照常成功。骗子正是拿这个误解做文章。

典型场景是这样的:攻击者先想办法让你复制一串地址,比如把假地址投毒进你的剪贴板历史,或者在客服对话里发给你。那串地址是从真地址改出来的,改法通常是翻转几个字母的大小写——肉眼看几乎无差别,但按 EIP-55 规则它的大小写组合就错了。你的钱包粘贴后弹出校验和警告,普通用户不认识这个警告,第一反应常常是平台换了新地址格式,或者是钱包版本的旧问题,于是忽略提示继续发送。另一种手法反向使用:攻击者把地址全部改成合法的大小写组合,让警告消失,降低你的戒心。还有一种更粗的替换:把字母 O 换成数字 0、字母 l 换成数字 1 之类,靠人眼在等宽字符上的低分辨力蒙混。

核对纪律要围绕一个原则:永远不要靠扫一眼判断两串长字符是否相同。最可靠的做法是逐字符比对,至少比对开头八位、结尾八位,再从中间随机抽一段核对;长度每一位都必须一致。人工比对口念读,把易混字符单独确认。更好的做法是依赖机器:主流钱包和浏览器大多支持地址簿功能,把常用收款地址存进去,转账时从地址簿选择而不是粘贴;第一次给新地址付款前,坚持先转一笔最小金额,等待对方确认到账再继续。

还有一个细节值得记住:大小写异常不等于地址有问题,而是提示你该做一次正式核对。反过来,大小写完美也不能证明地址可信——攻击者完全可以让伪造地址带上合法校验和。校验和防的是无心之失的输入错误,不防精心设计的替换,它从来不是防伪签名。把这三层叠起来用——校验和报警时必查、地址簿优先、新地址先小额试转——大额转账才有一道不依赖眼力的闸门。任何以格式不对为由催你忽略警告、赶紧确认的对话,本身就是最强的危险信号。

再补两个容易忽略的细节。第一,转账界面的金额与链选择永远和地址同等重要:同一串合法地址在不同链上可以是不同人的控制范围,选错网络虽然多数钱包会拦截收款失败,但跨链桥与聚合入口的普及让同名地址错链的场景真实发生,确认页上网络名称与地址要一起核对。第二,地址簿本身也需要维护纪律:给联系人存地址时备注上核对时间与方式,比如当面扫码或双方各自截图比对首尾;每半年清一次地址簿,删掉长期不用的条目,防止历史被投毒的条目在某个深夜被你顺手选错。家庭场景里还要加一条:教长辈转账时,把从粘贴改为从地址簿选择这一动作固化成流程,并反复强调钱包弹出红字警告就停手找人,而不是自己研究继续。所有这些看似繁琐的规定,本质上只回答一个问题:在人和机器之间,把防替换的责任交给谁。眼睛不可靠,粘贴链不可靠,只有逐字符核对和小额试转这两个笨办法各自独立、互为备份,组合起来才够覆盖剪贴板替换、界面伪造、视觉混淆三条攻击路径。把笨办法变成默认流程,比记住一百种骗术名字更能保护大额转账。