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

这篇具有很好参考价值的文章主要介绍了ZKML:区块链世界的AI+隐私。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 引言

本文主要参考:

  • 2023年6月drCathieSo.eth 与 Ethereum Malaysia 视频 ZKML: Verifiable & Privacy-Preserving Compute in Blockchain
  • 2023年6月drCathieSo.eth 与 PSE 视频 Folding Circom circuits: a ZKML case study - Dr. Cathie So

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):
ZKML:区块链世界的AI+隐私,零知识证明,零知识证明
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,主要针对的是机器学习推理证明,而不是模型训练证明:
ZKML:区块链世界的AI+隐私,零知识证明,零知识证明
有针对NN(Neural Network神经网络)的ZKP电路。
根据不同的应用场景,主要分为三大类:

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

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

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

  • EIP-7007: zkML AIGC-NFTs, an ERC-721 extension interface for zkML based AIGC-NFTs:Verifiable AI generated NFT。

开源代码实现见:

  • https://github.com/AIGC-NFT/implementation(Solidity + JavaScript)

其简化的工作流示意为:
ZKML:区块链世界的AI+隐私,零知识证明,零知识证明

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:私有的输入数据 和 公开的模型权重

私有的输入数据 和 公开的模型权重:私有的输入数据,可为想要隐藏的个人敏感数据。而公开的模型权重,对应用户信任的可验证模型。
ZKML:区块链世界的AI+隐私,零知识证明,零知识证明
可用于需要隐私的场景,如:

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

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

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

一个具体的应用案例为:

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

开源代码见:

  • https://github.com/socathie/ZKaggleV2(Solidity + JavaScript)

基本架构图为:
ZKML:区块链世界的AI+隐私,零知识证明,零知识证明

其中:

  • 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-ml 和 https://github.com/socathie/keras2circom:开源库,寻找贡献者ing。定位为:

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

4. 未来展望

4.1 ZKML方向PSE未来规划

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

  • ZKML Research Initiatives

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

  • 1)Benchmarking:
    • 1.1)quantization量化如何影响模型精度?即如何避免性能降级。
    • 1.2)证明时长、验证时长、所需内存量等等。
    • 1.3)类似工作有:Modulus Labs的《The Cost of Intelligence: Proving Machine Learning Inference with Zero-Knowledge》。
  • 2)ZK友好的机器学习:如:
    • 2.1)无权重神经网络:如https://github.com/zkp-gravity/0g-halo2(Rust):使用Halo2来做无权重神经网络推理证明。
    • 2.2)Boolean circuits:见[2023年4月twitter讨论]。(https://twitter.com/cronokirby/status/1642963522924711936)
    • 2.3)Binarized神经网络:见2016年论文《Binarized Neural Networks: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1》。
    • 2.4)Truth table net:见2023年论文《A Scalable, Interpretable, Verifiable & Differentiable Logic Gate Convolutional Neural Network Architecture From Truth Tables》。
    • 2.5)以及受全同态加密启发的机器学习方案等等。
  • 3)Folding using Nova/Sangria:使用Nova(基于R1CS约束系统nova-ml) 或 Sangria(基于PLONK约束系统) 来实现Recursive ZKML。如对大量图片应用同一模型。

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-ml、ezkl、keras2circom等开源库贡献。
    • 2.4)加入PSE research initiative。

4.3 有启发的ZKML应用

Modulus Labs发布了RockyBot——首个完全链上AI交易机器人。
ZKML:区块链世界的AI+隐私,零知识证明,零知识证明
Modulus Labs还发布了链上机器学习游戏 Leela Vs World Chess Game:
ZKML:区块链世界的AI+隐私,零知识证明,零知识证明

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文章来源地址https://www.toymoban.com/news/detail-610113.html

zkML系列博客

  • zkML零知识机器学习介绍
  • ZKML:ZK+机器学习

