Until now, making use of personal data could not be done without either revealing a part of this information or compromising its trustworthiness.
We present here a new solution able to build a trust system which keeps sensitive data undisclosed. This new method opens countless perspectives for business use cases, of which we are going to introduce an example.
With the help of this example followed by a technical explanation, we introduce the concept of Zero-Knowledge Decentralized Identity.
DiDerot : a preliminary example
Alice drives her car everyday to commute to work. As often as possible, she gives a ride to carpoolers to reach a parking lot located in front of her office.
Alice also lives with a disability which makes her car her only practical means of transport. As such, she can park in any public parking lot at no charge.
A few years ago, in order to exit the lot and drive back home, Alice used to show her disability card, which was recognized and let the gates open automatically.
Applying for disability cards was a cumbersome and repetitive process, and whenever she wished to claim her rights, she had to publicly display her disability.
With the dazzling progress of several technologies, especially in the field of cryptography, Alice should no longer have to disclose her disability to get her due. She should just prove and claim her rights anonymously.
Participating in the Blockchain and the City Challenge organized by Trusted IoT Alliance in November 2019, our team at Blockchain Partner designed a solution called DiDerot that dramatically simplifies coordination between all actors involved in Alice’s life and ultimately enables her to never again display her disability while still asserting her rights.
In practice, once at the gates of the parking lot, Alice would only prove that she can leave free of charge without ever revealing her disability or even who she is.
This solution is based on three core technologies : Decentralized Identity (DID), Blockchain and Zero-Knowledge Proof (ZKP).
The many benefits of a trust system with undisclosed data
The question of ownership and security of digital data has become a key issue in public debates, as evidenced by the many difficulties faced by large software companies, repeated data leakage scandals or the implementation of large-scale regulations such as the GDPR in Europe.
The design we propose addresses different challenges on various levels, whether political, legal or operational.
At the core of the project, any Ethereum-compatible blockchain allows all providers and consumers to write data on a shared and verifiable ledger. The standardization of data exchanges makes all applications built on this framework truly interoperable and enables effective collaboration. All exchanges happening on the ledger de facto benefit from the resiliency and trust characteristics of blockchains. In a wide range of fields, eliminating redundancy and facilitating processes like identity checks can often be a key factor.
With zero-knowledge proofs, an entity can now keep exclusive ownership over its data. Think about Alice in our previous example: as she lives with a disability, she can benefit from all the rights granted to her without ever revealing her handicap. This also applies to any business, state, community, etc. which owns data and is now able to use it without revealing it. No third party ever operates on the data on behalf of the user, and contrary to any other solution such as selective disclosure, not even a bit of personal data is ever transmitted. The system relies on proof of data, not on the data itself.
This solution is ideally suited to today’s era of cryptographic proofs.
Trust used to be built with disclosure of data. This new design is tailored to reach the same level of trust using only informative yet unrevealing cryptographic proofs.
This new paradigm goes further than any of its predecessors, and above all, it solves for the first time a key problem: the data no longer has to leave the hands of its owner.
In all pre-existing systems, whenever Alice wanted to attest to a third party about her disability, she had to disclose this information and would lose control over it. Once information about her disability was linked to her identity in a third-party service database, Alice used to delegate control over her personal information and its security. It is this precise problem of sharing sensitive data — at first sight an insoluble issue — which partly facilitated all recent data scandals and breaches. With the tremendous recent advances in the field of zero-knowledge proofs and their integration into this no disclosure design, we can now offer a system where data never leaves the hands of its exclusive owner and where Alice can assert her rights without ever revealing neither her identity nor her disability, thus preserving her privacy.
A technical explanation
The solution we describe here is largely based on a method called Semaphore, which draws on years of research on ZKPs since 1989, including elements of Zcash recently designed by engineers at the Electric Coin Company and the precious work of three researchers, namely Barry Whitehat, Kobi Gurkan and Koh Wei Jie.
Semaphore: Zero-Knowledge Signaling
Most of our program logic happens on a blockchain seen as a trustless asset platform able to run smart contracts.
The initial design, without Semaphore, introduces two rules that no one can overstep to open the gates: users could either pay or show a special permit, if they only own one. In the latter case, private information would be displayed every time they want to use their permit. Without Semaphore, people with a disability used to be unable to benefit from their permit without showing it.
With the introduction of Semaphore, infrastructure and rules change a little. In order to open the gates, users can now either pay or prove they belong to the set of people owning a permit. At this point, every time disabled people want to leave a parking lot, they do not have to reveal their identity anymore.
Users just prove they own a permit without showing it.
That is what is called Zero-Knowledge Identity or Zero-Knowledge Signaling. A user anonymously broadcasts on the blockchain a signal which allows the gates to open in this example. Furthermore, the type of signal which may be broadcast is extremely flexible. One could easily for instance add rules on the gates of the parking lot to restrict use to a certain number of openings per week per user, without revealing any additional personal information. Multiple users may also broadcast signals together to administer a carpooling solution. Use cases are truly endless.
Zero-Knowledge Decentralized Identity
Most current usages of this early-stage technology include in their design an owner who manages the anonymity set. In our example, it means that the parking company would be responsible for collecting the list of users eligible for a special permit, submitting it on the blockchain and keeping it up to date. By design, these solutions are thus very cumbersome and unnecessarily prone to censorship.
At Blockchain Partner, we tried to use our experience with Decentralized Identity to contribute to this project by bringing censorship resistance, and thus trust, to the system.
Indeed, Semaphore is by itself a revolutionary tool in order to preserve anonymity of many towards an organization. But as powerful as it can be, this privacy feature may only scale to several organizations if they can share a high level of trust over the original data used to set up anonymity sets. We achieve this goal through the use of decentralized identities and claims.
We place these new zero-knowledge signaling systems within a broader context that includes the development of decentralized and on-chain identities. As already stated in several of our articles and demonstrated in some of our projects, decentralized identities and claims make it possible today to establish an unparalleled level of trust between different entities. The new underlying networks are also interesting in their ability to complement and integrate with each other, adding various capabilities like privacy features in the current case.
Our contribution to Semaphore is as simple as updating the on-chain method responsible for the set up of anonymity sets. In our implementation, it is not the responsibility of a specific owner to maintain these sets. Anyone capable of proving, through decentralized claims, his eligibility to enter a specific anonymity set can do so without any further external approval.
It has been exciting to leverage this very powerful framework on a new use case and to enrich it with both our technical expertise on DIDs and our business experience. Hopefully this new design may foster an acceleration of the development of DID frameworks and drag a wider adoption of underlying standards. We have already started working on practical cases with several private and public actors in 2019. For instance, these new types of solutions are particularly attractive to add value to data in compliance of GDPR regulation. We would be happy to explore further use cases. Do not hesitate to contact us to do so.