zkML零知识机器学习介绍

news2024/11/25 20:17:55

1. 引言

零知识证明技术的2大基石为:

  • 1)succinctness:相比于直接运行整个计算本身,验证该计算完整性证明要简单很多。
  • 2)zero-knowledge:可在不泄露计算隐私的情况下,证明计算的完整性。

生成零知识证明是计算密集的,相比于直接计算其本身要昂贵很多倍。因此,存在某些无法生成零知识证明的计算,因为即使在最好的硬件上也无法实用地创建证明。但是,随着密码学领域的发展,近些年的硬件和分布式系统使得为某些更密集计算的创建零知识证明成为可能。使得可创建一些协议来为密集计算生成证明,从而扩展出新的应用领域。

2. zk用例

零知识密码学是当前Web3空间最流行的技术之一,开发者可利用零知识密码学来构建扩容应用和(或)隐私应用。

具体的zk用例有:

  • 1)使用zkRollups来扩容以太坊:类似公链这样的分布式系统具有有限的算力,因为所有参与节点(计算机)需自己运行并验证每个区块内的计算。使用zk proof可在链下执行这些交易,计算出一个zk proof,并在链上验证该proof,从而在不牺牲去中心化或安全性的前提下,实现扩容。具体的zkRollup扩容方案有:

    • Starknet
    • Scroll
    • Polygon Zero, Polygon Miden,Polygon zkEVM
    • zkSync
  • 2)构建隐私保护应用:zk proof的零知识属性,使得可隐藏待证明计算的某些部分,这有助于创建保护用户隐私和个人数据的引用。具体的隐私保护应用有:

    • Semaphore:
    • MACI:
    • Penumbra:
    • Aztec Network:为以太坊的隐私zkRollup扩容方案,其中的用户余额以及交易对任意外部观察者是完全隐藏的。
  • 3)身份原语和数据治理:

    • WorldID:Worldcoin正在构建WorldID,为隐私保护proof-of-personhood协议。支持任何具有WorldID的用户,在不泄露其具体身份的情况下,以密码学方式证明其是唯一地人类且之前未做某个行为(类似社交网络的注册)。
    • Sismo:
    • Clique:
    • Axiom:
  • 4)Layer 1协议:由于zk proof可帮助转移计算,并是计算隐私,从而支持创建隐私和(或)简洁(size小且易于验证)的layer 1,如:

    • Zcash
    • Mina

3. zkML的动机和当前的努力

机器学习是人工智能的一个子领域,涉及算法的开发和应用,使计算机能够自主学习和适应数据,并通过迭代过程优化其性能。GPT-4和Bard等大型语言模型是最先进的自然语言处理系统,它们利用大量的训练数据生成类人文本,而DALL-E 2、Midtravel和Stable Diffusion等文本到图像模型则以惊人的保真度将文本描述转换为视觉表示。机器学习技术的快速发展,通过利用数据驱动的见解和预测来改善决策和优化结果,在应对包括医疗保健、金融和交通在内的各个领域的复杂挑战方面具有重要前景。随着这些模型变得越来越复杂,它们将彻底改变许多行业,改变我们的生活、工作方式以及与技术的互动方式。

在一个人工智能生成的内容越来越类似于人类创建的内容的世界里,零知识密码学的潜在应用可以帮助我们确定特定的内容是通过将特定的模型应用于给定的输入而生成的。这可以提供一种方法来验证来自大型语言模型(如GPT4)、文本到图像模型(如DALL-E2)或任何其他模型的输出,如果为它们创建了零知识电路表示的话。这些证明的零知识特性允许我们在需要时也隐藏部分输入或模型。一个很好的例子是在一些敏感数据上应用机器学习模型,用户可以在不向任何第三方(例如医疗行业)透露其输入的情况下知道对其数据的模型推理结果。

注意:当我们谈论zkML时,我们谈论的是创建ML模型推理步骤的零知识证明,而不是ML模型训练(这本身就已经是计算密集型的)。

零知识系统与高性能硬件相结合的当前技术水平仍差几个数量级,无法证明像当前可用的大型语言模型(“LLM”)这样大的东西,但在创建较小模型的证明方面已经取得了一些进展。

开源社区现有的zkML资源见:

  • https://github.com/zkml-community/awesome-zkml

