completed
DIDComm v2 Mediator
Current Project Status
Complete
Amount
Received
$20,425
Amount
Requested
$20,425
Percentage
Received
100.00%
Solution

We plan to develop an Open Source Mediator agent based on latest standardized protocols and host a cloud instance for anyone to use for free

Problem

Mobile identity wallets require a Mediator to communicate with other wallets and agents, but no Mediators are available based on DIDComm v2.

Addresses Challenge
Feasibility
Auditability

RootsID

1 member

DIDComm v2 Mediator

One of the best features of mobile devices is that they can roam between different networks seamlessly. However, this nice characteristic produces the side effect that they can not be reached directly without a central agent acting as a point of communication. This central entity is how it is solved by all messaging platforms.

Mobile Identity Wallets face the same problem and the way to solve this is by implementing a Mediator that is a cloud-agent that receives and forwards messages from one user to the other in a secure and encrypted way. Mediators are part of the DIDComm Messaging Specification from the Decentralized Identity Foundation.

At the moment, only Mediators based on the old DIDComm version 1 specification are ready to be used just as Indicio Public Mediator or Social Sirius Mediator, mostly used by Hyperledger Aries agents.Since the latest protocol that is being adopted by the community is DIDComm version 2, it is critical to have a Mediator based on that up-to-date standard so modern SSI projects can adopt and use it.

We propose to develop an Open Source Mediator and provide the code so anyone can deploy in a cloud instance and use it. Additionally, we will provide a cloud based instance hosting a ready to use Mediator for wallets and agents.

As part of the RootsId team, we have been researching and developing the DIDComm v2 protocol layer for our Open Source Credential wallet founded in Catalyst F7. We’ve already come up with a detailed description of a Mediator protocol implementation that we described in our wiki.

As a general principle, the Mediator will implement the latest specifications and protocols from DIF and Aries Interoperability Profiles, in particular:

The produced code will be open sourced with Apache 2.0 licensing and uploaded to our public repository. Documentation will be provided with design architecture and build and run guidelines. Additionally, we will deploy our own instance in an AWS service that will be available to any agent and wallet for free.

Our proposal will address the challenge goal by providing open source code and a ready-to-use instance of a critical and missing part of the Self-Sovereign Identity Cardano ecosystem. The mediator is a required part on any SSI project, often forgotten or postponed, and by providing this essential building block we are leveraging the potential of Cardano to be the prefered blockchain for SSI projects. Since this Mediator can we also be used by other agents outside the Cardano community, we will promote their existence in several SSI working groups for adoption and branding Cardano at the same time.

We do not foresee a technical challenge since this team has already researched and implemented agents based on these protocols and technologies. However, the main challenge we may face is the ability to allocate enough time to commit the project in time. Since this is not the only project we are planning to deliver during the same period of time, we’ve been carefully planning time allocation among all Catalyst projects and personal daily jobs. Besides that planing, and as the schedule is really tight, we have came across with two options to mitigate that risk in case of necessity:

  • As RootsId is currently a team of four members, we will count the support from the other two members in case we need it.
  • We have identified a number of community members that we met at the Atala Prism Pioneer Program that are willing to collaborate and jump into the project in case we need it.

Based on the time allocation planning mentioned above, we have defined the following plan of actions and durations for this project:

  • Finalize protocol definition: 1 week
  • Detailed scope of work: 1 week
  • Define architecture and documentation: 1 week
  • Develop Mediator: 5 weeks
  • Test Mediator and improvement loop: 3 weeks
  • Deploy a cloud instance of the Mediator in AWS and complete documentation: 1 week

<u>TOTAL DURATION</u>: 3 months

The high-level scope of each activity is described below:

  • Protocol definition: based on our current research we developed a flow of events that we described in https://github.com/roots-id/rootswallet/wiki/DIDComm-v2-Mediator-Implementation. This activity is to complete and revalidate that process.
  • Detailed scope of work: this activity is the planning of the development sprints in our Agile methodology, and the assignment of duties to each of the member of the team
  • Define architecture: it’s the process of defining the different parts of the software that will be developed and how those parts interact to conform a complete system
  • Documentation: provide documentation on how the Mediator works and which protocols conform to.
  • Develop Mediator: This is the actual development process of each of the defined working sprints
  • Test Mediator and improvement loop: the mediator needs to pass a set of tests to validate it’s functionality. During those tests, problems and improvements are detected that are passed back to the development phase.
  • Deploy a cloud instance: we’ll build and deploy an instance in an AWS service
  • Complete documentation: Finally, the documentation will be completed with step by step guide to build and run the Mediator

Deliverables:

  • the open source code of the Mediator available in a public repository
  • the documentation of the project available also in the public repository
  • a working cloud instance of the Mediator hosted on AWS and available for use for free

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:

  • Finalize protocol definition: 10hr = $1.000
  • Detailed scope of work: 10hr = $1.000
  • Define architecture and documentation: 10hr = $1.000
  • Develop Mediator: 120hr = $12.000
  • Test Mediator and improvement loop: 50hr = $5.000
  • Yearly AWS instance: $400
  • Domain name + SSL: $25

<u>TOTAL BUDGET</u>: $20.425

The team working on this project is composed by Rodolfo Miranda and Esteban García. They are well involved in the Cardano Decentralized Identity community from the beginning in Fund 6, have been funded for several open source projects, some of them are already delivered, and have participated in the first cohort of the Atala Prism Pioneer Program. As a result of the later participation, they joined efforts with other cohort members and founded RootsId with the goal of providing useful building blocks for the Cardano SSI Community. Additionally, the team 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.

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.
  • WAL CLI Identity Wallet for Atala Prism. 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:

<u>Esteban Garcia</u>: <https://www.linkedin.com/in/esteban-garcia-cr/>

Esteban has over 14 years of experience as technical consultant for corporate customers, with experience in several roles such as Developer, Solution Architect, Data engineer and QA Engineer. He has a Bachelor degree on Computer Science and Associate degree on Data Science. Esteban is a proactive person that adapts quickly to different roles and technology stacks. He’s actively involved in the SSI Cardano community where he:

<https://www.youtube.com/watch?v=Q0yJHrxO7cI>

This project is basically a software development project with three clear deliverables that will work as proofs of completion:

  • the open source code of the Mediator available in a public repository
  • the documentation of the project available also in the public repository
  • a working cloud instance of the Mediator hosted on AWS and available for use for free

Additionally, this team adopts Agile methodology based on the tools provided by github. Besides progress reports, the advancement will be tracked by public 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 disposition of a DIDComm Mediator that can be used without effort by any credential wallet or agent. Also, it is the availability of a code that can be used by the community to build and run their own DIDComm Mediators.

In a broad view, the real success is when the Mediator make it easy to build SSI Systems by the Cardano community, and promotes Cardano to be seen as the more complete SSI ecosystem among all blockchains to develop SSI projects.

Even though this project is not a continuation of a previously funded project, it can be seen as a complementary project from the Open Source Credential Wallet project funded on F7. In order for mobile wallets to communicate with other wallets or agents that are not on the same network, the need of a Mediator is critical.

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00