over budget
One Crypto Pass
Current Project Status
Unfunded
Amount
Received
$0
Amount
Requested
$57,200
Percentage
Received
0.00%
Solution

I have designed a solution to allow self-custodian wallet owners keep their seed phrase safe, off internet, not in plain sight, but still accessible at will via a simple QR code scan.

Problem

https://youtu.be/bziQe89lHLU

Not your keys, not your coins, right?

But how can your seed phrases be kept safe? How will we onboard the next billion users on-chain without this FUD of getting hacked?

Impact / Alignment
Feasibility
Auditability

Team

1 member

One Crypto Pass

Please describe your proposed solution.

<u>The problem explained simply</u>

You just opened a self sovereign crypto account, and you were told to keep your 15 words seed phrase safe (replace 15 by 12, 24 or any other value as appropriate to your context, it is the same concept/problem/solution behind it). Those 15 words are the entry point to your wallet, or to be more precise, they can generate the private key that signs any transaction out of your crypto account. Anyone who has those 15 words have access to your wallet and can spend all of its content.

Image File

a typical seedphrase and warning message

  • If you store those 15 words online (backup system, cloud, or any system that is accessible via the internet) or in clear on a computer connected to internet (unfortunately prone to hacks), you are at risk that it will leak, and any day your wallet could be emptied.

  • If you write them on paper and keep it safe in your house, you are at risk that anyone seeing this paper could access your wallet and empty it.

Therefore the industry does not have much of a solution for this, and comes up with ludicrous solutions like "you should print the 15 words on a metal sheet and bury it under your house (https://blog.lopp.net/metal-bitcoin-seed-storage-stress-test--part-ii-)". Are you serious?

Image File

The problem is general across the crypto world, and is one of the main FUD of onboarding users. What if someone steals my keys? Where should I hide it? should I trust myself to keep it safe?

If we can remove this risk, we remove one of the biggest barriers to entry when onboarding new users into the world of crypto and self-custody. Therefore… it is a BIG deal!

<u>A good solution that nobody seems to have thought of</u>

Let's step back. The problem shows us that the solution must include this:

  • the 15 words should never come close to the internet. Once they are given to you, they should never be uploaded anywhere.
  • the 15 words should never be stored in plain text, otherwise your account is immediately at risk of being compromised.
  • the 15 words should be accessible within a few seconds by whoever owns them (no digging under the house)

I have designed a system that provides a solution to this problem. I have a working prototype (see attached video) which is already available as an app on the AppStore, although at this stage it lacks some characteristics to be adopted by the crypto community. In short, it is not open source, it requires a backend, requires a database, a login (user email), and appears as a commercial product. As a consequence of all this, end users may not trust that this product will do as it says (keep their seed phrase safe and off internet).

I propose to spent time and effort to transform what could be called a first good prototype into a robust open source product, delivered as an app on iOS and Android.

Ultimately, this app will deliver the following:

  • the code will be open source so that everyone will be able to see it and be confident that it does not contain any malicious code. It will also be minimal in terms of open source extra libraries, as to keep it light and easily auditable.
  • the app will be always offline (i.e. no internet access), at least for what concerns the management of seed phrases and encryption of it, so that there is no risk of the seed phrase leaking online.
  • the owner of the wallet will be asked to enter in the app her 12, 15 or 24 words as they are given by the self-custodian wallet that the owner wants to protect
  • those 15 words will be encrypted by the app with a strong encryption library using a private key specific to this user (see below)
  • the encrypted result is then shown to the user as a QR code, which can be downloaded, and printed for later reuse.
  • anyone scanning this QR code will see nothing behind it (strong encryption / gibberish).
  • however via the app, the owner of this QR code will be able to decode it and see the 12, 15, or 24 words in clear immediately after the scanning.
  • the owner can decide to delegate the reading of his QR code, with some conditions attached (of date range, or other) to another user (using his public key), allowing this other user to retrieve the words on behalf of the original owner if/when the conditions are met (therefore making irrelevant the industry of private wills and lawyers/executors to access contracts after such or such event happens).
  • the owner's main private key used for encoding is generated by the owner with words chosen by the owner, therefore one private key (simple for the owner to recreate) controls them all.

Image File

a QR code containing a seedphrase that nobody else can decode

<u>Additional educational content</u>

