|
|
|
|
|
by pksebben
191 days ago
|
|
the more I think about it, the more I feel like I need someone with deep knowledge to explain ZKPs to me. So like, we've got this algorithm that gets sent our way and we run it and that provides kind of a cryptographic hash or whatever. But if we're running the algorithm ourselves what's to stop us from lying? Where does the 'proof' come from? What's the check that it's running and why do we inherently trust the source it's checking? |
|
This is a simplified method for age verification:
I want to buy alcohol from my phone and need to prove I’m over 18. SickBooze.com asks me for proof by generating a request to assert “age >= 18”.
My phone signs this request with my own private key, and forwards it to the government server.
The government verifies my signature against a public key I previously submitted to them, checks my age data in their own register of residents, and finally signs the request with one of their private keys.
My phone receives the signed response and forwards it back to SickBooze.com, which can verify the government’s signature offline against a cached list of public keys. Now they can sell me alcohol.
- the “request” itself is anonymous and doesn’t contain any identifying information unless that is what you intended to verify
- the government doesn’t know what service I used, nor why I used it, they only know that I needed to verify an assertion about my age
- the web service I used doesn’t know my identity, they don’t even know my exact age, they just know that an assertion about being >= 18 is true.