KeyKo is a decentralized key management platform with a built in social recovery layer that combines smart contracts, threshold cryptography, decentralized storage, and trusted parties to securely store and recover private keys.
Users begin by designating a number of trusted addresses as guardians, then we locally encrypt their key, set up a decentralized access control schema, and upload the digest to IPFS.
To recover their key, a user logs in with a fresh wallet and recovers with the help (and signatures) of their guardians. Once the signatures have been collected, the lost key is fetched from IPFS and decrypted locally.
2. How will IPFS, Filecoin, or related technology be used for this project? (max 100 words)
We use IPFS for decentralized storage of the encrypted symmetric key, the encrypted data, and the access control conditions for every user's keys. We then use the CID when fetching the information to decrypt. We envision a future where our code is hosted on IPFS and we continue to build out more functionality that requires storage on IPFS or Filecoin such as being able to edit the key that has been uploaded and encrypted.
3. How will you improve your project with this grant? What steps will you take to meet this objective? (max 200 words)
Next steps for getting the product ready for production:
UI / UX improvements
Better descriptions and documentation for using the platform
Add user onboarding and more descriptive notifications for what is going on in the backend. This includes things like loading pages, alerts, success / failure modals, and more descriptive messages
Threshold Guardian Scheme
Allow users to specify an n of m scheme such that in order to recover your key, n of m total guardians need to sign off
Multiple key management
Allow users to upload multiple keys for encryption and manage a guardian scheme for each one.
Dynamic Key management
Allow users to easily edit the keys they have uploaded for storage / encryption
Vaults
Vault type functionality where a user can create a vault, associate a guardian list scheme (i.e. n of m guardian scheme) with that vault, and then encrypt keys for that vault. This would allow a user to recover any key in that vault individually using the guardian scheme defined for the vault.
Allows users to group keys together providing for a better user experience
Dynamic Guardian management
Allow users to dynamically manage their guardians (i.e. add new guardians, revoke guardian permission, etc.)
We currently only support initial guardian upload
4. Is this project open source?
Yes
5. Do you agree to share grant reports upon request, including a final grant report at the end of the three month period?
Yes
6. Does your proposal comply with our Community Code of Conduct?
This project was created as part of the EthGlobal EthNewYork Hackation. I learned about the microgrant program there while presenting to IPFS & Filecoin (they encouraged us to apply). We actually won the 2nd place prize from IPFS & Filecoin.
1. What is your project? (max 100 words)
KeyKo is a decentralized key management platform with a built in social recovery layer that combines smart contracts, threshold cryptography, decentralized storage, and trusted parties to securely store and recover private keys.
Users begin by designating a number of trusted addresses as guardians, then we locally encrypt their key, set up a decentralized access control schema, and upload the digest to IPFS.
To recover their key, a user logs in with a fresh wallet and recovers with the help (and signatures) of their guardians. Once the signatures have been collected, the lost key is fetched from IPFS and decrypted locally.
Links
2. How will IPFS, Filecoin, or related technology be used for this project? (max 100 words)
We use IPFS for decentralized storage of the encrypted symmetric key, the encrypted data, and the access control conditions for every user's keys. We then use the CID when fetching the information to decrypt. We envision a future where our code is hosted on IPFS and we continue to build out more functionality that requires storage on IPFS or Filecoin such as being able to edit the key that has been uploaded and encrypted.
3. How will you improve your project with this grant? What steps will you take to meet this objective? (max 200 words)
Next steps for getting the product ready for production:
4. Is this project open source?
Yes
5. Do you agree to share grant reports upon request, including a final grant report at the end of the three month period?
Yes
6. Does your proposal comply with our Community Code of Conduct?
Yes
7. Links and submissions
ETHGlobal (New York):
Additional questions:
This project was created as part of the EthGlobal EthNewYork Hackation. I learned about the microgrant program there while presenting to IPFS & Filecoin (they encouraged us to apply). We actually won the 2nd place prize from IPFS & Filecoin.
Team Members
Joseph Gross: josephgross157@gmail.com
Richter Brzeski: GitHub
Nick Ciepley: GitHub
Will Seiple: GitHub