dfinity / wg-identity-authentication

Repository of the Identity and Wallet Standards Working Group
https://wiki.internetcomputer.org/wiki/Identity_%26_Authentication
Apache License 2.0
33 stars 10 forks source link

Proposal for Developing a DID Registry on the IC #26

Open q-uint opened 1 year ago

q-uint commented 1 year ago

Problem Statement

Currently, there is a need for a decentralized mechanism to resolve public keys for off-chain authentication. Decentralized Identifiers (DIDs) offer a promising solution by providing unique identifiers that enable lookup of associated DID documents containing authentication information. However, there is a lack of a robust and scalable registry system specifically tailored for DIDs.

Proposed Solution

The purpose of this issue is to propose the creation of a DID registry on the ICP. This registry would serve as a decentralized and reliable mechanism for resolving DIDs and retrieving associated DID documents. By leveraging the capabilities of the ICP, we aim to build a scalable, secure, and efficient infrastructure for managing DIDs within and outside the ICP ecosystem.

Objectives

  1. Design and develop a decentralized registry system for DIDs on the ICP.
  2. Establish a standardized data structure for storing and retrieving DID documents within the registry.
  3. Implement robust mechanisms for resolving DIDs and retrieving associated DID documents efficiently.
  4. Ensure the security and privacy of DID information and authentication processes.
  5. Integrate the DID registry seamlessly with existing ICP infrastructure and protocols.
  6. Provide documentation, guidelines, and tools for developers to utilize the DID registry in their applications.

Scope of Work

Activities would include, but are not limited to:

  1. Researching existing DID registry implementations and standards.
  2. Designing the data structure and architecture for the ICP DID registry.
  3. Implementing the registry system on the Internet Computer.
  4. Integrating the registry with the ICP's identity and authentication frameworks.
  5. Conducting testing and optimization to ensure scalability and performance.
  6. Creating documentation and developer resources for the ICP DID registry.

Stakeholders

Next Steps

Interested contributors and stakeholders are encouraged to provide feedback, express interest in participating, or suggest additional objectives and considerations.

Note: This issue serves as an initial proposal and discussion point. Once consensus is reached, a separate repository and project management structure will be created to track progress and facilitate collaboration.

tokuryoo commented 2 months ago

I’m interested in the progress of this issue and would appreciate any updates. Is this issue still active? Are there any contributors currently working on it?

q-uint commented 2 months ago

Hey @tokuryoo! I don't think anyone is working on this right now. Are you interested to pick this up? I had some code, but can't seem to locate it atm.

tokuryoo commented 2 months ago

Hi @q-uint ! I was pleased to see that IC supports Verifiable Credentials, but I am concerned that there is still no support for a DID Registry. Therefore, I am interested in contributing to the specification of the DID Registry. Currently, my knowledge is limited to reading Manning's Self-Sovereign Identity book, and I am just beginning to study Decentralized Identifiers (DIDs) v1.0.

It might be a good idea to first draft a preliminary specification by referring to the DID methods of other well-known blockchains.

tokuryoo commented 2 months ago

@q-uint

but can't seem to locate it atm.

That's a shame. I'd be happy to help. Shall we start by drafting the specifications for DID Document?

q-uint commented 2 months ago

Hey @tokuryoo!

I'd love to help w/ this, do you have a preferred way of working on this together, through GitHub/Google Docs/...?

tokuryoo commented 2 months ago

@q-uint Let's use GitHub. Since it's my first time, I'm not sure how to proceed. Should I create the repository, or would you prefer to do it? If you're okay with me creating it, I'll go ahead. Do you think we'll need to move this to DFINITY's repository in the future?

q-uint commented 1 month ago

Hey @tokuryoo!

Great, GitHub works perfectly! Feel free to go ahead and create the repository—I’ll be happy to collaborate from there. Once it’s set up, just send over the link and we can start working on it together.

As for moving it to DFINITY’s repository, I think it depends on how the project evolves. We can always transfer or mirror it there if necessary down the road. Let’s focus on getting the basics in place for now, and we can revisit that when the time comes. Looking forward to it!