火热的ZKML到底是什么?
ZKML是近两年在密码学界引起轰动的一个研究和开发领域。将零知识证明用于机器学习, 这个技术主要目标是用零知识证明解决机器学习的隐私保护及可验证问题。从而使小模型或者推理的ZKP能上链,成为AI和区块链的桥梁
原文作者: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中的作用:
- 隐私保护:保护ML模型或预测过程中输入数据的隐私。
- 数据隐私(Public Model + Private Data):我有一些敏感数据,比如,医疗数据,人脸图像等。我可以使用ZKML对输入数据进行隐私保护,在这些数据上运行公开的神经网络模型,得到结果。比如人脸识别模型,
- 模型隐私(Private Model + Public Data):举例,我耗费大量成本训练出来的模型,我不想暴露我的模型,因此要对模型进行隐私保护。我可以用ZKML,运行一个保护隐私的私有的神经网络模型,这个模型可以对公共输入进行推理得到输出。
- 可验证性:用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角色等。
关于【火热的ZKML到底是什么?】的延伸阅读
重新理解Marlin:AI下半场的可验证计算L0「新基建」
Marlin是一种可验证云计算服务,利用加密技术保证数据安全,为AI+Web3应用提供低延迟、低成本的解决方案。它基于TEE和ZKP技术,为用户提供通用化的云计算方案,并通过激励机制吸引节点为网络贡献资源。Marlin的愿景是成为AI世界的可验证通用L0,为Oracle预言机、ZK Prover系统、AI人工智能等应用场景提供节点算力和存储等网络资源服务。它可以为AI大模型训练提供安全的计算环境,并为多元化应用场景提供可验证计算中间件。在AI+Web3时代,Marlin有巨大的价值潜力,可能成为未来AI+Web3应用的关键基础设施。
Sam Altman 围绕 OpenAI 打造出一个致富帝国
OpenAI首席执行官奥特曼同时经营副业,但只有一份工作让他发了财。他投资了多家想抓住人工智能风口的公司,包括网络安全软件公司和清洁能源公司。他最成功的投资是支付处理初创公司Stripe。奥特曼也投资了使用OpenAI技术的初创公司。他曾因投资引发利益冲突而被罢免职务,但重新担任首席执行官后制定了新的利益冲突政策。董事会正在进行改革,包括强化利益冲突政策和独立审计委员会。奥特曼计划通过全面披露和董事会管理来解决利益冲突问题。
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也快会变得可用。
免责声明:本文仅代表作者个人观点,不代表链观CHAINLOOK立场,不承担法律责任。文章及观点也不构成投资意见。请用户理性看待市场风险,以及遵守所在国家和地区的相关法律法规。
图文来源:Maggie,如有侵权请联系删除。转载或引用请注明文章出处!