1. 基础信息
- 项目名称:My First ZK-Vote
- 负责人:@Elon
- 关联主线:
2. 项目描述
What
整个教学网页分为四个部分:
一、什么是区块链交易
- 介绍什么是区块链交易(图文描述,需要UI设计)
- 区块链交易的定义
- 区块链交易的特点
- 交易与区块的关系
- 交易的生命周期
- 详细流程详解
- 交易的组成部分(卡片展示)
- 基本字段
- 特殊交易类型
- Gas与费用机制
- 不同共识下的交易确认差异
- PoW(如比特币)
- PoS(如以太坊合并后)
- Rollup / L2(如 Optimism、zkSync)
二、什么是ZK(引用官方的介绍框架)
1、what is ZK
2、ZK的性质
3、ZK的分类
4、ZK的工作原理(加密机制,算法介绍,主要介绍ZKSNARKS的Groth16方案)
5、区块链上的应用(介绍一些优质项目,引申出投票)
- 隐私交易 / 隐匿交易金额、交易双方:例如 Zcash 使用 zk-SNARK 来隐藏转账金额与地址信息。 Nervos Network+3Nervos Network+3Chainlink+3
- 链下计算 + 链上验证(可扩展性):如 zk-Rollup 批量交易先在链下聚合计算,再生成一个 ZKP 在主链上验证。
- 匿名投票 / 身份验证:用户可以证明自己有投票资格 / 身份特征,而不暴露具体身份。
- 混合公私链 / 跨链验证:可用于验证跨链操作或混合链上链下操作正确性而不暴露细节。
- 机密合约 / 隐私合约:使合约在执行过程中,部分数据保持私密
三、一次sepolia链上投票
1、页面展示一个投票选项,选择选项投票后提交到sepolia的合约中记录投票数据
2、页面返回交易TX,用户在区块链浏览器可查看投票交易数据
四、一次ZK-SNARKs投票
1、页面端存入数字电路(可用semaphore项目的电路文件),生成信用设置
2、用户选择选项,生成证明,提交sepolia链上(也可以是ZKSync测试链)
3、链上合约验证并统计数据
4、引导用户查看交易数据
Why
通过图文与交互动画,帮助用户从“理解区块链交易” → “体验普通投票交易” → “理解并体验 ZK 投票”的全过程,可以让用户学习到什么是区块链交易,什么是链上投票,什么是ZK,和ZK SNARKs,为后续组织投票上链奠定基础
How
| 步骤 | 功能 | 前端技术栈 | 说明 |
|---|---|---|---|
| 交易流程讲解(非 3D、滑动交互) | React + Framer Motion + D3.js + TailwindCSS | 通过滑动(scroll-snap 或 Swiper.js)展示交易从创建到上链的过程。 | |
| 用户连接 MetaMask | wagmi + viem | 引导用户连接钱包,检测网络是否为 Sepolia。 | |
| 在 Sepolia 模拟提交投票 | ethers.js + wagmi | 用户点击投票按钮,执行一次链上交易(Sepolia)。 | |
| 客户端生成 ZK 证明 | snarkjs + circomlibjs + WebAssembly (WASM) | 用户本地生成 proof.json 与 publicSignals.json,不上传隐私数据。 | |
| 提交 proof 到 zkSync 验证合约 | zkSync SDK + ethers.js + 自写合约 | 调用 zkSync 上部署的验证器合约进行验证。 | |
| 展示投票结果或验证状态 | React + Recharts / Chart.js | 可视化展示每个投票项的结果或用户的验证通过情况。 |
3. 资金申请
- 联系方式:Wachat : CYL-Elon
- 申请金额:暂定(工作量还需讨论)
- 资金用途:本次申请为一次性激励,用于覆盖产品界面设计、前端开发实现、配置等核心环节的工作成本,保障项目按时落地。
4. Milestone 计划
(Milestone 审核通过后执行)
| 时长 | 交付结果 |
|---|---|
| 30days | 初步demo |
| 15days | 测试 |