基于 JavaScript 和 WebAssembly 的 zkSNARK 库,支持 Groth16、PLONK、FFLONK 证明生成与验证,配合 circom 电路使用。
TrustLevel/ZK-Voting-App
基于 Cardano 链的隐私投票应用,投票人用零知识证明验证身份,投票内容匿名且结果上链不可篡改。
- Star
- 5
- Fork
- 4
- 未关闭 Issue
- 0
- 最近提交
- 3天前
这是什么?
ZK Voting App 是一个基于 Cardano 区块链的投票应用。组织者创建活动、通过邮件邀请参与者,并把投票合约发布到链上。参与者在浏览器中生成 Semaphore 身份并登记公开承诺,随后用 Groth16 零知识证明投票,证明自己属于已登记的群组。一次性 nullifier 用于阻止重复投票,投票内容无法追溯到具体投票人。
应用支持简单投票(每人一票)和加权投票(每人把固定点数分配到多个选项)。投票人无需钱包或 ADA,投票交易由后端构建并提交。活动可在 Cardano 主网或 Preprod 测试网上进行,由组织者在创建时选择。投票窗口结束后,计票结果可在链上查询。
仓库包含 Aiken 智能合约、基于 NestJS 的后端(SQLite 与 LevelDB 存储)、Next.js 前端、交易构建模块以及零知识证明模块。
核心功能
- 01基于 Semaphore 与 Groth16 零知识证明实现匿名投票
- 02一次性 nullifier 防止重复投票
- 03支持简单投票和加权投票两种模式
- 04投票人无需钱包或 ADA,交易由后端提交
- 05计票结果可在 Cardano 链上公开验证
适用场景
- 举办仅限受邀成员参与、且投票内容需保密的正式表决
- 为希望结果上链、不可篡改的组织安排成员投票
- 在 Preprod 测试网上免费体验匿名链上投票
快速上手
- 1
安装所有工作区依赖
npm install - 2
配置环境变量(后端需要 Blockfrost 密钥和有资金的中继钱包)
cp src/backend/.env.example src/backend/.env && cp src/frontend/.env.example src/frontend/.env.local - 3
在 3000 端口启动后端
cd src/backend && npm run start:dev - 4
在 3002 端口启动前端
cd src/frontend && npm run dev
使用前须知
- 本地运行需要 Blockfrost API 密钥和一个有资金的 Preprod 中继钱包。
- 在主网上,组织者需支付约 15 ADA 加手续费,并为每位选民预付 1.3 ADA 押金。
- 如果没有 GitHub 的 SSH 密钥,安装可能失败,需先将 git 地址改写为 HTTPS。
收录于专题
标签
常见问题
- ZK-Voting-App 是什么?
- 基于 Cardano 链的隐私投票应用,投票人用零知识证明验证身份,投票内容匿名且结果上链不可篡改。 ZK Voting App 是一个基于 Cardano 区块链的投票应用。组织者创建活动、通过邮件邀请参与者,并把投票合约发布到链上。参与者在浏览器中生成 Semaphore 身份并登记公开承诺,随后用 Groth16 零知识证明投票,证明自己属于已登记的群组。一次性 nullifier 用于阻止重复投票,投票内容无法追溯到具体投票人。
- ZK-Voting-App 可以免费使用吗?用的什么许可证?
- ZK-Voting-App 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- ZK-Voting-App 还在维护吗?
- 活跃维护中。ZK-Voting-App 最近一次提交是在 2026年11月4日。
- ZK-Voting-App 适合用来做什么?
- 举办仅限受邀成员参与、且投票内容需保密的正式表决 为希望结果上链、不可篡改的组织安排成员投票 在 Preprod 测试网上免费体验匿名链上投票
- ZK-Voting-App 怎么安装和运行?
- 安装所有工作区依赖: npm install 配置环境变量(后端需要 Blockfrost 密钥和有资金的中继钱包): cp src/backend/.env.example src/backend/.env && cp src/frontend/.env.example src/frontend/.env.local 在 3000 端口启动后端: cd src/backend && npm run start:dev 在 3002 端口启动前端: cd src/frontend && npm run dev
- 在哪里获取 ZK-Voting-App?
- 源代码和安装说明在 GitHub 上:https://github.com/TrustLevel/ZK-Voting-App
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
2042+2 本周489JavaScriptGPL-3.0更新于 上个月
Aleo 网络的去中心化节点软件,面向零知识应用的运行与共识。
4530+2 本周2697RustApache-2.0维护活跃更新于 21小时前
一个零知识虚拟机,可为用 Rust 或其他 LLVM 编译语言编写的程序生成正确执行的证明。
1768+6 本周722RustApache-2.0维护活跃更新于 前天
用 TypeScript 编写零知识电路和 zkApp 的框架,可在浏览器或 Node 中生成与验证证明。
605172TypeScriptApache-2.0维护活跃更新于 前天
端到端加密的一次性阅读记事本,笔记在浏览器内加密,阅读一次或 24 小时后即自动销毁。
27443JavaScriptMIT更新于 前天
可自托管的零知识一次性分享工具,通过阅后即焚链接发送密码、密钥、文本和加密文件。
88+4 本周18TypeScriptMIT维护活跃更新于 前天