4 ms·
Why? Put a signing key pair on a secure element (e.g. in the passport). Let the government sign the public key. This way sites can check if it’s a government-ap
by microtonal 3y ago
Why? Put a signing key pair on a secure element (e.g. in the passport). Let the government sign the public key. This way sites can check if it’s a government-approved keypair. You can prove that you own the key pair using the private key. No site ever has to contact the government for authentication.
The only issue is that it could lead to cross-site tracking because you are reusing the same public key everywhere.
But maybe cryptography experts have a solution?
- jlokier 3y ago> But maybe cryptography experts have a solution? They do! The field of zero-knowledge cryptography targets exactly this sort of use case, proving things to a recipient without revealing other things. In this case, you might send a zero-knowledge proof that you have the private key corresponding to a government-signed public key, without revealing either key and, importantly, without communicating with the government or sending correlatable information on each transaction. (If you were ok communicating with the government you could just get it to sign a random public key for each transaction without needing zero-knowledge cryptography). You can do a lot more, for example proving "I am 18+ [attested by gov signature]" without revealing your age, birthday or identity, or "I have security clearance level 2 [attested by gov signature]" without revealing anything else, or "I have a driving license [attested by gov signature] and current paid-up insurance [attested by insurer signature]" etc. The field has advanced technically a lot in the last few years, to the point that those sorts of zero-knowledge proofs are now easy to implement technically and reasonably fast to compute.