ZKML——EZKL团队分享

news2024/9/25 19:25:37

1. 引言

“ZKP之于数字签名” 类似于 “以太坊之于比特币”:

  • 所谓数字签名,是指:“我知道某秘密secrets,使得 F(secrets, public inputs)=pubic outputs”,其中F为fixed function(固定函数)。这是花费coin的原理。
  • 所谓ZKP,是指:“我知道某秘密secrets,使得 F(secrets, public inputs)=pubic outputs”,其中F为任意程序

当由关注链上计算转为关注链下计算时,置入到ZKP中最有趣的程序是机器学习模型,使得AI可在链上高效运行。

2. 为何需要ZKML?以及 何为ZKML?

2.1 为何需要ZKML?

AI在持续发展,但其不运行在链上。

链下ML/AI的特点为:

  • 中心化的
  • 需要信任
  • 需熟悉Python工作流
  • 有大量现有的模型库
  • 有大小公司助力

链上合约的特点为:

  • 去中心化的
  • 无需信任的
  • 可组合式的
  • 扩容性差的
  • 对AI/ML来说太慢且太贵

ZK的特点为:

  • 去中心化的
  • 无需信任的
  • 可组合式的
  • 可扩容的:单个机器证明
  • 有复杂的电路编写语言
  • 难以理解ZKP算法及其背后的数学和安全性。

而ZK + ML 结合:
在这里插入图片描述

2.2 何为ZKML?

所谓ZKML,是指:

  • 可从区块链视角来感知物理世界
  • 使得拥有数字资产的为人类,而不是某域元素
  • 让智能合约可自行判断

在这里插入图片描述

3. 何为EZKL?以及 EZKL通用流程

3.1 何为EZKL?

https://github.com/zkonduit/ezkl(Rust)为 将某ONNX模型(为Pytorch或Tensorflow的输出) 转换为 某零知识证明 的工具:

  • 可 以命令行(或二进制、合约、WASM)方式证明+验证。
  • 逐日增加layers,足以应对小型生产模型。
  • 逐月以2-8倍的速度改进性能。
  • 专注于feature完整性,然后是性能优化。
  • ZKP后端为Halo2。

在这里插入图片描述

在这里插入图片描述

3.2 EZKL通用流程

EZML通用流程为:
在这里插入图片描述
ZKML通用流程分为三大部分:

  • 1)输入授权内容
  • 2)运行机器学习模型(如文本模型图像分类)
  • 3)进行链上验证

3.2.1 授权内容

经证实的且可在zk-snark验证的内容来源有:

  • 1)Http:SXG、signed AMP、signed endpoints(Cloudflare one-click SXG, ngnix)。
  • 2)Email(DKIM):可参看博客 ZK Proof of Email:通往decentralized identity之路
  • 3)发行商的图像:C2PA,attested相机的图像。可参看博客:
    • ZKP+图片授权——PhotoProof:proofs of permissible photo edits
    • zk-IMG:对抗虚假信息
  • 4)第三方公证人(Lit、TLS Notary、Deco)

所有采用标准签名方案(ECDSA、RSA、Ed25519)的内容都可在zk-snark中 和(或) 链上验证。
需要一个类似https的推送来签署数据。

当前的内容授权计划成员(Content Authority Initiative Members)有:
在这里插入图片描述

3.2.2 运行机器学习模型

借助ONNX编译,Ontogeny recapitulates phylogeny路线图为:

  • 1)(从MNIST到Stable Diffusion)的AI历史中下载下一模型。
  • 2)解决任意模型大小或量化问题,实现任意新节点或gadgets。
  • 3)重复以上流程。

并辅以:

  • Optimization:优化性能。
  • Aggregation:将多个proof合并为一个proof,只需检查合并后的那个proof。会受限于内存,从而限制模型大小。
  • Recursion:在新的snark中验证前一snark proof,可为每个layer做不同的proof。会受限于内存,从而限制模型大小。
  • Fusion:对以python表示的机器学习模型 和 ZKP系统 进行融合。

