-
Notifications
You must be signed in to change notification settings - Fork 60
Open
Description
Description
Currently, the system anchors evidence hashes (SHA-256) directly to the Polygon blockchain using the EvidenceStorage.sol contract. While this ensures immutability, it potentially exposes metadata fingerprints of highly sensitive judicial evidence on a public ledger.
To achieve true "Zero-Trust Architecture" (as outlined in Phase 2) and enhance privacy, we need to implement Zero-Knowledge Proofs (zk-SNARKs). This will allow investigators and courts to cryptographically prove that a specific piece of evidence exists and remains untampered with, without ever exposing the actual hash or metadata on the public chain.
Proposed Solution
- Circuit Generation: Write a
circomcircuit that takes the original evidence hash as a private input and a public commitment (e.g., a Pedersen hash) representing the case/organization. - Smart Contract Update: Upgrade
EvidenceStorage.solto include averifyProoffunction using a generated Solidity verifier contract. - Backend Integration: Update the Express.js API to generate zk-proofs off-chain using
snarkjsbefore submitting the transaction viaethers.js. - Verification Flow: Update the
evidence-verification.jsfrontend module to validate the zk-proof against the blockchain state instead of doing raw hash comparisons.
Technical Stack
circom/snarkjs- Solidity (Verifier Smart Contract)
- Node.js /
ethers.js
Acceptance Criteria
- ZK circuit compiled and verifier smart contract deployed to Polygon Amoy.
-
EvidenceStorage.solsuccessfully upgraded to accept and verify proofs. - Backend generates proofs dynamically upon evidence upload.
- Verification times remain under 5 seconds on the frontend.
- Comprehensive unit tests added to Hardhat (
tests/).
Labels: enhancement, blockchain, hard, security
Assign this issue to me under the OSCG
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels