completed
RootsWallet beta - Backup/Recovery
Current Project Status
Complete
Amount
Received
$33,000
Amount
Requested
$33,000
Percentage
Received
100.00%
Solution

RootsWallet beta will continue Fund7 open source development, adding identity/credential wallet storage backup/recovery features in Fund8.

Problem

There is no Cardano/Prism open source identity/credential wallet providing secure and familiar backup/recovery/pluggable/encrypted storage.

Addresses Challenge
Feasibility
Auditability

RootsID

1 member

RootsWallet beta - Backup/Recovery

Our mentor and author of the identity wallet chapter of the seminal Self Sovereign Identity book Darrell O'Donnell warns that identity wallet backup/recovery is fundamental to decentralized identity.

RootsWallet is an identity/credential wallet that started with funding in Fund7 to produce an alpha release. It is an mobile identity/credential wallet that serves several Cardano/Catalyst partner proposal use cases. Our partners are building grass roots identity programs in their communities. They need mobile/web identity/credential wallets that are secure, easy to use, and reliable.

For the Fund 8 beta release we will enhance the current wallet storage to include backup and recovery features so that users can use the wallet on multiple devices and to recover the wallet in case a device is lost or stolen.

This work will mostly be completed in the storage software of RootsWallet. And will follow the best practices laid out by the open source Hyperledger Aries wallet project which has defined proper storage/backup/recovery/encryption/etc

see:

Aires wallet concepts

Aires agent concepts

Aires key management concepts

Aires distributed key management concepts

Identity/credential wallets are the primary access point for end users into Atala Prism and the decentralized identity ecosystem. The end-users are the customers for identity systems. RootsWallet is an open source identity wallet built to connect Cardano/Catalyst identity users to Atala Prism and the world of decentralized identity. RootsWallet gives users a secure place to own/control their digital identity. And will continue to build towards interoperability with the wider identity world by engaging with working groups in ToIP foundation, DIF, and Hyperledger Indy/Aries.

RootsWallet storage is essential to securely store/use/backup/recover their verifiable credentials, identity relationships and preferences. This proposal is foundational to serving our partner proposal customers. Our partners are working to expand the number of Cardano identity users. Without a well-developed wallet storage system, identity users will seek other platforms that have invested in their end user functionality and experience.

Our Catalyst Partners include:

DID for Cardano Indonesia Community

PACE: community credentials 2

RootsWallet Presentation Exchange

WAL-CLI Presentation Exchange

Universal Resolver for did:prism

DIDComm v2 Mediator

RootsWallet - support for sidetree

Cardano SSI standards contributors

Prism DIDs for CA Onboarding

Prism DIDs for Catalyst CA Process

Promote Prism in Switzerland

Open Source Quadratic Voting

Mentor-Mentee Bounties & eLearning

Prism WAL-CLI for developers

Hyperledger Prism Interoperability

The main risk/opportunity is the rapidly evolving identity ecosystem. Atala Prism is rapidly growing and we are closely working with them. It is a symbiotic relationship that requires attention and effort from both sides. We are building an amazing ecosystem together that is young with many unknowns for Cardano, Atala Prism, and RootsWallet to navigate.

Another risk is funding. At present we are 100% reliant on Catalyst funds. Identity wallets are a significant undertaking and we hope to ramp our development efforts significantly after Fund 7. We believe this project is worth much greater investment and so we have submitted multiple complementary Fund 8 proposals. We will continuously adjust our efforts based on the Catalyst community voting choices.

Our efforts have been encouraged by so many in the Catalyst, Atala Prism, and open source communities that we are confident that our successes and challenges will be worked through together.

These new storage features will be delivered in the 13 week period of Fund 8. All work will be included in the RootsWallet beta (Fund 8) release.

