Mina 协议上的零知识机器学习

  • King
  • 更新于 2024-11-26 16:40
  • 阅读 243

zkML将去中心化人工智能变成现实,验证计算并保持输入数据和模型的私密性。了解有关Mina即将推出的ZKML库的更多信息。介绍随着人工智能的不断发展,为数据驱动的决策提供强大的工具,它在与区块链的去中心化性质相结合时面临着挑战。人工智能在大型数据集和集中化的基础上蓬勃发展,以提高

zkML 将去中心化人工智能变成现实,验证计算并保持输入数据和模型的私密性。了解有关 Mina 即将推出的 ZKML 库的更多信息。

介绍 

随着人工智能的不断发展,为数据驱动的决策提供强大的工具,它在与区块链的去中心化性质相结合时面临着挑战。人工智能在大型数据集和集中化的基础上蓬勃发展,以提高效率,而区块链则优先考虑去中心化、透明度和安全性——通常以牺牲隐私和可扩展性为代价。这些截然不同的原则使得将两者结合起来变得困难,但新的突破正在出现,可能会重新定义人工智能在去中心化环境中的运作方式。

人工智能和区块链的问题

从历史上看,三个主要障碍阻碍了人工智能在去中心化环境中的使用:

  1. 所有节点的冗余计算以达成共识。
  2. 保持输入数据(模型)的私密性。
  3. 在链上实施机器学习模型需要支付昂贵的汽油费。

如果人工智能模型在区块链节点旁边的设备上运行,验证计算是否正确的唯一方法是在所有节点上重新运行相同的进程。这种方法的扩展性不好,因为它需要大量的计算资源,并且需要在整个网络上共享输入和模型,从而损害隐私。

ZKML 是一种基于零知识 (ZK) 的机器学习 (ML) 系统,零知识是一种加密方法,允许一方向另一方证明他们知道一条信息或已正确执行计算,而无需泄露信息本身或任何信息。有关计算的详细信息。

通过利用 ZK 技术,您可以将去中心化 AI 变成现实,从而增强性能和隐私。这种方法允许模型在 ZK 执行环境(例如 ZKVM 或 ZK 电路)中运行,其中所有节点都可以更有效地验证计算。同时,它使用户能够利用通常受到严格隐私法规(例如 GDPR)管辖的数据来生成可以与第三方共享的证据,而不会违反任何法规。

如何在区块链中利用 ZK 技术,仅通过验证证明来减少计算需求。

当今最流行的 zkML 示例之一是 Rocky bot,这是一种根据历史 WEth/USDC 交易对数据进行训练的交易机器人。该机器人在链外运行,对于它做出的每个决定,它还会生成计算过程的 ZK 证明。

使用 ZK,交易机器人 Rocky 可以将其训练数据、算法和模型权重的证明记录到 L1 区块链中,从而允许所有用户验证机器人确实运行正常。

Rocky 机器人如何利用 ZKML 技术。

以前,构建这样的机器人非常复杂。每个用户都需要训练数据、输入数据和适当硬件的副本来验证其功能。现在,有了 ZKP,这个过程得到了简化——只需共享最少的数据即可达成共识,并且只有证明需要验证,从而消除了冗余计算的需要。

该模型还为去中心化身份系统、人工智能驱动的艺术家以及能够生成游戏、故事等的机器学习模型铺平了道路。

ZKML - 保护敏感数据,同时证明 ML 准确性

使用 ZKML,您可以证明您已经通过特定的公共模型运行了私有数据,而不需要验证者(您要向其证明这一点的另一方)重新运行整个计算来确认您的声明。这是一个非常有用的工具,因为在不信任的环境中执行时,机器学习计算非常复杂且需要大量资源来进行验证。

当输入数据包含信用数据、虹膜扫描或指纹等敏感信息并且模型是公开的时,ZKML 特别有用。您可以配置 ZKML 电路以确保输入数据保持私密性。

