Please describe your proposed solution.
The Frankenwallet is a documentation project for building a do-it-yourself (DIY) platform for the privacy and security of cryptocurrency holdings and operations.
A bootable device built according to these instructions is likewise called a Frankenwallet. Note therefore the Frankenwallet is not a product or an installable piece of software: it is a tool a user or operator will build for themselves from open-source, peer-reviewed documentation.
Though the scope of features is quite different than the commercial "hardware" wallet, it is intended to offer a similar security assurance — mainly, isolating one's private keys from an insecure networked environment — but with appeal to users and operators who prefer to control their own private keys rather than trusting them to a "black box" of incompletely known design and behaviour.
This project has already been under development since first employed in the COSD stake pool launch in August 2020, and has been publicly documented since January 2021. So far this solution has seen private use, with interest from other developers and DIY enthusiasts, but has not yet achieved its potential as a part of Cardano's standard offerings for privacy and operational security.
The author and proposer Robert Phair believes that achieving this full potential is a matter of focused user / developer outreach, with repeated cycles of improvement based on user feedback, while executing a plan for specific improvements based on popular use cases and expectations of community support and open source documentation.
Since this project is planned and budgeted at 9 months, an expected March 2024 onboarding for Catalyst Fund 11 means Cardano community would have a working, community tested and validated procedure, with its own GitHub repository and web site, before the end of 2024.
Status of the Frankenwallet at this time:
At cosd.com/frankenwallet is a roughly 40-page web microsite with a draft set of installation guides, standards and templates enabling readers to install and use a removable Linux OS drive (the "Frankenwallet") as a highest-security, air-gapped transaction signing environment with the ability to manage and store encrypted files and archives.
When one's primary computer is booted from this removable drive, operators can do all these things while completely isolated from Internet access:
- store and work securely and flexibly with private keys
- sign transactions and securely keep records of transaction details
- securely manage a Cardano stake pool, its pledge, and its private keys
- execute complex command line transactions, e.g. token minting and NFT creation
- follow prepared instructions from saved blockchain data and save encrypted files on the "insecure" host machine
- make encrypted backups without ever revealing keys or passwords in the insecure host environment.
In addition to this "cold" or air-gapped configuration, providing maximum privacy and security, a second "cool" configuration was documented which allows functionally limited Internet access. This provides greater usability, but less security… yet much more privacy and security isolation than a user's regular desktop environment.
Users of this "cool" Frankenwallet have a dedicated Linux OS on which to keep their web-based browser wallets, interact with dApps and DEXes, and securely encrypt wallet secrets like passphrases for backup and storage in the outside world — without ever exposing their crypto portfolio and private data to the security risks of their regular desktop environment.
In either case, since it runs entirely from a removable drive, the Frankenwallet offers the option not to have a second machine or hardware wallet for secure Cardano operations.
It also offers to bridge the gap between the devoted Cardano community and long time enthusiasts of other cryptocurrencies. For instance Ethereum users extending or migrating to Cardano will have a common tool to generate addresses, keys and transactions offline: since the flexible Linux OS will allow Cardano and these other blockchain CLIs to be installed in the same environment.
For an an abridged version of the Frankenwallet setup procedure, see the official Cardano Foundation page on the Developer Portal (SPO Tools: Get Started with the Frankenwallet).
Improvements to the Frankenwallet in the course of this proposal:
The following steps — to convert the existing proof of concept into a well known, validated community tool — are the basis for this project's milestones and budget. These are tagged to correspond to the MILESTONES section below, and each represent about 1 month of work over a 9-month period to delivery:
(1a) Convert all pages in draft e-book into GitHub Markdown or HTML pages - As well as standardising this material, this will enable community contributors and reviewers to submit changes and improvements as more people begin using the platform.
(1b) Configure Jekyll or equivalent to build front end site from GitHub material - Installing a process to build a public web site, in e-book form, from the GitHub material: which can simply be followed by users and operators as any other reference, documentation or tutorial.
(1c) New content creation (1 of 2): Use cases - As well as filling in any omissions in the existing material, adding documentation and tutorials for the newer "cool" configuration supporting user wallets.
(2a) Community invitation to review web site design and content - Announcing to Cardano users and developers that this material is available for open testing and public comment, beginning 6 months of response to issues and discussions raised on the new GitHub repository.
(2b) New content creation (2 of 2): Special cases in privacy, security, and operations - Researching and documenting: tutorials for privacy use cases (e.g. developer key sharing, "will and testament"); security workflow; installing Frankenwallet on an encrypted part of a main disk.
(3a) Install SPO Scripts and test in Frankenwallet, then add documentation - Proving Frankenwallet can be used as a functional replacement for the "Air Gap" second machine long recommended to Cardano stake pool operators, even if using the operator scripts in addition to the bare Cardano command line interface.
(3b) Publication, testing, and evaluation with SPO scripts - Soliciting and incorporating responses from the SPO community about using the Frankenwallet and the SPO scripts together; beginning 3 months of final test, with a demanding user base, for all uses of the Frankenwallet.
(4a) Improvement based on SPO feedback, addressing tech issues - Roughly a one-month period to address any major design or documentation issues identified by the SPO community, and to improve the general quality of online documentation for the general user community.
(4b) Resolving GitHub issues / discussions, video tutorials, final reporting - Video demonstrations will be expected for the 3 major use categories (command line, SPO scripts, and user wallets), with a review and report of the full 9 months of GitHub linked + verified progress, and the usual Catalyst demonstration close-out video.
NOTES about the name "Frankenwallet"
Technical readers should please observe the name is unrelated to the Franken address — an informal reference to the more standard term mangled address for a Cardano address of mixed origin.
Also, the term "wallet" — intended to relate applications and target audience to the proprietary "hardware wallet" — is also used differently than for wallet apps, because the Frankenwallet does not actually manage funds. Yet the term is now officially applicable according to recent definition of a "zero-data" wallet which relies upon the user to store addresses, assemble transactions and manage keys: all done manually in the Frankenwallet by deliberate record-keeping, prepared procedures and operator scripts.
See this page on the draft web site (Why "Frankenwallet") for the full story of its name and origin.