# Snapps For Mina 项目分析8

By [Ethan - if(DAO)](https://paragraph.com/@ethan-if-dao) · 2021-12-18

---

零、项目背景
------

Mina 社区的 [minacrypto.com](http://minacrypto.com/) 在新网站 [snappsformina](https://snappsformina.com/)上发布了在训练营上出现的一些很酷的 Snapp 构想。

下面是 if(DAO) 对 SNAPP DogNet 项目的业务逻辑以及零知识zk-SNARK应用的浅析。

项目源码入口：[https://snappsformina.com/snapp/snapp-dognet/](https://snappsformina.com/snapp/snapp-dognet/)

一、SNAPP DogNet
--------------

这个示例的用意是在不暴露数据源（ zk-SNARK ）的情况下，对 YOLO V3 模型进行测试。

当本地数据源提供的图片是 \[ 'bicycle', 'truck', 'dog', 'horse', 'giraffe', 'zebra' \] Objects 的时候，可以获得 Reward。

举例流程如下：

1、第一次传入 'bicycle', 'truck', 'dog' 的图片，成功被YOLO V3 识别后，“ 我训练了3个满足条件的图片 ” 对应的 Proof 将上链。全网节点验证共识后，我的state会更新：

\[ 0，0，0，0，0，0 \] 更新为 \[ 1，1，1，0，0，0 \] 。

2、第二次传入 'scream' 的图片，YOLO V3 识别后发现不在 \[ 'bicycle', 'truck', 'dog', 'horse', 'giraffe', 'zebra' \] 奖励范围内，无后续处理。

3、第三次传入 'bicycle' 的图片，成功被YOLO V3 识别，但由于在第一次训练时 'bicycle' 已经被记录一次了，因此仍然没有 state 更新。

4、第四次传入 'horse', 'giraffe', 'zebra' 的图片，成功被YOLO V3 识别后，“ 我训练了3个满足条件的图片 ” 对应的Proof将上链。全网节点验证共识后，我的state会更新：

\[ 1，1，1，0，0，0 \] 更新为 \[ 1，1，1，1，1，1 \] 。

5、最后成功获得了奖励。

该示例程序目前存在的问题：

1、由于这是训练营项目，不是生产版本，所以未在Mina主网上真正更新 state。

2、由于模型是从第三方载入的，当本地将模型替换为其他模型后可以进行舞弊。

3、YOLO 模型的识别率问题也有可能导致奖励结果有偏差，比如 if(DAO) 成员 Ethan 使用 YOLO V5 模型识别自家猫咪的时候，就出现了令人遗憾的结果：

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

---

*Originally published on [Ethan - if(DAO)](https://paragraph.com/@ethan-if-dao/snapps-for-mina-8)*