3.2.3 链上验证

以太坊链上受限于预编译合约及gas开销,很多proof策略最终都基于BN128曲线。
在这里插入图片描述

4. ZKML为链的table stakes

ZKML可:

  • 1)向广大受众兑现区块链的promise将需要更强大但仍然是去中心化的身份解决方案。
    • 全身份解决方案已有几年的时间,但增长将很快。如基于abstraction account的ZKP。
  • 2)ZKML Oracles将更简单、快速、扩容性更强:
    • 可将任意链下数据 推到 链上
    • 打开消防水管获取链上数据
  • 3)ZKML模型为“智能裁判”,可理解歧义事件。

5. ZKML示例

ZKML可用于:

  • 1)ZK KYC
  • 2)预测市场
  • 3)智能合约的全面检查
  • 4)AI + DAO
  • 5)ZK + MPC:基因筛选
  • 6)ZKML + 差分隐私:人口普查
  • 7)ZK Vaults
  • 8)NPC-wars

5.1 ZK KYC

ZK KYC用于:

  • 证明人与id匹配,且该id未被制裁。
  • 监管机构不会接受KYC
  • 但可阻止tornado制裁

5.2 预测市场

ZKML用于预测市场,是指:

  • 采用小模型对文本进行分了
  • 构建某智能合约,若某新闻故事预测正确则获得相应的收入(如选举结果、飓风强度、covid变种等)。
  • 任何人都可下载已签名的故事,运行模型,并提交proof。

5.3 智能合约的全面检查

ZKML用于智能合约的全面检查,是指:

  • 对智能合约 或 abstracted account 的不正常行为 添加ZKML fraud/spam check。

5.4 AI + DAO

ZKML用于DAO,是指:

  • 将现有的人类判断、投票、使用多签签署,替换为,链上AI自动化,如合约履行。

5.5 ZK + MPC:基因筛选

ZK + MPC:基因筛选,是指:

  • 病人想要预测(如发生基因突变的概率),但想要匿名检查,可选择是否以及对谁公开。
  • 筛选模型基于可控数据训练,不对外公开。
  • 模型对模型owner来说是私有的,而数据对病人来说是私有的。
  • 模型owner 和 病人 可在MPC中证明推理,仅公开输出结果,且病人获得认证预测结果。

5.6 ZKML + 差分隐私:人口普查

ZKML + 差分隐私:人口普查,是指:

  • 1)定期将秘密真实数据的承诺值对外公开(不泄露任何信息)
  • 2)对于哪些客户端可免费做原型分析,服务端可创建differentially-private noisy marginal summary:
    • 客户端在本地迭代summary,选择模型M,并发送给data owner(即服务端)。
  • 3)服务端基于真实的全表数据,以ZK模式运行模型,将结果返回给客户端,并向客户端证明:
    • 3.1)真实数据与承诺值匹配;
    • 3.2)使用了该真实数据来创建的noisy marginal summary。
    • 3.3)当基于模型M运行真实数据时,其生成的即为所返回的结果。

5.7 ZK Vaults

ZK Vaults,是指:

  • 像Arrakis(锁仓量为4.6亿美金)协议,可选择:
    • trustless vaults:由预定义的0x…作为管理者,trustless vaults支持LP以无需信任且自动化的方式管理其流动性,与Curve V2方式类似。trustless vaults可为动态的或静态的。
    • managed vaults:由专业做市商以更成熟的策略链下运行,需信任该做市商。managed vaults使得LP可享受最先进的做市策略。
  • 引入ZK来实现:自动化、无需信任的成熟链下策略。
  • 公开策略(如看涨期权vaults、简单的投资组合)可为完全无需信任的,可供任何人运行的。
  • 或,管理者可对某策略进行承诺,在不泄露策略内容的情况下,避免rug pull/style drift。
  • 在对应某DeFi协议的某Uniswap V3 position manager中正在试点。

5.8)NPC-wars

https://github.com/omurovec/npc-wars(TypeScript + Solidity + Rust)为:

  • 允许用户在链上竞争各自AI模型的App。
  • 用户可通过EZKL API上传其onnx文件,EZKL会生成verifier字节码并返回供用户部署。然后用户可创建竞赛 或者 参与已有竞赛。
  • 为避免作弊,会确保用户部署完其verifier合约之后,才可提交竞争。
  • 当所有用户都参与之后,会提交正确结果的哈希值。
  • 所有用户都提交其答案以及相应proof。
  • 一旦所有人都提交了答案,winner可claim其stake。

参考资料

[1] 2022年11月Jason Morton在DevCon 6上分享 视频Zero Knowledge Machine Learning
[2] 2023年3月Jason Morton 分享视频 How to build and deploy on-chain AI/ML with zero-knowledge machine learning with Jason Morton

zkML系列博客

  • zkML零知识机器学习介绍
  • ZKML:ZK+机器学习
  • ZKML:区块链世界的AI+隐私
  • zk-IMG:对抗虚假信息
  • 制衡:机器学习和零知识证明

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

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

相关文章

【雕爷学编程】 MicroPython动手做(34)——通用传感器的综合运用

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…

71. 简化路径

题目链接:力扣 解题思路: 以 "/" 对路径字符串进行分割,得到分割后的数组split,那么数组中每个元素就是一级路径的名称对split进行遍历:使用一个队列deque保存最终的每一个目录 如果当前字符串是 "..&…

发明专利申请:不能包含文本框或自选图形 || 不能包含域对象(校验错误)

提交出错 解决方案:如果xml文件传上去没有反应,一定要优先把word转成pdf,不要去文本框中输入:里面的公式编辑器很老旧(很多公式编辑不了) 上传以后,总体预览没有问题就ok,前序穿文件…

【GitOps系列】如何实施自动化渐进式交付?

文章目录 前言自动渐进式交付概述自动渐进式交付准备创建生产环境创建 AnalysisTemplate访问生产环境安装Prometheus配置 Ingress-Nginx 和 ServiceMonitor验证 Ingress-Nginx 指标 自动渐进式交付实战自动渐进式交付成功自动渐进式交付失败 结语 前言 在实施金丝雀发布的过程中…

Golang之路---03 面向对象——反射

