Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TODO: Creating a bounty for Decentralized Identity System (DID) using fhEVM #577

Open
poppyseedDev opened this issue Oct 17, 2024 · 1 comment
Assignees

Comments

@poppyseedDev
Copy link
Contributor

poppyseedDev commented Oct 17, 2024

to be submited on https://github.com/zama-ai/bounty-program/issues

title: Bounty Specification: Creation of a Decentralized Identity System (DID) on fhEVM

Overview

The goal of this bounty is to design and implement a Decentralized Identity System (DID) using Zama’s Fully Homomorphic Ethereum Virtual Machine (fhEVM) platform, leveraging Fully Homomorphic Encryption (FHE). The DID system must provide secure, private, and composable identity verification, where sensitive user data remains encrypted throughout its lifecycle, enabling confidential identity management on-chain.

Participants are expected to build a DID system using Zama's encrypted data types (e.g., euint, ebool, eaddress) and perform operations on encrypted identity data, ensuring confidentiality while enabling verifiable interactions with decentralized applications (dApps).


What We Expect

Your goal is to design a system that can prove user identity while ensuring uniqueness and preventing duplicate registrations. Here's a general approach you can follow:

  • Core Identity Data: Define key information that uniquely identifies a person (e.g., biometric data, passport information, email). This data must be encrypted using Zama's fhEVM and ensure that a person cannot register more than once with the same identity.
  • Identity Uniqueness Verification: Implement a mechanism to verify the uniqueness of an individual’s identity before their registration is approved. This should prevent the same individual from registering multiple accounts using the same identity details.
  • Ability to Generate Verifiable Claims: Allow the system to generate verifiable claims about the user, such as proof of age (e.g., being over 18) or proof of citizenship for a specific country.
  • Optional Feature: Provide an example of a separate contract demonstrating how authorized third-party entities can register users, issue credentials, and manage access (e.g., event tickets, physical locations, driver’s licenses). These entities should have the ability to verify and grant users access to specific services or events.

For this bounty, you are not required to build a frontend. The necessary deliverables are:

  • A smart contract written in Solidity.
  • A suite of tests to validate the contract’s functionality.
  • Clear documentation detailing your design decisions and the reasoning behind your approach.

Judging criteria

  • Smart Contract: The smart contracts need to be written in Solidity running on the fhEVM. The code should be cleanly commented, with adherence (as close as possible) to the standard is important.
  • Testing: Testing smart contracts using hardhat is also highly recommended.
  • Deployment: The smart contract should be compatible with Zama's fhEVM devnet.
  • Documentation: Provide a clear explanation of your solution, including your thought process behind the DID system design.
  • Use of fhEVM: The contract should employ hidden information, showcasing the capabilities of the fhEVM. Care should be taken by the bounty hunter to decide which state variables to encrypt and which should stay unencrypted. Suggestions (non-exhaustive) of state variables to encrypt: transfer amounts, allowances, number of frozen tokens, identities such as country codes, etc.
  • Uniqueness Prevention: Ensure that the system prevents duplicate identity registrations in an innovative way.
  • Bonus Points: Extend the system by allowing multiple users to gain access to events or other services.

Reward

🥇Best submission: up to €3,000.

To be considered best submission, a solution must be efficient, effective and demonstrate a deep understanding of the core problem. Alongside the technical correctness, it should also be submitted with a clean code, clear explanations and a complete documentation.

🥈Second-best submission: up to €2,000.

For a solution to be considered the second best submission, it should be both efficient and effective. The code should be neat and readable, while its documentation might not be as exhaustive as the best submission, it should cover the key aspects of the solution.

🥉Third-best submission: up to €1,000.

The third best submission is one that presents a solution that effectively tackles the challenge at hand, even if it may have certain areas of improvement in terms of efficiency or depth of understanding. Documentation should be present, covering the essential components of the solution.

Reward amounts are decided based on code quality, model accuracy scores and speed performance. When multiple solutions of comparable scope are submitted they are compared based on the accuracy metrics and computation times.

Related Links and References

👉 Register

Step 1: Registration

Click here to register for the fhEVM Bounty. Fill out the registration form with your information. Once you fill out the form, you will receive a confirmation email with a link to the submission portal for when you are ready to submit your code.

Note

Check your spam folder in case you don't receive the confirmation email. If you haven't received it within 24 hour, please contact us by email at [email protected].

Step 2: Work on the Challenge

Read through the Bounty details and requirements carefully. Use the provided resources and create your own GitHub repository to store your code.
If you have any questions during your work, feel free to comment directly in the Bounty issue and our team will be happy to assist you.

Step 3: Submission

Once you have completed your work, upload your completed work to the submission portal using the link provided in the confirmation email.

Note

The deadline for submission is November, 24th 2024 (Midnight, CET). Late submissions will not be considered.

We wish you the best of luck with the challenge!

✅ Support

  • Comment under this issue with any questions regarding this bounty.
  • In case you have questions ask them in the fhEVM channel on FHE Discord
  • Email for private questions: [email protected]
  • Join the Zama community channels here.
@poppyseedDev
Copy link
Contributor Author

The specifications are complete to the best of my efforts, please check @immortal-tofu, @jatZama or Jeremy if everything is as it should be.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants