

a16z发布Lattice Jolt,将zkVM底层密码学从椭圆曲线升级为格密码(Module-SIS),实现后量子安全,证明速度提升2-3倍(GPU上超1000万RISC-V周期/秒),证明体积压缩至100KB以下,并显著降低内存占用,支持手机端轻量证明,推动格基SNARK成为主流后量子方案。
作者:a16z crypto
编译:深潮 TechFlow
深潮导读:zkVM 一直被吐槽“证明太慢、体积太大”,a16z 这次用格密码替换椭圆曲线,直接让证明速度快了 3 倍、证明体积压到 100KB 以下。这是目前唯一能在速度上打败传统椭圆曲线方案的后量子方案,对验证上链成本和隐私应用都有直接影响。

今天我们正式发布 Lattice Jolt,这是我们开源 zkVM(零知识虚拟机)的最新版本。Jolt 本来就是目前最快、最简单的 zkVM,它的架构没变。但底层密码学换掉了:从椭圆曲线换成了格密码。这一个改动同时带来三件事:
这些特性覆盖 zkVM 的所有使用场景。同一个 prover,在 GPU 上能处理数十亿个 CPU 周期,在手机上也能证明数百万个周期。两种情况下开发者写的都是普通程序,不用手写需要专门知识才能搞定的电路。这就是我们说 Jolt 是“全能 SNARK”的原因。
但更大的故事是 Lattice Jolt 对 SNARK 设计和采用的意义。目前市面上几乎所有已经投产的后量子 SNARK 都是基于哈希的。Lattice Jolt 证明了基于格的 SNARK 可以做到更快、更紧凑。数字签名正在经历同样的转变:哈希方案是保守选择,但格方案才是世界正在大规模部署的。我们预计 SNARK 也会走上这条路,这篇博文的后半部分会解释原因。
Jolt 之前的多项式承诺方案叫 Dory,它是整个系统里唯一依赖椭圆曲线密码学的组件。Lattice Jolt 用 Akita 替换了 Dory,Akita 是一个基于 Module-SIS 格假设的全新多项式承诺方案。Lattice Jolt 基于这个标准的、研究充分的假设,对标完整的 128 位安全。
Module-SIS 和它的兄弟 Module-LWE 属于同一族假设,世界上的数字基础设施正在向这族假设迁移。这些假设不仅支撑数字签名标准 ML-DSA,也支撑密钥建立标准 ML-KEM,后者已经是全球部署最广泛的后量子原语。
Akita 的开发和实现由 LayerZero 的研究员和工程师主导,卡内基梅隆大学、南加州大学的研究员以及我们在 a16z crypto 的工程和研究团队共同参与。
Lattice Jolt 不只是后量子安全的,它比被替换掉的椭圆曲线版本更快。
加速主要来自一个简单的原因。椭圆曲线迫使 Jolt 在 256 位域上工作,而格密码在 128 位域上就能达到同等级别的安全性。Jolt prover 的主要工作就是域元素乘法(本质上是超大数字的乘法),所以数字大小砍半,每次乘法就快了好几倍。
带 Dory 的 Jolt 已经很快了:我们上次的性能更新显示,Jolt 在笔记本上每秒大约能证明 70 万个 RISC-V(RV64IMAC)周期,之后的优化把曲线版 Jolt 推过了每秒 100 万周期。
Lattice Jolt 在同一台机器上每秒能证明超过 200 万周期。
过去六个月的大部分时间,我们不仅花在开发 Akita 并集成进 Jolt,还从头重写了 Jolt 代码库。Jolt 之前就能在 GPU 上跑得不错,但这次重写让 GPU 实现变得更容易构建和优化。
第一个成果是 Apple Metal 实现,给苹果硬件带来了巨大加速。(Metal 是苹果的框架,用来在 MacBook 和 iPhone 等设备内置的 GPU 上执行代码。)
也就是说,一次发布,让 MacBook 上的 Jolt 从每秒约 100 万周期(曲线版,纯 CPU)涨到了超过 1000 万周期(格版,带 Metal)。
把这些数字放在大背景下看:四年前我们第一次写 SNARK prover 开销时,证明一个计算比直接运行它贵几百万倍。Lattice Jolt 把这个开销降到了大约一万倍。这还没到头,工程和协议层面的优化空间依然存在。
证明大小和 prover 速度同样重要。不到 100 KB,Lattice Jolt 的证明已经比其他后量子 zkVM 小得多,其他方案的证明从 200 KB 以上到大约 600 KB 或更多不等。
换成格之后,Jolt 本来就很优秀的内存占用也进一步改善:prover 的空间使用从每周期约 300 字节降到 200 字节。这意味着你可以在手机上证明数百万个 RISC-V 周期。
一篇配套论文即将发布,会给 Lattice Jolt 加上零知识性,这是隐私应用需要的属性。
多年来,SNARK 社区的注意力(以及基本上所有的生产部署)都放在哈希基 SNARK 上,把它当作通往后量子安全的路线。
但也一直有一条持续的格 SNARK 和格承诺研究线,涵盖 LaBRADOR、Greyhound、LatticeFold、SuperNeo,以及 Akita 的直接前身 Hachi。Lattice Jolt 建立在这些研究之上,把格承诺层引入高性能 zkVM 架构,同时证明格基 SNARK 在速度和紧凑性上无可匹敌。
这不该让人意外。如前所述,同样的模式已经在数字签名上发生过一遍。
密码学家基于很多假设构造过签名。哈希签名通常被认为是最保守的选择:它们的安全假设简单又古老。但世界主要走向格签名,因为它们更短更快:
SNARK 和签名之间的类比并不是表面功夫。数字签名本质上就是对一个授权消息的私钥知识证明。SNARK 把这个范式从一条窄窄的陈述扩展到了任意计算。所以如果 SNARK 的长期密码学版图和签名、加密的版图完全不同,那才奇怪。
这里也有一个误解值得澄清:哈希 SNARK 常常被说成是保守的后量子选择,因为“它们只依赖哈希函数”。这只有在底层哈希函数是非代数的时候才成立。
如今,大多数基于哈希的 SNARK 部署都依赖 SNARK 友好的代数哈希构造(如 Poseidon),以便低成本地证明哈希被正确求值。这对于递归尤其重要(这里的递归指证明你持有一个有效的 SNARK 证明)。这些构造比标准哈希函数具有更多结构,而其密码分析尚不成熟。
简而言之,我们对代数哈希函数的安全性没有信心。尽管如此,它们如今仍被广泛用于生产级 SNARK 系统。(不过出现了一个进步信号:以太坊基金会最近宣布将放弃使用它们。)
代数哈希并非已部署的基于哈希的 SNARK 中唯一的隐藏假设:许多系统历史上会使用推测性的 proximity-gap 界限来设定具体安全级别,而不是使用完全经过证明的界限。其中一些被认为最强的界限后来被证明是错误的。
即便避开上述推测的基于哈希的 SNARK,其安全目标通常也低于 128 位,因为完整的 128 位安全会带来显著的性能开销。为什么?基于哈希的 SNARK 无法在 128 位域上达到 128 位安全,因为其可靠性误差按 n/|F| 缩放,其中 n 大致是被证明语句的规模,|F| 是域大小。因此在 128 位域上证明十亿步的语句会损失约 30 位安全,使其低于 100 位。相比之下,Lattice Jolt 的可靠性误差按 log(n)/|F| 缩放,在同一个域上几乎保留完整的 128 位安全(少量 log(n) 损失可通过标准技术恢复)。
讽刺的是,一些被宣传为“保守”后量子选择的系统,实际上同时依赖代数哈希函数、推测性 proximity-gap 界限,以及低于 128 位的目标安全级别。因此,虽然基于哈希的 SNARK 是一个重要方向,但它们并不自动成为许多人以为的低风险选项。
我们一直认为,Jolt 不应被绑定到单一密码学基础。我们应当拥有基于曲线、哈希和格的成熟且高性能的 SNARK。不同假设和性能特征将适用于不同场景。
但如果以数字签名为参照,基于格的 SNARK 将成为部署最广泛的后量子选择。
Jolt 在这场转变中处于非同寻常的优势位置。最初的 Jolt 设计利用了椭圆曲线对承诺特别有用的特性,包括对稀疏向量进行快速承诺。格承诺具有同样的特性:当向量大多数条目为零或较小时,对向量承诺的成本很低,而 Jolt 几乎只对这类向量进行承诺。这一特性使我们能够将 Dory 替换为 Akita,同时保持 Jolt 其余部分不变。
我们将构建基于哈希的 Jolt 版本。但与基于曲线和基于格的 Jolt 相比,基于哈希的版本在空间效率上更差,证明更大,并存在各种复杂问题。这是因为最有前景的基于哈希的 SNARK 工作在二进制域上。这种数制便于证明哈希求值,但与 CPU 的算术方式不匹配。这种不匹配使得证明普通的 CPU 乘法变得昂贵。即便如此,生态也应在每个主要假设族下都有 zkVM,正如数字签名领域那样。
Lattice Jolt 一次性满足了构建者对 zkVM 的所有需求:后量子、透明、快速、紧凑且空间高效。它将从 LaBRADOR 到 Hachi 的格 SNARK 研究路线带入生产级 zkVM,同时没有放弃最初让 Jolt 变得快速的任何优势。
我们的目标不仅是将性能最强的 zkVM 开源供任何人使用,还在于大幅消除为特定应用手工调优 SNARK 的必要性。这并不要求 Jolt 与手工调优的证明器一样快。那是一个不可能的目标,好比要求 CPU 在每项任务上都匹敌专用 ASIC。它只要求 Jolt 快到足以提供可接受的用户体验。
对于与客户端证明相关的“小”语句(如今手工优化电路在这些场景占主导),关键标准是在手机上用大约一秒以内的时间生成证明。Jolt 已经接近实现这一点,且还有大量加速方案正在推进中。
格 SNARK 的时代已经到来。
本内容仅供参考,不应作为法律、商业、投资或税务建议加以依赖。关于这些事项,你应咨询自己的顾问。对任何证券或数字资产的提及仅用于说明目的,不构成投资建议或提供投资顾问服务的要约。此外,本内容不面向任何投资者或潜在投资者,也不得在任何情况下作为投资于 a16z 管理的任何基金的决策依据。(投资 a16z 基金的要约仅通过该基金的私募备忘录、认购协议及其他相关文件进行,且应完整阅读这些文件。)所提及、引用或描述的任何投资或组合公司并不代表 a16z 管理工具中的全部投资,且无法保证这些投资将会盈利,也无法保证未来进行的其他投资将具有类似特征或结果。由 Andreessen Horowitz 管理的基金所作投资的清单(不包括发行人未允许 a16z 公开披露的投资,以及未公开的上市数字资产投资)可在 https://a16z.com/investments/ 获取。
文中提供的图表仅供参考,不应作为任何投资决策的依据。过往表现不代表未来结果。本内容仅代表所述日期的情况。这些材料中表达的任何预测、估计、前瞻性陈述、目标、前景和/或意见均可能随时变更,恕不另行通知,并可能与他人表达的意见不同或相反。更多重要信息请参见 https://a16z.com/disclosures。