反射 反射的存在意义 在开发中,你或许会碰到在有些情况下,你需要获取一个对象的类型,属性及方法,而这个过程其实就是反射。 golang中变量包括(type, value)两部分 静态类型 所谓的静态类型(…

【智慧校园】智慧班牌云平台源码,使用springboot vue框架

【智慧校园】智慧班牌云平台源码,使用springboot vue框架 前后端分离架构 1、使用springboot vue框架 2、数据库MySQL5.7 3、移动端小程序使用小程序原生语言开发 4、电子班牌固件安卓7.1;使用Java Android原生 5、java,elmentui &…

四、Unity中颜色空间

Unity中的设置 通过点击菜单Edit->Project Settings->Player页签->Other Settings下的Rendering部分进行修改,参数Color Space可以选择Gamma或Linear。 当选择Gamma Space时,Unity不会做任何处理。当选择Linear Space时,引擎的渲染…

电测知识分享——三千字解读时钟电路最重要部件,建议收藏!

晶振作为时钟电路中最重要的部件,在电路中起着产生震荡频率的作用,可以产生高度稳定的信号,并稳定工作环境,为系统提供基本的时钟信号,在工业、科技、车载、数码、电子等多个领域几乎都有应用场景。 今天,…

MySQL binLog问题

看到数据库目录下有很多OFF.*文件的时候很诧异,这玩意是啥,binlog不应该都是*bin-log.*​的文件吗?* [roottest ~]# cd /data/mysql_data [roottest mysql_data]# ls ansible hap_attach_yl hap_func_yl hap_msg_yl h…

区块链媒体发稿:区块链媒体宣发常见问题解析

据统计,由于区块链应用和虚拟货币的兴起,越来越多媒体对区块链领域开展报导,特别是世界各国媒体宣发全是热火朝天。但是,随着推卸责任媒体宣发的五花八门,让很多人因而上当受骗,乃至伤害一大笔资产。身为投…

【TiDB理论知识08】HATP概述

1 HTAP技术 OLTP 在线事务 支付 转账 高并发 每次操作的数据量少 ,行存 OLAP 报表分析 每次操作大量数据 列存储 2 传统解决方案 数据抽取到数仓或者数据湖 ETL有延迟 ,一般会有T1 T2 数据多副本 3 HTAP的要求 4 TIDB的HTAP架构 TiFlash特点&…

IO进程线程day6(2023.8.3)

一、Xmind整理&#xff1a; 进程与线程关系&#xff1a; 二、课上练习&#xff1a; 练习1&#xff1a;pthread_create 功能&#xff1a;创建一个线程 原型&#xff1a; #include <pthread.h> int pthread_create(pthread_t *thread, const pthread_attr_t *attr, vo…

【新版系统架构补充】-七层模型

网络功能和分类 计算网络的功能 &#xff1a;数据通信、资源共享、管理集中化、实现分布式处理、负载均衡 网络性能指标&#xff1a;速率、带宽&#xff08;频带宽度或传送线路速率&#xff09;、吞吐量、时延、往返时间、利用率 网络非性能指标&#xff1a;费用、质量、标准化…

三、基本流程控制结构

3.1结构化程序设计 基本控制结构&#xff1a; 顺序结构选择结构循环结构 C语句&#xff1a; 说明语句控制语句函数调用语句表达式语句空语句复合语句 3.2选择结构语句 if语句&#xff1a; &#xff08;1&#xff09;单选条件语句 if(表达式) 语句 if(x>y) cout<&l…

Tomcat的介绍和安装配置、eclipse中动态web项目的创建和运行、使用IDEA创建web项目并运行

一、Tomcat的介绍和安装配置 安装tomcat&#xff1a; 环境变量的配置&#xff1a; 配置之后重启cmd&#xff0c;执行startup命令&#xff0c;启动tomcat 在localhost:8080&#xff0c;能进入tomcat主界面&#xff0c;说明配置成功 二、eclipse中动态web项目的创建和运行 tomca…

基于回溯算法实现八皇后问题

八皇后问题是一个经典的计算机科学问题&#xff0c;它的目标是将8个皇后放置在一个大小为88的棋盘上&#xff0c;使得每个皇后都不会攻击到其他的皇后。皇后可以攻击同一行、同一列和同一对角线上的棋子。 一、八皇后问题介绍 八皇后问题最早由国际西洋棋大师马克斯贝瑟尔在18…

王道《操作系统》学习(二)—— 进程管理(二)

2.1 处理机调度的概念、层次 2.1.1 调度的基本概念 2.1.2 调度的三个层次 &#xff08;1&#xff09;高级调度&#xff08;作业调度&#xff09; &#xff08;2&#xff09;中级调度&#xff08;内存调度&#xff09; 补充知识&#xff1a;进程的挂起状态和七状态模型 &#x…

Three.js室内场景

Three.js实现三维可视化室内场景 1.效果 2.安装 要安装three 的 npm 模块,请在你的项目文件夹里打开终端窗口,并运行: npm install three 或 yarn add three包将会被下载并安装。然后你就可以将它导入你的代码了: import * as THREE from three引入性能监视器: impor…

MySQL日志——错误日志、二进制日志

错误日志二进制日志查询日志慢查询日志 1.错误日志 查看日志位置&#xff1a; show variables like %log_error%查看错误日志&#xff1a; tail -f /var/log/mysql.log2.二进制日志 show variables like %log_bin%;cd /var/lib/mysql ll2.1 日志格式 查看日志格式指令&…

第9章 CSS-DOM

三位一体的网页 游览器由结构层&#xff0c;表现层&#xff0c;行为层组成 结构层 网页的结构层&#xff08;structural layer&#xff09;由HTML或XHTML之类的标记语言负责创建。 表现层 表示层&#xff08;presentation layer&#xff09;由CSS负责完成。CSS描述页面内容…