# 一文了解ZK基础概念

By [小鬼鬼鬼](https://paragraph.com/@0x6e0d3c4067db231d46ef54a7dc3977f5af1cba2d) · 2023-11-05

---

1.什么是ZKML
---------

想象一下，您有一种秘密方法可以证明某件事是真实的，而无需透露任何额外的细节。这正是零知识（ZK）证明在数字世界中所做的事情。这就像两方之间的特殊握手：一方（证明者）让另一方（验证者）相信某件事是真实的，而无需暴露其他任何内容。机器学习 (ML) 是人工智能的一个分支，它使计算机能够从数据中学习和改进，通过迭代过程学习时产生更准确的结果。

在 ZKML 的背景下，证明者可以证明 ML 模型结果的正确性，而无需透露任何其他信息。这意味着计算结果对验证者保密。需要注意的是，这主要涉及为 ML 模型的推理步骤创建零知识证明，而不是训练阶段。

2.ZKML和Gear的完美搭配
----------------

将机器学习引入区块链世界的主要挑战之一是高昂的计算成本。由于计算资源有限，许多机器学习项目很难直接在区块链上运行。当您将 ZK 的复杂加密操作和交互与 ML 的广泛计算结合起来时，很明显大多数区块链都面临交易成本方面的限制，这是链上 ML 采用的主要障碍。

ZK 证明为 ML 的计算挑战提供了解决方案。它们允许复杂计算的脱链执行，同时使计算能够在链上被证明是正确的。ZK 的验证效率超越了重新计算，但这种优势通常仅限于处理区块链上的本机交易数据。

当将此技术与 Gear 驱动的区块链的高速、低成本交易相结合时，ZKML 就成为链上应用程序的强大工具。它可以利用人工智能在同时保持去中心化和效率。

3.ZKML的运作原理
-----------

这种实现提供了将资源密集型计算从区块链转移出去的能力，同时确保其完整性。它以说明性示例展示了[MNIST](https://en.wikipedia.org/wiki/MNIST_database)机器学习模型的评估。这是通过生成计算的零知识证明并随后在链上验证它们来完成的。

关联的智能合约仅允许每个客户端进行一次验证会话。如果客户希望放弃当前验证并提交新输入，他们可以选择发送交易以清除正在进行的验证。

采用零知识证明进行计算的过程涉及四个关键参与者：`Initializer`、`User`、`zk-smart-contract`和`Prover`。

![](https://storage.googleapis.com/papyrus_images/d35480f53e0bba264cd7bc63792cfadf9adf1876f0f7928c74f474f5beb7002d.jpg)

1.  `Initializer`：该参与者负责将 部署`zk-smart-contract`到区块链上并初始化其参数。在初始化过程中，定义了机器学习模型的结构，为后续交互奠定了基础。
    
2.  `User`：系统的用户（可以是一个人或另一个智能合约）`zk-smart-contract`通过提交输入数据与系统进行交互，这些数据旨在由机器学习模型进行处理。此步骤演示了外部各方如何无缝地与区块链交互，而无需直接执行计算密集型操作。
    
3.  `Prover`：Prover部署在服务器上，不断轮询`zk-smart-contract`以发现s提供的新输入`User`，计算输出并证明计算。证明者从 中检索输入`zk-smart-contract`，评估机器学习模型，并生成证明计算有效性的零知识证明。然后将机器学习模型的输出结果以及零知识证明提交回`zk-smart-contract`.
    
4.  `User Verification`：用户通过与 交互来启动验证过程`zk-smart-contract`。协调`zk-smart-contract`零知识证明的验证，在不暴露敏感数据的情况下独立确认计算的准确性。
    
5.  `Verification Outcome`：一旦验证过程在 内完成`zk-smart-contract`，用户就会收到验证结果。

---

*Originally published on [小鬼鬼鬼](https://paragraph.com/@0x6e0d3c4067db231d46ef54a7dc3977f5af1cba2d/zk)*
