[IMPACT]
The Universal Resolver resolves Decentralized Identifiers (DIDs) documents across many different DID methods, based on the W3C DID Core 1.0 and DID Resolution specifications. It is a work item of the Decentralized Identity Foundation. You can see this blog post for a nice introduction.
More than 50 drivers are already available from Different Decentralized identifiers such as did:btcr, did:ethr, did:sov and did:web. However no driver is available for did:prism, the Decentralized Identifier of Atala Prism.
This project is about developing this missing driver for the Atala Prism community. It will be an open source code that can be used by the Universal Resolver. As a reference, I’ve already developed a similar driver for sidetree-cardano in my funded F6 project Interoperability as Growth Driver.
Additionally, a running instance of the Universal Resolver with the Prism driver will be deployed in AWS services.
It’s important to note that the Universal Resolver is the facto method that most platforms use to resolve external Decentralized Identifiers, so it is an important tool to provide interoperability among different systems such as Hyperledger Indy/Aries for example.
We are aiming to reach the goal of the challenge by providing this missing Universal Resolver Driver for Atala Prism, an indispensable component to have Atala Prism identities interoperable with the rest of the ecosystem. This is an additional component for the Atala Prism ecosystem that helps lower the barrier for bringing new Identity solutions to Cardano.
I do not foresee a technical challenge since I’ve already developed and implemented a Universal Resolver Driver for sidetree. However, the main challenge I may face is the ability to allocate enough time to commit the project in time. Since this is not the only project I’m planning to deliver during the same period of time, I’ve been carefully planning time allocation among all Catalyst projects and personal daily jobs. Besides that planing, and as the schedule is really tight, I have planned two options to mitigate that risk in case of necessity:
-
As I’m part of RootsId, a team of four members, I will count the support from the rest in case we need it.
-
I have identified a number of community members that I met at the Atala Prism Pioneer Program that are willing to collaborate and jump into the project in case we needed it.
[FEASIBILITY]
Based on the time allocation planning mentioned above, we have defined the following plan of actions and durations for this project:
- Develop Driver with Atala Prism SDK: 10 days
- Fork Universal Resolver and upload docker hub images: 5 days
- Deploy a cloud instance of the Universal Resolver + Driver in AWS and document: 5 days
<u>TOTAL DURATION</u>: 4 weeks
As I've already developed a similar driver for sidetree-cardano, I have a clear picture of what it takes to code a similar driver for Atala Prism in terms of effort and time. In summary it can be described in the following main activities;
- Develop the driver following guidelines provided by DIF
- Fork the Universal Resolver and add the new driver as a requirement: once the did:method become registered by Atala in WC3 DID Specification Registries, the plugin will be merged into the DIF Universal Resolver code so this fork won’t be necessary.
- Create docker images and upload to Docker Hub
- Create and instance in AWS, deploy the forked image, and set up DNS and SSL
- Test and document
<u>Deliverables</u>:
- the open source code of the Universal Resolver Driver available in a public repository
- A built version of the Driver uploaded to docker hub
- A forked Universal Resolver that will include this new driver
- A built version of the modified Universal Resolver uploaded to docker hub
- An instance of the both dockers running on AWS and available for anyone to use
Budget is mostly composed of development hours at a ratio of $100/hr, plus the hosting costs. Based on the activities defined above the requested breakdown budget is:
- Driver Development: 40hr = $4.000
- Forks, dockerhub and hosting activities: 20hr = $2.000
- Yearly AWS instance: $400
- Domain name + SSL: $25
<u>TOTAL BUDGET</u>: $6.425
This is a solo team composed by Rodolfo Miranda. He is well involved in the Cardano Decentralized Identity community from the beginning in Fund 6, has been funded for several open source projects, some of them are already delivered, and has participated in the first cohort of the Atala Prism Pioneer Program. As a result of the later participation, he joined efforts with other cohort members and founded RootsId with the goal of providing useful building blocks for the Cardano SSI Community. Additionally, He frequently participates and contributes in working groups and task forces related to the Self-Sovereign Identity world such as the Linux Foundation Project Trust Over IP and the Decentralized Identity Foundation DIDComm Working Group among others.
As special note, Rodolfo Mirada was the proposer of the Challenge “Self-Sovereign Identity” that is closely related to this one, and currently is part of the Challenge Team.
SSI products delivered / on development:
- Sidetree-cardano, a sidetree implementation on top of Cardano. See github repo.
- Hyperledger Aries Cloud Agent Python (ACA-Py) adapted to work with sidetree-cardano did:ada. See github repo.
- Universal Resolver Driver for Sidetree-Cardano did:ada method:. See girhub repo
- RootsWallet, an open source identity/credential wallet. See github repo
Additional references of the team:
<u>Rodolfo Miranda</u>: <https://www.linkedin.com/in/rodolfomiranda/>
His background includes a MS EE degree at Stanford University and more than 25 years of successful work experience in both large multinational companies and owned startup projects. His main activities involve architecting, developing, and implementing large scale software solutions for the Telecommunication Industry. Lately, he was engaged in blockchain technologies and joined Cardano community where he:
-
Submitted and received funding for the following proposals:
-
F7: Odoo Plugin
-
Participate as Community Advisor (from F6) and vCA (from F7), and is involved in many improvement working groups and discussions
-
Is part of the Challenge Team for Fund 7 challenge "Grow Latinamerica, Grow Cardano"
-
Is part of the Challenge Team for Fun 8 challenge “Self-Sovereign Identity”
-
Was part of the first cohort of the Atala Prism Pioneer Program
-
Is part of the team that created the LATAM Cardano Community and host a weekly LATAM TownHall
[AUDITABILITY]
This project is basically a software development project with five clear deliverables that will act as proofs of completion:
- the open source code of the Universal Resolver Driver available in a public repository
- A built version of the Driver uploaded to docker hub
- A forked Universal Resolver that will include this new driver
- A built version of the modified Universal Resolver uploaded to docker hub
- An instance of the both dockers running on AWS and available for anyone to use
Additionally, this team adopts Agile methodology based on the tools provided by github. Besides progress reports, the advancement will be tracked by github issues, project views (like Kanban board) and commits. Intermediate progress will be reported as Sprint Burndown, a KPI metric that shows the progress in percentage of each development sprint.
The success of the project is the release of a Universal Resolver Driver that can be available to any user to query and retrieve Decentralized Identifiers created on the Atala Prism platform. And a hosted version of the Universal Resolver with the plugin so Atala Prism method can be retrieved with simple GET request messages.
This project is not a continuation of a previously funded project, however is part of my effort of providing building blocks for the Cardano SSI ecosystem.