交易体和签名分家:EIP-8197 想让换签名算法不必新造一种交易 图 1
交易体和签名分家:EIP-8197 想让换签名算法不必新造一种交易 · 图 1

每换一种签名就要造一种交易

以太坊现在的交易格式里,签名字段与交易体是焊死的:EIP-2718 给每类交易分配一个类型字节,带访问列表的交易、费用市场交易、blob 交易、设置代码交易各有各的载荷结构,签名算法固定为 secp256k1 椭圆曲线 ECDSA。这个结构在过去几年被反复加注——每叠加一层新能力就新增一个顶层类型。EIP-8197 的动机部分把这称为”顶层交易类型家族泛滥”:签名算法一旦要换(比如换成抗量子方案),照旧规矩就得从类型层重新发明一遍交易。2025 年 3 月 4 日,Danno Ferrin 与 Ron Kahat 提交了这份名为 CATX(密码敏捷交易)的提案,试图把耦合点拆掉。

交易体和签名分家:EIP-8197 想让换签名算法不必新造一种交易 图 2
交易体和签名分家:EIP-8197 想让换签名算法不必新造一种交易 · 图 2

拆开的样子:一个载荷加一串签名

CATX 在 EIP-2718 信封内的结构是平铺的三段:载荷类型、载荷本体、然后是零个或多个”签名类型加签名本体”的成对序列。载荷本体直接复用现有四种交易的签名形态——访问列表型、费用市场型、blob 型、设置代码型各占一个载荷编号(0x010x04),经典的无类型前缀旧交易明确不支持。签名算法本身用独立编号标识,提案把 ECDSA 定为 0x00,并声明编号与算法的对应关系最终交由专门的注册表提案管辖——这正是 把签名算法做成一张注册表:EIP-7932的备用签名方案 那条签名注册表路线的任务。换句话说,CATX 只负责”把签名从交易体里搬出来摆成一排”,每种签名长什么样由别人定义。

链式哈希防的是换钥匙攻击

多签场景有一个文献中已知的隐患:若各签名彼此独立地对同一载荷签名,攻击者可以把某个签名者换成另一个签名者的合法部件,凑出看似完整的多签(提案援引了 2024 年 Fujita 等人的研究)。CATX 的对策是链式签名哈希:第一个签名对交易载荷签名,第二个签名同时覆盖第一个签名的类型与本体,第三个再覆盖前两个——每个签名都提交于它前面的全部签名。这样任何一个签名被替换,后续签名的哈希输入就对不上。对将来要把多个签名压成一个聚合证明的方案来说,这套平铺结构也让”剥离并替换尾部签名”变得机械简单。

抗量子迁移为什么需要”敏捷”

CATX 三个动机里最被反复引用的是后量子迁移:抗量子签名(基于格等假设的方案)的公钥和签名尺寸远超 ECDSA,若按老路走,等于要为每种候选算法再造一种交易。签名与载荷解耦后,迁移动作缩小成”登记一个新签名编号、客户端开始接受它”。它与此前给普通地址永久换上抗量子钥匙:EIP-8164 原生密钥委托给普通地址换钥匙的委托思路互补:那类方案管的是”这个地址的钥匙换成别的算法怎么验”,CATX 管的是”交易的壳怎么容纳任意算法”。

钱包用户为什么会关心交易格式

普通用户看不到 CATX 的字节结构,但这类提案决定你未来换签名算法时的迁移成本。今天的现实是:交易体、签名算法与地址派生规则被历史焊在一起,想引入新算法,钱包、节点、浏览器扩展、区块浏览器必须同步发版,任何一环掉队都会产生”发了但没完全生效”的裂缝——这正是交易结构派生的兼容性税。CATX 若落地,迁移从”换交易类型”缩为”换签名编号”,各环节可以各自灰度升级。在此之前,钱包侧不需要做任何事,也无法做任何事——它属于客户端与协议团队的长线路标。

阅读提案的正确姿势

判断一个交易格式提案处于哪个阶段,看三样:状态字段(Draft 意味着连讨论稿都未必稳定)、类型编号是否已分配(TBD 即没进分叉清单)、是否被其他提案列为 requires(有下游才说明有人在等)。CATX 三项里有两项还是空的,属于最早期。风险提示:本文为提案结构分析,不构成投资建议,不构成对任何密码算法强度的承诺。