告别椭圆曲线,新一代后量子零知识证明引擎面世。
撰文:Markos Georghiades、Justin Thaler、Andrew Tretyakov、Michael Zhu,a16z crypto
编译:Chopper,Foresight News
今天我们正式发布 Lattice Jolt,这是开源 zkVM 项目 Jolt 的新版本。Jolt 原有 SNARK(零知识简洁非交互式知识论证)设计,早已让它成为目前最快、最简单的零知识虚拟机。本次新版本的核心改动是底层密码学从椭圆曲线切换为格密码(Lattice)(注:格密码是一类基于格数学难题的密码体系,也是目前美国国家标准与技术研究院 NIST 选定的主流后量子密码方案,用来抵御量子计算机破解)。这项改动实现三个提升:
- 让 Jolt 具备后量子安全能力;
- 证明器与验证器速度提升 2–3 倍;
- 在所有后量子 zkVM 中,Jolt 拥有最短证明:当前小于 100KB,后续还有进一步压缩空间。证明数据需要上链并在网络中传输,更小的证明意味着全网验证成本更低。
这些特性适用于 zkVM 的各类应用场景。这套证明器既能在 GPU 上处理数十亿次 CPU 运算,也可以在手机上完成数百万次运算。两种场景下,开发者只需编写普通程序,无需手工搭建高度专业的电路。这也是我们将 Jolt 称为 「全能 SNARK」 的原因。
但更值得关注的是 Lattice Jolt 对于零知识证明技术落地与普及的意义。当前几乎所有已上线的后量子 SNARK 都基于哈希方案。Lattice Jolt 证明,基于格密码的 SNARK 可以同时做到更快、证明更精简。数字签名领域正在经历同样的转型:基于哈希的方案属于保守选择,但基于格密码的方案才是全球大规模部署的主流。我们预计 SNARK 赛道也将遵循这一趋势,下文将阐述背后逻辑。
用格密码替换椭圆曲线
Jolt 旧版本使用 Dory 多项式承诺方案,这也是整套系统中唯一依赖椭圆曲线密码学的组件。Lattice Jolt 用 Akita 取代了 Dory ,Akita 是一种基于格假设 Module-SIS 的新型多项式承诺方案。Lattice Jolt 依托这套经过充分研究的标准假设,实现完整 128 位安全等级。
Module‑SIS 及其同源的 Module‑LWE,正是全球数字基础设施正在迁移采用的假设体系。这套假设不仅支撑 NIST 数字签名标准(FIPS 204),也支撑密钥协商标准 FIPS 203,后者已是全球应用最广泛的后量子密码原语。
Akita 由 LayerZero 的研究人员与工程师主导开发,卡内基梅隆大学、南加州大学以及 a16z crypto 的研究工程团队共同参与。
Lattice Jolt 性能提升的原理
Lattice Jolt 不仅实现后量子安全,性能还超越了旧版椭圆曲线版本。
速度提升主要源于一个简单的原因。椭圆曲线要求 Jolt 在 256 位有限域内运算;格密码可以在 128 位有限域内实现同等安全强度。Jolt 证明器的绝大部分开销来自域元素(超大数字)乘法。域数字长度减半,单次乘法运算速度提升数倍。
搭载 Dory 的旧版 Jolt 本身速度已经不俗:此前测试显示,笔记本电脑上单秒可完成约 70 万次 RISC-V(RV64IMAC)运算;后续优化后,椭圆曲线版 Jolt 单秒运算突破 100 万次。 而 Lattice Jolt 在同款设备上 1 秒可完成超 200 万次运算。
过去半年,团队除了开发 Akita 并将其集成进 Jolt,还对 Jolt 代码库进行了完整重写。旧版 Jolt 运行表现已经不错,但重写后的代码大幅降低 GPU 实现与优化难度。
首个落地成果是 Apple Metal 实现,大幅提升苹果设备的运算速度(Metal 是苹果为 MacBook、iPhone 等设备 GPU 提供的开发框架)。
GPU 加速版 Lattice Jolt 可在 MacBook 上实现极高的 RV64IMAC 运算吞吐量; 仅使用 CPU 的 Lattice Jolt,在同款笔记本上单秒可完成超 200 万次运算。 经过 Metal 优化,椭圆曲线版本 Jolt 在 MacBook 上单秒可达约 400 万次运算。
换言之,一次版本更新,Mac 端 Jolt 性能从(椭圆曲线 + 纯 CPU)每秒约 100 万运算,提升至(基于格密码 + Metal)每秒超 1000 万次运算。
直观地理解这些数字:四年前我们测算 SNARK 证明开销时,完成一次证明的成本是直接运行该计算的数百万倍。Lattice Jolt 已经将这一倍数压缩至约 10000 倍。优化并未到此为止,协议与工程层面仍有大量优化空间。
证明大小与证明器速度同等重要。Lattice Jolt 证明体积小于 100KB,远小于其他后量子 zkVM(这类方案证明大小大多 200KB 以上,最高可达 600KB 甚至更大)。
切换至格密码,也进一步优化 Jolt 本就领先的内存占用:证明器内存开销从每周期约 300 字节下降至 200 字节。这意味着手机端也可以完成数百万次 RISC-V 运算的证明。
配套论文不久后将会发布,将为 Lattice Jolt 增加零知识特性,该特性是隐私类应用所必需的。
格密码优于哈希方案的底层逻辑
多年来,SNARK 领域的研究重心、以及几乎所有落地部署的后量子 SNARK,都选择基于哈希的路线,以此应对量子计算威胁。
与此同时,学术界持续研究基于格密码的 SNARK 与承诺方案,已有大量相关论文成果,Akita 的前身方案也在此列。Lattice Jolt 建立在这些研究之上,将基于格密码的承诺层集成进高性能 zkVM 架构,同时证明基于格密码的 SNARK 拥有无可比拟的速度与紧凑证明体积。
这一趋势并不出人意料。前文提到,数字签名领域已经上演了完全相同的变革。 密码学家设计过多种签名方案。基于哈希的签名通常被视作最保守选项,安全假设简单、研究历史悠久。但全球产业正在大规模转向基于格密码的签名,原因是签名更短、验证更快:
- NIST 标准格基签名 FIPS 204,签名大小仅数 KB;
- NIST 的哈希基备选标准 FIPS 205,体积是前者的数倍。
加密与密钥交换领域的结论更加明确:不存在基于哈希的密钥交换方案,后量子部署几乎全部采用格密码方案。NIST 最终定稿的核心密钥交换标准 FIPS 203,已经在主流浏览器、通讯软件、绝大多数网页 TLS 连接中默认启用。
SNARK 与签名之间的类比并非表面化。数字签名本质是一份关于私钥知识的证明,绑定指定消息;SNARK 则把这套范式从单一陈述拓展到任意计算。因此,SNARK 长期密码格局,很难和签名、加密体系走向完全不同的方向。
这里需要澄清一个常见误区:基于哈希的 SNARK 常被描述为保守的后量子方案,理由是 「仅仅基于哈希函数」。但这只有在底层哈希函数是非代数函数的情况下才成立。
如今绝大多数上线的哈希 SNARK,都会使用 Poseidon 这类适配 SNARK 的代数哈希构造,降低哈希正确性证明的开销,递归证明场景尤其依赖该设计(递归指证明一份 SNARK 证明本身有效)。这类构造比普通标准哈希结构复杂得多,密码分析成熟度更低。
简言之,我们对代数哈希的安全边界并没有十足把握,但它目前大量应用于生产环境的 SNARK 系统。一个标志性进展是:以太坊基金会近期表态,在后量子规划中将逐步放弃 Poseidon。
代数哈希并非已部署哈希 SNARK 唯一的隐藏假设,很多方案采用基于猜想的具体安全边界,而非经过完整证明的安全结论;不少曾经被认为安全性较强的方案,陆续出现密码分析攻击。
即便避开上述猜想缺陷的基于哈希的 SNARK,往往也达不到 128 位安全等级,要实现完整 128 位安全会带来巨大性能损耗。为什么?两种 SNARK 都存在极小概率被伪造证明的风险。哈希 SNARK 的伪造风险会随着计算量同步上涨,证明大型任务时安全水平会明显下降;格密码 SNARK 的伪造风险只会随计算量缓慢增加,就算处理大规模运算,也基本守住 128 位安全强度,小幅损耗可通过常规技术补足。
颇具讽刺意味的是,一些被市场包装为 「保守后量子选择」 的系统,实际上同时依赖代数哈希、未被证明的间隙猜想,安全等级还不足 128 位。 因此哈希 SNARK 虽是重要研究方向,但它们并非像许多人认为的那样,是低风险的选择。
一套 Jolt,三大密码底层:椭圆曲线、格密码、哈希
我们的观点一直是:zkVM 不应该绑定单一密码学底层。我们需要成熟、高性能,分别基于椭圆曲线、哈希、格密码的 SNARK。不同安全假设与性能特性适配不同场景。
但参考数字签名行业的经验,格密码 SNARK 将成为部署最广泛的后量子方案。
Jolt 的架构恰好适配这次转型。原版 Jolt 的设计利用椭圆曲线在承诺上的优势,例如稀疏向量快速承诺。格密码承诺同样具备这一特性:当向量大部分元素为 0 或较小数值时,承诺开销极低,而 Jolt 几乎只对这类向量做承诺。正是这一点,让我们可以直接用 Akita 替换 Dory,Jolt 其余架构无需改动。
我们后续也会开发哈希版本的 Jolt。但相比椭圆曲线版、格密码版,哈希版本空间效率更低、证明体积更大,还附带各类复杂问题。原因在于,最有潜力的哈希 SNARK 在特殊数系上运算,这类数系适合证明哈希运算,却和 CPU 原生算术不匹配,导致普通 CPU 乘法证明成本高昂。即便如此,生态应当拥有基于所有主流密码假设体系的 zkVM,就像数字签名领域一样。
全能 SNARK
Lattice Jolt 集合开发者对 zkVM 的全部核心诉求:后量子安全、透明、高速、证明精简、内存高效。它把从 LaBRADOR 到 Hachi 一脉的格密码 SNARK 研究成果落地到可生产级 zkVM,同时完整保留原版 Jolt 的高性能优势。
我们的目标不仅是开源发布这款性能顶尖的 zkVM,更要大幅消除针对特定应用手工定制 SNARK 的需求。这不代表 Jolt 性能能够追上针对场景订制的专用证明器 —— 这并不现实,如同要求 CPU 在所有任务比肩专用 ASIC。只需要 Jolt 足够快,能带来良好的用户体验即可。
面向手机端的轻量零知识证明场景,核心门槛是手机端证明生成控制在 1 秒左右。Jolt 距离这个目标已经很近,后续还有大量提速空间。
格密码 SNARK 的时代,已经到来。
免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。