Skip to content
/ zkam Public

Secure photo ownership with zero-knowledge proofs. Capture, sign, and verify images while preserving privacy. Is it a zkam? 🛸😱

License

Notifications You must be signed in to change notification settings

zkam-labs/zkam

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zkam

License: AGPLv3

Is it a zkam? 🛸😱

Project Overview

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.

Repository Structure

  • 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.

How does it work?

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.

About

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.

Acknowledgements

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.

License

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.

About

Secure photo ownership with zero-knowledge proofs. Capture, sign, and verify images while preserving privacy. Is it a zkam? 🛸😱

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published