ZKML:区块链世界的AI+隐私

1. 引言

本文主要参考:

ZKML(Zero-Knowledge Machine Learning),本文内容主要分为三大块:

  • 1)背景知识:
    • ZKP介绍
    • 为何需要ZKML?
    • 什么是ZKML?
  • 2)当前现状:
    • ZKML现状
    • ZKML挑战
    • 现有ZKML库
  • 3)未来展望:
    • ZKML方向PSE未来规划
    • 从何处着手做ZKML
    • 有启发的ZKML应用
    • 头脑风暴

2. 背景知识

2.1 ZKP介绍

何为ZKP(Zero-Knowledge Proof):
在这里插入图片描述
ZKP具有4大属性:

  • 1)Completeness完备性:若Prover诚实,则最终将让Verifier信服。
  • 2)Soundness可靠性:当且仅当statement为true时,Prover才能让Verifier信服;若statement为false,则无法让Verifier信服。
  • 3)Zero-Knowledge零知识性:除了statement为true这个事实,不会向Verifier泄露额外信息。
  • 4)Succinctness简洁性:相比于底层计算,proof size要明显小很多。【简洁性,对于区块链场景来说,是一个尤其用用的属性。】

2.2 为何需要ZKML?

以太坊,被称为World Computer(世界计算机),当前期存在以下2大限制,可借助ZK(ML)来解决:

  • 1)以太坊具有有限的区块size和合约size:如当前合约size约为24KB,当做复杂逻辑时,需将拆分为多个合约。
    借助ZKP的第4个属性(简洁性),可将复杂的链下计算压缩为一个简洁证明,并在以太坊链上验证。应用案例有:L2 zkRollups等。
  • 2)以太坊交易是完全透明的。
    借助ZKP的第3个属性(零知识性):在保证隐私的前提下,证明拥有特定信息或数据。应用案例有:Tornado Cash、zkID等。

即,可借助ZK来证明拥有特定数据,如:

  • 知道某图片上 ( x , y ) (x,y) (x,y)坐标位置上的像素值为 z z z

不过这种data(或value) proving 应用相对来说意义不大,且仅借助ZK就够了,无需ZKML。借助机器学习,可证明与数据(data)关联的信息,如:

  • 某图片上有一只猫。

这样仅借助ZK就不够了,还需要某些机器学习模型或算法。因此就需要ZK+ML,来证明数据内容关联的信息。

2.3 什么是ZKML?

ZKML,主要针对的是机器学习推理证明,而不是模型训练证明:
在这里插入图片描述
有针对NN(Neural Network神经网络)的ZKP电路。
根据不同的应用场景,主要分为三大类:

  • 1)公开的输入数据 和 公开的模型权重,对应的输出也为公开的
  • 2)私有的输入数据 和 公开的模型权重
  • 3)公开的输入数据 和 私有的模型权重

2.3.1 ZKML:公开的输入数据 和 公开的模型权重

公开的输入数据 和 公开的模型权重,对应的输出也为公开的:借助ZKP的简洁性,可将整个机器学习模型压缩在单个solidity合约内。从而实现在链下进行机器学习,在链上进行验证。这与zkRollup类似,只不过此处链下进行的是机器学习推理计算,而不是L2交易计算。
在这里插入图片描述
最近的应用案例有:

开源代码实现见:

其简化的工作流示意为:
在这里插入图片描述

ZKML-AIGC-NFTs(兼容EIP7007,并做了Claimable扩展)中主要包含4大模块:

  • 1)ML Model机器学习模型:包含预训练模型的权重,根据推理输入,可生成输出。
  • 2)ZKML Prover:基于输入、输出以及推理任务,生成zk proof。
  • 3)AIGC-NFT智能合约:为兼容ERC7007的合约,具有全部ERC721功能。
  • 4)Verifier智能合约:实现了verify函数,根据推理任务以及zk proof,返回验证boolean结果。

关键点在于:

  • 用户在将prompt提交给ML Model之前,会先调用AIGC-NFT合约的claim接口(即用户先向以太坊发起一笔交易),来claim对该prompt的所有权。这样模型owner就仅能为用户上传aigc并mint NFT,而无法窃取所有权。

2.3.2 ZKML:私有的输入数据 和 公开的模型权重

私有的输入数据 和 公开的模型权重:私有的输入数据,可为想要隐藏的个人敏感数据。而公开的模型权重,对应用户信任的可验证模型。
在这里插入图片描述
可用于需要隐私的场景,如:

  • 智能合约钱包的生物特征认证:在合约内进行生物特征认证,而不是在设备端进行生物特征认证,从而实现trustless生物特征认证。公开的模型权重,对应为某知名的擅长识别指纹或人脸的模型。
  • 私有图像市场或私有数据市场:实现图像或数据的买卖。

2.3.3 ZKML:公开的输入数据 和 私有的模型权重

公开的输入数据 和 私有的模型权重:
在这里插入图片描述
应用案例,类似具有某专利模型的某(Web2)公司,证明其对每个人都采用了相同的模型。如,Twittter最近开源了其算法,但如何来确认其实际运行的是相同的算法——可在隐藏模型权重的情况下,对模型哈希值进行比较。

