两个EVM网络的账户可以逐字节相同——同一个公钥派生出来的20字节地址,在以太坊主网、opBNB、RSK上写法完全一致。于是出现一种校验和根本拦不住的事故:你从主网钱包复制的地址,格式上”合法”,其实只是恰好与另一条链上的同一个账户重合。EIP-55 的大小写校验能挡住抄错一位,却认不出”地址属于另一条链”。ERC-1191 想把链标识也掺进校验计算里,让地址自带网络属性。它现在是什么状态、你在钱包里能不能用上?
在EIP-55基础上多喂一个输入
ERC-1191 的做法很轻:沿用EIP-55 的算法,但如果给定了已注册的链标识,就先把”链标识+0x分隔符+地址”一起算哈希,再按哈希每一位决定字母大写还是小写。算法本身没有新密码学,改的只是哈希输入。这样主网和测试网同一账户的大小写形态会不同,钱包可以据此提醒”你正要往另一条链的地址转账”。
关键限制:只有选择加入的链才有意义
ERC-1191 的参考实现里维护着一份”采用此校验和变体的链”清单——按规范原文,只有清单内的链标识会在哈希输入里前缀链号,清单外的链仍然按EIP-55 纯地址计算。也就是说这不是全网强制标准,而是链方自愿注册的可选项。规范目前处于”最后征集意见”阶段,主流转账路径并没有普遍启用它。你从不同工具复制同一地址看到大小写不一致,先想到两条路:一边可能按EIP-55 生成,另一边可能掺了链标识;先核对生成工具的说明,再决定信哪边,机制细节可对照地址的大小写不是随便写的:EIP-55 校验和怎么帮你挡住剪贴板劫持。
实践里它帮不了你多少
跨链地址的根本问题不是校验和,而是”EVM链共用地址空间”——同一句助记词在多链同址的事实见同一句助记词,三条链的地址为什么完全不同?币种段与地址格式。哪怕所有链都启用了ERC-1191,也只覆盖”格式错配”这一种事故,防不了你在正确链上把资产发到正确地址却打错网络的另一半问题:代币有没有在这条链发行。所以当前更可靠的防线仍然是老三样:转账前确认钱包右上角的网络、小额试转、用区块浏览器按链核对(选错浏览器站点本身也是坑,见Etherscan chainid怎么选?)。
想自己验证时怎么做
校验和只是哈希,验证不需要任何权限:把地址转小写,按EIP-55 流程(纯地址哈希)重算一遍大小写,能对上说明是传统格式;对不上再按”链号+0x+地址”的输入重算,对上了说明这份地址出自启用了变体的链。规范参考实现里的采用清单目前只有 RSK 主网(链号 30)与其测试网(链号 31)两条,这也是为什么你在以太坊主网相关工具里几乎遇不到它。两步都算不出来的地址,先怀疑来源被篡改,立刻停手核对原始出处。
它和”测试网地址”防呆的区别
有一种错误观念认为地址能”自己声明”自己属于哪条链。事实是:EVM 账户模型里地址就是公钥哈希,不含任何链元数据,这也是 ERC-1191 动机一节明说的现状。你在某些钱包界面里看到地址旁边标注着网络名,那是软件自己加的显示标签,复制出去的字符串里并没有它。ERC-1191 是在不改地址字节的前提下,仅借大小写这一层携带链信息,代价是必须双方都按同一份链清单去算,因此天然是个小范围约定而非全网机制。理解这一点,你就不会被”这个地址看起来像主网的”这类说法说服——看起来像,正是它一直像。
什么时候值得留意它
如果你是开发者或自建工具,服务采用变体的链(如 RSK)时,用带链标识的校验和函数生成收款页,可以给用户多一层防呆。对普通用户,判断逻辑很简单:地址大小写对不上不等于地址错,先用同一工具在原链与目标链各生成一次再比对;任何情况下都不要用”看起来格式对”替代”确认网络对”。
跨链误转大多无法追回。本文只做标准与格式机制解释,不构成投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。