Verity — Project Documentation
Inspiration
The inspiration for Verity came from the growing concern over digital misinformation and the dilution of trust in online content. In an era where deepfakes, generative AI text, and manipulated media can spread globally in seconds, verifying the authenticity of information has become one of society's greatest challenges. We wanted to build a decentralized, immutable verification layer for digital assets—a system that acts as a single source of truth, ensuring that what you see, read, or hear can be cryptographically traced back to a trusted origin.
What it does
Verity is an end-to-end digital provenance and verification platform. It allows content creators to cryptographically sign their media (images, video, text, or documents) at the moment of creation or publication. The platform generates a unique cryptographic fingerprint (hash) of the content and registers it onto a decentralized ledger.
When a consumer encounters a piece of content, Verity's browser extension or mobile app instantly verifies its integrity. If the file has been altered by even a single pixel or character, the system flags the manipulation. By tracking changes using a Merkle DAG (Directed Acyclic Graph), users can visualize the exact evolution and history of the asset.
How we built it
Verity is built using a modern decentralized architecture:
- Frontend: React and Tailwind CSS for a seamless, intuitive dashboard, alongside a cross-browser extension built using WebExtensions API.
- Backend/Storage: Node.js, Fastify, and IPFS (InterPlanetary File System) via Web3.Storage for decentralized, content-addressed storage.
- Blockchain/Ledger: Ethereum Layer-2 (Arbitrum) smart contracts written in Solidity to ensure fast, low-cost, and immutable state changes.
- Cryptography: SHA-256 for rapid file hashing, combined with Ed25519 signature schemes for secure, low-overhead digital signatures.
Mathematical Foundations
To guarantee integrity without storing massive media files on-chain, Verity leverages cryptographic hashing and Merkle trees.
Let a file data block be $D$. The cryptographic hash $H$ is computed as: $$H = ext{SHA-256}(D)$$
For a structured document or a collection of media assets, we construct a binary Merkle Tree where each parent node is the hash of its concatenated children: $$N_{ ext{parent}} = ext{SHA-256}(N_{ ext{left}} \parallel N_{ ext{right}})$$
The root of this tree, $R$, represents the definitive state of the entire project archive. The verification process checks an asset's membership in the tree by verifying a proof path of length $\log_2(n)$, where $n$ is the number of elements. The computational complexity for verification is strictly bounded by: $$\mathcal{O}(\log n)$$
This ensures instant verification times even for datasets containing millions of verified assets.
Challenges we ran into
One of our biggest hurdles was dealing with file format variations and metadata stripping. Social media platforms often re-encode images or strip metadata upon upload, which breaks traditional cryptographic hashes. We had to implement perceptual hashing algorithms (pHash) that compute hashes based on visual features rather than raw binary data, ensuring that an image compressed by a messaging app can still be matched back to its original record.
Another challenge was managing blockchain gas fees. Initially, registering each individual file hash on-chain was cost-prohibitive. We solved this by implementing a batching mechanism using a Merkle tree rollup structure, allowing us to commit tens of thousands of verification states in a single on-chain transaction.
Accomplishments that we're proud of
- Real-Time Verification: Successfully built a functioning browser extension that flags unverified images on live news feeds in under 200ms.
- Cost-Efficient Scalability: Optimized our Merkle tree batching system to reduce on-chain state registration costs by over 98%.
- Seamless UX: Designed a drag-and-drop web portal that completely hides the underlying blockchain complexities (wallets, gas, keys) from non-technical content creators.
What we learned
We learned an incredible amount about advanced cryptographic primitives, decentralized storage optimizations, and the delicate balance between robust security and user accessibility. We also gained a deep understanding of perceptual image analysis and how to distinguish malicious media tampering from benign data compression.
What's next for Verity
Moving forward, we plan to expand Verity by building native integrations directly into popular content management systems (like WordPress) and hardware-level capture devices (like smartphone camera APIs) to sign assets directly at the lens level.
Built With
- antigravity
- gemini-api
- langgraph
Log in or sign up for Devpost to join the conversation.