一个具体的应用案例为:

  • ZKaggle:为去中心化的bounty平台,用于主办、验证和支付bounty。与Kaggle类似,但是添加了隐私保护特性。
    解决了传统机器学习bounty平台的限制——为验证性能,要求公开整个模型。借助ZKP,使得开发者可用公开数据来验证私有模型。

开源代码见:

基本架构图为:
在这里插入图片描述

其中:

  • circomlib-ml:为易于理解的Circom库,包含了TensorFlow Kera中计算common layers的电路。
  • keras2circom:为用户友好的转换器,将用Python编写的ML模型转换为Circom电路。
  • pyTorch2circom:

3. 当前现状

3.1 ZKML现状

当前并没有ZKML相关产品,现阶段主要有:

  • ZKML黑客松
  • POC原型
  • 研究
  • 服务端ZKML:即Prover为具有数TB内存的大型机器,但是更多的应用场景在客户端(设备端)。

3.2 ZKML挑战

ZKML挑战主要在于:

  • 1)挑战一:机器学习与ZK电路内在数学不兼容:

    • ML模型采用浮点数权重:机器学习模型中的基础梯度演算中包含了大量的小数,性能好的模型通常使用(至少32bit的)浮点数权重。

    • ZK电路采用定点数运算:ZK电路中通常使用整数。

    • 需要量化:若想要在手机上做机器学习,工程师并不知道如何 使用量化来 将其模型转换为8-bit或16-bit模型。
      量化分为2方面:

      • 训练或预训练量化:这样量化模型不会丢失太多精度。
      • 后训练量化:即正常训练模型,尽量根据量化位数字来量化。这样会丢失更多的精度。

      当某些应用(如指纹识别)要求很高的精度时,这是一大挑战。不过现有的LLM(大语言模型)和 stable diffusion模型,量化时,性能降级并不明显。因此有Fackbook LLM的8-bit版本——LLaMA,可在笔记本上运行。原因在于这些大模型对量化更模糊。
      当需要更高的精度时——如分类场景,量化就是挑战了。

  • 2)挑战二:ZKML太太昂贵了:

    • 用ZK方式做机器学习,比只做机器学习,要贵约1000倍:如在GB级内存机器上做ML,则需要在TB级内存机器上做ZKML。
    • 借助Recursive ZKP?:可用于提升客户端ZKML性能。
    • 等待硬件加速技术的发展?:可用于提升服务端ZKML性能。

    需注意的是,不同于证明神经网络模型中的所有层,能否只证明某数据模型中的最后三层呢?——答案是肯定的,具体取决于应用场景。如证明某图像,可对该图像进行哈希,与此同时,将该图像输入到某模型并获得某结果,仅对模型的最后三层进行ZK证明,可能存在如下问题:

    • 在最后三层之前,可能篡改数据。
    • 可能泄露数据的某些细节。
  • 3)挑战三:现有投入不够。

    • 当前约有四五个项目致力于ZKML,以ZKML作为其商业目标:与TensorFlow和PyTorch的人员投入相比,远远不够。
    • 需将ML operation 定制化转换为 ZK template
    • 想法很多,但人手不够

3.3 现有ZKML库

现有ZKML库有:

  • 1)https://github.com/zkonduit/ezkl(Rust):ezkl为可做深度学习模型推理的库和命令行工具。将ML转换为ZK电路。基本工作流程为:

    • 1.1)使用常规PyTorch或Tensorflow来定义某computational graph。
    • 1.2)将最终的operation graph导出为.onnx文件,将某些sample输入导出为.json文件。
    • 1.3)使用ezkl来处理.onnx和.json文件,以生成相应的ZK电路(当前为Halo2电路)。

    ezkl 近期增加了Python bindings,可在不安装Rust的情况下,直接在Python环境下运行 。

  • 2)https://github.com/ddkang/zkml:以ZK方式构建机器学习模型执行证明的框架。亮点为:

    • 2.1)致力于解决模型训练的ZKML
    • 2.2)致力于如GPT2、Bert和Diffusion模型
    • 2.3)与Daniel Kang的论文配套
  • 3)https://github.com/socathie/circomlib-mlhttps://github.com/socathie/keras2circom:开源库,寻找贡献者ing。定位为:

    • 机器学习的Circom电路库。
    • Python工具:将tf.keras模型移植到某circom电路中。

4. 未来展望

4.1 ZKML方向PSE未来规划

当前PSE在ZKML方向的规划见:

具体规划主要分为3大方向:

4.2 从何处着手做ZKML

不同的技术或知识背景,可采用不同的方式来着手做ZKML:

  • 1)若具有机器学习背景,可 :

    • 1.1)玩转 ezkl(Rust)库,将某些现有模型转换为ZK电路并证明。
    • 1.2)构建ZKML应用,如algo trading算法交易、指纹识别等。
  • 2)若具有ZK背景,可:

    • 2.1)学习Circom、Halo2、Nova
    • 2.2)帮助ML工程师将其模型转换为ZK版本
    • 2.3)为 circomlib-mlezklkeras2circom等开源库贡献。
    • 2.4)加入PSE research initiative。

