Repolode
TrustLevel

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. 1

    安装所有工作区依赖

    npm install
  2. 2

    配置环境变量(后端需要 Blockfrost 密钥和有资金的中继钱包)

    cp src/backend/.env.example src/backend/.env && cp src/frontend/.env.example src/frontend/.env.local
  3. 3

    在 3000 端口启动后端

    cd src/backend && npm run start:dev
  4. 4

    在 3002 端口启动前端

    cd src/frontend && npm run dev

使用前须知

  • 本地运行需要 Blockfrost API 密钥和一个有资金的 Preprod 中继钱包。
  • 在主网上,组织者需支付约 15 ADA 加手续费,并为每位选民预付 1.3 ADA 押金。
  • 如果没有 GitHub 的 SSH 密钥,安装可能失败,需先将 git 地址改写为 HTTPS。

收录于专题

标签

#zero-knowledge#cardano#blockchain#voting#privacy#semaphore#groth16#typescript

常见问题

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 数据每日更新。

相关项目