当机器学习模型本身是公司的重要资产时,模型的权重可以保密。例如,对于提交给 Kaggle 竞赛的模型,参与者可能不想透露他们的模型权重。在这种情况下,模型可以私有部署,同时仍然保持可验证性,并且可以确保与私有模型交互的用户将收到正确的计算。

ZKML 的重要性显而易见,它解决了当今机器学习领域的核心问题,例如验证与大型语言模型 (LLM) 的交互、确保它们按预期执行并遵守监管​​标准。由于大多数机器学习系统都依赖于第三方服务器,因此 ZKML 在不泄露敏感数据的情况下实现信任的能力对于未来在去中心化环境中的人工智能部署至关重要。

Mina 和 ZKML

Mina 是一个基于 ZK 的可编程区块链,为开发人员提供无缝体验。通过 o1js 和 Protokit 等利用 TypeScript 框架的工具,ZK 应用程序 (zkApps) 编程的复杂性已被有效抽象,使开发变得更加容易。

现在,Mina 的目标是扩展到 ZKML 领域,使开发人员能够构建可以跨多个平台运行的 ZKML 应用程序。 Mina 支持使用递归 ZK 证明——这种技术允许您为多个 ZK 证明创建 ZK 证明,从而以高效的方式验证复杂计算。

证明递归如何工作的简化概述。

上图是显示如何递归使用 SNARK 证明的简化图。生成数据证明后,您可以为这些证明生成证明,直到最终达到拥有一个可以表示任意数量数据的递归证明的程度。

本质上,递归意味着不仅可以为单个计算生成证明,还可以为一系列计算生成证明,同时保持详细信息的私密性。这使得可以验证多阶段过程的每个步骤是否正确完成,而无需重复或透露每个步骤的细节。

 Mina 具有使用 Pickles 实现的本机递归,它允许您将 ZKML 证明拆分为每层许多较小的证明,而不是生成单个大型证明。这不仅有利于性能,而且也有利于隐私,因为每一层都不需要了解另一层,从而允许 Mina 开发人员构建具有增强隐私功能的更复杂的 ZKML 模型。

Mina 递归支持的 ZKML 用例

Mina 的原生递归证明支持允许开发人员承担许多有趣的用例。

可组合的 AI 工作流程 

一个例子是可组合的人工智能工作流程,其中多个较小的模型链接在一起,每个模型执行特定的任务。想象一下,您想要使用一个模型从 PDF 中读取数据,使用另一个 LLM 来分析数据,使用另一个模型来执行某些操作。这些模型都可以链接在一起形成一个证明,证明管道确实正确执行。

在现实世界中,假设一位律师需要审查以 PDF 形式存储的大量合同,提取相关条款,然后分析它们是否符合某些法律标准。

  • 该工作流程可以从光学字符识别 (OCR) 模型开始,该模型读取并提取 PDF 合同中的文本。
  • 接下来,法学硕士可以分析提取的文本以识别关键条款,例如终止条款或付款计划,并标记任何不合规的条款。
  • 最后,可以采用行动模型来自动生成报告或建议具体行动,例如建议合同修订或提醒法律团队。

递归增强隐私 

递归证明还可以增强隐私性,因此开发人员可以跨各种机器计算不同层,而不会暴露敏感数据。这确保了机器学习模型的每一层都能安全、私密地运行,并且可以进行验证,从而保持整个模型的完整性。这对于卷积神经网络 (CNN) 等复杂的 ML 模型特别有用,这些模型旨在通过过滤器和转换层自动检测边缘、纹理和对象等模式来分析视觉数据(例如图像)。递归证明可确保安全性,而不会损害模型的内部隐私或暴露中间输出。

将其应用到现实世界中,医院经常使用 CNN 来分析 X 射线或 MRI 等医学图像,以检测癌症等疾病。由于医疗数据高度敏感,因此在不同机构或云服务中使用这些模型时,隐私保护技术至关重要。

