In the third part of this series, I’ll focus on zero-knowledge proofs, a building block for greater financial and data privacy in cryptocurrencies, including Zcash and Ethereum.
At a bar, you’re casually discussing privacy options with your fellow patrons. One gentleman swears by Dash’s PrivateSend. Another fellow offers to sell you the finest Monero. The bartender is an Ethereum fan — she hasn’t been concerned about privacy because it’s “on the roadmap”. Between mixers, ring signatures, and master nodes, you wonder aloud whether there’s a better tool to ensure data and financial privacy.
At the end of the bar, a thin, slightly balding man looks like he’d like to join the conversation. You notice, and smile. The man leans nervously toward you, swallows, and in a hushed tone, says…
“…zero-knowledge proofs.”Zero-knowledge proofs
Zero-knowledge proofs are an uncomfortable topic.
Mostly, they’re uncomfortable because they make people feel stupid, or make people worry that they’ll be made to look stupid. Cryptographers and developers alike struggle with the topic.
Zero-knowledge proofs are a category of cryptographic tool with many different flavors. As a concept, they aren’t scary, and are worth taking a little time to understand.
Like most things, there are layers to the topic that can be peeled back and studied. A little analogy can go a long way to understanding what zero-knowledge proofs are and what they can do.Stranger danger
Imagine you meet someone on the street, and they claim to know your mother — she’s in the hospital, and you need to get in the car with them right now to go see her. You’re in a pickle. You’re worried about your mother, but by now you should be feeling some serious “stranger danger”.
You need to verify that this stranger is, in fact, a family friend you can trust. So you interrogate them, asking questions they should only be able to answer if they are indee...