同一个钱包跨链不是同一个地址:ERC-6735 用链 ID 做地址别名 图 1
同一个钱包跨链不是同一个地址:ERC-6735 用链 ID 做地址别名 · 图 1

同一个钱包跨链不是同一个地址:ERC-6735 用链 ID 做地址别名

你把资产从以太坊桥到某个 L2,再打开某个跨链钱包,发现“同一个账户”在两条链上的地址不一样。ERC-6735 EVM 地址的 L2 别名(L2 Aliasing of EVM-based Addresses)解释的正是这类换算。状态为 Review,创建于 2022 年 3 月 20 日,依赖 ERC-55 的链 ID 体系,适用范围明确限定在 EVM 链之间,非 EVM 系统的地址别名不在本文件讨论范围内。

别名的算术

标准的构造规则一句话概括:地址别名等于“链 A 的偏移量,接上链 A 上的原地址,再接上链 A 的偏移量”。偏移量 offsetAlias 本身由链 ID 编码:0x 之后先放链 ID、补零、末尾再放一次链 ID;标准对链 ID 提了三条硬要求——不得为零、编码长度为 8 字节、不足 16 个十六进制位时补零。这样拼出来的地址在目标链上几乎不可能与某个真实私钥控制的地址重合——它本质上是“原地址加来源链指纹”的确定性变形,首尾两段偏移量像括号一样把原地址包在中间。

反向解析同样机械:把别名地址的首尾两段拆出来,对照已知的链 ID 登记表,就能还原出“这是哪条链上哪个地址的别名”。标准在每条需求后都附了可测试性说明,意思是这套换算应当能被现成开源包自动构造并验证——给定原地址与链 ID 拼出的别名,和给定别名拆出的原地址与链 ID,两边应当互相比对成功,而不是靠人眼核对十六进制。

同一个钱包跨链不是同一个地址:ERC-6735 用链 ID 做地址别名 图 2
同一个钱包跨链不是同一个地址:ERC-6735 用链 ID 做地址别名 · 图 2

它防的事故长什么样

最典型的一类是跨链状态误映射:如果桥或索引器简单假设“两条链上地址字符串相同就是同一账户”,那么在两条链上恰好部署了相同字节码合约、或由同一地址在不同链发起过不同状态的场合,授权、余额、合约交互全都可能错位归并。把别名规则标准化后,钱包和桥有了统一问法:目标链身份等于规则(来源链地址,来源链 ID)。另一类是地址复用混淆——用户把一个链的地址填进另一条链的表单,规范做法是直接判定“这不是本网络的合法地址”,让资金在源头被拦下,而不是消失在错误的链空间再祈祷能找回。

哪些场景你会真正看到它

第一是官方桥与汇总方案的内部映射:部分乐观汇总方案处理“来自 L1 合约”的调用时,内部就用带链 ID 偏移的地址表示来源账户,ERC-6735 是把这类私有约定收敛成公开规则。第二是跨链钱包的账户视图:一个钱包管理多条 EVM 链,界面展示统一主地址,每条链的“链上身份证”可能就是别名地址。第三是 NFT 的跨链身份:有的项目让同一 NFT 身份在多条链呈现,校验“这条链上谁有权操作”时就要把身份映射为该链的别名地址再判断。

给用户的三条硬边界:别名是展示与协议层技术,私钥永远不变——不存在“别名地址的私钥”,签名仍然来自你原来的助记词或设备;转账时按目标链的实际地址规则填写,不要把 A 链地址或其别名误填到 B 链表单,字段校验失败反而是保护;判断跨链资金到账,以官方桥或项目在目标链公布的合约与事件为准,而不是拿两个字符串自行比对。还有一条给开发者:别名方案要求链 ID 已在 ERC-55 体系登记,新链、测试网自定义 ID 若未登记,别名工具无从解析,跨链兼容性要先查登记表。

一个快速自检:拿一段疑似别名地址,用首尾两段各切八字节还原链 ID,两段应相等且非零;对不上就说明它不是合规别名,要么是本链普通地址,要么是手工拼造的伪别名。这套检查在任何语言里都只是切片与比较,应当交给工具自动完成,不该靠肉眼。 最后提醒:本文讲地址映射机制,不构成投资建议;跨链操作涉及额外合约与桥接风险,操作前核对官方桥地址与链路说明。