A DID registry is a type of verifiable data registry that can be simply referred to as a role, a system performs to mediate the functionalities like create, verify, update, and deactivate the decentralized identifiers. This is the extension of the in-progress work handled during the last summer (can be accessed here). The project aims to automate the process of creating a secure DID Registry on Github/Gitlab, facilitating easy on-boarding of new organizations and enabling easy management. Decentralized ID (DID) tokens or we can call cryptographically-generated proofs of the organizations can be stored in the verifiable credential registries in an encrypted fashion to achieve the secure DID registry with zero infrastructure cost. The shell script is used to create the initial codebase. This project expects a mentee who is self-motivated and has a lot of passion for cryptography, decentralized identity, and open source.
The significant aspects to be considered here are Creation, Onboarding(Enable/Restrict Access), and Management(add/update/revoke).
a) Creation (of DIDRegistry): Function to create a DIDRegistry for an organization on Github. GitHub Organization can have multiple repositories, same is the case with DID Registries.
b) Onboarding: Function to add enable/restrict access to members of an organization to a repository (GitHub repo users can be made members of an Organization, with different roles and privileges).
c) Manage: Function to list APIs that are needed to add/update/revoke access DID’s or (DID Documents) saved as files on the repo.
DRman Registry scripts (DRM scripts )
- Drm scripts are simples shell scripts of the format drm_xxxx.sh, where xxxx is the didRegistry Type e.g. drm_aries_vcr.sh or drm_aries_vcgr.sh are two different types of didRegistries supported. They will be used to create, install, manage a didRegistry associated with an organization.
Github based VCR (Verifiable Credential Registry)
- Github-based VCR are Verifiable credential registries that make use of Github’s data model and API to offer exactly the same API’s as any other VCR. Further, We need to make a comparison API & data model of both Github and Aries VCR.
Create and manage Aries VCR using DRman Registry Script
- The plan is to have a script drm_aries_vcr.sh with all functionality like install, uninstall, add. etc supported in it. This plan can be executed independently
Create and manage Aries-VCGR ( Aries Verifiable Credential Github Registry ) using DRman Registry Scripts. While progressing, this can be done after along with the Design of Github based VCR (As mentioned in point 2)
The mentee will have an opportunity to learn
- The application and automation of the Decentralized Identity
- Hyperledger Aries and Ursa code base
- Public key cryptography
- Application of Hyperledger Ursa in enabling Zero-Knowledge proof
- Git, Shell Scripting, RUST
- Open source contribution, documentation, and sense of ownership
- Command-Line utility to automate the process of creating a DID Registry for the members of organizations utilizing Github/Gitlab as Verifiable Credential Registry, On-boarding organizations, and features for easy management
- Proper test cases and documentations
- Codebase maintained with proper read me document
Relation to Hyperledger
Github/Gitlab based DID registries that can be used by Hyperledger Ursa, Hyperledger Aries, or any other Hyperledger Framework that needs to interact with DID Registries
Graduate or Masters students preferred. Please do take a look at the skills.
Exposure to Hyperledger Ursa, hands-on with shell scripting, knowledge of Git, GitHub, or Gitlab is expected. Any high-level understanding of Decentralized Identity is also desirable to some extent.
The plan is to further enhance this as an open-source utility and add more capabilities required to manage a full-featured DID Registry on Github.
Preferred Hours and Length of Internship
Part-time (20 hours a week for 24 weeks starting in summer and ending in fall)
Mentor(s) Names and Contact Info
Vinod Panicker ( email@example.com )
Arun Prakash Jothimani ( firstname.lastname@example.org )