The next generation of digital democracy, powered by cryptographic ledgers.
ChainVote is a decentralized voting protocol designed to eliminate electoral fraud and restore public trust. By leveraging blockchain principles—without the overhead of a public gas-based network—ChainVote ensures that every vote is mathematically verifiable, permanently recorded, and completely anonymous.
Traditional voting systems rely on "blind trust" in centralized databases. ChainVote replaces trust with cryptographic proof.
Experience ChainVote in action:
🔗 Live Application: https://your-live-url.com
- SHA-256 Blockchain Chaining: Every vote (block) is linked to the previous one via a cryptographic hash. Any attempt to alter a past vote breaks the entire chain instantly.
- AES-256 Ballot Encryption: Vote payloads are secured using military-grade encryption before being committed to the ledger.
- Tamper-Evident Ledger: A built-in integrity validator that scans the entire chain for consistency.
- Zero-Knowledge Identity Hashing: Voter IDs (Aadhaar/Roll No) are hashed client-side using a one-way salt. We verify your right to vote without ever storing your actual identity.
- Anonymous Ballots: The link between the voter's identity and their choice is cryptographically severed.
- Live Ledger Explorer: A public audit trail where anyone can verify their vote's presence on the chain using a private receipt.
- Real-Time Results: Automated tallying that only unlocks once the election cycle concludes.
- SOC Dashboard: A Security Operations Center (SOC) that monitors network anomalies and duplicate voting attempts.
- Authenticate: The voter enters their unique ID. The system generates a one-way cryptographic hash.
- Encrypt: The voter selects a candidate. The ballot is sealed in an AES-256 encrypted envelope.
- Mine: The system generates a new block containing the encrypted payload and the hash of the previous block.
- Verify: The voter receives a digital receipt (Block Hash) to audit the public ledger.
CHAINVOTE/
├── chainvote/ # Core System Configuration
│ ├── settings.py # Security & App Config
│ └── urls.py # Global Routing
├── voting/ # Main Application Logic
│ ├── management/ # Custom CLI tools (Data Seeding)
│ ├── migrations/ # Database Evolution
│ ├── static/ # Assets (CSS/JS)
│ ├── templates/ # Apple-style UI (Glassmorphism)
│ ├── utils/ # The "Engine"
│ │ ├── blockchain.py # Chain Logic & SHA-256 Chaining
│ │ └── encryption.py # AES-256 Implementation
│ ├── models.py # Ledger & Election Schemas
│ └── views.py # Logic for Booth & Dashboard
├── db.sqlite3 # Local Ledger Store
└── manage.py # System Entry Point
| Component | Technology | Role |
|---|---|---|
| Backend | Django 4.2 | Application Framework |
| Frontend | Tailwind CSS | UI/UX (Apple Glassmorphism) |
| Cryptography | PyCryptodome / SHA-256 | Data Security |
| Database | SQLite / PostgreSQL | Permanent Storage |
| Logic | Python 3.10+ | Blockchain & Tallying |
git clone https://github.com/your-username/ChainVote.git
cd ChainVote/CHAINVOTEpython -m venv env
.\env\Scripts\activatepip install -r requirements.txt
pip install cryptography # Ensure crypto-libs are presentpython manage.py migrate
python manage.py seed_data # Optional: Populate with sample electionspython manage.py runserverVisit http://127.0.0.1:8000 to enter the voting booth.
GET /api/elections/— List all active and ended elections.GET /api/elections/<id>/results/— Fetch tallied results (post-election).GET /api/blockchain/<election_id>/— View the raw public ledger.
"Mathematical Integrity over Human Promise."
- Immutable History: Once a block is mined, it cannot be changed without recalculating every subsequent hash, a computationally expensive task detected by the SOC.
- AES-256 GCM: Ensures not just confidentiality but also authenticity of the vote payload.
- CSRF & SQLi Protection: Built on top of Django's hardened security middleware.
- Decentralized Nodes: Shifting from a single ledger to distributed nodes for higher availability.
- Biometric Integration: Face-ID/Fingerprint authentication for Aadhaar verification.
- Blind Signatures: Further enhancing anonymity using RSA blind signatures.
This project is developed as an MVP for a hackathon. While it utilizes industry-standard cryptographic primitives, it should be audited by security professionals before any use in real-world large-scale governmental elections.
Rahul Raj Jaiswal
Cybersecurity & Blockchain Enthusiast | Full-Stack Developer