In Zero Knowledge Protocols, there's a prover with a polynomial (let's say y = x^2) and a verifier who wants to evaluate this polynomial at a random point (e.g. ensure y = 4 when x = 2)
Neither party learns about the others' information, yet the evaluation works. Here's why 🧵: