当前位置: 首页 > ops >正文

zkML-JOLT——更快的ZK隐私机器学习:Sumcheck +Lookup

1. 引言

ICME团队开源的zkML项目:

  • https://github.com/ICME-Lab/jolt-atlas(Rust)

zkML-JOLT(JOLT ‘Atlas’)构建在a16z Crypto团队的JOLT研究和实现基础上,其性能比其他zkML项目快了3到7倍。

a16z Crypto研究团队最近发布了一项重磅成果,宣布了他们的6倍加速(见2025年8月14日博客Jolt gets a 6× speedup — and we’re just getting started),展示了JOLT基于lookup查找表的方案结合sumcheck协议如何在仅使用CPU的情况下,显著超越其他SNARK构建。其 “Twist and Shout(见2025年论文《Twist and Shout: Faster memory checking arguments via one-hot addressing and increments》)”优化证明了,当你不再试图将一切都算术化,而是开始采用查找和稀疏性时,奇迹就会发生:

  • 减少审计的代码。
  • 更快的证明者。
  • 几乎是“证明者杀手”的证明。

2. 将JOLT用于zkML

如果将JOLT修改为适用于神经网络推理呢?

  • 神经网络本身包含大量的非线性操作、稀疏性和矩阵乘法操作。

当a16z团队忙于革新通用zkVM时,ICME团队则专注于另一个问题:

  • 使零知识机器学习在NovaNet中更具实用性。

事实证明,ML工作负载有一些非常特定的模式,与JOLT的lookup-heavy架构非常契合。在其他方法因ML操作的昂贵域运算而陷入困境时,JOLT的sumcheck+lookup组合能够直接解决该问题。

传统的基于电路的方法,在表示ReLU和SoftMax等非线性函数时,成本极其高昂。相比之下,lookup完全消除了电路表示的需求。Just One Lookup Table (JOLT) 从第一性原理开始设计,仅使用lookup argument。这一基础性的设计选择意味着,任何试图将lookup集成到现有系统中的证明方案,都会在根本上处于劣势。

在zkML JOLT (Atlas)中,消除了困扰其他方法的复杂性:

  • 没有商多项式、没有字节分解、没有grand product、没有permutation check,最重要的是——没有复杂的电路。

对于矩阵-向量乘法(机器学习中的主导成本),zkML-JOLT 利用JOLT的高效批量sumcheck协议,提供卓越的性能。尽管基于GKR的方法可以通过像SpaGKR(见2024年论文Sparsity-Aware Protocol for ZK-friendly ML Models: Shedding Lights on Practical ZKML)这样的稀疏性框架进行改进,但JOLT 'Atlas’通过其以查找为中心的架构和稀疏多项式承诺,天然受益于稀疏性——无需额外的优化层。

另一个有趣的优势是——JOLT从不将其完整的查找表物化,查找表是结构化的,而不是显式存储的。虽然其他zkML项目由于物化的表约束而被锁定在特定的量化方案中,JOLT的方案理论上支持灵活的量化支持,且可以扩展到浮点运算,而不受竞争对手面临的严格预处理限制。这只是一个旁注,因为目前正在考虑的大多数模型都是量化的。

另一个显著的优势——通过“Twist and Shout”,JOLT不再需要将操作分解为更小的子表。这为之前不可能实现的预编译功能打开了大门。现在,只要其evaluation table评估表是MLE结构化的,操作可以作为原语指令(或虚拟序列)添加,而不需要更为严格的“可分解”属性。这大大扩展了可以直接高效集成到JOLT Atlas指令集中的操作范围。

举个小例子,以下是ICME团队进行的端到端测试,对一个多分类模型进行了zkML项目的测试。

# zkML lib benchmarks (multi-class model: preprocessing + proving + verification)zkml-jolt ~0.7s # fastest
mina-zkml ~2.0s # relatively fast
ezkl 4-5s # significantly slower
deep-prove N/A # doesnt support gather op
zk-torch N/A # doesnt support reduceSum op

由此可知:

  • 良好的理论转化为非常好的实践结果。在测试的所有模型中,性能的数量级提升都得到了验证。

3. 完整性与扩展性

目前,zkML-JOLT在CPU架构上运行,但GPU加速代表着下一个10倍性能提升的明确路径。在评估竞争对手“1000倍加速”时,重要的是区分专用硬件的理论峰值性能与实际、可部署的实现。真正的性能比较应该在等效的硬件配置上进行。

此外,ICME团队的研究揭示了zkML生态系统在完整性和正确性方面的显著差距。许多声称支持ONNX的框架缺乏基本的组件,如内存一致性检查——这是证明内存在执行过程中没有被篡改的关键要求。如果没有这些保障措施,这些实现无法合法地声称完全支持ONNX。

JOLT ‘Atlas’ 优先考虑性能和可验证的正确性,确保其速度优势不会以牺牲安全性或完整性为代价。尽管如此,zkML技术仍在持续进展中,请谨慎使用所有zkML!

4. 用例

