Technical Architecture Visualizer
Watch how a single democratic decision is encrypted, validated, and permanently etched into an immutable blockchain — from biometric capture to tamper-proof ledger.
Click any node to explore — or press Begin Journey to animate automatically
Face landmarks captured, PII discarded — cryptographic Voter Token issued
RSA/AES hybrid encrypts the ballot before it leaves the browser — no one can intercept
Zero-Knowledge Proof confirms eligibility without revealing identity. Double-vote blocked.
Consensus among peers locks the block. Immutable. Hash-linked to previous block.
Anyone can verify totals against ledger entries. Anonymity preserved via ZKP proofs.
Each block cryptographically links to the previous — tampering any block breaks the entire chain
The chaincode maintains a VoterRegistry in the state database. Before appending any ballot, it queries this registry using the Voter Token as a key.
getState(voterToken)
// Awaiting transaction... async castVote(ctx, voterId, candidateId) { // Step 1: Check voter registry const existing = await ctx.stub .getState(voterId); if (existing && existing.length > 0) { throw new Error( 'VOTER_ALREADY_VOTED' ); } // Step 2: Record on ledger await ctx.stub.putState( voterId, Buffer.from('VOTED') ); }