zk-passport / openpassport

Generate privacy-preserving ID proofs
https://openpassport.app
312 stars 54 forks source link

Github banner (2)

Monorepo for OpenPassport.

OpenPassport is an identity wallet that lets users generate privacy-preserving proofs from government-issued IDs such as passports. By scanning the NFC chip in their ID document, users can prove their validity while only revealing specific attributes such as age, nationality or simply humanity. Under the hood, OpenPassport uses zk-SNARKs to make sure personal data is redacted, but the document is verified.

Use cases unlocked include:

FAQ

Is my passport supported?

Checkout our coverage map here

What exactly is being signed ?

When a country issues a passport, they sign datagroups that include at least:

What is the signature algorithm ?

Countries use different signature algorithms to sign passports. Check out our coverage map to see which~

I just read my passport but it says my signature algorithm is not implemented. What do I do ?

Not all signature algorithms are currently supported. To help us add support for yours, please contact us.

Where can I find the countries' public keys ?

You can download the full list of public keys on the ICAO website. Our parsed list is at /registry.

What's the ICAO ?

The International Civil Aviation Organization (ICAO) is a specialized agency of the United Nations. Among other things, they establish the specifications for passports, that have to be followed by all countries. The full passport specs are available here.

Project Ideas

We will provide bounties for all those applications. Those are not fixed right now, so please contact us if you're interested.

Licensing

Everything we write is MIT licensed. Circom and circomlib are GPL tho.

Contributing

We are actively looking for contributors. Please check the open issues if you don't know were to start! We will offer bounties from $100 to $1000 for any significant progress on these, depending on difficulty.

Contact us

Contact me @FlorentTavernier on telegram for any feedback or questions.

Thanks Rémi, Youssef, Aayush, Andy, Vivek and Andrew for contributing ideas and helping build this technology, and PSE for supporting this work through grants!