ICME团队正在将这项工作部署为其基于NIVC的证明者网络(DeSCI for ZK)中的第一个专用证明者,NovaNet。NovaNet的姐妹项目Kinic已经利用这项技术创建了可移植且可验证的AI内存,作为“AI的Plaid”——更多详情可参见https://www.kinic.io/。

可验证AI的更广泛应用是具有变革性的。正如研究员Daniel Kang在2025年5月 zkSummit 13 ZK13: ZKTorch: Efficiently Compiling ML Models to Zero-Knowledge Proof Protocols - Daniel Kang中所概述的,用例涵盖隐私保护的医疗推理、金融服务(包括贷款承保和算法交易),以及本地运行AI代理的验证。每个用例都代表了一个信任和可审计性至关重要的市场,但当前的AI系统通常是黑箱操作。

zkML-JOLT通过提供实际部署所需的性能,同时保持数学上的正确性保证,使这些应用变得在实践中可行。
愿意等待几秒钟,以便在你的个人AI代理转账2万美元USDC之前进行zkML验证吗?ICME团队认为,大多数人会看到可验证机器学习在承担更大责任的代理中的好处。

5. Folding JOLT

大多数zkVM和zkML项目是“简洁可验证的”,但不是“零知识的”——它们不能保留输入/输出、witness或中间计算的隐私。对于实际的、个人之间或公司间的AI代理,正确执行的加密证明必须与隐私保证结合。

ICME团队的架构通过“Folding方案”实现了真正的零知识。可以使用2023年 HyperNova: Recursive arguments for customizable constraint systems论文中的技术来折叠JOLT验证器,从而实现“零知识”隐私。这种方法还允许动态step size调整,使得在多种硬件配置上都能高效证明——无论是大型专用服务器硬件,还是个人计算机。

与其他需要大量内存和专用硬件的zkML框架不同,JOLT通过Folding实现的高效性使得能够为特定的部署场景调整内存与速度的平衡。通过继续folding,还可以用于大规模的zkML工作负载并行化。这种灵活性解锁了以前在zkML领域中不切实际的用例——从消费级设备到资源受限的环境。

6. 展望

a16z Crypto团队将继续推进JOLT核心基础设施的开发,发布包括:

  • streaming流式JOLT
  • 优化的Fiat-Shamir变换
  • 增强sumcheck协议和GPU加速等内容

以提供更多数量级的性能提升。JOLT 'Atlas’将从这一研究工作中受益,并为其做出贡献。

而ICME团队的产品开发推动了基于格的多项式承诺方案(PCS)和folding方案(2025年论文Neo: Lattice-based folding scheme for CCS over small fields and pay-per-bit commitments)的具体研究重点。这些将实现pay-per-bit按位计费结构、更小的域运算、可行的后量子安全性、folding中使用的同态性,以及动态公共参数生成——这些能力对于大规模的分布式zkML部署至关重要。

这一双轨道方法确保了JOLT 'Atlas’保持在前沿技术的同时,解决了来自构建可验证AI用户应用程序时出现的实际部署挑战。

参考资料

[1] ICME团队2025年8月25日博客 Sumcheck good. Lookups good. JOLT good. Particularly for zero-knowledge machine learning

http://www.xdnf.cn/news/19277.html

相关文章:

  • Pytest 插件介绍和开发
  • leetcode 260 只出现一次的数字III
  • COLA:大型语言模型高效微调的革命性框架
  • 免费电脑文件夹加密软件
  • 基于Adaboost集成学习与SHAP可解释性分析的分类预测
  • 【K8s】整体认识K8s之存储--volume
  • 在win服务器部署vue+springboot + Maven前端后端流程详解,含ip端口讲解
  • Transformer架构三大核心:位置编码(PE)、前馈网络(FFN)和多头注意力(MHA)。
  • 学习Python中Selenium模块的基本用法(12:操作Cookie)
  • TFS-2005《A Possibilistic Fuzzy c-Means Clustering Algorithm》
  • 使用 Python 自动化检查矢量面数据的拓扑错误(含导出/删除选项)
  • 算法题(196):最大异或对
  • 特殊符号在Html中的代码及常用标签格式的记录
  • Qt组件布局的经验
  • 线程池、锁策略
  • 机器视觉opencv教程(四):图像颜色识别与颜色替换
  • Linux中的ss命令
  • kotlin - 2个Activity实现平行视图,使用SplitPairFilter
  • 网络流量分析——使用Wireshark进行分析
  • Shell脚本编程——变量用法详解
  • Ruoyi-vue-plus-5.x第二篇MyBatis-Plus数据持久层技术:2.2 分页与性能优化
  • DAY17-新世纪DL(DeepLearning/深度学习)战士:Q(机器学习策略)2
  • AI 应用 图文 解说 (二) -- 百度智能云 ASR LIM TTS 语音AI助手源码
  • 自定义AXI_PWM_v1.0——ZYNQ学习笔记15
  • Spring Task快速上手
  • Maven学习笔记01
  • 【stm32】对射式红外传感器计次以及旋转编码器计次
  • SpringBoot 自研运行时 SQL 调用树,3 分钟定位慢 SQL!
  • 用产品经理的思维,重构AI时代的增长Playbook
  • 企业数据湖:从混沌到秩序的分层设计与治理策略