ZKML(Zero knowledge machine learning)是将零知识证明用于机器学习的技术,ZKML是AI和区块链的桥梁。ZKML可以解决AI模型/输入的隐私保护问题和推理过程可验证的问题,从而使小模型或者推理的ZKP能上链。模型/推理证明上链的意义在于:
让区块链能感知物理世界。比如:一个运行在区块链上的人脸识别模型就可以为区块链感知人脸,通过链上AI模型区块链能理解这个人脸可能是一个女性、大约多大年龄等。
让智能合约能做决策。比如:链上的WETH价格预测模型,就可以帮助智能合约做交易决策。
保护隐私地运行AI模型。比如:企业花费了大量算力训练了一个模型,希望可以以保护隐私的方式对外提供推理服务,或者用户的输入希望保证隐私。用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来知道推理是否是正确执行的,从而相信这个结果。
计算完整性
链上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)
由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角色等。
将神经网络转成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能力)。
ZKML是AI和区块链的桥梁,它的意义在于能让区块链能感知物理世界、让智能合约能做决策、保护隐私地运行AI模型,是一个很有前景的技术。
ZKML的历史很短,发展很快。目前已经能将一些简单的神经网络模型转化成ZK电路,可以做模型的上链或推理证明上链了。语言模型相对困难,目前Ddkang/zkml声称可以生成ZK版的GPT2,Bert and Diffusion模型。相信随着网络量技术、ZK技术、区块链扩容技术的发展,语言模型的ZKML也快会变得可用。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。
来源:金色财经