project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4

PixelProof

A Web Platform for Image Authenticity Verification Using Zero-Knowledge Proofs

PixelProof

Created At

ETHGlobal San Francisco

Project Description

Inspiration

In today’s digital world, the ability to create, modify, and distribute visual content has become more accessible than ever. With advancements in artificial intelligence (AI), it’s now possible to manipulate images in ways that are nearly undetectable to the human eye. AI-driven tools like deepfakes, image generators, and sophisticated photo-editing software have made it easy to alter or fabricate images that appear authentic. While these technologies offer creative and practical benefits, they also present serious challenges—especially in terms of trust, authenticity, and misinformation.

Also in today’s social media-driven world, digital content spreads faster than ever. Unfortunately, false information and tampered images can go viral just as quickly as the truth. Whether it’s fake news, altered photos of public figures, or images designed to mislead audiences, the potential for misinformation to have real-world consequences is significant.

Solution

Pixel-Proof is a cutting-edge web platform that leverages zero-knowledge proofs (ZKPs) to allow users to verify the authenticity and integrity of digital images without exposing the actual content of the image. The platform provides a privacy-preserving method for determining whether an image has been modified or tampered with, ensuring users can verify the origin and authenticity of their images securely and efficiently.

Using advanced cryptographic techniques, particularly ZKPs, the platform allows users to generate proofs of image integrity, proving whether an image is identical to the original version or has undergone changes—without revealing the image itself. This is particularly useful for industries such as media, law enforcement, content verification, and intellectual property management, where proving image authenticity is crucial.

Key Features

  1. Image Authentication verification The platform allows users to capture the photo, edit the photo at which zkProof will be created which basically attests the photo whether the image was edited or not. The interface has an option to upload the image where users can upload the edited image and verify whether the image was altered or not along with it’s history.

  2. Zero-Knowledge Proofs (ZKPs) for Privacy By utilizing ZKPs, the platform proves the integrity of the image without revealing its content to the verifier. This preserves the privacy of sensitive images while enabling secure verification. Verifiers can check the proof to validate the authenticity of the image without ever seeing the original image.

  3. Seamless Web-Based Interface PixelProof offers an intuitive and user-friendly web interface where users can easily upload images, generate proofs, and share the proof for verification.

  4. Secure Proof Sharing As proof will be stored on-chain, any user from other chain can do the verification

How does it work?

Image Capture Users can capture an image on our platform. This will capture the metadata and allow the user to download that image. Image Edit Users can select their captured photo and edit the image accordingly. Currently we have only supported grayscale operation because of the time constraints. Using zero-knowledge proof techniques, proof for that edited image will be generated at the end of edit operation and the cryptographic proof is stored on-chain so anyone can use that proof and verify that image. Edited Image Upload Users can upload the edited image to verify whether the image was modified or not. At this moment, proof will be verified against the original image and results will be given to the user. The history for that edited image will also be given to the user. As soon as the proof is validated, the user will be shown the results of the verification and the user can see the series of edits on that original image if it was done on the Pixel-Proof platform.

How it's Made

How It's Made: PixelProof Project

Our project, PixelProof, is a novel application of zero-knowledge proofs to verify various image conversions without revealing the original images. Here's a breakdown of how we built it:

Core Technologies

  1. Circom: We used Circom, a domain-specific language for building zero-knowledge circuits. Circom allowed us to define the constraints for our grayscale verification process in a clear, declarative manner.

  2. snarkjs: This JavaScript library was crucial for generating and verifying zero-knowledge proofs based on our Circom circuits.

  3. Node.js: We leveraged Node.js for our backend processing, particularly for generating input data from images.

  4. canvas: This Node.js library was essential for image processing, allowing us to extract pixel data from both color and grayscale images.

Project Components

  1. Circom Circuit (no_round.circom`):

    • Implements the core logic for verifying grayscale conversion.
    • Checks each pixel using the formula: 30R + 59G + 11B = 100 * gray + remainder
    • Ensures remainders are within acceptable bounds.
  2. Input Generator (generate_grayscale_inputs.js):

    • Processes original color and converted grayscale images.
    • Extracts RGB and grayscale values.
    • Calculates remainders and prepares input for the Circom circuit.
    • Outputs a structured JSON file.
  3. Proof Generation and Verification:

    • Uses snarkjs to compile the Circom circuit.
    • Generates a zero-knowledge proof based on the input data.
    • Provides a verification mechanism for the proof.

Piecing It Together

  1. We start by processing a pair of images (original color and converted grayscale) through our Node.js script.
  2. The script generates a JSON file containing the pixel data and calculated remainders.
  3. This JSON file serves as input to our Circom circuit.
  4. We use snarkjs to generate a proof based on the circuit and input data.
  5. Finally, we can verify this proof without revealing any information about the original images.

Challenges and Hacks

  1. Precision Handling: One of the trickiest parts was dealing with floating-point precision in grayscale calculations. We implemented a remainder system in our circuit to account for small discrepancies between calculated and given grayscale values.

  2. Scale Matching: We had to carefully manage the scale of our calculations. In the Circom circuit, we work with values scaled up by 100 to avoid floating-point operations, which aren't supported in Circom.

  3. Efficient Constraint Writing: Writing efficient constraints in Circom was crucial for keeping the proving time reasonable. We optimized our circuit to minimize the number of constraints while maintaining accuracy.

This project demonstrates the powerful combination of zero-knowledge proofs and image processing, opening up new possibilities for privacy-preserving image verification systems.

background image mobile

Join the mailing list

Get the latest news and updates