mt logoMyToken
ETH Gas
Tiếng việt

a16z发布Lattice Jolt:证明速度快了3倍,还能抵御量子攻击

sưu tầmcollect
đăng lạishare

作者: a16z crypto

编译:深潮 TechFlow

深潮导读: zkVM 一直被吐槽“证明太慢、体积太大”,a16z 这次用格密码替换椭圆曲线,直接让证明速度快了 3 倍、证明体积压到 100KB 以下。这是目前唯一能在速度上打败传统椭圆曲线方案的后量子方案,对验证上链成本和隐私应用都有直接影响。

今天我们正式发布 Lattice Jolt,这是我们开源 zkVM(零知识虚拟机)的最新版本。Jolt 本来就是目前最快、最简单的 zkVM,它的架构没变。但底层密码学换掉了:从椭圆曲线换成了格密码。这一个改动同时带来三件事:

  • Jolt 变成后量子安全的。
  • prover 和 verifier 的速度提升 2-3 倍。
  • Lattice Jolt 成为所有后量子 zkVM 中证明最短的:目前不到 100 KB,后续还能继续压缩。证明要上链、要跨网络传输,证明越小,验证成本越低。

这些特性覆盖 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 为什么更快

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 上执行代码。)

  • GPU 加速的 Lattice Jolt 在 MacBook 上每秒能证明超过 1000 万个 RV64IMAC 周期。
  • 纯 CPU 的 Lattice Jolt 在同一台机器上每秒能证明超过 200 万周期。
  • 甚至连曲线版 Jolt 在带 Metal 的 MacBook 上现在也能跑到每秒约 400 万周期。

也就是说,一次发布,让 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 在速度和紧凑性上无可匹敌。

这不该让人意外。如前所述,同样的模式已经在数字签名上发生过一遍。

密码学家基于很多假设构造过签名。哈希签名通常被认为是最保守的选择:它们的安全假设简单又古老。但世界主要走向格签名,因为它们更短更快:

  • ML-DSA 签名大约几 KB。
  • NIST 标准化的哈希替代方案 SLH-DSA 要大好几倍。
  • 对于加密和密钥交换,情况更明确:根本没有哈希方案可选(有证明这不可能),后量子部署压倒性地基于格。ML-KEM(NIST 在 2024 年确定的主要密钥建立标准)已经被主流浏览器、通讯应用默认部署,在网络上大量 TLS 连接中使用。

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,三种基础:曲线、格和哈希

我们一直认为,Jolt 不应被绑定到单一密码学基础。我们应当拥有基于曲线、哈希和格的成熟且高性能的 SNARK。不同假设和性能特征将适用于不同场景。

但如果以数字签名为参照,基于格的 SNARK 将成为部署最广泛的后量子选择。

Jolt 在这场转变中处于非同寻常的优势位置。最初的 Jolt 设计利用了椭圆曲线对承诺特别有用的特性,包括对稀疏向量进行快速承诺。格承诺具有同样的特性:当向量大多数条目为零或较小时,对向量承诺的成本很低,而 Jolt 几乎只对这类向量进行承诺。这一特性使我们能够将 Dory 替换为 Akita,同时保持 Jolt 其余部分不变。

我们将构建基于哈希的 Jolt 版本。但与基于曲线和基于格的 Jolt 相比,基于哈希的版本在空间效率上更差,证明更大,并存在各种复杂问题。这是因为最有前景的基于哈希的 SNARK 工作在二进制域上。这种数制便于证明哈希求值,但与 CPU 的算术方式不匹配。这种不匹配使得证明普通的 CPU 乘法变得昂贵。即便如此,生态也应在每个主要假设族下都有 zkVM,正如数字签名领域那样。

全能 SNARK

Lattice Jolt 一次性满足了构建者对 zkVM 的所有需求:后量子、透明、快速、紧凑且空间高效。它将从 LaBRADOR 到 Hachi 的格 SNARK 研究路线带入生产级 zkVM,同时没有放弃最初让 Jolt 变得快速的任何优势。

我们的目标不仅是将性能最强的 zkVM 开源供任何人使用,还在于大幅消除为特定应用手工调优 SNARK 的必要性。这并不要求 Jolt 与手工调优的证明器一样快。那是一个不可能的目标,好比要求 CPU 在每项任务上都匹敌专用 ASIC。它只要求 Jolt 快到足以提供可接受的用户体验。

对于与客户端证明相关的“小”语句(如今手工优化电路在这些场景占主导),关键标准是在手机上用大约一秒以内的时间生成证明。Jolt 已经接近实现这一点,且还有大量加速方案正在推进中。

格 SNARK 的时代已经到来。

Tuyên bố từ chối trách nhiệm: Bản quyền của bài viết này thuộc về tác giả gốc và không đại diện cho MyToken(www.mytokencap.com)Ý kiến ​​và vị trí; vui lòng liên hệ với chúng tôi nếu bạn có thắc mắc về nội dung
community_x_prefix
X(https://x.com/MyTokencap)
community_tg_prefixcommunity_tg_name
https://t.me/mytokenGroup
Đọc liên quan