ZKML:将AI和区块链融合,实现隐私保护的模型部署技术

火热的ZKML到底是什么?

撰文: Maggie,Foresight Research

ZKML(Zero knowledge machine learning)是将零知识证明用于机器学习的技术ZKML是AI和区块链的桥梁。ZKML可以解决AI模型/输入的隐私保护问题推理过程可验证的问题,从而使小模型或者推理的ZKP能上链。模型/推理证明上链的意义在于:

  • 让区块链能感知物理世界。比如:一个运行在区块链上的人脸识别模型就可以为区块链感知人脸,通过链上AI模型区块链能理解这个人脸可能是一个女性、大约多大年龄等。

  • 智能合约能做决策。比如:链上的WETH价格预测模型,就可以帮助智能合约做交易决策。

  • 保护隐私地运行AI模型。比如:企业花费了大量算力训练了一个模型,希望可以以保护隐私的方式对外提供推理服务,或者用户的输入希望保证隐私。用ZKML既能保证模型/输入隐私,又可以向使用者证明推理是正确进行的,实现无信任推理

ZKML的应用

  • 链上AI:将AI模型/AI推理证明上链,让智能合约能使用AI来进行决策。比如链上交易系统,用于链上投资决策。

  • 自我提高的区块链:让区块链能用上AI的能力,根据历史数据不断提高和修正策略。比如基于AI的链上声誉系统。

  • AIGC上链:AIGC生成的内容/艺术品,上链Mint成NFT,ZK可以证明过程的正确性,数据集中没有使用受版权保护的图像等。

  • 钱包的生物认证(KYC:人脸识别的证明上链,钱包完成KYC。

  • AI安全:用AI做欺诈检测,女巫攻击预防等。

  • 链上ZKML游戏:链上人工智能象棋棋手、神经网络驱动的NFT角色等。

ZKML技术上

  • 目标:将神经网络转化成ZK电路,难点:1. ZK电路不支持浮点数、2.规模太大的神经网络难以转换。

  • 当前进展最早的ZKML库是2年前,整个技术的发展历史很短。目前,最新的ZKML库支持一些简单的神经网络ZK化,并应用在区块链上。据称能将基础的线性回归模型上链,其它各类小一点的神经网络模型,都能支持证明上链。但看到的Demo很少,只看到一个手写数字识别的。有的工具据称能支持100M的参数,还有的声称可以将GPT2转成ZK电路,生成ZK证明。

  • 发展方向Network Quantization(网络量化),将神经网络中的浮点数转为定点数,并轻量化神经网络(ZK友好)。尝试将大规模参数的神经网络转成ZK电路,并提高证明效率(扩大ZK能力)。

总结

ZKML是AI和区块链的桥梁,它的意义在于能让区块链能感知物理世界、让智能合约能做决策、保护隐私地运行AI模型是一个很有前景的技术。

这个技术的历史很短却发展很快,目前已经能将一些简单的神经网络模型转化成ZK电路,可以做模型的上链或推理证明上链了。但语言相对困难,目前Ddkang/zkml声称可以生成ZK版的GPT2,Bert and Diffusion自然语言处理模型,但不清楚实际效果,能跑但可能无法上链。相信随着网络量技术、ZK技术、区块链扩容技术的发展,语言模型的ZKML也快会变得可用

1. 背景

(如果您对ZK、ML有所了解,您可以跳过这一章)。

零知识证明(ZK):零知识证明指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。ZK主要用来证明计算过程是正确执行的和保护隐私。

证明计算过程的正确性:以为ZK-rollup举例,ZK-rollup 的运作简单来说是将多笔交易打包在一起,发布到L1 上,同时发布一个证明(用零知识证明技术)来声称这些交易有效,一旦在L1 上验证确实有效,那么zk-rollup 的状态就会更新。

隐私保护:以Aztec协议举例,Aztec的zk.money上的资产是票据形式存在的,类似比特币的UTXO,票据的金额是加密的,当用户需要转账时,需要销毁票据并创建新的票据给收款方以及自己(找零)。零知识证明用于保护隐私地证明销毁和新建的票据金额相同,且用户拥有票据的支配权。

机器学习机器学习是人工智能的一个分支。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学习算法一类从资料中自动分析获得规律,并利用规律对未知资料进行预测。机器学习已广泛应用于计算机视觉、自然语言处理、生物特征辨识、搜寻引擎、医学诊断、检测信用卡诈骗、证券市场分析、DNA序列定序、语音和手写辨识、游戏和机器人等领域。

2. ZKML解决什么问题?

ZKML是近两年在密码学界引起轰动的一个研究和开发领域。将零知识证明用于机器学习, 这个技术主要目标是用零知识证明解决机器学习的隐私保护及可验证问题。从而使小模型或者推理的ZKP能上链,成为AI和区块链的桥梁:

  • 模型上链:可以将ML模型转成ZK电路,将小的ZKML模型存储到区块链的智能合约内。用户可以通过调用智能合约方法来使用模型。比如,Modulus Labs的RockyBot就做了一个链上的AI模型,预测WETH的价格,用于交易决策。

  • 模型的推理证明等上链:将ML模型转成ZK电路,在链下进行推理,并生成ZK证明。ZK证明可以证明推理过程是正确执行的。推理结果和ZK proof提交到链上,供调用者参考和智能合约验证proof。

模型/推理证明上链有什么意义?

  • 让区块链能感知物理世界。比如:一个运行在区块链上的人脸识别模型就可以为区块链感知人脸,通过链上AI模型区块链能理解这个人脸可能是一个女性、大约多大年龄等。

  • 智能合约能做决策。比如:链上的WETH价格预测模型,就可以帮助智能合约做交易决策。

  • 保护隐私地运行AI模型。比如:企业花费了大量算力训练了一个模型,希望可以以保护隐私的方式对外提供推理服务,或者用户的输入希望保证隐私。用ZKML既能保证模型/输入隐私,又可以向使用者证明推理是正确进行的,实现无信任推理

零知识证明证明在ZKML中的作用

1.隐私保护:保护ML模型或预测过程中输入数据的隐私。

  • 数据隐私(Public Model + Private Data):我有一些敏感数据,比如,医疗数据,人脸图像等。我可以使用ZKML对输入数据进行隐私保护,在这些数据上运行公开的神经网络模型,得到结果。比如人脸识别模型,

  • 模型隐私(Private Model + Public Data):举例,我耗费大量成本训练出来的模型,我不想暴露我的模型,因此要对模型进行隐私保护。我可以用ZKML,运行一个保护隐私的私有的神经网络模型,这个模型可以对公共输入进行推理得到输出。

2.可验证性:用ZKP来证明ML推理过程的正确执行,使得机器学习的过程具备可验证性。

  • 假如,模型的执行不在我的服务器上,但我需要保证推测是正确执行的。我可以用ZKML对某个输入和模型进行一次推理,它产生了输出,ZKP能证明这个过程是正确执行的,即便运行过程并不在我的电脑上,我也通过验证ZKP来知道推理是否是正确执行的,从而相信这个结果。

3. ZKML的用例

  • 计算完整性

    • 链上AI(On-chain AI):将AI模型部署在区块链上,使得智能合约能通过AI模型具备决策能力。

      • Modulus Labs:RockyBot On-chain verifiable ML trading bot(区块链上可验证的机器学习交易机器人)

    • 自我提高的区块链:让区块链能用上AI的能力,根据历史数据不断提高和修正策略。

      • 通过人工智能增强Lyra finance的AMM。

      • 为Astraly创建基于AI的声誉系统。

      • 为Aztec协议创建智能合约级别的基于AI的合规功能

      • Modulus Labs:Blockchains that self-improve (link):

    • AIGC上链:AIGC生成的内容/艺术品,上链Mint成NFT,ZK可以证明过程的正确性,数据集中没有使用受版权保护的图像等。

    • ML as a Service (MLaaS) transparency (link)

    • AI安全:用AI做欺诈检测,女巫攻击预防等。根据智能合约数据训练AI异常检测模型,指标异常则暂停合约,用ZK做异常检测证明上链。

    • 链上ZKML游戏:链上人工智能象棋棋手、神经网络驱动的NFT角色等。

    • 可验证的AI模型基准测试:用ZK来提供模型的基准测试证明,对于模型的性能和效果的测试结果提供可验证性。

    • 模型训练的正确性证明:由于模型训练是很耗费资源的,用ZK来做模型训练的正确性证明目前并不可用,但很多人认为技术是可行的,并且试图希望使用ZK来证明模型使用了某个数据/没使用某个数据,以解决AIGC的版权问题。

  • 隐私保护

    • 钱包的生物认证/数字身份

      • WordCoin正通过生物识别设备 Orb 扫描虹膜,为用户提供唯一可验证的数字身份。WorldCoin正在研究zkml, 计划用来升级World ID. 升级后,用户将能够在其移动设备的加密存储中自主保管其签名生物特征,下载虹膜代码生成的ML模型,并在本地创建零知识证明,证明其虹膜代码确实是使用正确的模型从签名图像生成的。

    • 基于区块链的机器学习赏金平台

      • 公司发布悬赏,并提供公开数据和私有数据。公开数据用来训练模型,私有数据用来预测。一些AI服务方将模型训练出来,并转成ZK电路。加密模型并提交到合约里验证。针对私有数据,进行预测,得到结果,并生成ZK证明,ZK证明提交到合约进行验证。AI服务方完成一系列操作后获得赏金。zkML: Demo for circomlib-ml on Goerli testnet

    • 隐私保护的推理:比如,将私人患者数据用于医学诊断,然后将敏感推断结果(如癌症检测结果)发送给患者。(vCNN paper, page 2/16)

4. ZKML的版图

由SevenX Ventures整理的ZKML版图来看。

  • 硬件加速:多家机构正积极研发ZKP的硬件加速,这也利于ZKML的发展。一般通过FPGA、GPU以及ASIC芯片来加速ZKP的生成。比如:Accseal正在为研发ZKP硬件加速的ASIC芯片、Ingonyama在建立一个ZK加速库ICIClE,是为支持CUDA的GPU设计的。Supranational专注于GPU加速,Cysic和Ulvetanna专注于FPGA加速。

  • 输入:要使用链上数据输入,Axiom, Herodotus, Hyper Oracle, Lagrange将改善用户对区块链数据的访问并提供更复杂的链上数据视图。然后可以从导入的历史数据中提取 ML 输入数据

  • 推理:ModulusLabs 正在开发专门用于 ZKML 的新 zkSNARK 系统。这部分可以和ZKML工具集部分合并,主要是在做模型的ZK化,以及ZK化过程中需要的工具集。Giza 是一个基于StarkNet 的机器学习平台专注于完全链上模型部署扩展。

  • 计算:专注于构建去中心化计算网络,用于训练每个人都可以访问的 AI 模型。它们允许人们以更低的成本使用边缘计算资源来训练 AI 模型。

  • 去中心化训练/算力:专注于构建去中心化计算网络,用于训练每个人都可以访问的 AI 模型。它们允许人们以更低的成本使用边缘计算资源来训练 AI 模型。

  • ZKML工具集:参见第五章技术发展历史。图中的ZAMA主要用全同态加密(FHE)做机器学习的隐私保护,FHEML与ZKML相比,只做隐私不做无信任验证。

  • 用例:Worldcoin, 用ZKML来做数字身份的身份认证。用户设备中加密保管自己的签名的生物特征,ZK化虹膜识别的机器学习模型,在做身份识别的时候运行模型,验证生物特征是否匹配。用ZKP证明运行过程的正确性。Modulars Labs做链上AI交易机器人。Cathie的EIP7007,zkML AIGC-NFT标准。链上人工智能象棋棋手、神经网络驱动的NFT角色等。

5. ZKML的技术发展历史

将神经网络转成ZK电路的主要挑战在于:

  • 电路需要定点数的运算,但神经网络中大量使用到了浮点数。

  • 模型大小的问题,大模型的转化难度大且电路大。

ZKML库的发展历程如下:

  • 2021年,zk-ml/linear-regression-demo,Peiyuan Liao

实现了线性回归电路,线性回归是一种非常基础的预测算法,它假设输出变量与输入变量之间的线性关系,适合预测数值型变量和研究两个或多个变量之间的关系的场景。比如:根据房屋面积和其他特征来预测房屋价格,或根据历史销售数据来预测未来销售量等等。

  • 2022年, 0xZKML/zk-mnist, 0xZKML

基于MNIST数据集做了一个神经网络的ZK电路,可以识别手写的数字。比如:手写一个数字2,手写体被识别成了2,并生成了推理过程证明该证明可以上链,并可以用ethers + snarkjs可以验证链上证明。

实际上,zk-mnist库目前只是把最后一层转成了电路,没有把完整的神经网络转成电路。

  • 2022年,socathie/zkML,Cathie

相比zk-mnist,ZKML将完整的神经网络转成了电路。Cathie的zkMachineLearning提供了多个ZKML的工具包cirocmlib-ml、keras2circom帮助ML的工程师将模型转成电路。

  • 2022年11月, zk-ml/uchikoma,Peiyuan Liao

将神经网络中的浮点运算转移成定点运算。创建并开源了一个通用工具和框架,可将几乎所有机器学习算法转换为易于与区块链集成的零知识证明电路。

  • 视觉模型-> AIGC

  • 语言模型-> 聊天机器人,写作助手

  • 线性模型和决策树 -> 欺诈检测,女巫攻击预防

  • 多模态模型 -> 推荐系统

训练了一个区块链友好的内容生成机器学习模型(AIGC),并转成了ZK电路。使用它可以生成艺术品,并生成简洁的ZK证明,最后将艺术品Mint成NFT

  • 2022年7月,2023年3月更新,zkonduit/ezkl

ezkl是一个库和命令行工具,用于在 zk-snark (ZKML) 中对深度学习模型和其他计算图进行推理。用Halo2作为证明系统。

可以定义计算图,如神经网络,然后用ezkl生成ZK-SNARK电路。针对推理生成的ZKP可以用智能合约验证。

说是能支持100M参数的模型,但可能很耗资源。

  • 2023年5月,Ddkang/zkml (Link)

zkml声称可以用ZK化GPT2,Bert and Diffusion模型。但可能要用的很大的内存,是否能将证明存入智能合约还不清楚。

zkml 可以验证模型的执行在 ImageNet 上达到92.4% 的准确率,还可以在四秒内以 99% 的准确率证明一个 MNIST 模型。

  • 2023年5月, zkp-gravity/0g

轻量化神经网络,支持私有数据+公共模型。

总的来说,我们能看到ZKML技术目前的探索方向:

  • Network Quantization(网络量化),将神经网络中的浮点数转为定点数,并轻量化神经网络(ZK友好)。

  • 尝试将大规模参数的神经网络转成ZK电路,并提高证明效率(扩大ZK能力)。

6. 总结

ZKML是AI和区块链的桥梁,它的意义在于能让区块链能感知物理世界、让智能合约能做决策、保护隐私地运行AI模型,是一个很有前景的技术。

ZKML的历史很短,发展很快。目前已经能将一些简单的神经网络模型转化成ZK电路,可以做模型的上链或推理证明上链了。语言模型相对困难,目前Ddkang/zkml声称可以生成ZK版的GPT2,Bert and Diffusion模型。相信随着网络量技术、ZK技术、区块链扩容技术的发展,语言模型的ZKML也快会变得可用

作者Foresight VenturesForesight Ventures
相关文章
2024.04.18 - 38 天前
Merlin 技术方案解读:它到底是怎么运转的?
让更多人理解 Merlin 的大致工作流程,对其安全模型有更清晰的认知。
2024.01.27 - 120 天前
解读BitVM:如何在BTC链上验证欺诈证明?(执行EVM或其他VM的操作码)
BitVM无需on chain的数据,先在链下发布并存储,链上只存放Commitment(承诺)。
2023.07.24 - 307 天前
全链游戏/自治世界(FOG/AW):游戏状态同步与技术挑战解析
对于完全运行在链上的游戏,区块链是游戏服务器并作为游戏状态的去中心化的信任源。
2023.07.24 - 307 天前
Rollup 升级背后的多签与委员会信任风险:L2 并不像许多人所想的那么“美好”
该如何降低多签和安全委员会带来的信任风险?
2023.06.27 - 334 天前
解读 zkSync 推出的 ZK Stack:L2 和 L3 齐头并进
ZK 技术解锁了现有非 ZK 解决方案无法实现的能力。
2023.06.25 - 336 天前
时间绑定代币:代币化的时限、所有权与收益,会给加密资产带来哪些新玩法?
时间绑定代币具体如何实现?又有哪些可实现的场景?
2023.06.01 - 360 天前
解读信标层:Rollup 网络安全与跨链转账的关键
本文探讨了以太坊Rollup网络中的Enshrined跨链桥以及AltLayer的信标层架构。
2023.05.30 - 362 天前
以钱包为中心,打造面向客户体验的技术栈
以钱包为中心的客户体验堆栈,是当前加密市场中最重要和最大的“挖掘”b2b 基础设施机会。
2023.05.29 - 363 天前
EIP-6963 概述:多钱包冲突的可能解决方案
EIP-6963 旨在增强多个钱包提供商之间的互操作性,降低新提供商的准入门槛,并改善以太坊网络上的用户体验。
2023.05.17 - 375 天前
Flashbots、MEV 和激励重构:构建去中心化金融系统的追求
维护去中心化系统的健康始终需要持续、艰巨的努力——持续参与“打地鼠”的游戏。去中心化系统中的信任扩散需要责任和警惕的扩散,特别是因为有如此多的经济激励在质押中:无论是好是坏,MEV 始终存在。