Click to see a timeline (also attached) of our current and planned RootsWallet features by Catalyst fund.

  • We will begin with an export feature that allows the user to store their wallet on any filesystem. This will be presented as an option to the user in our app and will give a filesystem dialogue that is familiar.
  • It will create an archive file containing:
  • holder/issuer/verifier DID history.
  • all verifiable credentials.
  • user preferences/settings.
  • auxiliary files used for display, state, and connections.
  • It will include the backup from all app storage areas:
  • document store
  • asynchronous store
  • secure store
  • database store
  • We will provide a restore feature that allows the user to restore their wallet from a previous export. This will be presented as an option to the user in our app and will give a filesystem dialogue that is familiar. All of the exported data listed in the export feature above will be restored.
  • We will also provide information about traditional cloud filesystems like google drive and decentralized cloud storage filesystems such as IPFS and directions how to save their exported wallet there.
  • We will release the feature to our partner communities and take feedback for fixes, improvements, usability, etc.

The budget was computed with a development rate of $100/hr. The team is composed of 1 core developer and 3 supporting developers with a peak velocity of 60 cumulative hours per week, and a mean velocity of ~25 cumulative hours per week for 330 total hours over 13 weeks.

Based on the effort estimated above, our budget is:

  • Architecture design discussions and planning: $2,000 (~20 hours)
  • Selection of most common/familiar mobile backup methods: $1,000 (~10 hours)
  • UI/UX additions discussion and planning: $1,000 (~10 hours)
  • Refactor basic app structure to support the new features: $2,000 (~20 hours)
  • Implement and iterate over the export and recovery features: $24,000 (~240 hours)
  • Documentation/Testing/Feedback: $1,000 (~10 hours)
  • Overall test and debugging: $2,000 (~20 hours)

Total: 330 hours * $100/hr = $33,000

The RootsID development team includes several identity software specialists and community members who work together on RootsWallet and the surrounding identity ecosystem.

RootsID is mentored by the IOG Atala Prism Product Owner, Tony Rose and by Darrell O'Donnell who is the co-founder of the Trust over IP foundation and author of the identity wallet chapter of the seminal text titled Self-Sovereign Identity.

<u>Lance Byrd</u> of the RootsID team is a core contributor on the Fund 7 work for RootsWallet.

He completed the first cohort of the Atala Prism Pioneer program and is now in the Atala Prism Astronauts program.

He is a co-founder of RootsID, a group of decentralized identity specialists building open source software for digital identity. Several of their projects have been funded by Catalyst.

His background includes a BS in Computer Science (UMBC) and MS in Information Assurance (Capitol College) and more than 22 years of software development as a consultant. He has developed massive scale data analytics and visualizations, machine learning analysis pipelines, and worked with University researchers to bring their work to market. He has also built and taught technical certification courses for several different topics in data analysis, big data, and compliance.

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

  1. the open source code of the RootsWallet, including these new storage backup/recovery features, available in a public repository.
  2. A built version of the RootsWallet app available on the play store.
  3. A tutorial showing users how to backup their RootsWallet.

Additionally, this team adopts Agile methodology based on the tools provided by our Github repo. 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.

Success is defined by RootsWallet users (our partner's users) being able to backup, restore, and move their identity wallet between devices. The process must be secure and the end user experience will be familiar.

  • We will begin with an export feature that allows the user to store their wallet on any filesystem. This will be presented as an option to the user in our app and will give a filesystem dialogue that is familiar.
  • It will create an archive file containing:
  • holder/issuer/verifier DID history.
  • all verifiable credentials.
  • user preferences/settings.
  • auxiliary files used for display, state, and connections.
  • It will include the backup from all app storage areas:
  • document store
  • asynchronous store
  • secure store
  • database store
  • We will provide a restore feature that allows the user to restore their wallet from a previous export. This will be presented as an option to the user in our app and will give a filesystem dialogue that is familiar. All of the exported data listed in the export feature above will be restored.
  • We will also provide information about traditional cloud filesystems like google drive and decentralized cloud storage filesystems such as IPFS and directions how to save their exported wallet there.
  • We will release the feature to our partner communities and take feedback for fixes, improvements, usability, etc.

This is a continuation of the RootsWallet alpha release from Catalyst Fund 7 which defined the original storage of the wallet.

This new proposal will add backup and recovery features to RootsWallet alpha storage, in order to produce RootsWallet beta (Fund 8 features).

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