Heya everyone!
I recently came across a concept where you can prove to another person that you know something — let's call it "A" — without revealing anything other than the fact that you know it. At first it kinda felt like "trust me bro", but it's surprisingly not! This is an actual method of proving knowledge of something without revealing the thing itself.
Why I'm Learning This
I'm building Anomaly, an anonymous campus forums platform.
The problem: students want to post anonymously and speak their minds out without the fear of being judged, but existing systems just "promise" not to reveal identity. I needed mathematical proof that even the server CAN'T identify users.
That's when I found zero-knowledge proofs.
The Club Bouncer Analogy
Another way to understand zk-proofs is let us imagine a scenario where two friends, A and B, go to a nearby club. A gets in with his government ID, but B didn't bring his. Now, B tells the Bouncer that he's above the legal age — and nothing else — and the Bouncer is somehow able to verify that B is indeed old enough. That's a Zero Knowledge Proof, or ZK Proof for short.
First Impressions
This felt a little overwhelming at first — one of those magic things that happen under the hood. Kind of like learning Recursion all over again: it works, but it doesn't quite make sense... until you sit with it long enough and it finally clicks.
Why Does This Matter?
These tend to be a great way to implement proving systems without compromising privacy or identity. In A's case, it seemed simple — he just showed his ID — but in reality he gave up way more than needed. He only had to prove his age, yet ended up handing over his full name, address, and everything else on the card. B, on the other hand, shared just enough to prove what was required, nothing more.
How This Works in Anomaly
In Anomaly, students need to prove they're verified campus members
without revealing their identity while also preventing sybil attacks. Here's how I planned it:
- Registration: Student proves they have
@university.eduemail - System creates identity commitment (like a fingerprint)
- When posting: Student proves "I'm in the verified list" without revealing WHICH member they are
The server literally cannot link posts to users, even if it wanted to.
What's Next
Building the full Anomaly platform. Will write more about the
implementation challenges as I hit them.
Some resources that helped me get started with ZK Proof:
Thanks for reading!
KD
p.s this is my first post, i apologize for any mistakes, suggestions are very much welcomed! :D
I tend to use the em dash instinctively.
Top comments (1)
Looks great! The idea of "implement proving systems without compromising privacy or identity" is something that should be discuss about since we are at an age where it is about proving and then leads to privacy issues. Great post!