# Snapps For Mina 项目分析2

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

---

### 零、项目背景

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

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

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

### 一、Hangman

该示例的业务逻辑相对简单：

1、Player1 发布了Snapp合约，并在合约中存储了Mina，然后设置了一段话。

2、Player2 猜测这段话，在规定次数内猜到了，Snapp合约里的Mina会自动付款给 Player2。

### 二、Mina Snapp

1、该示例表明：Mina Snapp可以实现类似于 Ethereum Smart Contract 的功能。

2、该示例中涉及的zk-SNARK：Player1 发布Snapp合约时会编译为proving key留在本地，把verifying key存在链上。如下图所示：

![](https://storage.googleapis.com/papyrus_images/af41fe3f4f2b246e948517c2c07d3b946791cbd6ccca40b58a187ac1332169fc.png)

3、当 Player2 猜测一次后，State的改变，无需其他节点链上计算验证，只需要通过verifying key验证 Player1 通过proving key生成的Proof即可判断猜测结果的对错。

---

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