Skip to content

PiotrStyla/SealZero

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

SealZero

Cryptographic Image Authenticity Verification Prove that an edited image differs from its original only in a declared region — without exposing the original.

Fully client-side — no images leave your browser.

Live Demo License


The Problem

A photojournalist takes a photo. There's a person in it whose identity must be protected. The journalist redacts the face and sends the edited image to the newsroom.

The newsroom needs to trust that nothing else in the photo was altered — but the journalist cannot share the unredacted original, because that would reveal the person's identity.

How do you prove an image is authentic when you can't show the original?

The Solution

SealZero lets the journalist verify the edit cryptographically, then share a verification certificate with the newsroom. Everything runs in the browser — no server, no uploads, no third party.

How It Works

1. Reporter verifies the edit (private)

The reporter opens sealzero.dev, uploads both the original and edited images (locally, in-browser), and draws a rectangle over the redacted region.

SealZero performs a pixel-level comparison:

  • Outside the rectangle — confirms every pixel is unchanged
  • Inside the rectangle — confirms the region was modified

Then it generates a shareable verification certificate link containing:

  • The reporter's name / identity
  • SHA-256 hash of the original image
  • SHA-256 hash of the edited image
  • Exact coordinates of the declared region
  • Verification metrics (% match outside, % changed inside)
  • Timestamp

2. Newsroom confirms (public)

The editorial office receives the share link + the edited image file from the reporter.

They open the link and see:

  • Verification status — VERIFIED or FAILED
  • Reporter identity — who performed the verification
  • Verification details — region, hashes, metrics, timestamp

Then they upload the edited image they received. SealZero computes its SHA-256 hash and checks it against the certificate. If it matches — this is the exact same file that was verified. No tampering after verification.

The newsroom never sees the original image. They trust the cryptographic proof.


Key Features

  • Client-side only — no images are uploaded to any server, ever
  • Pixel-level verification — sampled comparison with dual tolerances for JPEG robustness
  • Reporter identity — author name embedded in the certificate
  • Instant hash confirmation — editorial office verifies the received file in one click
  • Shareable certificate link — send via email, Slack, or any messenger
  • No registration — open the website and start verifying

Additional Capabilities

  • Proof generation — SHA-256 hash-binding and Merkle-commitment proofs for image transformations (crop, resize, rotate, redact, etc.)
  • Proof verification — upload a .json proof file to verify offline
  • Performance dashboard — proof history and metrics
  • Multi-platform — works on desktop, tablet, and mobile browsers

Use Cases

Photojournalism

A reporter redacts a source's face for safety. The newsroom can confirm the rest of the photo is untouched — without ever seeing the unredacted original.

Legal & Compliance

Evidence images need chain-of-custody verification. SealZero proves specific redactions (e.g. blurring license plates) are the only modifications, without exposing sensitive details.

Medical & Scientific Publishing

Researchers redact patient data from medical images. Peer reviewers can confirm the scientific content is unaltered.

Corporate Communications

Internal documents with redacted confidential data can be verified as otherwise authentic before publication.


Technology

  • Built with Flutter — runs on web, desktop, and mobile
  • Cryptography: SHA-256 hashing, Merkle-commitment proofs, pixel-region comparison
  • Architecture: MVVM with Provider, GetIt DI, Go Router
  • Deployment: GitHub Pages at sealzero.dev

Cryptographic Approach

Layer Method Status
Hash-Binding (V1) SHA-256 binding over image hashes + transformations + nonce Live
Merkle Commitment (V1) Pixel-block Merkle trees with inclusion proofs Live
Pixel-Region Comparison Dual-tolerance sampled comparison (15/ch outside, 3/ch inside) Live
Zero-Knowledge Proofs Groth16 via Rust/WASM — prove without revealing pixel data In development

Try It Now

https://www.sealzero.dev

No installation. No registration. No data leaves your browser.


Roadmap

  • External verification flow (reporter → editor certificate)
  • Hash-binding and Merkle-commitment proofs
  • Shareable verification certificate with hash confirmation
  • Web deployment at sealzero.dev
  • Zero-knowledge proofs via Groth16 WASM
  • Server-side verification records for immutable audit trail
  • C2PA / Content Credentials interoperability
  • Browser extension for inline verification

License

Proprietary — All Rights Reserved. Copyright (c) 2025-2026 Piotr Styła.

Any use of this software requires prior written consent from the owner. You may view the source code for informational and evaluation purposes only. See LICENSE.

Contact

Support a Good Cause

If you find this project useful, please consider supporting the Hospice Foundation in Cracow, Poland — compassionate end-of-life care for patients and families.

Donate: https://fundacja-hospicjum.org/


No images leave your browser | Cryptographic verification | Built with Flutter

About

Cryptographic image authenticity verification — prove edits are localized without exposing the original. Fully client-side.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors