Ask HN: Building a ZKP Scheme for Humans
Hello HN,
I am looking to find a ZKP scheme for humans. Instead of remembering passwords, the user can remember a unique function that has a certain property. Services then probe the user to prove that they know such a function, without revealing the function to the service.
The problem is, I'm not good at cryptography. I need to find a set of functions that one such function is
- is easy to evaluate in my head - is possible for me to remember - can be pre-calculated - reasonably fast to use in ZKP
One example of a function is to imaging a 3D cellular shape with holes. The challenge type is a list of "discrete movement through the space", and the response is a list of "crossing the boundary of the 3D shape".
I hope you hackers have a better idea of what types to use for `C`, `R`, and how to choose `generate_f`.
details in pseudo-code:
```idris2 -- this is public -- the secret `f` generator -- should discourage rainbow table generate_f : (random_seed: Seed) -> P -> F
-- this is private -- the user remembers a function `f` with certain property in set `P` -- this function should be easy to remember and calculate for humans F : Type F = (challenge: C) -> (response: R) f : F
-- this is public -- prove that the function is generated with `property` from its response -- this should be straight-forward to implement using ZKP verify : (property: P) -> (challenge: C) -> (response: R) -> bool ```
No comments yet.