Live data from Hacker News

How to prove you know a secret without giving it away

quantamagazine.org

131–140 of 171 posts

Re: How to prove you know a secret without giving it away

#131

I'm confused about the maze example in the article: I can "prove" that I know the path to exit as I traverse the maze in limited time, okay. But interactive proofs have many iterations to sufficiently convince the verifier, however if I found the exit by luck in first try, I've already found it and I can simply follow the same path in the next iterations. How does the interactivity exactly work with the maze example?

Imagine the maze is large and complicated, so that it would be very unlikely you could find the exit by luck. Not impossible, but like winning the lottery odds. You could brute force the search but you don't have time. The probability of finding a path by luck is called "soundness error". When the verifier sees you appear at the exit, they know you either knew the path, or with a soundness error probability, you were just lucky.

Now imagine the maze has a large number of exits, all hard to find by luck, and the verifier tells you before you go in which exit they want to see you come out of. You don't know in advance which exit they will ask for. After you come out, they ask you for another one, and again you don't know in advance which one. These rounds are the interactivity.

Each time through, you have a soundness error's probability of finding the requested path by luck, i.e. winning the lottery kind of odds. The probability that you found all the exits the verifier asked for, is like winning the lottery multiple times in a row. Because you don't know which the verifier will ask for in advance, you can't take advantage of patterns in those requests to skew the combined probability in your favour. They are like independent random events: The probabilities multiply.

After N rounds, your probability of finding all the requested exits by luck is lottery kind of odds raised to the power of N. Pick a sufficiently large N and you have extreme probabilities like those used in other cryptography, numbers like 2⁻¹⁰⁰ or 2⁻²⁵⁶, which are so infeasibly unlikely they are similar to the probability of guessing someone's private key or guessing a SHA-256 hash preimage. We trust this demonstrates you know the maze, even though there's an astronomically unlikely possibility that you guessed right every time.

Re: How to prove you know a secret without giving it away

#132

According to school professors, the only way to prove that a person knows something is to lock them in a room for an hour or two and have them write down the entire thing on a piece of paper while being watched intently.

Well, most of the time I attempted a zero-knowledge proof in school I couldn’t convince the teacher ;)

I think the difference is that the teacher already has the full knowledge and learning isn’t as easy as telling a secret once and then the learner can quickly parse it and keep it forever.

Despite that, I’d also prefer to proof I know a topic by writing an essay at home rather than under pressure within an hour under supervision.

Re: How to prove you know a secret without giving it away

#133

Best intro paper on the subject (IMNSHO) How to Explain Zero-Knowledge Protocols to Your Children https://www.researchgate.net/publication/221355016_How_to_Ex...

At the beginning, where the hidden passage is explained, isn't there a "race condition", where Ali Baba would eventually (across 40 repetitions) run into the thief? The thief picks one branch, Ali Baba the other. The thief uses the passage, then walks right into Ali Baba? I don't understand how the thief can be sure to never walk into Ali Baba coming down the other path at some time. What am I missing?

The thief waits in his own passage until he knows the victim has followed him down that passage. He does not pass through the door if the victim is in the other passage. The authors briefly mention this:

> After a very uncomfortable wait he saw a thief arrive who, *sensing he was pursued by his victim*, whispered the magic words, “Open sesame.”

Re: How to prove you know a secret without giving it away

#134

Best intro paper on the subject (IMNSHO) How to Explain Zero-Knowledge Protocols to Your Children https://www.researchgate.net/publication/221355016_How_to_Ex...

At the beginning, where the hidden passage is explained, isn't there a "race condition", where Ali Baba would eventually (across 40 repetitions) run into the thief? The thief picks one branch, Ali Baba the other. The thief uses the passage, then walks right into Ali Baba? I don't understand how the thief can be sure to never walk into Ali Baba coming down the other path at some time. What am I missing?

I guess the thief can observe / hear Ali Baba's approach and decide on using the secret passage to go to the other path (if Ali Baba is approaching his way) or just run out the current passage if Ali Baba chose the other one.

Re: How to prove you know a secret without giving it away

#135

> How to prove you know a secret without giving it away This is the best use case for blockchain. Put the secret on the blockchain and show others that transaction. Since it's on blockchain, no one can deny your claim about knowing the secret. This is why blockchain was invented. Before blockchain, I was miserable. There was no way for me to prove to my girlfriends that I knew a secret, without telling the secret. No…

I guess SHA1 isn't cool anymore?

During the old forum mafia days message digests were one of the ways people made predictions that you'd reveal later. You would usually tack on something random at the end to make guessing hard.

Re: How to prove you know a secret without giving it away

#136

Earlier quoted context omitted.

This reminds me of fixing a bug that causes your problem but then you discover the problem persists after the fix and that you actually had two independent bugs causing the same problem.

Erm, if you do a fix and the problem still exists then how is that a fix? For example, if I have a number box and I punch letters in it and the problem is error is still poping up, then my fix is not a fix, is it? Regardless of how many bugs I have that cause the problem, a fix, in my opinion, is the sum of all those bugs going away.

Have you ever had allergies and a cold at the same time?

Re: How to prove you know a secret without giving it away

#137
post #57

How can you use zero knowledge proofs to show that your nuclear weapons are inactive? Also... couldn't you just reactivate them after?

Yup, this would only work if some central authority had exclusive control to activate/deactivate the warheads.

Re: How to prove you know a secret without giving it away

#138

Scientists used to use anagrams to register scientific discoveries without revealing them. Hooke registered his law of elastic extension using the letters "ceiiinosssttuv”, which he later revealed to unscramble into "ut tensio, sic vis" ("as the tension, so the force"). People did try to brute-force the anagrams. On two occasions, Kepler unscrambled analgrams from Galileo into the statements that (i) Mars has two moo…

Should have padded the anagrams with a known string of nonsense words. I’m going to have to have a chat with Galileo.
Post reply on HN