到了这里,关于ZKML:区块链世界的AI+隐私的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【区块链】以太坊L2扩容方案与零知识证明

    简要概述以太坊L2层现有解决方案 简要概述以太坊L2未来扩容的方向 简要概述零知识证明的基本概念和零知识证明在以太坊的运用 简要概述stark ware的两个产品,但并不推荐现有使用和研究 简要概述polygon zkEVM,推荐使用和研究 zk-SNARK 和 zk-STARK,是零知识证明底层技术。二者

    2024年02月08日
    浏览(35)
  • 区块链基础知识7-比特币挖矿原理/工作量证明

    在前面《区块链基础知识6-区块链记账原理》我们了解到记账是把交易记录、交易时间、账本序号、上一个Hash值等信息计算Hash打包的过程。 我们知道所有的计算和存贮是需要消耗计算机资源的,既然要付出成本,那节点为什么还要参与记账呢?在中本聪(比特币之父)的设

    2024年04月28日
    浏览(47)
  • 密码学证明方案寒武纪大爆发——扩容、透明性和隐私的变革潜力

    前序博客有: ZKP大爆炸 本文主要参考: StarkWare 2023年6月博客 Cambrian Explosion of Cryptographic Proofs----The transformative potential for scalability, transparency, and privacy 2023年3月Eli Ben-Sasson在The 13th BIU Winter School on Cryptography - Blockchain Technologies的分享视频 A Cambrian Explosion of Cryptographic Proofs - E

    2024年02月11日
    浏览(43)
  • 如何利用AI学习区块链知识,ChatGPT x Kapa.ai ⇒ 开发者的福音

    由OpenAI推出的人工智能聊天机器人ChatGPT在各大平台掀起了一阵狂热之风。发布仅四个月的时间,获得超一亿用户,成长速度远高于现今网络应用巨头脸书和Amazon。随着最新版本GPT-4的正式上线,其AI性能和完善程度再度提升,深受用户和开发者的青睐。 GPT-4是一种基于文本的

    2024年02月08日
    浏览(49)
  • 区块链项目 - 2 工作量证明

    我们在区块中添加一个属性Nonce来表示区块的生成难度,它是区块生成的一个重要条件,Nonce值越高,代表生成区块的难度越大,通过这种难度从而避免区块随意生成,工作量证明则是要完成这一系列难度区块生产所需要的工作量 /Users/xxx/go/src/publicChain/part5-Basic-Prototype/BLC/Bl

    2024年02月03日
    浏览(47)
  • ChatGPT4.0知识问答、DALL-E生成AI图片、Code Copilot辅助编程,打开新世界的大门

    支持在线修改和图片导出。走一个~ (1)画一个会飞的猪 (2)通过选择select,对会飞的猪进行润色 (3)画一个花色翅膀 (4)来一个难的,根据斗罗大陆的设定,添加一个十万年魂环,哈哈 我记得金色魂环是百万年的了,哈哈。不过还可以理解。 (5)根据斗罗大陆的设计

    2024年04月29日
    浏览(54)
  • 动手学区块链学习笔记(二):区块链以及工作量证明算法

    紧接上文,在介绍完区块链中的加密解密以及公钥私钥等算法后,本篇开始正式进入区块链概念与一个简单区块链系统的实现过程介绍。 什么是区块链? 区块链,就是一个又一个区块组成的链条。每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条。

    2024年01月17日
    浏览(50)
  • 【零知识证明】数独解的例子解释零知识证明

    2022年11月14日 in 中国科学院大学 如何证明数独有解?不能直接给出解(数据保护问题:数独题目存在价值)。 一、零知识证明方法: 承诺 将谜底卡片扣在桌子上,谜面卡片放在桌子上。(Alice不能查看) 随机挑战 链下互动:Bob让Alice用任意一种(行、列、宫格)方法检查,

    2024年02月02日
    浏览(50)
  • 零知识证明学习(三)—— 非交互式零知识证明(zkSNARKs)

    本节主要介绍一种新的零知识证明- z k S N A R K zkSNARK z k S N A R K , z k S N A R K : z e r o − k n o w l e d g e S u c c i n c t N o n − I n t e r a c t i v e A r g u m e n t s o f K n o w l e d g e zkSNARK:zero-knowledge Succinct Non-Interactive Arguments of Knowledge z k S N A R K : z e r o − k n o w l e d g e S u c c i n c t

    2024年01月20日
    浏览(61)
  • 简易区块链的搭建(2)——工作量证明

    1. big.Int 的一些常见方法和属性: SetInt64(x int64) :将一个 int64 类型的整数赋值给 big.Int 。 SetString(s string, base int) :将一个字符串表示的整数按照指定的进制转换为 big.Int 。 Add(x, y *big.Int) *big.Int :将两个 big.Int 相加,并返回结果。 Sub(x, y *big.Int) *big.Int :将一个 big.Int 减去另

    2024年04月25日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包