Inspiration

With the recent trend of using SORA 2 to generate highly realistic AI videos, we became concerned about how such technology could be misused; especially in tampering with crime footage or spreading misinformation. This inspired us to build a project that leverages technology for good; to help verify video authenticity and preserve truth in digital media.

What it does

Our product takes the live CCTV/Cam footage from a facility and securely creates a verification hash of this footage on the blockchain (ethereum). This verification can be used in settings like a court of law to show authenticity of crimes or actions that take place on camera. This verification is becoming more and more important in an age where AI content is rapidly converging in quality with real filmed content.

Key Features: Video authentication through blockchain-stored hashes Immutable record of video uploads Address-based ownership tracking Event-driven architecture for monitoring

Data Flow: Camera → Canvas → Base64 Encoding → WebSocket/HTTP → Backend → Blockchain

How we built it

Blockchain Technology Stack Primary Blockchain Platform: Ethereum - The project is built on the Ethereum blockchain ecosystem

Smart Contract Development: Solidity - Version 0.8.24 (as specified in hardhat.config.ts) Hardhat - Development framework for Ethereum smart contracts Hardhat Ignition - For smart contract deployment management

Network Configuration: Sepolia Testnet - The project is configured to deploy on Ethereum's Sepolia testnet

Development Tools: Ethers.js - JavaScript library for interacting with Ethereum Viem - TypeScript interface for Ethereum (used with Hardhat Ignition) TypeScript - For type-safe development

Backend Integration The frontend communicates with the Python FastAPI backend through: Frame Upload: POST /frames endpoint for batch frame processing Video Validation: POST /api/validate/upload for video verification Ledger Access: GET /api/ledger for blockchain verification results

Video Processing Pipeline Frame Capture: Canvas-based frame extraction from video stream Data Encoding: Converts frames to base64 JPEG format Transmission: Sends frames via WebSocket or HTTP POST Metadata Tracking: Timestamps, frame counts, resolution info

Frontend: HTML/CSS and Javascript

WebSocket Integration Connects to local streaming server on port 3001 Handles connection status with visual indicators Auto-reconnection logic for dropped connections Sends frame data as base64-encoded JPEG images

Challenges we ran into

We encountered several early challenges that shaped our approach. Working with blockchain technology proved more complex than expected. Although Solana initially seemed ideal for recording video streams due to its cost, its API was too difficult to implement within our timeframe, but thanks to GitHub we were able to find an open source platform which mines developer ethereum credits, and ethereum's API was easier to implement . We ultimately chose Ethereum as our blockchain provider.

We also had a mix up with setting up server/client side communication. We set up the host as the sender whereas it should've been the receiver; we fixed that as we progressed and things unfolded.

Reliably hashing and manipulating videos was another obstacle, leading us to adopt a simpler method: splitting videos into one-minute chunks for verification.

Streaming video between the frontend and backend also posed difficulties, which we resolved by using NGROK to bridge our web services.

Accomplishments that we're proud of

We're so proud of the fact that we chose the Human Intelligence aspect and did not integrate AI/ML, LLM, GenAI into our project, which tested our originality and problem solving ability even though a lot of AI/ML, LLM, and GenAI projects are very popular these days. We learned blockchain to accommodate this change and challenged ourselves to learn something new, which we are extremely proud of!

What we learned

Throughout the process, we learned a lot: setting up a JavaScript server, connecting it through ngrok for external access, and integrating blockchain and hashing to securely store and verify video clips. These technologies taught us how decentralized verification can protect against manipulation.

What's next for AuthLens

We do plan to take it to the Innovation Hub at Texas Tech University so we can get funding to upscale this project!

Built With

Share this project:

Updates