key-kiss (key keep it safe/secure)
A more secure way to store your private key, preventing your funds from being stolen if someone finds your 12-word paper.
Problem
When I started to get in touch with Crypto, I couldn't believe that the best solution to save your wallet's private key was a paper with 12 words in order. So I have always thought of another way to do it, but none of them were enough secure for me. So if someone stole your paper, they would have access to all your tokens and you couldn't do anything to stop it.
Idea
Seeing that the web2 world was adopting a two-factor authentication with tokens, I thought about what would happen if we split the private key into 2 parts. In this approach, one part would be securely stored, while the other would only be accessible through an entirely separate process.
My brainstorming led me to a unique concept. I found this kind of game where you put 2 sheets one on top of the other and you can see what is behind when you leave blank spaces.
Solution
I took advantage of the fact that I was about to start the ETHGlobal online hackathon and I had some free time to do it. This solution is a first iteration that hopefully I can improve over time.
The project consists of 2 parts:
A CLI (deterministic image), built in Rust, creates an image with a deterministic order depending on your password.
A web app (secret kiss paper) that lets you choose the blank slots of your private key in each column.
How it works
| Create the deterministic image and the secret kiss paper |
Generate a new deterministic image with your password. Execute the CLI.
git clone
https://github.com/rtomas/key-kiss.git
cd secret-image-cli
cargo run
Print the image. (example of the generated image).
You have cols with all the possibilities in a different order for each of the 64 characters from the private key.
Delete the PNG file.
Get your private key in metamask.
Create the "secret kiss paper" like the image below from your private key in this link: https://editor.p5js.org/rtomas/full/o1YL8Iw6J
Burn ๐ฅ or cut โ the paper with the letters.
Keep the "secret kiss paper" in a safe place.
Create a "secret kiss METAL" (soon!).
| Recovery|
Generate the deterministic image with your password.
git clone
https://github.com/rtomas/key-kiss.git
cd secret-image-cli
cargo run
Put the "secret kiss paper" with the "deterministic image" printed or with the screen and watch your private key.
Links:
GitHub repository: https://github.com/rtomas/key-kiss
My linkedin: https://www.linkedin.com/in/tomas-rawski/
My art webpage: https://www.tomasrawski.com.ar/