Research background & feasibility

Context: the provenance ecosystem

Capture-time provenance is an active, standards-backed field. C2PA / Content Credentials (Adobe, Google, Sony, Microsoft; 6,000+ organizations) defines signed manifests embedded in media; the EU AI Act's transparency obligations (Art. 50, applicable from August 2026) and the near-final ISO 22144 point to it as the de facto standard. Shipping hardware already signs at capture: Google Pixel 10 (photos, keys in StrongBox), Sony's video Content Credentials on professional bodies, Leica M11-P. The 2025 Nikon Z6III incident — a researcher induced the camera to sign an AI-generated image — established the field's central lesson: the weak point is what gets signed, not the cryptography.

Why signatures alone are not enough

Social platforms re-encode uploads and strip embedded metadata, including C2PA manifests, essentially 100% of the time. A signature proves integrity, not presence: a stripped file is not "tampered", merely unsigned. Conversely, statistical watermarks alone are removable and forgeable. The literature converges on combining them — an exact cryptographic layer plus a robust watermark used as a recovery pointer ("durable credentials").

Key literature

WorkRelevance
VideoSeal (Meta) (2024)Open-source robust video watermarking, 256-bit payload — our watermark layer
DeepSignature (2026)Ed25519 signature embedded as a neural watermark
Signing Right Away (2025)Signing raw sensor output before the ISP (anti-injection)
ETH Zurich sensor chip (Nature Electronics) (2026)Signature inside the sensor die
VerITAS (2024)zk-SNARK proofs that edits of signed media were permitted ones
zk-Cinema (2026)First zero-knowledge provenance for video
Axis Signed Video / ONVIF Media Signing (2021–)Per-GOP rolling signatures in SEI NAL units, deployed in production cameras
PDQ (Meta) (2019)Production perceptual hash, robust to recompression — evaluated for an in-band content checksum (explored, not shipped)
Durable Content Credentials (CAI) (2024)Signed metadata + watermark + recovery lookup, each covering the others — the pattern our capture-id payload follows
FaceSigns (2022)Semi-fragile neural watermark that dies on deepfake edits — an alternative integrity design we evaluated

Our feasibility results (lab)

Watermark robustness

A 256-bit VideoSeal payload embedded in 1080p video (measured PSNR 46.8 dB) survived simulated re-encode ladders (1080p down to a 360p/500kbps stress case) at 100% to ≥94.9% bit accuracy — lab numbers, labeled as such. Real-platform round trips: actual YouTube upload/download 99.61% bit accuracy, WhatsApp 100% (early prototype), and the shipped system's live results below.

Bitstream signature transport

Custom SEI NAL units prepended to every access unit passed through a consumer phone's hardware H.264 encoder and MP4 muxer intact (60/60, Motorola Moto G75, Qualcomm encoder) — per-GOP signatures need no custom media stack. This transport now ships in production: every video carries independent per-GOP signatures (see the architecture).

Content checksum (explored, not shipped)

We prototyped a 104-bit truncated PDQ hash inside the watermark payload: it separated benign sharing from semantic edits with no overlap in our tests (re-encodes moved it 0–3 bits, splices/inpainting/crops 8–60), and BCH(255,131) recovered the exact payload across the whole transcode ladder with zero silent miscorrections in 31k trials. We set it aside: comparing the copy against the verified original is simpler to explain, stronger evidence, and frees the whole payload for a 128-bit random capture id. The BCH layer survived into the shipped payload; the PDQ implementations remain in spikes/. Data: spikes/results/ in the repo.

Live end-to-end results (shipped system)

Real captures (Motorola moto g75, TEE-backed key) pushed through real platforms and verified with the production verifier:

Two production lessons surfaced by these tests. (1) The video channel flips 20–25% of decoded bits systematically — flat across 24→200 sampled frames and all scan scales — so video carries a 24-bit id in the 8× repetition format rather than the 128-bit BCH payload (the information-theoretic ceiling at that error rate is ~48 bits). (2) int8 dynamic quantization of the browser detector doubled raw bit errors versus fp32 (74/256 vs 32 on the WhatsApp video) and was replaced by an fp16 export that tracks fp32 within a few bits.

On-device embedding cost

The watermark embedder (23.7M params, 28.3 GFLOPs at fp32) runs at ~1.0 s/inference on a mid-range phone CPU — about 2× short of real-time at 30fps with temporal propagation. The identified path is int8 quantization on the NPU (typically 4–8× on this SoC class); flagship NPUs are expected to be comfortably real-time. An engineering gap, not a feasibility wall.

Threat model and limitations