# ZKML在Vara Network的应用

By [nafla21](https://paragraph.com/@nafla21) · 2023-11-02

---

1.  **ZKML是什么？**
    
    零知识证明（ZK）是一种计算方法，其中一个方向另一个方证明给出数据的准确性，而不泄露更多信息。机器学习（ML）是人工智能的一个子领域，涉及计算机开发算法，能够从数据中自主学习和适应，通过迭代过程提高性能。
    
    ZKML的含义也就是将零知识证明和机器学习相结合起来，在机器学习的验证阶段，证明者可以不向验证者透露机器学习在训练阶段的信息，很好的保护了数据的安全和隐私，例如，该技术可用于医疗行业，将机器学习模型应用于敏感数据，允许用户了解模型的结果，而无需向第三方透露其输入。
    
2.  **ZKML 如何与 Gear Protocol 结合**
    
    区块链上的机器学习所面临的问题一方面是机器学习需要大量的数据支持，这些数据处理需要很多算力，然后这些提供支持的数据的安全和隐私也无法保证。
    
    ZK 证明为 ML 的计算挑战提供了解决方案。它们允许复杂计算的脱链执行，同时使计算能够在链上被证明是正确的。ZK 的验证效率超越了重新计算，但这种优势通常仅限于处理区块链上的本机交易数据。
    
    当将此技术与 使用Gear 协议的区块链的高速、低成本交易相结合时，ZKML 就成为链上应用程序的强大工具。它可以在保持去中心化和效率的同时利用人工智能。
    
3.  **ZKML在Vara Network上的应用**
    
    Vara Network 是以 Gear 协议为基石，是独立的、去中心化的、基于 Substrate 的 Layer-1 网络。
    
    采用零知识证明进行计算的过程涉及四个关键参与者：`Initializer`、`User`、`zk-smart-contract`和`Prover`。
    
    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`，用户就会收到验证结果。
        

ZKML的工作流程主要包括

1.user向Gear智能合约提交验证输入。

2.prover接收到用户提交输入的通知。

3.prover将计算结果提交给智能合约。

4.当prover完成计算并将输出提交给智能合约时，用户会收到通知。

5.user提交验证所需要的数据

6.当数据通过智能合约的验证时（关于信息是否有效），用户会收到通知。

![ZKML工作流程](https://storage.googleapis.com/papyrus_images/082745e637507d6349c0f02969e9c24009549bdde4578f6cbe28ce5c9703ab49.png)

ZKML工作流程

---

*Originally published on [nafla21](https://paragraph.com/@nafla21/zkml-vara-network)*
