Inspiration ZK-PoH was inspired by the growing need for secure, privacy-focused ways to verify that users are human. As bots become increasingly advanced, distinguishing them from real people—without compromising privacy—is critical for applications in digital identity, cryptography, and blockchain systems.
What it does ZK-PoH verifies an identity’s humanness through biometric authentication while preserving privacy. It combines Hierarchical Bloom Filters for efficient biometric data management, zero-knowledge proofs for privacy-preserving verification, and blockchain technology for tamper-resistant, transparent storage. The system issues time-bound PoH credentials that expire after a set duration, ensuring continuous re-verification and security.
How We Built It ZK-PoH was built using a full-stack approach. We used Rust and the ark-std library to implement the zero-knowledge proofs at the core of the system. The frontend was developed using React and Chakra UI, providing a clean and responsive user interface. On the backend, we utilized Express for the server and Solidity with Hardhat for deploying and managing smart contracts. Throughout development, we prioritized modularity, maintainability, and performance.
Accomplishments and Lessons Learned We’re proud to have developed a working solution that addresses a real problem with a privacy-first mindset. Despite having limited experience with ZKPs at the outset, we dove in, learned quickly, and implemented them effectively. We also became proficient with Chakra UI and significantly improved our Solidity and system architecture skills. Our team used Git feature branches to maintain a well-organized codebase and navigated multiple design iterations to refine and improve the product. Along the way, we strengthened our communication and public speaking skills, and built a user interface we’re genuinely proud of. We also found tools like Pinata incredibly helpful and easy to integrate into our workflow.
Challenges We Faced Like any ambitious project, we encountered a number of challenges. Early misunderstandings about how zero-knowledge proofs work forced us to revisit and adjust our design. We ran into limitations with the size of our Hierarchical Bloom Filter contract and faced performance issues with the verifier contract and data upload times. Hardhat also presented some frustrations. Coordinating the many moving parts—from frontend and backend to cryptographic logic and smart contracts—required careful integration and time management.
What’s Next Looking ahead, we plan to enhance the security and efficiency of our proof generation process by integrating Chainlink for preprocessing. We’re also working on faster credential generation, expanding decentralization through personal wallets, and improving real-time UI updates with The Graph. Additionally, we aim to make ZK-PoH easier to integrate with other platforms, opening the door for wider adoption and utility.
Built With
- chakras
- express.js
- hardhat
- javascript
- react
- rust
- solidity
Log in or sign up for Devpost to join the conversation.