当前位置:主页 > 列表页 > 正文

SevenX Ventures:一文读懂ZKML,零知识证明和区块链如何在人工智能和机器学习领域发挥作用?

2023-12-27 15:22 | 出处: odaily

原文作者:Grace & Hill

感谢 Brian Retford, SunYi, Jason Morton, Shumo, Feng Boyuan, Daniel, Aaron Greenblatt, Nick Matthew, Baz, Marcin, 和 Brent 对本文提供的宝贵见解、反馈和审阅。

对于我们这些加密爱好者来说,人工智能已经火了好一阵子。有趣的是,没人愿意看到人工智能失控的情况。区块链发明的初衷是防止美元失控,所以我们可能会尝试一下防止人工智能的失控。此外,我们现在有了一种叫做零知识证明的新技术,用于确保事情不会出错。然而,要驾驭人工智能这个野兽,我们必须了解它的工作原理。

人工智能已经经历了几个名字的变化,从“专家系统”到“神经网络”,然后是“图形模型”,最后演变为“机器学习”。所有这些都是“人工智能”的子集,人们给它起了不同的名字,我们对人工智能的了解也在不断加深。让我们稍微深入了解一下机器学习,揭开机器学习的神秘面纱。

注:如今,大多数机器学习模型都是神经网络,因为它们在许多任务中具有优异的性能。我们主要将机器学习称为神经网络机器学习。

机器学习是如何工作的?

首先,让我们快速了解一下机器学习的内部运作:

如果上述解释看起来太晦涩,可以参考以下使用 CNN 模型识别苹果图片的例子。

机器学习的信任框架

我们可以将上述内容总结为一个机器学习信任框架,包括四个机器学习的基本层,整个机器学习过程需要这些层是可信的才能可靠:

