|
|
|
|
|
by andromeduck
3194 days ago
|
|
Building on the normal discrete log/hamiltonian problems, if you have a random source that can be globally trusted such as some hash, then I think you could pretty easily prove it to the world as such: 1. Create a series of n problems P, based on some secret S, and and publish them.
2. Get some source of randoms everyone can trust, such as PRF(P) where PRF is some expensive secure hash function
3. Publish the proof of knowledge revealing the the piece specified by the random source. Anyone can create P but only someone with knowledge of S can tractably pass step 3 because being able to do so implies either being able to predict the output of the hash function in which case the PRF is insecure or or getting winning 2^n coin tosses even if an attacker has an infinite pool of half revealed challenges he can pull from. |
|
https://en.wikipedia.org/wiki/Fiat%E2%80%93Shamir_heuristic
NIZK is a very different concept from ZK, because the verifier does learn something, in the sense that the verifier has received a string it could not compute on its own. In ordinary ZK the verifier cannot compute anything after running the protocol that it could not have computed beforehand (so it gains nothing from the interaction).