Since this app is likely to be a very good entry point for onboarding users on their self-custodian crypto journey, it is the right access point to deliver some very important educational short videos on best practices regarding security. We will provide a few educational animated videos which will be embedded into the app.

<u>Additional Cardano extras</u>

For keys of Cardano wallets, it could be interesting to give the ability of those Cardano users to see the balance of their wallet, so if they have say 4 Cardano accounts, not only they would have a safe storage of their 4 private keys, but also could see the consolidated balance of their 4 wallet. It's a small gimmick, but could be a nice addon for the Cardano community of users.

As mentioned earlier, the app would also contain a few tutorials (how to…) which would be made on Cardano examples (wallet, use case, logo, visuals) therefore pushing the Cardano brand and associated wallets brands with the app.

Please describe how your proposed solution will address the Challenge that you have submitted it in.

The challenge addressed is "Security and Privacy". The most important and dramatic security issue in crypto, is the one of being at risk of having someone access your seed phrase and therefore your private keys, and extract the content of your wallet.

At the start of their journey into Crypto, most users will feel unsecure and overwhelmed. Onboarding users on self-custodian wallets is the first most critical step. The blockchain that secures it best will receive the goodwill that comes along.

It is very much under-estimated (and under-stated) that one of the biggest challenge of the Crypto community as a whole is how to onboard the next billion users on-chain and with self-custodian wallets. One Crypto Pass is a step in the right direction to address this cross-chain common global challenge.

The solution provided is an app that will work across all major blockchains. Therefore there is a strong incentive for Cardano to be seen as the leading and most trustworthy blockchain among all. By showing that the Cardano community can deliver, on behalf of the whole crypto industry, a better solution for keeping users' seed phrases safe, educate them, and remove some FUD, it sends a strong signal about Cardano's and its developer community's ethics for doing good.

Although the app will work cross-chain, it is our intention to provide Cardano users with a few added functionality vs users of other chains, such as providing cumulated Cardano accounts balance at first glance of dashboard.

In addition, to increase the profile of Cardano vs all other blockchains, it is also our intention to make the app's onboarding tutorials (how to use…) and explainer videos (protect yourself from hacks, best practice to keep safe…) all based on Cardano (and specific user experiences with Cardano wallets), including brands and visuals.

Finally, since the app is mostly going to operate offline (no need for a backend or database), its scalability is not going to be an issue, and since most crypto seed phrases are derived from bitcoin BIP39 or similar standard, what will be delivered will already be at scale, with a positive impact across most chains.

What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?

In truth there are no great technological challenges anymore at this stage. I have already developed a "web2" version of the solution (as can be seen in the videos, and as can be downloaded from the AppStore). I now need to "refactor" this web2 solution to get rid of the backend and database, and rebuild it on a more modern framework (I used Cordova in the current release and I will likely build the new one with React Native). That will allow the delivery of the app for iOS and Android.

There will be no need for the user to register (no email, no id..), hence no need for backend / database in this new app. At the equivalent of first login, the user will be required to enter his/her own original seed phrase. That will generate a private key used for encoding all future seed phrases into QR codes. This original seed phrase will then be encoded in the app (localstorage or equivalent) and will not be accessible / hackable from outside the app. I plan the additional use of phone security system (fingerprint / face recognition) to access the app after first login. As noted by a community member, it may be that to deal with the case of rooted devices, the app should allow the user to either keep the original seed phrase securely in app storage (convenience) or ask it at each app usage (stronger security, but a lot less convenient).

The risk of a moving deadline will be mitigated by allowing more time than I would normally allocate for a full time job.

The only part which has not been prototyped at this stage is the integration of a Cardano library to scan through Cardano wallets balance and provide an additional feature for Cardano users. That is not critical to the app, and this is only a nice to have, which I intend to implement, but in case it takes longer to do so, this can be delayed a bit without impacting much the release of the main feature / main benefit.

Please provide a detailed plan, including timeline and key milestones for delivering your proposal.

<u>Alternative commitments</u>

Before providing the detailed plan, please note that I (Eric) got the privilege to receive two project funding in the past:

  1. Fund 7 - https://cardano.ideascale.com/c/idea/383844 - this project will be finalized and fully delivered within a few weeks as per the original plan committed to Catalyst. See https://tachiku.com which is already production ready. So it would not impact this submission at all.
  2. Fund 8 - https://cardano.ideascale.com/c/idea/400022 - this project is just starting now (June), and I have given myself 8 months to deliver (final delivery planned on 30th Jan 2023), therefore I am not working on it full time (only around 2 days per week), so I have still a lot of bandwidth.

I am also submitting another project in Fund 9, which is the continuation of my Fund 7 project. It can be found here: https://cardano.ideascale.com/c/idea/420812. In the case of this project, I will require to hire a Python/Docker developer and a Plutus programmer, both of which are not my core strength. So if I have the privilege to get funded for this project (idea/420812), it will only take at most at around 20h per week. It means that I would be able to focus my coding time for around 32 hours per week for the two projects (the Fund 8 - idea/400022, and this current proposal).

Finally, timelines are set to accommodate all concurrent activities, so that projects are delivered as per their respective expectations (like I am delivering currently the Fund 7 project on time and on budget).

<u>Detailed plan</u>

(wd= working day of 8 hours)

[21 days] Setup phase

  • [2 wd] open source repo setup, various readme for usage, install, test…
  • [5 wd] build skeleton of app (likely in React Native, backup plan would be to use Cordova)
  • [4 wd] iOS / Android setup pages, test env, build scripts, ongoing postman tests, etc…
  • [6 wd] implement the various biometric scans in the app + security aspects (iOS / Android)
  • [2 wd] integrate various encryption libs, protect user own original seed from hacks
  • [2 wd] integrate with iOS/Android policies (1 day each)

[20 days] Nice app onboarding + tutorials

  • [2 wd] splash / welcome / graphics, all formats, all devices
  • [4 wd] UI to create original seed phrase for app / store / encrypt libs
  • [6 wd] embedded tutorials ("how to" features explanations)
  • [8 wd] educational videos (avoid getting hacked, most important steps to get secure…)

[24 days] Most functional UI/app

  • [10 wd] UI for seed phrase data entry, storage, QR generation, QR export
  • [2 wd] QR scan, QR decode, UI show seed phrase
  • [4 wd] UI for listing all secured wallets (metadata) + edit metdata / sort / …
  • [8 wd] delegation of secret, conditions of delegation, share with other's pub key, UI

[7 days] Cardano specials

  • [3 wd] integrate automated scan of balance on Cardano wallets + UI
  • [2 wd] placeholders for cardano "advert placement" / visuals, ways to push simple promo
  • [2 wd] risk mitigation 30% (a bit of an unkown on Cardano scan)

[11 days] Simple entry website + doc/ marketing videos

  • [5 wd] hosted website (nodeJS / react?)
  • [6 wd] marketing videos

[16 days] Delivery + test + risk mgt

  • [3 wd] iOS app test
  • [1 wd] iOS app deliver
  • [3 wd] Android App test
  • [1 wd] Android App deliver
  • [6 wd] risk mitigation 12.5% on dev the whole part of project

Not included in cost (but will be delivered on a needs basis)

  • ongoing maintenance and delivery of app upgrades (minimum commitment of 3 years)
  • reviewer / gatekeeper of integration fixes or evolution of app driven by community / devs
  • fees for hosting website + domain name (for at least 3 years)
  • fees for iOS App release / various tools (for at least 3 years)
  • product demo / attend webinars to showcase the product when requested

In terms of timing and milestones, the plan is to deliver according to following schedule:

  • the critical path is the app development, from "Setup phase" to "most functional UI", representing around 45 days of dev time, so around 5 months at only 2 days per week.
  • the non coding activities (test, tutorials, visuals, doc) represent 32 days and can be slotted in parallel from month 3, as they will be delivered by various other "non critical" contributors
  • then there is an additional requirement for 10-12 days of coding for the website and the "Cardano specials", which will add around 1 to 1.5 month.
  • finally, this plan includes a risk management of around 2-3 weeks (at 2 days per week), which pushes the whole project deliver from start to finish to 7 months

As shown above, the project is planned to be delivered in full within 7 months from start. Again, this represents a workload of around 40% of "normal working time", or less than 20% of "overdrive work" (I do not work 40 hours a week, more like 80 hours a week…). This is very safe and manageable, in consideration of other commitments, and the low level of technological risk associated with this project.

