ZKRSS

ZKRSS: Verifiable RSS feeds & content provenance using ZK proofs on Aztec.

ZKRSS

Created At

ETHGlobal Buenos Aires

Project Description

ZKRSS is a decentralized content provenance platform that restores trust in digital media by making RSS feeds cryptographically verifiable. Built on the Aztec Network, it leverages Zero-Knowledge Proofs (ZKPs) to ensure the Authenticity, Integrity, and Non-Repudiation of online content without compromising user privacy.

In an age of AI-generated misinformation, ZKRSS allows publishers to cryptographically sign the Merkle Root of their content feeds. Readers can then verify that any specific article belongs to a signed feed using a private ZK circuit written in Noir. This guarantees that the content originated from the claimed source and has not been tampered with, all while keeping the verification process efficient and scalable.

The system comprises three core components: a privacy-preserving smart contract on Aztec for signature and proof verification, a lightweight RSS service for feed management, and a user-friendly frontend for seamless publishing and verification. ZKRSS transforms standard RSS into a secure, trust-anchored protocol for the modern web.

How it's Made

Smart Contracts (Aztec & Noir): The core verification logic resides in a ZK circuit written in Noir and deployed on the Aztec Network. We implemented custom Schnorr signature verification to authenticate publishers and Merkle Proof verification to ensure content integrity. The contract supports batch verification, allowing multiple feed items to be verified in a single private transaction, significantly reducing overhead. We utilized Aztec's aztec-nargo for compilation and the sandbox for local testing.

Backend (RSS Service): We built a lightweight, scalable RSS service using Hono.js and Upstash Redis. This service acts as the "Publisher" node, handling the generation of standard RSS 2.0, Atom, and JSON feeds. Crucially, it calculates the Merkle Root of the feed items and serves the necessary sibling paths (proofs) alongside the content, bridging the gap between standard web protocols and the ZK circuit.

Frontend (App): The user interface is a TypeScript application bundled with Webpack. It integrates the @aztec/aztec.js client library to interact directly with the smart contract from the browser. We implemented an EmbeddedWallet for seamless user onboarding. The app features a dual-mode interface: a "Publisher" mode for signing and committing feeds, and a "Reader" mode that fetches feeds, reconstructs the Merkle path locally, and submits a ZK proof to the Aztec network to verify authenticity in real-time.

Integration: The system uniquely combines off-chain storage (Redis) with on-chain verification (Aztec). By keeping the content itself off-chain and only settling the cryptographic proofs on Aztec, we achieved a highly scalable solution that doesn't bloat the blockchain while still providing strong guarantees of provenance.

background image mobile

Join the mailing list

Get the latest news and updates