🚀 Quick Start Guide for Judges

How to run the code:

  1. Clone my repository from GitHub.
  2. Open your terminal in the project folder and install the local server: ```bash npm install -g live-server 3. Start the interface by running:

Bash live-server What will happen once you run it: A browser window will automatically pop open showing the AnonEcho Dashboard.

First Action: Type your honest feedback into the text area (e.g., "The documentation needs clearer examples.") and click Submit Anonymously. A green success banner will flash, confirming that a Zero-Knowledge proof was generated locally against the Merkle Root, and your message will securely appear on the public board.

Second Action (The Test): Without refreshing, type a second message and click submit again. A red verification error banner will instantly appear. This proves that the cryptographic session nullifier successfully detected a duplicate entry and blocked it from spamming the board—fully protecting user anonymity!

💡 InspirationI wanted to tackle a real-world dilemma: how do you give people the freedom to provide raw, honest feedback or safely report issues without the fear of being targeted or tracked? Standard Web2 tools log your data behind the scenes, and classic Web3 tools leak your public key. I wanted to build a practical tool that handles group verification while treating identity as completely confidential.

🛠️ What it doesAnonEcho lets any verified organization member post text strings to a public board. Behind the scenes, it utilizes zero-knowledge mechanics. A user proves they possess an authenticated group credential without revealing their specific index or public key. To prevent bad actors from flooding the system, it uses a unique nullifier loop—allowing a user to post successfully once, but flagging and rejecting them with a validation error if they attempt to spam.

🧱 How I built itI approached this from the ground up! First, I laid down the core privacy circuits inside a Midnight Compact smart contract, structuring a 16-level deep Merkle Tree ledger to manage leaf commitments securely. Since Compact is a rapidly growing language, I engineered an exhaustive Node.js test simulation framework to strictly validate the behavior of my private data witnesses, recompute cryptographic roots locally, and enforce nullifier constraints. Finally, I tied it all together with an interactive browser frontend so anyone can visually experience a live ZK generation and error handling sequence.

🛑 Challenges I ran intoAs this was my first time working with zero-knowledge paradigms and Midnight's developer framework, dealing with abstract concepts like witnesses and ledger fields without an out-of-the-box syntax highlighter in VS Code was a challenge! I had to train myself to read through the logical flows cleanly and double-check my compiler endpoints manually to ensure standard-library alignment.🎉 Accomplishments that I'm proud ofI am incredibly proud of building a fully functioning, interactive cryptographic prototype from scratch in such a short window! Seeing the app successfully handle the dual-state logic—letting the first post pass with a green banner while instantly shutting down duplicate attacks with a precise cryptographic warning—was incredibly satisfying.

🧠 What I learnedI learned the foundational concepts of ZK proofs, how Merkle inclusion paths work client-side before interacting with a blockchain, and how to utilize deterministic nullifiers to regulate user interactions safely without compromising individual data privacy.🚀 What's next for AnonEchoNext, I intend to transition from the mocked cryptographic hashing runtime to a live Midnight Testnet deployment, wiring up the full @midnight-ntwrk/midnight-js SDK suite and binding the application directly to real web extension wallets.

Built With

Share this project:

Updates