Skip to content

JacobEverly/brevis-vera-boundless

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Brevis Vera on Boundless

ZK image authenticity proofs on the Boundless decentralized proof market.

Proves that an edited image originated from a real C2PA-signed capture (e.g., Sony camera) and was transformed only through legitimate edits -- all while keeping the original image private.

How it works

  1. Host reads a C2PA-signed JPEG, extracts COSE/ECDSA signature components, splits the JPEG at the JUMBF manifest boundary, and constructs the guest input
  2. Guest (inside risc0 zkVM) verifies the ECDSA P-256 signature, validates the C2PA asset binding hash chain, decodes the JPEG, replays transforms, and commits hashes of the original and edited images
  3. Boundless market matches the proof request with a prover, generates the ZK proof, and fulfills the request on-chain

The proof attests that:

  • The original image has a valid C2PA signature from a trusted device
  • The JPEG content matches the signed manifest (asset binding)
  • The declared transforms (crop, brighten, grayscale) were faithfully applied
  • Only the transform kinds are public -- parameters (crop coordinates, brightness values) remain private

Prerequisites

  • Rust (stable)
  • risc0 toolchain: curl -L https://risczero.com/install | bash && rzup install
  • A funded wallet on Base mainnet (for proof request fees)
  • Pinata account (for IPFS storage of the guest ELF)

Setup

cp .env.example .env
# Edit .env with your PRIVATE_KEY and PINATA_JWT

Run

# Default transforms (top-left quarter crop + brighten)
cargo run --release -- assets/demo_mini.jpg

# Custom transforms
cargo run --release -- assets/demo_mini.jpg \
  --transforms '[{"Crop":{"x":0,"y":0,"width":32,"height":21}},{"Brighten":{"value":10}}]'

Output:

Brevis Vera on Boundless
  Image: assets/demo_mini.jpg

Submitting proof request to Boundless Market...
  Request ID: 0x...
Waiting for proof fulfillment...

Proof fulfilled!
  Original hash: abcd1234...
  Output hash:   ef567890...
  Transforms:    [Crop, Brighten]
  Explorer:      https://explorer.boundless.network/orders/0x...

Project structure

Crate Description
bv-core Framework-agnostic types and transform functions (from brevis-vera)
bv-capture Host-side C2PA extraction, JUMBF parsing, JPEG splitting (from brevis-vera)
methods/guest risc0 zkVM guest -- verifies C2PA signature, asset binding, decodes JPEG, replays transforms
host CLI that loads an image, constructs guest input, submits to Boundless, waits for proof

Links

About

ZK image authenticity proofs on the Boundless decentralized proof market

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages