本论文针对在小素域上构造的 zkSNARKs (例如 Goldilocks 域、小梅森素数域及二进制塔域)在证明代数语句(如 RSA 或 ECDSA 签名验证)时效率低下的问题,提出了带指数门的算术电路模型及基于该模型的Hash-committed Commit-and-Prove (HCP) 框架,有效地将大数和椭圆曲线指数运算“脱出”SNARK 电路,转而使用仅与安全参数相关的轻量级哈希运算,大幅度提升证明者效率,同时维持同等水平的证明大小与验算开销 。
通过在 SNARK 之外使用专门设计的 Sigma 协议(称为 Sigma Argument of Knowledge)来证明指数门的正确性,仅需在电路内验证常数次的群运算与若干 zk-friendly 哈希函数(如 Poseidon)应用,相比将完整指数运算映射为数百乃至上千次原生约束,证明者速度提升近一个数量级 。
https://eprint.iacr.org/2025/941

当前多种 SNARK 构造高度优化了对哈希前像的证明效率,但当需要证明如 之类的大域指数运算时,必须通过非本域算术(Non-Native Arithmetic, NNA)将大域运算拆解为小素域上的加法与乘法,这会引入巨量约束,严重拖慢证明者速度。 尽管已有 xJsnark、CRT 方法、Windowed 技术以及Commit-and-Prove(CP)-SNARK 方法(使用Pederson Commitment) 等优化手段,但在架构最佳化、兼顾通用性与性能方面仍有显著提升空间。
论文引入了一个新的电路元素——指数门(EXP gate),用于高效表达群指数运算:

这些定义为后续构建各种代数关系提供了基础。
在此基础上,作者构建了一个Hash-committed Commit-and-Prove 证明系统:
对每个 EXP 门的输出 使用zk-friendly 哈希函数(如 Poseidon)生成承诺。
在 Sigma 协议层面,通过Sigma Argument of Knowledge (AoK) 证明对数知识或 RSA 指数知识。
在 SNARK 电路内仅需验证哈希承诺一致性和常数次数的群运算证明,而无需展开完整指数计算 。
本节我们详细介绍用于高效证明 EXP 门正确性的 Sigma Argument of Knowledge (Sigma AoK) 协议。Sigma AoK 是一种 三轮公开抛币(3-move public-coin)交互式协议,结合了经典 Sigma 协议与内部 zkSNARK,用于证明以下两类关键关系:
Setup
crs。输入定义 :
crs, P, h(或 (P,h)、(P,Q,h),视关系而定)Q, x, r,其中 用于哈希承诺。承诺 (Commitment)
k ← F_p、随机数 r_k ← {0,1}^λ,计算并将 (h_k, A) 发送给 Verifier。质询 (Challenge)
c ← {0,1},并发送给 Prover。响应 (Response)
c=0,Prover 发送 (z=k, r_k);c=1,Prover 计算 z = k + x (mod p),并运行内部 SNARK 证明:其中 T = A ◦ Q 为群运算结果。验证 (Verification)
c=0,验证c=1,验证T' = P^z 并根据 c 检查:

实验证明,相较于直接在 SNARK 电路中完成指数运算的 NNA 方法(需数百至上千次群加法/点倍或大整数乘法),本方法在 离散对数群 上将昂贵运算次数减少约 10 倍,在 RSA 群 上减少数十倍。同时,整体证明大小保持在数百字节量级,验证开销与传统 SNARK 技术相当。

本文提出的 带指数门算术电路模型 与 HCP 框架,通过将大域指数运算“脱圈”并借助专门 Sigma 协议大幅提升了 SNARK 的证明者效率,兼容离散对数与 RSA 场景。未来可进一步探索:
将该框架与递归证明结合,实现更大规模语句的高效压缩;
在更丰富的代数结构(如配对群、多变量模 运算)中推广 EXP 门与 AoK 协议设计。
kurtpan666 at pm dot me 或微信 cryptokurt(此號已因加過多好友被封,且無法解禁,抱歉),也可关注公众号后留言。