“truth”, or "proof of truth" is not enough.
Imagine this: You ask me to prove to you that I have a spouse, but I do not intend on telling you anything about my spouse or revealing anything about my wedding details. So how do I prove to you that I indeed have a spouse without doing the aforementioned?
Here’s why Zero Knowledge Proofs (ZKPs) work.
For you to objectively verify that I indeed have a spouse and that I am not simply lying, or attempting to deceive you, something has to be in place - a law of some sort. You see, anyone can show up and claim they have a spouse, but we cannot simply trust their claim. We need a way to verify the authenticity of that information. We need something to indeed prove that the statement they made is true seeing that they have evidently refused to reveal ANYTHING about their spouse (name, wedding cert, pictures, etc). Here’s how we can do that: we introduce a 'law'. Stay with me.
Let’s explore this thought experiment: say you and I both exist in the same geographical location, or we can take it a step further and assume that this is a global law, so it doesn’t matter where you are on planet earth, this law applies.
The law goes thus: anyone who wears a wedding band without actually (read: legally) being married, is met with instantaneous death. A bit extreme? I know. Hang on. Try not to worry too much about how the government will figure this out, we’re going to assume that all of the technological advancement needed to make this happen, truly does exist, and you and I have seen it work.
Okay, moving on. Now that we have this law in place, all I have to do is show you my wedding band, and we can both agree - by virtue of the law of the land - that I indeed have a spouse. because if that wasn’t the case, I should have dropped dead the moment I put on that wedding band.
And there you have it, I just proved to you that I have a spouse, without telling you anything about them.
Now I know what you might be thinking; well, this is one example, how does it apply to various examples? namely: where’s waldo? good question.
Here’s how: for the game of Where’s Waldo to work and be used as a ZKP example, waldo has to exist in that world. And, not just that, he needs to be UNIQUE! if anyone can be a waldo, the game doesn’t work and is not a reliable means.
So as you can see, there has to be a handful of things in place to get ZKPs to 'work'.
In cryptography, it's a lot easier. It's math. Every problem set given to a prover is 100% unique, and no two provers have the same questions to solve, this way, we can 100% verify that the problem was solved by THAT specific prover, and there was no way they could have gotten the solution without having to actually solve it themselves.
source: https://www.mdpi.com/2227-7390/9/20/2569.
So, for zero-knowledge proofs to work, we need to have some form of constraint. Something that ensures that not every statement CAN be true, but specific things. REALLY specific things. Things that pass the vibe check.
I think that this is by far one of the coolest examples you can think of when trying to conceptualize WHY ZKPs work. The wedding/spouse example.
Conclusion
So while it is often said that for zero knowledge to work, we need two parties… the prover and the verifier. I say for zk to be TRUST(less)worthy and RELIABLE, we need 3 entities: the prover, the verifier, and the entity that ensures that there can be no bad actors… think of it as “the rules of the game” without which, the game has no meaning.