As regards the milestones, it is expected that the source code will be available on a github repo from the start of the project, and auditability will be possible on this basis. A first alpha app, working as per minimal expectations, is likely to push it to the 3-4 months timeline. Therefore it is not likely that there will be a significant delivery that is a "workable product" during the first few months of the project plan. All first app deliveries will be made for iOS and be available on testflight. The Android target will be done last, by the end of the project.

Image File

sample screen of current app (will be re-looked with Cardano feel)

The detailed plan as per above is not strictly a 100% mapping of a timeline day by day, but it is still a relatively good representation of when efforts will take place, and which modules require completion before moving onto the next one(s). As previously mentioned, it is a safe plan (no aggressive deadlines).

Please provide a detailed budget breakdown.

A total budget of $57,200 over 99 days

  • [$4,200] Build / setup / test / doc : 12 days (at $350 per day)
  • [$7,000] Animated videos / Tutorials / visuals: 20 days (at $350 per day)
  • [$40,600] App dev: 58 days (at $700 per day)
  • [$3,000] Website: 5 days (at $600 per day)
  • [$2,400] Delivery: 4 days (at $600 per day)

As detailed above, I have included some ongoing maintenance, deliveries, webconf presentations for free. I also propose to support the cost for hosting (website) and annual cost of domain name, apple and android dev app subscriptions for at least 3 years. I only charge my time for coding and the time of others in the team for their part in delivering the solution (test, minimal marketing, tutorials).

Please provide details of the people who will work on the project.

The tutorials, visuals, and docs will be subcontracted to the same team who has delivered all those for Authenly (see for example youtube[dot]com/watch?v=85kHldpiThQ and youtube[dot]com/watch?v=7ESDEUCiYCs). See some of the work from this team here (cartoonite.com)

Website and app will mostly be delivered by Eric Duneau (<https://www.linkedin.com/in/ericduneau/>)

Test will initially be done by the Authenly team (actual team members may rotate by the time we get there, since for this purpose we use apprentices on 6 months rota). It is hoped that additional alpha testing will be provided by users in the Cardano community as per release plan.

If you are funded, will you return to Catalyst in a later round for further funding? Please explain why / why not.

Not planning to ask for more funding later on for this project. It will be fully delivered as an open source app, and there will be no need for more funding. I will maintain the app for "bug maintenance / code rot" for free for at least 3 years (as part of the funding received).

Please describe what you will measure to track your project's progress, and how will you measure these?

  • Coding activity: daily github commits

  • Code quality: code must pass all postman automated test scripts before a commit

  • Test: once the app is on testFlight (even if on a very alpha basis), we will likely make weekly app updates, and we will measure engagement / usage via testflight monitoring. However, in consideration that the app will be mostly offline, we will only be able to measure simple data (app downloads, app usage, country of origin, device model…).

  • Tutorials : they will be hosted on youtube and we will monitor monthly views. Delivering "best practice" (how to keep safe, not get rekt) tutorials accessible via website or via app to thousands of users is already a great win in itself, which we will measure.

  • Extra: it would be very nice to have metrics on the types of wallets secured (which chain the seed phrase is securing) but this would likely go against the principle of an offline app. This will be reviewed at the very last stage, maybe the addition of "just a ping" to the website, which would count how many wallets secured and from which blockchain, would be great as it would show live user adoption and benefits delivered by this app.

  • We report monthly to the Cardano / Catalyst community via a video report, which generally includes our last month's activity (what was delivered), what we will focus on during the next month, and any challenges and opportunities

What does success for this project look like?

Success would be a massive adoption of this app in the crypto community at large, to help users secure their self custodian wallets seed phrase, and protect their private key.

I decided to submit this project after discussing with some peers in the Cardano community (in London/UK, meetup of 19 June organized by @upstream_ada) and listening to someone say that he was managing a community of 400 users but most were frightened to have a self-custodian wallet (again the same FUD). In this very specific instance, success would be seeing this community of 400 users adopt the OneCryptoPass app to protect themselves, and see each of them move towards a better financial independence by owning their key, therefore owning their coins!

Therefore, success is measured in the number of users who move to self-custodian wallets, as they become less afraid of loosing their funds since their key is now a lot more secure.

I also sincerely hope that the Cardano community will embrace this app as the default solution for protecting their seed phrases, and that tens of thousands will benefit from it within a few weeks of its launch. I will make myself available to promote it for this goal to happen.

Please provide information on whether this proposal is a continuation of a previously funded project in Catalyst or an entirely new one.

New proposal.

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