Cardano lacks built-in privacy capabilities necessary for many common applications. Our proposal brings these privacy features leveraging a Zero-Knowledge based prototocol.
This is the total amount allocated to Cardano Privacy Layer: Zero-Knowledge Proof-Based Membership Verification and Anonymous Voting & Signaling (Phase 2).
Port the Semaphore Protocol from the Ethereum ecosystem to bring a privacy layer to Cardano that empowers communities with secure, verifiable anonymous signaling, encompassing votes and endorsements.
No dependencies
The project will be fully open source.
¿Why this proposal matters?
Privacy is a key element of every network that pursues to be safe, power balanced and censorship-resistant. These matters are even more important today with the emergence of hypervigilance and Artificial Intelligence technologies. At the moment, Cardano is by default a transparent network that lacks built-in privacy capabilities; however, the adoption of Zero-Knowledge cryptography is enhancing key aspects of the blockchain industry that were neglected in the past such as Privacy. Our proposal aims to develop an application layer that could be used directly in layer 1 and in other contexts as well. The usage of this technology will catalyze the development of new privacy-focused applications in Cardano with a broad use-cases.
¿What is the Semaphore protocol?
The Semaphore Protocol is a privacy focused layer that was born in the Ethereum ecosystem. It allows users to demonstrate their membership in a group and send arbitrary information without revealing their identity. It uses Zero-Knowledge cryptography to achieve anonymous proof of membership and overcome the double-signaling problem. As we point out later, the protocol has proven to have a wide range of use cases, and it serves as a base layer where other types of applications can be built on top of it. Since the verification of Zero-Knowledge proofs will be possible soon with the next Plutus hard fork, the objective of this proposal is to adapt this protocol to the Cardano network.
The proposal
Thus, in general, this proposal intends to port the Semaphore protocol to Cardano, a project consisting of a two-phased process.
The first phase, funded in Catalyst F11 and presently under development. On one hand, it mainly involves conducting research and laying the groundwork for integrating the protocol into the Cardano ecosystem. On the other hand, the base smart contracts of the protocol are currently being prototyped and developed.
As a second phase, the current proposal will intend to improve the on-chain components and develop the off-chain components of the protocol. This will imply the following:
The completion of this proposal will result in an MVP of the protocol. This adaptation of the Semaphore protocol will catalyze the development of new privacy-focused applications in Cardano that were previously unattainable. Projects could benefit from this proposal according to their needs and utilize it in various contexts:
Status of the project
As the challenge requires, prototypes of the solution are necessary. Our team has already developed some important pieces of the protocol:
(1) Zero-Knowledge Validator
The protocol in order to work and function, it requires to verify Zero-Knowledge proofs. This verification is an indispensable component of the protocol operation, concretely, the validator (smart contract) which checks the Zero-Knowledge proofs. We already developed this validator along with some front-end utilities to make proof construction a straight forward process. This component can be found in the ak-381 library.
To showcase and demonstrate the possible applications of this validators a dapp has been made. It is important to note that these demo is one of the first fully functional Zero-Knowledge application of the Cardano ecosystem.
(2) The Incremental Merkle Tree
A key feature of the protocol is managing users and memberships within a group. To represent this set of members, we needed to develop a data structure that is efficient for on-chain use. This data structure is the Incremental Merkle Tree, which we developed in Aiken. It enables users to register and provide proof of their membership in the group:
With the integration of the Semaphore protocol into the Cardano network, numerous privacy-centric signaling applications can be envisioned and developed. The Semaphore protocol has diverse use cases, including:
Bringing the Semaphore will significantly expand the privacy capabilities of the Cardano ecosystem.
Our team was formed as a result of our participation in the Zero-Knowledge track of the Cardano Emurgo Build 2023 Hackaton. As a result of very intensive work we were able to:
Our team has a strong background in software development for the Cardano ecosystem and Mathematics research. (See section on ‘Project Team’ below.)
The first step of the protocol will be to review the base smart contract prototypes and complete any missing features.
Acceptance Criteria
Develop Cardano validators capable of:
The second milestone will involve conducting unit tests and possibly property tests on the base smart contracts.
Acceptance Criteria
Ensure that the smart contracts pass the following tests:
Develop a library for constructing transactions that can interact with the protocol.
Acceptance Criteria
The library should have an API that includes the following features:
With the use of a front-end library, a relayer prototype will be developed. This involves creating a REST API that users can use to send signals anonymously.
Acceptance Criteria
Create a REST API that can succesfully:
In this step, all previous developments will be integrated into a decentralized application (dApp) that demonstrates the usage of the protocol.
This dapp will include:
In this final milestone, a promotional blog articles will be created to highlight the product, alongside the completion of a comprehensive close-out report.
This milestone will involve:
The main expense of the project is the development hours. In that sense is important to note: