Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: task1 #249

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions learn/Nakiswen/Nakiswen.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Mina zkApp 训练营


#### 个人信息

- github Nakiswen
- OpenBuild 注册邮箱:[email protected]
- Mina 钱包地址:B62qjZeawsLZY8QWEnrQe6Z5MptxVvb9th4Aa9acqj6RRrTcjT79via

#### 自我介绍

- 资深前端工程师,想学习web3行业相关知识并期待往web3行业转型。
50 changes: 50 additions & 0 deletions learn/Nakiswen/task1/task1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
## 1.概述Mina所采用的证明系统(包括名称、特点)
Mina 使用的是 PLONK(Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge)证明系统的一个变体,具体为 Kimchi 证明系统,kimchi为zk-SNARKs家族中的一员。其主要特点包括:

* 通用性:Kimchi 是一个通用的零知识证明系统,可以证明任意计算的正确性
* 高效性:相比原始 PLONK,Kimchi 在证明生成时间和验证时间上都有显著改进
* 可定制性:支持自定义门电路和查找表,使得证明系统更加灵活
* 安全性:基于离散对数假设,具有良好的密码学安全性
* 高度优化:专门针对 Mina 的递归证明需求进行了优化

## 2.概述递归零知识证明在 Mina 共识过程中的应用

#### a) 区块链状态压缩

每个新区块都会生成一个证明,证明包含了之前所有状态转换的有效性
新的证明可以验证旧的证明,形成递归证明链
这使得验证节点只需要保存最新的证明(约 11KB)即可验证整个链的历史

#### b) 共识过程中的应用

区块生产者在生成新区块时,需要生成证明证明:

之前的状态转换是有效的
新的交易执行是正确的
整个状态更新符合协议规则


验证者可以通过验证最新的证明来确认整个链的有效性
递归证明保证了即使不存储完整历史,共识的安全性依然得到保证

#### c) 具体实现机制

使用 OCaml 语言编写的电路来描述状态转换规则
通过 Kimchi 证明系统生成零知识证明
证明的递归性质允许将之前的证明作为新证明的输入
整个过程保持了零知识性,不泄露具体的状态信息

这种基于递归零知识证明的设计使得 Mina 能够保持恒定大小(约 22KB)的链状态,同时保证了完整的安全性和去中心化特性。这是一个突破性的创新,为区块链扩容提供了新的思路。
值得注意的是,这种递归证明体系虽然在存储效率上有巨大优势,但也带来了较高的计算开销,这是目前 Mina 正在持续优化的方向。


## tx hash

XwxqfCXvLzrdVuKgXorYEswDVgoa7EacmvPij1CUjcStT

### 递归零知识证明验证流程

- 1.将问题转换成电路描述(用o作写电路代码)。
- 2.将电路编译(complie) 成plonkish格式 同时生成PK(proving key), Vk(verifying key)。
- 3.证明者使用函数 Prove 函数生成证明(Proof)。
- 4.验证者使用 Verify 函数,验证proof的的真假。
Binary file added learn/Nakiswen/task1/tx-hash.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added learn/Nakiswen/task1/wallet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.