在这种情况下,递归证明可以确保 CNN 的每一层正确处理图像,而不会将敏感的医疗数据暴露给外部各方。例如:

  • CNN 的 L1 可能会检测 MRI 中的边缘或形状等特征。
  • L2 可以识别与异常或肿瘤相关的更复杂的模式。
  • L3 可能会进一步细化疾病的诊断或可能性。

如何为 Mina 构建 ZKML

现在,Mina 的能力正在扩展到 ML 领域。这为开发人员开辟了新的可能性,使他们能够构建利用预测分析进行财务预测或利用图像识别来增强用户安全的 ZK 应用程序,同时保留零知识证明的隐私保证。

Mina 的 ZKML 库正在开发中,该库利用 ONNX(一种用于表示 ML 模型的标准化语言)。该库将使开发人员能够将 ML 模型的 ONNX 表示转换为等效的 ZK 电路,从而简化机器学习与 Mina 生态系统的集成。

什么是 ONNX? 

将 ONNX 视为一种可以以标准化方式表示 ML 模型的编程语言。 ML 框架有很多; PyTorch、Keras 和 TensorFlow。 ONNX 旨在提供一种任何机器学习框架都可以用来描述其模型的通用语言。

在底层,ONNX 将机器学习模型表示为计算图,其中节点对应于 Add、Mul、Relu 等操作(OP 代码)。图中的每个节点代表一个特定操作,而边代表操作流操作之间的数据(张量)。

机器学习模型在 ONNX 中表示为计算图。

了解 ONNX 到电路编译器

如上所述,ONNX 将机器学习模型表示为计算图。

def onnx_linear_regressor(X):

    "ONNX code for a linear regression"

    return onnx.Add(onnx.MatMul(X, coefficients), bias)

ZKML 库需要将上面的 ONNX 程序转换为 ZK 电路,这需要实现 onnx.Add 和 onnx.MatMul 方法作为 ZK 计算来生成证明。

ONNX 包含 100 多个 OP 代码,实施起来工作量很大。幸运的是,Tract 提供了这些 OP 代码的可管理子集,将实现要求减少到只有 20 个,从而显着简化了流程。

使用 Mina ZKML 库

如何使用 ZKML 根据游戏内事件为多个玩家生成游戏内容。

使用 ZKML 库的开发人员将能够在他们的 zkApps 中部署他们的模型。例如,考虑一个围绕“模型就是游戏”概念构建的游戏,其中自主人工智能在 zkApp 中运行。用户可以与该人工智能交互以生成游戏知识,同时验证人工智能游戏大师是否正确行动并按照既定规则生成动作。

另一个例子是使用人工智能模型作为物理引擎或根据游戏内事件生成游戏的随机数据。

借助 Mina ZKML 库,开发人员可以获得一系列开箱即用的优势,简化构建高性能 ML 驱动的 zkApp 的过程。

  • ONNX 解析: 加载经过训练的 ONNX 模型并将其转换为在 zkML 应用程序中使用。
  • Kimchi 证明系统: 使用 Mina 的 Kimchi 证明系统作为后端来生成zk-SNARK。
  • 递归证明: 支持递归证明以优化 ZKML 工作流程
  • 性能优化: 为后端引擎Kimchi证明系统做出贡献,通过引入查找表和改进基本操作来增强zkML库的整体性能。

References 参考 

广告分界线

Mina Protocol 与 OpenBuild 携手推出免费的 Web3 开发课程,旨在助力开发者从零开始学习如何在 Mina Protocol 上构建 Web3 应用。即便你之前没有接触过 Web3 技术,只要拥有一定的前端基础,就能顺利掌握开发 Web3 应用的核心技能。该课程不仅能有效提升你的开发能力,还有丰厚的奖学金等你来拿。通过这门课程,你将深入了解 Web3 生态,开启全新的职业发展之路。更多课程信息请点击这里报名学习。

image.png

 

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
King
King
0x56af...a0dd
擅长Rust/Solidity/FunC/Move开发