Password Manager
A simple password manager that allows a user to access/modify their passwords only through an authorized wallet address
Created on 16th February 2023
•
Password Manager
A simple password manager that allows a user to access/modify their passwords only through an authorized wallet address
The problem Password Manager solves
Problem:
Password Managers available right now are outdated and are prone to have security issues. A blockchain based Password Manager can solve the issue of security.
Solution:
To access / store / modify passwords the user will be required to send a transaction from an authorized wallet address.
Every wallet has a public key and a private key. Decoding a private key, given its public key, is next to impossible. We can leverage this fact by allowing the user to set a "heartAddress", which is basically the authorized public address from which they can access / modify / store their passwords. This "heartAddress" can never be modified again unless the user resets everything (including the stored passwords). This is done because if a. A user can access / modify / store passwords only if they perform transactions to the Ethereum blockchain using the particular "heartAddress" that they have authorized. To make a transaction from a particular wallet address, we need to login into MetaMask (or any other provider). And inorder to login we need the private key which is only available to the original user and not any other malicious account. If someone tries to perform any of the given actions through another wallet address (an unauthorized one) then transaction would fail and the user won't be able to access / modify / store their password. Thus, the user can safely store passwords and access / modify them.
An authorized user can:
- Store passwords
- Access passwords
- Modify passwords
- Reset all the passwords without resetting the "heartAddress"
- Reset all the passwords as well as the "heartAddress"
Challenges I ran into
I stumbled upon a bug while implementing the functionality of restricting users with unauthorized address from being able to reset everything. The bug was such that the unauthorized address wasn't able to reset everything but at the same time the authorized address too wasn't able to do so. I experienced this bug in other transactions like "resetMapping" too. I solved the error using the "require" statement of Solidity which executes the code only if the condition specified is satisfied else it returns a custom error message and also results in failure of transaction.
Tracks Applied (1)
Polygon: Open Track
Polygon Technology
Technologies used
Cheer Project
Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.