Never lose access to your cryptocurrency accounts Why do we need social recovery systems? Only a small group of people have the experience…
Only a small group of people have the experience to comfortably manage their private keys, and key management stands as a barrier for average users to interact with blockchains. Some of us may be familiar with the cumbersome task of onboarding friends or family members and explaining what a private key, seed phrase or encrypted JSON file does and why it's important to keep it secure and safe.
Decentralization and blockchain can improve the quality of life for people because it enables them to to own their data and their finances without relying on trusted intermediaries. While custodial services such as Coinbase are an unfortunate necessity to onboard everyday users, they also do contribute to lowering the barrier of entry to using blockchains and cryptocurrencies.
Substrate is the blockchain framework for creating any kind of blockchain, and as more blockchains are built and deployed, it's necessary that key management can be improved without resorting to centralized custodians who may not be trustworthy or competent. That's why we've created the Recovery pallet (GitHub), a module that any blockchain innovator can use for their blockchain to increase their userbase and reduce headaches in their community.
The Substrate Recovery pallet is an M-of-N social recovery tool, based on a multisignature wallet. It allows users to recover their accounts if their private key or other authentication mechanism has been lost. Substrate is generalized to the point where we do not even assume that the blockchain you're building is using public-private keypairs, enabling the Recovery Pallet to be used for authentication mechanisms of your choice. You can specify the set of users allowed to give you access to your account again.
It's possible for the user of a blockchain to set their: number of total friends, minimum threshold of friends, and the delay period. The Substrate developer creating the blockchain initially decides: the deposit amount and the maximum number of total friends per user. The latter two can always be modified using an on-chain upgrade.GitHub
Once these steps are completed, you are now able to make calls with your lost account.
The recovery pallet gives you access to all other pallets. This is so that each pallet that's configured on the blockchain runtime you're using does not need further configuration if the Recovery pallet is implemented on-chain.
It's possible that a malicious user may attempt to "recover" your account, even though it's not lost. There are a few safeguards we put in place to prevent malicious account recovery attempts.
First, the minimum threshold of friends needs to approve the recovery initiation. Security experts often say that the largest attack vector is social engineering attacks, and this case is no different. A malicious user may compromise another social media account or create a similar looking account to trick your friends into believing this is you. Hopefully, your friends will notice the attempt and block it. But what happens if this part of the attack is successful?
If enough friends approve the recovery process initiation, the attacker still must wait the delay period to gain access to your funds. However, if you check your account just once during this delay period, you can cancel the recovery process and get the deposit the attacker made. So in a sense, it's a honeypot for malicious users if you catch them in time.
After you notice a malicious recovery attempt, it is recommended you change the set of friends and remove those who were easily tricked.
For high security, you should choose your Recovery pallet settings carefully.
The longer the delay period is, the less often you must check your account, and the more likely it is you will catch a malicious recovery attempt. For accounts with most of your holdings, it is recommended to have very long delay periods of 6 months to 1 year, just in case.
If possible, you should set a high threshold count in order to initiate the recovery process. A threshold of 2-out-of-3 is probably too low for accounts you value highly. Something more like 7-out-of-10 may be more wise.
Make sure that the group of friends you choose are well spread out among your social circle. It is not recommended to choose friends only from the same company you work with, or any group that could easily collude to initiate the recovery process. Also, as you progress through life, friends may change, so we recommend you also update your friends list on-chain as regularly as possible.
The Recovery pallet provides a low-risk way to regain access to lost accounts without sacrificing security. Check out the code on GitHub to get familiar with this pallet, or try it now on Kusama.