probs9234/Veritas-Blockchain-Voting

GitHub: probs9234/Veritas-Blockchain-Voting

一个基于以太坊智能合约和 zk-SNARKs 的电子投票系统原型,实现了投票匿名性与公开可审计性的平衡。

Stars: 0 | Forks: 0

# Veritas 区块链投票 一种基于自定义 Ethereum 智能合约构建的最先进的、防篡改的电子投票机制,并通过 Zero-Knowledge Proofs (zk-SNARKs) 进行认证。 ![Veritas 演示](https://images.unsplash.com/photo-1639762681485-074b7f4ec651?auto=format&fit=crop&q=80) ## 功能 - **防篡改账本**:选票被永久记录在 Ethereum 智能合约上。 - **匿名投票**:通过利用加密的 Zero-Knowledge Proofs (zk-SNARKs),投票者可以在不暴露身份的情况下,从数学上证明其投票权。 - **防止重复投票**:确定性 nullifier hashes 的实现保证了每位符合条件的参与者每次选举仅能投出一票。 - **优质 UI/UX**:精心打造的 Next.js 前端,具有玻璃拟态效果、动态动画以及用于透明验证的交互式“ZK-Proof Terminal”。 ## 架构 该项目分为两个主要组件: 1. `/blockchain` - 包含用于 Ethereum 智能合约的 Hardhat 项目。 - `VeritasVoting.sol`:核心选举和账本逻辑。 - `Verifier.sol`:加密 zk-SNARK 验证合约。 2. `/frontend` - 包含 Next.js 14 Web3 应用程序 UI。 ## 快速开始 ### 前置条件 - Node.js (v20+) - MetaMask (或等效的 Web3 扩展) ### 1. 智能合约 导航到 `blockchain` 目录,安装依赖项,并运行测试以验证加密逻辑。 ``` cd blockchain npm install npx hardhat test ``` ### 2. 前端应用程序 导航到 `frontend` 目录并启动本地 Next.js 开发服务器。 ``` cd frontend npm install npm run dev ``` 访问 `http://localhost:3000` 以与去中心化应用程序进行交互。 ## 密码学说明 *本仓库包含一个模拟的 ZKP verifier 映射,用于演示目的,以避免真实 Circom 电路的繁重编译步骤,同时展示了 ZK-rollups 或匿名凭证在 Ethereum 上运行的架构流程。* *为展示去中心化技术和加密安全而构建。*
标签:DApp, EVM, Hardhat, MetaMask, Solidity, Web3, zk-SNARKs, 以太坊, 公共审计, 区块链, 匿名投票, 去中心化应用, 去中心化身份, 双重投票预防, 哈希算法, 密码学, 手动系统调用, 智能合约, 电子投票, 网络安全, 网络安全, 自定义脚本, 选举系统, 配置审计, 防篡改, 隐私保护, 隐私保护, 零知识证明