一层组合,为什么需要一张新地图
零知识证明应用里大量需求只需要”一层组合”:在链上验证一个 Groth16 证明,而这个 Groth16 本身又在证”我正确验证了别的曲线上的若干证明”。做这种组合,外层曲线是关键——它必须能把内层曲线上的运算高效地翻译成自己的算术。EIP-3026 的主张是把论文《Optimized and secure pairing-friendly elliptic curves suitable for one layer proof composition》指定的 BW6-761 装进 EVM:一条基域规模约 761 比特的配对友好曲线,方程形式极简,专为”验证别的曲线上的 Groth16 证明”而设计。提案引用该研究的结论:用 BW6-761 验证 Groth16 证明比 CP6-782 路线快约三十倍——数字来自论文场景,提案如实转引。

七个地址的分工
提案给出 0x1e 到 0x24 连续七个地址:G1 群的加法、标量乘、多倍乘各一,G2 群同样三项,最后一个给配对检查。多倍乘单独设址是刻意设计:组合验证里最高频的操作是”一次算多组系数与点的加权和”,拆成普通调用会多付编码与往返成本,提案为此专门列了一节论证。这套分工把一次完整验证压成少数几次预编译调用,而不是几十次算术模拟。
尺寸与计价的连锁反应
曲线大,数据就大:BW6-761 一个点的编码占数百字节,复制、校验都有真实开销。提案因此为七项操作各自给出 Gas 公式的骨架——基础费加按输入长度的线性项,把”验得越多付得越多”定成可预测的算术。同时列了一段容易被忽视的安全考量:错误处理路径也要计费限流,否则构造畸形输入就能以极低成本让节点跑满配对检查——预编译的拒绝服务面在提案阶段就被当作一等公民处理,这在当年的一批曲线提案里是较新的写法。
它的现状与归宿
这份提案 2020 年 10 月创建,状态停留在 Stagnant。原因与曲线家族的其他提案类似:主网预编译名额与 Gas 预算是稀缺共识资源,优先给了更主流的验证需求;一层组合方案在实务中被”链下聚合器加常规验证合约”的模式替代;曲线自身也卷入后续性能讨论。但这份文件保留了一个少见的完整快照:一个纯粹为组合证明设计的预编译接口长什么样,钱怎么算,边界怎么守——今天评估任何链上验证方案时仍能拿来对照。
一笔对照账
把曲线预编译的取舍拆成一道算术:假设一层组合要把另一条曲线上的一次配对验证搬进当前曲线的算术,朴素模拟要吃掉的 Gas 约等于内层配对运算次数乘以每条 EVM 算术指令的成本——这个数很容易高到让单笔验证贵得没法上链;预编译把它压回常数加线性公式。提案的全部意义就在这道乘法的消失。它没有改变这条乘法今天仍然存在的事实——停滞意味着这格账仍由应用层的模拟与专用合约来付,只是多了一份”当年算过、且算得清”的说明书留档。
把”三十倍”放回它的问题里
引用性能数字最容易犯的错,是把特定问题规模下的倍数当成普适定律。那条研究里的三十倍,场景是”验证一个在另一条曲线上做出的 Groth16 证明”这一类固定形状的计算——电路规模、证明尺寸、批量次数都固定在论文参数附近,两种外层曲线的差距才有这个读数。换一个场景,比如批量很小或者验证对象根本不是 Groth16,倍数会明显收窄甚至反号。读提案引用外部数字的方式本身也值得学:它把结论连同出处一起写进正文,不冒充成自己的测量;Gas 公式一节则干脆不引用任何倍数,只给基础加线性的结构,把标定留给实现。一份六年前的曲线提案如何划清”引用来的事实”与”待测的参数”的界线,这个写法比任何性能承诺都更值得今天的读者借鉴。
快速问答
问:这条曲线和 alt_bn128 是什么关系? 答:分工不同。alt_bn128 预编译服务于验证 Groth16 证明本身;BW6-761 设想用于验证”验证了 Groth16 的证明”,多一层。
问:停滞的预编译会影响现有 zk 应用吗? 答:不影响,现有应用不依赖这些地址;它们从未在主网启用。
风险提示:本文是密码学机制科普,不构成任何投资建议;曲线参数与 Gas 方案以提案原文为准。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。