Have you ever looked at a photo and wondered: Is it a zkam? 🛸😱
Introducing zkam, the photo authentication app that leverages zero-knowledge proofs to ensure image ownership and integrity. With zkam, users can capture photos, automatically sign them with their unique digital signature, and verify ownership without compromising privacy. Our seamless process encrypts signature data directly into the image, generates a secure hash, and creates a zero-knowledge proof—all while maintaining the user's anonymity.
Whether you're a photographer protecting your work, a journalist verifying sources, or anyone concerned about image authenticity in the digital age, zkam provides a powerful, user-friendly solution for proving photo ownership and authenticity without revealing sensitive information.
- ZK Circuits: This directory contains the implementation and related files for generating and verifying zero-knowledge proofs for the main circuits defined in the project.
- Front-end Code: This directory contains the source code for the front-end application, including UI components, state management, and API integrations.
- Smart Contract Code: This address includes the smart contract code written in Solidity, deployed on Scroll, and used to manage and verify user signatures.
We use steganography to embed the hash of the original image into our zkam-proof
image, allowing the user to verify the authenticity of the captured photo.
Our procedure works as follows:
- The user takes a photo with our app.
- With the user's private key, a pseudo-random set of bytes is selected from the photo.
- These byte locations are used to store the hash of their complement in the original image.
- Only the user has the key to reveal the hash stored secretly in the image.
- The user can provide a zero-knowledge proof that the hash stored in the secret bytes coincides with the hash of their complement in the image, thus proving that the image has not been altered.
zkam
is an open-source project developed by Nicolás Biondini, Yago Pajariño, Alejandro Almaraz, and Arturo Beccar-Varela. With backgrounds in computer science, math, and blockchain, we are interested in the applications of zero-knowledge proofs to privacy and authentication.
We attended this hackathon as part of our participation in the PSE Core Program, a six-week program focused on learning the fundamentals and latest developments in programmable cryptography, zero-knowledge proofs, and more.
This project is licensed under the AGPLv3 License - see the LICENSE file for details. Contact us if you're looking for an exception to the terms.