Modulus Labs团队最新名为“The Cost of Intelligence”的论文中,基于大量不同size的模型,对现有ZK证明系统进行了benchmark。使用类似plonky2证明系统,在强大的AWS机器上,当前可为 有约1800万个参数的模型在50秒左右生成证明。下图展示了随着神经网络中参数的增加,不同证明系统的性能扩展:
在这里插入图片描述
另一个致力于改进zkML系统最新技术的举措是Zkonduit的ezkl库,ezkl支持为使用ONNX导出的ML模型创建zk证明。这使得任何ML工程师都能够创建其模型的推理步骤的zk证明,并向任何verifier证明输出。

有几个团队致力于改进zk技术,创建优化的硬件来加快zk证明的计算,特别是对于资源密集型任务,如prover和verifier算法。随着zk技术的成熟,由于专用硬件、证明系统架构(证明大小、验证时间、证明生成时间等)和更高性能的zk协议实现的改进,将有可能在较小的时间内在功能较弱的机器上证明更大的模型。期望这些进步将允许出现新的zkML应用程序和用例。

4. zkML用例

为了决定zkML是否可以用于给定的应用程序,我们可以检查zk密码学的属性如何帮助启用某些用例。可以用维恩图来说明:
在这里插入图片描述

  • Heuristic optimization
  • Fully Homomorphic Encryption
  • ZK proofs vs. Validity proofs:
  • Validity ML
  • ZKML
  • Computational integrity (validity ML)
  • ML as a Service (MLaaS) transparency
  • ZK anomaly/fraud detection
  • Privacy (ZKML)

参考资料

[1] Worldcoin 2023年2月23日博客 An introduction to zero-knowledge machine learning (ZKML)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/651731.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java入门】-- Java基础详解之 [数组、冒泡排序]

目录 1.为什么需要数组? 2.数组的介绍 3.数组的快速入门 4.数组的使用 5.动态初始化 6.静态初始化 7.数组的细节 8.数组的赋值机制 9.数组拷贝 10.数组反转 11.二维数组 12.冒泡排序 1.为什么需要数组? 有五个学生,他们英语成绩…

探索不同学习率对训练精度和Loss的影响

验证精度、验证Loss的影响 1 问题 在探索mnist数据集过程中,学习率的不同,对我们的实验结果,各种参数数值的改变有何变化,有何不同。 学习率对精度和损失的影响研究。训练周期100学习率 [0.1, 0.01, 0.001, 0.0001](1) 不同学习率…

蓝牙网关Gateway_数据采集,连接控制,室内定位VDB2602

蓝牙网关,内部集成了WiFi、蓝牙、4G等多种无线通信方式,因此也继承了蓝牙、WiFi的有扫描功能、连接功能、数据透传功能,被应用于智能家居的各种场景中,例如:远程控制BLE装置,接收BLE设备发送的数据&#xf…

线程的创建和使用(一)

1、线程 1.1、线程的概念 一个线程就是一个 "执行流". 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 "同时" 执行着多份代码. 1.2、创建线程 方法一:继承Thread类 public class Exe_01 {public static void main(String[] args…

pandas与pyspark计算效率对比

日常工作中,主要还是应用HQL和SparkSQL,数据量大,分布式计算很快; 本地数据处理,一般会使用python的pandas包,api丰富,写法比较简单,但只能利用单核性能跑数,数据量大可…

【MySQL入门】-- 数据库简单的SELECT语句详解

目录 1.SQL分类 2.注释 3.数据导入指令 4.基本的SELECT语句 5.列的别名 6.去重复行 7.显示表结构 8.一些数据库基本操作 1.SQL分类 SQL语言在功能上主要分为三大类: DDL(Data Defintion Language)数据定义语言:定义不同的数据库,表…

【C#】并行编程实战:任务并行性(中)

本章继续介绍任务并行性,因篇幅所限,本章为中篇。 4、取消任务 .NET Framework 提供了以下两个类来支持任务取消: CancellationTokenSource :此类负责创建取消令牌,并将取消请求传递给通过源创建的所有令牌。 Cancell…

关于xinput1_3.dll丢失的详细解决方法

xinput1_3.dll是电脑文件中的dll文件(动态链接库文件)。如果计算机中丢失了某个dll文件,可能会导致某些软件和游戏等程序无法正常启动运行,并且导致电脑系统弹窗报错。 在我们打开软件或者游戏的时候,电脑提示xinput1_…

8、共享模型之工具

目录 8.1 线程池2、ThreadPoolExecutor(及其重要)1) 线程池状态2) 构造方法3) newFixedThreadPool4) newCachedThreadPool5) newSingleThreadExecutor6) 提交任务7) 关闭线程池8) 任务调度线程池 8.1 线程池 2、ThreadPoolExecutor(及其重要…

中国电子学会2023年05月份青少年软件编程Python等级考试试卷六级真题(含答案)

2023-05 Python六级真题 分数:100 题数:38 测试时长:60min 一、单选题(共25题,共50分) 1. 明明每天坚持背英语单词,他建立了英语单词错题本文件“mistakes.txt”,将每天记错的单词增加到该文件中&…

DuiLib的编译和运行

文章目录 1、原生DuiLib的编译和运行1.1、下载并解压成这个样子1.2、打开.sln解决方案文件1.3、编译成功 2、网易DuiLib编译和运行2.1、下载并解压成这个样子2.2、打开.sln解决方案文件2.3、编译成功 3、腾讯DuiLib编译和运行vs 20173.1、下载并解压成这个样子3.2、打开.sln解决…

使用 Node.js、K8s 和分布式 SQL 构建世界上最具弹性的待办事项列表应用程序

本文演示了如何使用 Kubernetes (K8s) 和分布式 SQL 构建云原生 Node.js 应用程序。 开发可扩展且可靠的应用程序是一项热爱的工作。一个云原生系统可能包括单元测试、集成测试、构建测试,以及用于构建和部署应用程序的完整管道,只需单击一个按钮即可。 …

【计算机网络】第二章应用层-电子科技大学2023期末考试

第二章 应用层 应用层协议原理 网络应用程序体系结构 客户机/服务器体系结构:至少有一个服务器,一个客户机,其中服务器总是打开的,具有固定的众所周知的IP地址,主机群集常被用于创建强大的虚拟服务器,而客…

【Trino实战】Trino下ORC与Parquet查询性能分析

Trino下ORC与Parquet查询性能分析 环境 OS:CentOS 6.5 JDK:1.8 内存:256G 磁盘:HDD CPU:Dual 8-core Intel Xeon CPU (32 Hyper-Threads) E5-2630 v3 2.40GHz HDFS:2.9.2 Hive:2.3.9 T…

[n00bzCTF 2023] CPR 全

Crypto AES 给了java的加密原码,AES加密,有key import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.SecretKeySpec; import java.n…

arima模型原理及实战

目录 1,概念 2,数学知识 3,前提条件 4,序列不平稳时的平稳性方法 5,模型定阶,确定P和Q 6,模型训练与检验 1,概念 ARIMA模型(英语:Autoregressive Integr…

grep及文本处理命令

正则表达式 一.基础命令 1.grep命令 对文本的内容进行过滤,针对行处理 1.1grep格式 grep [选项]…查找条件 目标文件 1.2grep命令选项 -m数字——————匹配几次后停止eg:grep -m 1 root /etc/passwd————————————多个匹配只取 -v …

【编程语言 · C语言 · 递归函数】

递归函数 C 语言的函数都支持递归, 也就是说,每个函数都可以直接或者间接第调用自己。所谓的间接调用,是指在递归函数调用的下层函数中再调用自己。 递归关系图如下: 递归之所以能实现,是因为函数的每个执行过程在栈中都有自己的…

深入理解 SpringBoot 日志框架:从入门到高级应用——(三)Logback 输出日志到 MySQL 数据库

文章目录 添加依赖导入 SQL 文件配置 logback-spring.xml运行结果 Logback 是一个开源的日志框架,它支持多种日志输出方式,包括控制台输出、文件输出、邮件输出等。如果要将 Logback 输出的日志保存到 MySQL 数据库中,可以按照以下步骤进行配…

Tapd在研发团队中的使用技巧-持续更新ing

1.TAPD第三方服务集成能力,支持与代码仓库、流水线进行了深度打通,力求为开发团队提供流畅高效的使用体验。我们梳理了一份攻略,掌握下面几个小技能,让TAPD与代码仓库、流水线一起,成为研发团队的得力助手,…