4.3 有启发的ZKML应用

Modulus Labs发布了RockyBot——首个完全链上AI交易机器人。
在这里插入图片描述
Modulus Labs还发布了链上机器学习游戏 Leela Vs World Chess Game
在这里插入图片描述

4.4 头脑风暴

具体见2023年6月drCathieSo.eth 视频 ZKML: Verifiable & Privacy-Preserving Compute in Blockchain 最后半小时讨论。

参考资料

[1] 2023年6月PSE视频 ZKML: Verifiable & Privacy-Preserving Compute in Blockchain
[2] Zero Knowledge Proofs : What exactly are they?
[3] drCathieSo.eth 2023年3月hackmd ZKML: Bridging AI/ML and Web3 with Zero-Knowledge Proofs
[4] zkML: Demo for circomlib-ml on Goerli testnet
[5] drCathieSo.eth 2023年5月hackmd ZKML Research Initiatives
[6] Modulus Labs团队2023年3月博客 Chapter 6: The World’s 1st On-Chain AI Game

zkML系列博客

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在现有省、市港口信息化系统进行有效整合基础上,借鉴新 一代的感知-传输-应用技术体系,实现对码头、船舶、货物、重 大危险源、危险货物装卸过程、航管航运等管理要素的全面感知、 有效传输和按需定制服务,为行政管理人员和相关单位及人员提 供高效的管理辅助,并为公众提供便捷、实时的水运信息服务。 建立信息整合、交换和共享机制,建立健全信息化管理支撑 体系,以及相关标准规范和安全保障体系;按照“绿色循环低碳” 交通的要求,搭建高效、弹性、高可扩展性的基于虚拟技术的信 息基础设施,支撑信息平台低成本运行,实现电子政务建设和服务模式的转变。 实现以感知港口、感知船舶、感知货物为手段,以港航智能 分析、科学决策、高效服务为目的和核心理念,构建“智慧港口”的发展体系。 结合“智慧港口”相关业务工作特点及信息化现状的实际情况,本项目具体建设目标为: 一张图(即GIS 地理信息服务平台) 在建设岸线、港口、港区、码头、泊位等港口主要基础资源图层上,建设GIS 地理信息服务平台,在此基础上依次接入和叠加规划建设、经营、安全、航管等相关业务应用专题数据,并叠 加动态数据,如 AIS/GPS/移动平台数据,逐步建成航运管理处 "一张图"。系统支持扩展框架,方便未来更多应用资源的逐步整合。 现场执法监管系统 基于港口(航管)执法基地建设规划,依托统一的执法区域 管理和数字化监控平台,通过加强对辖区内的监控,结合移动平 台,形成完整的多维路径和信息追踪,真正做到问题能发现、事态能控制、突发问题能解决。 运行监测和辅助决策系统 对区域港口与航运业务日常所需填报及监测的数据经过科 学归纳及分析,采用统一平台,消除重复的填报数据,进行企业 输入和自动录入,并进行系统智能判断,避免填入错误的数据, 输入的数据经过智能组合,自动生成各业务部门所需的数据报 表,包括字段、格式,都可以根据需要进行定制,同时满足扩展 性需要,当有新的业务监测数据表需要产生时,系统将分析新的 需求,将所需字段融合进入日常监测和决策辅助平台的统一平台中,并生成新的所需业务数据监测及决策表。 综合指挥调度系统 建设以港航应急指挥中心为枢纽,以各级管理部门和经营港 口企业为节点,快速调度、信息共享的通信网络,满足应急处置中所需要的信息采集、指挥调度和过程监控等通信保障任务。 设计思路 根据项目的建设目标和“智慧港口”信息化平台的总体框架、 设计思路、建设内容及保障措施,围绕业务协同、信息共享,充 分考虑各航运(港政)管理处内部管理的需求,平台采用“全面 整合、重点补充、突出共享、逐步完善”策略,加强重点区域或 运输通道交通基础设施、运载装备、运行环境的监测监控,完善 运行协调、应急处置通信手段,促进跨区域、跨部门信息共享和业务协同。 以“统筹协调、综合监管”为目标,以提供综合、动态、实 时、准确、实用的安全畅通和应急数据共享为核心,围绕“保畅通、抓安全、促应急"等实际需求来建设智慧港口信息化平台。 系统充分整合和利用航运管理处现有相关信息资源,以地理 信息技术、网络视频技术、互联网技术、移动通信技术、云计算 技术为支撑,结合航运管理处专网与行业数据交换平台,构建航 运管理处与各部门之间智慧、畅通、安全、高效、绿色低碳的智 慧港口信息化平台。 系统充分考虑航运管理处安全法规及安全职责今后的变化 与发展趋势,应用目前主流的、成熟的应用技术,内联外引,优势互补,使系统建设具备良好的开放性、扩展性、可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值