ZKML 介绍

ZKML 提供了一种解决方案,可以使用公共模型验证私有数据或使用公共数据验证私有模型。

ZK的趋势

  • 隐私: 主要的项目: Semahpore, MACI, Penumbra, Aztec network;
  • 扩展: Starknet, Scroll, Polygon, Zero, Polygon Miden, Polygon zkEVM, zkSync;
  • 身份: 身份证明协议以创建加密证明: WorldID, Sismo, Clique, Axitom.
  • 跨链桥: zkBridge, Telepathy

ZKML

ZKML 仍然是一项新兴技术,许多用例还有待探索, 用于实现计算完整性,隐私性,真实性,去中心化推理或计算。

模型到验证的编译器

在考察 zkML 生态系统时,大部分注意力都放在了创建模型到验证的编译器上。一般来说,这些编译器将用 Pytorch、Tensorflow 等编写的高级 ML 模型翻译成 zk 电路。

EZKL 是一个库和命令行工具,用于为 zk-SNARK 中的深度学习模型做推理。通过 EZKL,你可以在 Pytorch 或 TensorFlow 中定义一个计算图,将其导出为 ONNX 文件,并在 JSON 文件中包含一些样本输入,然后将 EZKL 指向这些文件,生成一个 zkSNARK 电路。随着最新一轮的性能改进,EZKL 现在可以在大约 2 秒内证明一个 [MNIST](https://en.wikipedia.org/wiki/MNIST_database#:~:text=The MNIST database (Modified National,the field of machine learning.) 尺寸的模型,并占用 700MB 的 RAM. 迄今为止,EZKL 已经看到了一些重要的早期应用,被用作各种黑客松项目的基础设施。

Cathie So的 circomlib-ml 库含有 Circom 的各种 ML 电路模板。电路包括一些最常见的 ML 函数。 Keras2circom 也是由 Cathie 建立的,它是一个 python 工具,使用底层的 circomlib-ml 库将 Keras 模型转变成 Circom 电路。

LinearA 已经为 zkML 开发了两个框架:Tachikoma 和 Uchikoma. Tachikoma 用于将神经网络转换为纯整数形式并生成计算轨迹。Uchikoma 是一个将 TVM 的中间表示法转换为不支持浮点运算的编程语言的工具。LinearA 计划支持使用场运算的 Circom,以及使用有符号和无符号整数运算的 Solidity.

Daniel Kang 的 zkml 是一个构建 ZK-SNARK 中 ML 模型执行证明的框架,基于他在 Scaling up Trustless DNN Inference with Zero-Knowledge Proofs 论文中的工作。截至本文撰写之时,它能够证明一个 MNIST 电路,使用大约 5GB 的内存和大约 16 秒的运行时间。

关于更普遍的模型到验证的编译器,有 Nil FoundationRisc Zero 两种。Nil Foundation 的 zkLLVM 是一个基于 LLVM 的电路编译器,能够验证用 C++、Rust 和 JavaScript/TypeScript 等流行编程语言编写的计算模型。相对于这里提到的其他一些模型到验证的编译器,它是通用的基础设施,但它仍然适用于像 zkML 这样的复杂计算。当与他们的证明市场相结合时,这可能是特别强大的。

Risc Zero 建立了一个通用的 zkVM 标签,采用开源的 RISC-V 指令集,因此支持现有的成熟语言,如 C++ 和 Rust,以及 LLVM 工具链。这使得主机和客座 zkVM 代码之间可以无缝集成,类似于 Nvidia 的 CUDA C++ 工具链,但用 ZKP 引擎代替 GPU. 与 Nil 类似,可以使用 Risc Zero 验证 ML 模型的计算轨迹。

通用验证系统

证明系统的改进是实现 zkML 的主要推动力,特别是引入自定义门和查找表。这主要是由于 ML 对非线性的依赖。简而言之,非线性是通过激活函数(例如 ReLU、sigmoid 和 tanh)引入的,这些函数被应用于神经网络内线性变换的输出。由于数学运算门的限制,这些非线性在 zk 电路中的实现具有挑战性。位数分解和查找表可以帮助解决这个问题,将非线性的可能结果预先计算到查找表中,有趣的是在 zk 中计算效率更高。

[Plonkish](https://zcash.github.io/halo2/concepts/arithmetization.html#:~:text=PLONKish circuits are defined in,will be elements of F) 证明系统往往是 zkML 最受欢迎的后端,原因就在于此。Halo2 和 Plonky2 的表格式算术方案可以通过查找参数很好地处理神经网络的非线性问题。此外,前者有一个充满活力的开发者工具生态系统,再加上灵活性,使其成为包括 EZKL 在内的许多项目的事实上的后端。

其他证明系统也有其优点。[R1CS](https://learn.0xparc.org/materials/circom/additional-learning-resources/r1cs explainer/) 的证明系统包括 Groth16,因为它的证明规模小;Gemini,因为它可以处理极其庞大的电路和线性时间验证器。基于 STARK 的系统,如 Winterfell 校验器/验证器库也很有用,特别是当通过 Giza 的工具实现时,它将开罗程序的轨迹作为输入,并使用 Winterfell 生成 STARK 证明以证明输出的正确性。

zkML 专用证明系统

为验证任意的计算轨迹而建立的验证系统。

在设计高效的证明系统方面已经取得了一些进展,该系统可以处理高级 ML 模型的复杂的、对电路不友好的操作。像 zkCNN 这样基于 GKR 证明系统的系统,或者像 Zator 这样使用组合技术的系统,往往比它们的通用对应系统更有性能,这一点在 Modulus 实验室的基准测试报告中得到证明。

zkCNN 是一种使用零知识证明 rollup 神经网络正确性的方法。它使用 sumcheck 协议来证明快速傅里叶变换和 rollup,其线性证明者时间比渐进地计算结果快。为交互式证明引入了一些改进和概括,包括验证 rollup 层、ReLU 激活函数和 max pooling. 鉴于 Modulus Labs 的基准测试报告,他们发现它在证明生成速度和 RAM 消耗方面都优于其他概括式证明系统,因此 zkCNN 特别有趣。

Zator 是一个旨在探索使用递归 SNARK 来验证深度神经网络的项目。目前验证深层模型的制约因素是将整个计算轨迹装入单个电路。Zator 建议使用递归 SNARK 一次验证一个层,它可以逐步验证 N 步重复计算。他们使用 Nova 将 N 个计算实例减少为一个单一的实例,可以以一个步骤的代价进行验证。通过这种方法,Zator 能够对一个有 512 层的网络进行 snark,这与目前大多数生产型人工智能模型的深度一样。Zator 的证明生成和验证时间对于主流用例来说仍然太大,但他们的合成技术还是很有趣。

zkML 用例

专门为验证 ML 模型的计算轨迹而建立的验证系统。

鉴于 zkML 的早期阶段,它的大部分重点是在上述基础设施上。然而,今天也有一些项目正在进行应用。

Modulus Labs 是 zkML 领域中最多样化的项目之一,既致力于实例应用,也致力于相关研究。在应用方面,Modulus Labs 已经通过 RockyBot——一个链上交易机器人——和 Leela vs. the World——一个象棋游戏,全人类与 Leela 象棋引擎的一个经过验证的链上实例对弈。该团队还涉足研究,撰写了 The Cost of Intelligence,对各种证明系统的速度和效率在不同的模型规模下进行了基准测试。

Worldcoin 正在应用 zkML,试图制定一个保护隐私的人格证明协议。世界币正在使用定制的硬件来处理高分辨率的虹膜扫描,这些扫描被插入到他们的 Semaphore 实现中。然后,这可以用来执行有用的操作,如成员证明和投票。他们目前使用带有安全飞地的可信运行环境来验证相机签名的虹膜扫描,但他们最终的目标是使用 ZKP 来证明神经网络的正确推断,以获得密码学级别的安全保证。

Giza 是一个协议,能够使用完全无信任的方法在链上部署 AI 模型。它使用的技术栈包括代表机器学习模型的 ONNX 格式,将这些模型转换为 Cairo 程序格式的 Giza Transpiler,以可验证和确定性方式执行模型的 ONNX Cairo Runtime,以及在链上部署和执行模型的 Giza Model 智能合约。虽然 Giza 也可以归入模型到证明的编译器类别,但他们作为 ML 模型的市场定位是当今更有趣的应用之一。

Gensyn 是一个用于训练 ML 模型的分布式硬件供应网络。具体来说,他们正在设计一个基于梯度下降的概率审计系统,并使用模型检查点,使去中心化的 GPU 网络能够为全尺寸模型的训练提供服务。虽然他们在这里的 zkML 应用对于他们的用例来说是非常具体的——他们想确保当一个节点下载和训练一块模型时,他们对模型的更新是诚实的——但它展示了 zk 和 ML 结合的力量。

ZKaptcha 专注于 Web3 中的机器人问题,为智能合约提供验证码服务。他们目前的实现是让终端用户通过完成验证码来产生一个人类工作的证明,这由他们的链上验证器验证,并由智能合约通过几行代码访问。今天,他们主要只依靠 zk,但他们打算在未来实现 zkML,类似于现有的 Web2 验证码服务,分析鼠标运动等行为,以确定用户是否为人类。

鉴于 zkML 市场是如此之早,很多应用已经在黑客松层面进行了实验。项目包括 AI Coliseum,这是一个使用 EZKL 构建的链上人工智能竞赛,使用 ZK 证明来验证机器学习的输出;Hunter z Hunter,这是一个使用 EZKL 库来验证图像分类模型的输出与 halo2 电路的照片寻宝游戏;zk Section 9,将人工智能图像生成模型转换成电路,用于铸造和验证 AI 艺术。

zkML 挑战

  • 以最小的精度损失进行量化
  • 电路尺寸,特别是当网络由许多层组成时
  • 矩阵乘法的高效证明
  • 对抗性攻击

虽然 zkML 仍处于早期发展阶段,但它已经开始显示出令人鼓舞的结果。随着技术的发展和成熟,我们可以期待看到 zkML 在链上的更多创新使用案例。

参考

https://news.marsbit.cc/20230512093546602770.html

https://news.marsbit.cc/20230524110640022187.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容