Please describe your proposed solution
Solution:
Our solution is a user-friendly Decentralized Seed Phrase Manager for Cardano. It encrypts seed phrases using an On-Chain Encrypted Storage mechanism, enhancing security and convenience. By distributing seed phrases on the blockchain, the solution mitigates the risks associated with centralized storage, making it challenging for a single entity to compromise multiple seed phrases.
How it Works:
- The user submits 23 out of 24 seed words, keeping 1 hidden for extra security.
- Index of the hidden word and passphrase are provided.
- The user-provided personal info is hashed and parameterized to create a script address for every user and for UTxO identification.
- Dapp encrypts 23 words and indexes using AES encryption with the passphrase, storing it as UTxO Datum on-chain.
Implementation:
- Parameterized smart contract on Cardano Blockchain using Plutus/Plutarch.
- On-chain logic mainly for storage, with an option to withdraw min ADA if needed.
- Off-chain code using Lucid for AES encryption and UTXO locking.
Recovery:
Users can recover their seed phrases by providing a passphrase along with their personal info which was provided at the point of account creation in that exact order. The Dapp decrypts and provides the 23 words + index, ensuring a safe recovery mechanism.
Security Optimization:
A series of tests and benchmarks between security optimisation techniques are currently being analysed and synthesized to attain the ideal and optimum security workflow architecture against all possible attacks without compromising efficiency, ease of use and decentralisation. some of these techniques include; implementing recursive encryption mechanisms, utilizing Transaction Token Patterns such as On-chain Merkle Trees and "linked lists" UTxO's, compression algorithms, encrypted randomly generated keys for data encryption etc.
Importance Of This Solution:
- Offers a recovery mechanism for lost seed phrases.
- Simplifies information storage for recovery, encouraging users to define passphrases and personal info rather than storing their seed phases directly on their computer, on a piece of paper, or using some other insecure/expensive storage mechanism.
- Enhances security by allowing multiple storage locations without compromising funds.
- This project would offer in its code base, templated source code as a resource and as information to developers about how the Cardano blockchain can be utilised as a storage mechanism and to manage small amounts of data for various use cases in a decentralised fashion.
Target Audience:
All self-custody crypto users, including those from other blockchain networks. Encourages central exchanges to provide enhanced security features for self-custody wallets. Delo
Impact Measurement:
- Evaluate impact through community adoption, user feedback, and the increasing number of users utilizing the solution within the blockchain ecosystem at large.
- Source of reference and information for developers to implement specific solution components for various use cases.
Prototype Access:
Access the prototype on GitHub, which includes a Next.js application with TypeScript and lucid-cardano for off-chain. Plutarch code is available separately. Blockfrost API keys and Nami wallet are required for connection.
Off-Chain Lucid Code:
<https://github.com/rchak007/decentralSeedRecover/blob/main/pages/offChain.tsx>
On-Chain plutarch Code:
<https://github.com/rchak007/decentralSeedRecover/blob/main/pages/onChain.hs>
Please see the Pilot Test with Cardano PreProd section here:
<https://github.com/rchak007/decentralSeedRecover> for testing simple GUI and the test results.