随着机器学习(ML)应用的爆炸式增长(复合年增长率超过 20% )以及它们在日常生活中的日益融入,例如最近备受欢迎的 ChatGPT,机器学习的信任问题变得越来越关键,不容忽视。因此,发现并解决这些信任问题至关重要,以确保负责任地使用 AI 并防止其潜在滥用。然而,究竟是哪些问题呢?让我们深入了解。

  • 隐私性质:如上所述,模型参数通常是私密的,而在某些情况下,模型输入也需要保密,这自然会在模型所有者和模型用户之间带来一些信任问题。

  • 算法黑盒:机器学习模型有时被称为“黑盒”,因为它们在计算过程中涉及许多难以理解或解释的自动化步骤。这些步骤涉及复杂的算法和大量的数据,带来不确定性和有时随机的输出,使得算法容易受到偏见甚至歧视的指责。

  • 在更深入之前,本文的一个更大的假设是模型已经“准备好使用”,意味着它经过良好的训练并符合目的。模型可能不适用于所有情况,而且模型以惊人的速度改进,机器学习模型的正常使用寿命在 2 到 18 个月之间,具体取决于应用场景。

    模型训练过程中存在一些信任问题,Gensyn 目前正在努力生成有效证明以促进这一过程。然而,本文主要关注模型推理过程。现在让我们使用机器学习的四个构建模块来发现潜在的信任问题:

    • 输入:

      数据来源是防篡改的

      私有输入数据不被模型操作者窃取(隐私问题)

    • 模型:

      模型本身如宣传的那样准确

      计算过程正确完成

    • 参数:

      模型参数没有被改变或与宣传的一致

      在过程中,对模型所有者具有价值的模型参数没有泄露(隐私问题)

    • 输出:

      输出结果可证明是正确的(可能随着上述所有元素的改进而改进)

    Giza 正在 Starknet 上进行这项工作,但由于成本问题,它仅支持像回归这样的简单机器学习模型,不支持神经网络。ZK 技术可以更有效地解决上述信任问题。目前,ZKML 的 ZK 通常指 zkSNARK。首先,让我们快速回顾一下 zkSNARK 的一些基本概念:

    一个 zkSNARK 证明是证明我知道一些秘密输入 w,使得这个计算 f 的结果为 OUT 是真实的,而不告诉你 w 是什么。证明生成过程可以总结为以下几个步骤:

    • 制定需要证明的陈述:f(x, w)=true

      “我使用具有私有参数 w 的机器学习模型 f 正确地对这个图像 x 进行了分类。”

    • 将陈述转换为电路(算术化):不同的电路构建方法包括 R 1 CS、QAP、Plonkish 等。

      与其他用例相比,ZKML 需要一个额外的步骤,称为量化。神经网络推断通常使用浮点算术完成,而在算术电路的主要领域中模拟浮点算术非常昂贵。不同的量化方法在精度和设备要求之间取得折衷。

      一些像 R 1 CS 这样的电路构建方法对神经网络来说效率不高。这部分可以调整以提高性能。

    • 生成一个证明密钥和一个验证密钥

    • 创建一个见证:当 w=w* 时,f(x, w)=true

    • 创建一个哈希承诺:见证人 w* 承诺使用加密哈希函数生成一个哈希值。这个哈希值可以公之于众。

      这有助于确保在计算过程中,私有输入或模型参数没有被篡改或修改。这一步至关重要,因为即使是细微的修改也可能对模型的行为和输出产生重大影响。

    • 生成证明:不同的证明系统使用不同的证明生成算法。

      需要为机器学习操作设计特殊的零知识规则,如矩阵乘法和卷积层,以便实现这些计算的子线性时间高效协议。

      - 像 groth 16 这样的通用 zkSNARK 系统可能无法有效处理神经网络,因为计算负载过大。

      - 自 2020 年以来,许多新的 ZK 证明系统应运而生,以优化模型推理过程的 ZK 证明,包括 vCNN、ZEN、ZKCNN 和 pvCNN。然而,它们中的大多数都针对 CNN 模型进行了优化。它们只能应用于一些主要的数据集,如 MNIST 或 CIFAR-10 。

      - 2022 年,Daniel Kang Tatsunori Hashimoto、Ion Stoica 和 Yi Sun(Axiom 创始人)提出了一种基于 Halo 2 的新证明方案,首次实现了对 ImageNet 数据集的 ZK 证明生成。他们的优化主要集中在算术化部分,具有用于非线性的新颖查找参数和跨层重用子电路。

      - Modulus Labs 正在为链上推理对不同证明系统进行基准测试,发现在证明时间方面,ZKCNN 和 plonky 2 表现最佳;在峰值证明者内存使用方面,ZKCNN 和 halo 2 表现良好;而 plonky 虽然表现良好,但牺牲了内存消耗,而且 ZKCNN 仅适用于 CNN 模型。它还正在开发一个专门为 ZKML 设计的新 zkSNARK 系统,以及一个新的虚拟机。

    • 验证证明:验证者使用验证密钥进行验证,无需知道见证人的知识。

    因此,我们可以证明将零知识技术应用于机器学习模型可以解决很多信任问题。使用交互式验证的类似技术可以达到类似的效果,但会在验证者方面需要更多资源,并可能面临更多的隐私问题。值得注意的是,根据具体的模型,为它们生成证明可能需要时间和资源,因此在将此技术最终应用于现实世界的用例时,各方面将存在折衷。

    接下来,现有的解决方案是什么?请注意,模型提供者可能有很多不想生成 ZKML 证明的原因。对于那些勇敢尝试 ZKML 并且解决方案有意义的人,他们可以根据模型和输入所在的位置选择几种不同的解决方案:

    • 如果输入数据在链上,可以考虑使用 Axiom 作为解决方案:

      Axiom 正在为以太坊构建一个零知识协处理器,以改善用户对区块链数据的访问并提供更复杂数字化的链上数据视图。在链上数据上进行可靠的机器学习计算是可行的:

      - 首先,Axiom 通过在其智能合约 AxiomV 0 中存储以太坊区块哈希的默克尔根来导入链上数据,这些数据通过 ZK-SNARK 验证过程进行无信任验证。然后,AxiomV 0 StoragePf 合约允许对 AxiomV 0 中缓存的区块哈希给出的信任根进行任意历史以太坊存储证明的批量验证。

      - 接下来,可以从导入的历史数据中提取机器学习输入数据。

      - 然后,Axiom 可以在顶部应用经过验证的机器学习操作;使用经过优化的 halo 2 作为后端来验证每个计算部分的有效性。

      - 最后,Axiom 会附上每个查询结果的 zk 证明,并且 Axiom 智能合约会验证 zk 证明。任何想要证明的相关方都可以从智能合约中访问它。

    • 如果将模型放在链上,可以考虑使用 RISCZero 作为解决方案:

      通过在 RISC Zero 的 ZKVM 中运行机器学习模型,可以证明模型涉及的确切计算是正确执行的。计算和验证过程可以在用户喜欢的环境中离线完成,或者在 Bonsai Network 中完成,Bonsai Network 是一个通用的 roll-up。

      - 首先,需要将模型的源代码编译成 RISC-V 二进制文件。当这个二进制文件在 ZKVM 中执行时,输出会与一个包含加密密封的计算收据配对。这个密封作为计算完整性的零知识论据,将加密的 imageID(识别执行的 RISC-V 二进制文件)与声明的代码输出关联起来,以便第三方快速验证。

      - 当模型在 ZKVM 中执行时,关于状态更改的计算完全在 VM 内部完成。它不会向外部泄露有关模型内部状态的任何信息。

      - 一旦模型执行完毕,生成的密封就成为计算完整性的零知识证明。RISC ZeroZKVM 是一个 RISC-V 虚拟机,它可以生成对其执行的代码的零知识证明。使用 ZKVM,可以生成一个加密收据,任何人都可以验证这个收据是由 ZKVM 的客户代码生成的。发布收据时,不会泄露有关代码执行的其他信息(例如,所提供的输入)。

      生成 ZK 证明的具体过程涉及到一个与随机 oracle 作为验证者的交互协议。RISC Zero 收据上的密封本质上就是这个交互协议的记录。

    • 如果您想直接从常用的机器学习软件(如 Tensorflow 或 Pytorch)导入模型,可以考虑使用 ezkl 作为解决方案:

      Ezkl 是一个库和命令行工具,用于在 zkSNARK 中进行深度学习模型和其他计算图的推断。

      - 首先,将最终模型导出为 .onnx 文件,将一些样本输入导出为 .json 文件。

      - 然后,将 ezkl 指向 .onnx 和 .json 文件,以生成可以证明 ZKML 语句的 ZK-SNARK 电路。

      看起来简单,对吧?Ezkl 的目标是提供一个抽象层,允许在 Halo 2 电路中调用和布局高级操作。Ezkl 抽象了许多复杂性,同时保持了令人难以置信的灵活性。他们的量化模型具有自动量化的缩放因子。他们支持灵活地更改为新解决方案所涉及的其他证明系统。他们还支持多种类型的虚拟机,包括 EVM 和 WASM。

      关于证明系统,ezkl 通过聚合证明(通过中介将难以验证的证明转换为易于验证的证明)和递归(可以解决内存问题,但难以适应 halo 2)来定制 halo 2 电路。Ezkl 还通过融合和抽象(可以通过高级证明减少开销)来优化整个过程。

    • 值得注意的是,与其他通用 zkml 项目相比,Accessor Labs 专注于为完全上链游戏提供专门设计的 zkml 工具,可能涉及 AI NPC、游戏玩法的自动更新、涉及自然语言的游戏界面等。

    通过 ZK 技术解决机器学习的信任问题意味着它现在可以应用于更多“高风险”和“高度确定性”的用例,而不仅仅是与人们的对话保持同步或将猫的图片与狗的图片区分开来。Web3 已经在探索许多这样的用例。这并非巧合,因为大多数 Web3 应用程序都在区块链上运行或打算在区块链上运行,这是因为区块链具有特定的特性,可以安全运行,难以篡改,并具有确定性计算。一个可验证的行为良好的 AI 应该是能够在无信任和去中心化的环境中进行活动的 AI,对吧?

    Web3 中可应用 ZK ML 的用例

    许多 Web3 应用为了安全性和去中心化而牺牲了用户体验,因为这显然是它们的优先事项,而基础设施的局限性也存在。AI/ML 有潜力丰富用户体验,这无疑是有帮助的,但以前在不妥协的情况下似乎是不可能的。现在,多亏了 ZK,我们可以舒适地看到 AI/ML 与 Web3 应用的结合,而不会在安全性和去中心化方面做太多牺牲。

    从本质上讲,这将是一个 Web3 应用程序(在撰写本文时可能存在或不存在),以无需信任的方式实现 ML/AI。在无需信任的方式下,我们指的是它是否在无需信任的环境 / 平台上运行,或者其操作是否可以被证明是可验证的。请注意,并非所有 ML/AI 用例(即使在 Web3 中)都需要或更喜欢以无需信任的方式运行。我们将分析在各种 Web3 领域中使用的 ML 功能的每个部分。然后,我们将确定需要 ZKML 的部分,通常是人们愿意为证明支付额外费用的高价值部分。下面提到的大多数用例 / 应用仍处于实验研究阶段。因此,它们距离实际采用还很遥远。我们稍后会讨论原因。

    Defi

    Defi 是区块链协议和 Web3 应用中为数不多的产品市场契合度证明之一。以无需许可的方式创建、存储和管理财富和资本在人类历史上是前所未有的。我们已经确定了许多需要 AI/ML 模型无需许可地运行以确保安全性和去中心化的用例。

    游戏

    游戏与机器学习有很多交集:

    图中的灰色区域代表了我们对游戏部分中的机器学习功能是否需要与相应的 ZKML 证明配对的初步评估。Leela Chess Zero 是将 ZKML 应用于游戏的一个非常有趣的例子:

    DID 和社交

    在 DID 和社交领域,Web3 和 ML 的交叉点目前主要体现在人类证明和凭据证明领域;其他部分可能会发展,但需要更长的时间。

    可以看到,Web3 中 ZKML 的潜在用例尚处于起步阶段,但不能被忽视;未来,随着 ZKML 使用的不断扩大,可能会出现对 ZKML 提供商的需求,形成下图中的闭环:

    ZKML 服务提供商主要关注 ML 信任框架的“模型”和“参数”部分。尽管我们现在看到的大部分与“参数”相关的更多是“模型”相关。需要注意的是,“输入”和“输出”部分更多地由基于区块链的解决方案解决,无论是作为数据来源还是数据目的地。单独使用 ZK 或区块链可能无法实现完全的可信度,但它们联合起来可能会实现。

    最后,我们可以关注一下 ZKML 的当前可行性状态,以及我们离 ZKML 大规模应用还有多远。

    Modulus Labs 的论文通过测试 Worldcoin(具有严格的精度和内存要求)和 AI Arena(具有成本效益和时间要求)为我们提供了一些关于 ZKML 应用可行性的数据和见解:

    如果 Worldcon 使用 ZKML,证明者的内存消耗将超过任何商用移动硬件的承受能力。如果 AI Arena 的比赛使用 ZKML,使用 ZKCNNs 将使时间和成本增加 100 倍(0.6 s 对比原来的 0.008 s)。所以遗憾的是,这两者都不适合直接应用 ZKML 技术来证明时间和证明者内存使用。

    那么证明大小和验证时间呢?我们可以参考 Daniel Kang、Tatsunori Hashimoto、Ion Stoica 和 Yi Sun 的论文。如下所示,他们的 DNN 推理解决方案在 ImageNet(模型类型:DCNN, 16 层, 3.4 百万参数)上的准确率可以达到 79% ,同时验证时间仅需 10 秒,证明大小为 5952 字节。此外,zkSNARKs 可以缩小到 59% 准确率时验证时间仅需 0.7 秒。这些结果表明,在证明大小和验证时间方面,对 ImageNet 规模的模型进行 zkSNARKing 是可行的。

    目前主要的技术瓶颈在于证明时间和内存消耗。在 web3 案例中应用 ZKML 在技术上尚不可行。ZKML 是否有潜力赶上 AI 的发展呢?我们可以比较几个经验数据:

    • 机器学习模型的发展速度: 2019 年发布的 GPT-1 模型具有 1.5 亿个参数,而 2020 年发布的最新 GPT-3 模型具有 1, 750 亿个参数,仅两年间参数数量增加了 1, 166 倍。

    • 零知识系统的优化速度:零知识系统的性能增长基本上遵循“摩尔定律”式的步伐。几乎每年都会出现新的零知识系统,我们预计证明者性能的快速增长在一段时间内还将继续。

    从这些数据来看,尽管机器学习模型的发展速度非常快,但零知识证明系统的优化速度也在稳步提升。在未来一段时间内,ZKML 可能仍有机会逐步赶上 AI 的发展,但它需要不断地进行技术创新和优化以缩小差距。这意味着,尽管目前 ZKML 在 web3 应用中存在技术瓶颈,但随着零知识证明技术的不断发展,我们仍有理由期待 ZKML 在未来能够在 web3 场景中发挥更大的作用。对比前沿的 ML 与 ZK 的改进率,前景并不十分乐观。不过,随着卷积性能、ZK 硬件的不断完善,以及基于高度结构化的神经网络操作而量身定做的 ZK 证明系统,希望 ZKML 的发展能够满足 web3 的需求,先从提供一些老式的机器学习功能开始。

    虽然我们可能很难用区块链 ZK 来验证 ChatGPT 反馈给我的信息是否可信,但我们也许可以在 ZK 电路中安装一些较小和较老的 ML 模型。

    "权力趋于腐败,而绝对的权力会使人绝对腐败"。随着人工智能和 ML 的令人难以置信的力量,目前还没有万无一失的方法将其置于治理之下。事实一再证明,政府要么提供后期干预的后遗症,要么提前彻底禁止。区块链 ZK 提供了为数不多的解决方案,能够以一种可证明和可核实的方式驯服野兽。

    我们期待在 ZKML 领域看到更多的产品创新,ZK 和区块链为 AI/ML 的运行提供了一个安全和值得信赖的环境。我们也期待这些产品创新产生全新的商业模式,因为在无许可的加密货币世界里,我们不受这里的去 SaaS 商业化模式的限制。我们期待着支持更多的建设者,在这个 "西部荒野无政府状态 "和 "象牙塔精英 "的迷人重叠中,来建立他们令人兴奋的想法。我们仍处于早期阶段,但我们可能已经在拯救世界的路上。

    本文为 SevenX 研究团队原创,仅供交流学习,不构成任何投资参考。如需引用,请注明来源。

    您可能感兴趣的文章:

    相关文章