A Secure, Transparent, and Anonymous Decentralized Voting System built with Blockchain and Zero-Knowledge Proofs.
- Anonymous Voting using Zero-Knowledge Proofs (ZK)
- Immutable & Transparent blockchain ledger
- Real-time Results with live updates
- Voter Identity Protection via cryptographic commitments
- Tamper-Proof election system
- Fully Auditable public ledger
- Modern, responsive React + TypeScript UI
- Frontend: React, TypeScript, Tailwind CSS, Framer Motion
- Blockchain: Custom Proof-of-Work Blockchain
- Cryptography: Zero-Knowledge Proofs, Pedersen Commitments, Nullifiers
- Real-time: Socket.io
- Styling: Modern glassmorphism + dark theme
- Voter Registration β Creates a Zero-Knowledge identity commitment
- Vote Casting β Generates ZK proof proving vote is valid without revealing identity
- Vote Submission β Added to blockchain via consensus
- Verification β Anyone can verify the entire election on the public ledger
- Node.js (v18+)
- npm or yarn
# Clone the repository
git clone https://github.com/rewati1616/Elexora---Voting-System.git
cd Elexora---Voting-System
# Install dependencies
npm install
# Start the development server
npm run devsrc/ βββ components/ # Reusable UI components βββ services/ # Blockchain & crypto services βββ lib/ # Utilities βββ types.ts # TypeScript interfaces βββ main.tsx
- Commitment Scheme: Used for secure voter registration without revealing identity
- Nullifier: Prevents double voting while maintaining anonymity
- ZK-SNARK Style Proofs: Generates cryptographic proofs for anonymous vote validation
- Smart contract integration (Ethereum / Solana)
- Mobile application support
- Multi-election management system
- Advanced zk-SNARK circuits using Circom
- Aadhaar-based voter registration (India-specific)
Contributions are welcome! Feel free to open issues and submit pull requests.
Made by Rewati for Digital Democracy Elexora β Bringing trust back to voting.