Edit: this project actually turned into a fully fledged protocol maintained by the Privacy and Scaling Explorations team from the Ethereum Foundation. They did really cool work, which I encourage you to go check out!
Anon Aadhaar: a privacy-preserving identity scheme
Most of the things we do on the internet require us to claim and prove things. And most of those claims are about who we are, in order fo help some other counter-party to act accordingly.
Over the past decades, material-world identities have been moved to the computing powered yet no less real digital-world. And because identities are the backbone of fair and well-executed asset transfers, it spurred a tremendous rate of growth of the amount of wealth at stake on the internet.
In that context, web apps needed to gather data about their users to deliver the services they do. Exponentially growing amounts of money (and reputation) became at stake. More data points would equate more security at authentication time - i.e. less fraud.
Also, users' private data would contribute to a seamless UX. We would not have to fill in boring forms. Using clever rule-based or, more recently, machine learning tricks, the app now knows what a tailored experience looks like for us.
However, today's mass surveillance, large-scale data breaches and unprecedented cost cuts on information production are pushing us to re-evaluate the way we think about the claims and proofs we have to do as users to access the apps we like and consume the information we want. Privacy might be poised to do a come back.
What we did with EF's PSE team
Zero-knowledge proofs present the cool feature of programmable provable statements, without disclosing the underlying data made to craft this proof. A good primer on it can be found here.
With the help of EF's PSE team, we set ourselves the goal of proving aadhaar cards validity while letting users withhold their cards' data. This is a compelling idea, since aadhaar cards are ubiquitous in India. Its cryptographic scheme is also straightforward, with simple enough primitives to build.
We eventually succeeded and published a writeup here and a repo there. We were also quite surprised with how much it echoed in the community. We received really interesting feedbacks and questions.