一条路径两种曲线:ERC-2645 怎么让 Layer2 密钥从助记词里长出来
以太坊主网签名用的是 secp256k1 这条椭圆曲线。而以 ZK-Rollup 为代表的 Layer2 有另一本账要算:链上验证的核心是一道对加密证明,证明系统偏爱的曲线(比如 STARK 友好的 STARK curve)和主网签名曲线不是同一条。同一个用户要在这两种环境里都可信地签名,钱包面对一个现实选择:要么为每个 Layer2 单独生成保管密钥,要么从同一颗种子确定性地派生。ERC-2645 选了后者,并且把派生规则写成了标准。它创建于 2020 年 5 月 13 日,仓库记录状态为 Stagnant,作者是 StarkWare 的两位工程师。
六段式路径
路径定义为 m / purpose' / layer' / application' / eth_address_1' / eth_address_2' / index,遵循 BIP43 框架、灵感取自 BIP44。purpose 固定取本标准编号 2645;layer 是 Layer2 名称做 SHA-256 后的低 31 位,作用是分隔不同技术——原文给出 starkex 对应的数值 579218131;application 同理取应用名的哈希低位,以 2020 年 6 月的 DeversiFi 为例,取 sha256(starkexdvf) 的低 31 位得 1393043894;接着两段是用户 Layer1 地址拆成的两个 31 位;最后 index 允许一个地址派生多把密钥。于是全零地址在 DeversiFi 场景的示例路径写作 m/2645'/579218131'/1393043894'/0'/0'/0。用地址入路径的用意,是在 Layer1 钱包与 Layer2 密钥之间维持一一对应。

把密钥磨进曲线
路径只解决去哪把密钥,还差一步:secp256k1 上推出来的数直接拿来当新曲线的私钥并不均匀。标准给出一段磨数算法——先用 BIP32 在 secp256k1 上走到目标路径拿到 root_key,然后反复计算 hash(root_key|i),直到结果落进 N 减去 N 对曲线阶 n 取余的范围,再取模返回,其中 N 为 2 的 256 次方。原文特别标注,每一轮循环里密钥落在越界区间的概率小于 2 的负 5 次方,也就是说平均极少的轮次就能收敛,刻意照顾了硬件钱包这类算力受限的设备。
边界与现状
为什么 Layer2 非要用另一条曲线?答案藏在证明系统里:STARK 一类方案的对加密证明在最擅长哈希运算的曲线上效率才够看,而以太坊主网沿用的 secp256k1 对这类证明很不友好——于是签名这件事被拆成两套数学环境,同一条助记词不得不在两种曲线里各生一副钥匙。磨数循环的存在也是同一逻辑的延伸:从 secp256k1 树里推出来的大整数直接当新曲线的私钥,会偏向某些数值区间,算法用反复哈希加范围检查把偏差抹平,规范顺手给出每轮越界概率小于 2 的负 5 次方的估算,等于承诺平均不超过四十轮必然收敛,嵌入式设备也跑得起。把整条链读全你会发现它把风险做了对称交换:派生确定性让密钥管理省心,代价是 Layer1 与 Layer2 资产被绑在同一颗种子上,谁备份了那十二或二十四个词,谁就同时备份了你在两层的全部身份。
从这份标准往外延伸,它和以太坊早期的钱包路径谱系构成了有趣的对照:ERC-600 与 ERC-601 曾为账户类密钥设计过按用途分层的方案,而本标准的重点不在币种分叉而在技术域分隔——用哈希做层与应用两级隔离,让同一地址在 StarkEx 的两个应用里天然拿到不同密钥,互相窃不到。今天各 ZK 生态虽各行其是,用哪条派生路径、按什么哈希分隔,仍是你评估一个 Layer2 钱包工具是否专业的快捷切口:把路径写成拍脑袋常数的工具,和把哈希规则写进文档的工具,对待密钥隔离的认真程度高下立判。
Rationale 一节承认了这层设计的兜底逻辑:丢了 EIP-2645 派生的所有 Layer2 钱包,等价于丢了 Layer1 钱包——一一对应既是特性也是风险面。标准本身停留在 Stagnant,各 ZK 生态后来多用各自约定解决密钥派生,但这套先按哈希做域分隔、再用磨数保证均匀分布的两段式设计,仍是理解新曲线签名的一个好样本。普通读者能带走的一点是:你在 ZK 类 Layer2 上的那把签名密钥,可能和你的以太坊地址出自同一颗种子——备份那副助记词时,请把这类链下资产一并计入它的责任范围。本文为机制说明,不构成任何投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。