7.2 Non-custodial Key Management
As part of our goal of financial inclusion and enablement of abundance through blockchain technology, there has typically been a technology gap which has excluded those who are not technically proficient or well versed enough in the use and management of private keys. As a result, we created a hybrid non-custodial key management solution to enable users to access their accounts and wallets with only a username and password, while still allowing for traditional account recovery via a forgot or reset password flow.
Accounts
The account creating process is simple, the user either locally generates a wallet or connects their own Celo-compatible browser extension wallet such as Metamask or Portis. The user then chooses a third-party to play the role of Guardian in the event of account recovery.
Network accounts consists of a 2 of 3 multi-signature wallet
Network Cosigner
Responsible for confirming relayed transactions
Operated by the network
Client Wallet
Can be self-custodied or keys stored via an encrypted keystore.
Operated and only accessible by the owner of the wallet.
Used to add new transactions to the multisig to be cosigned by the network operator.
Guardian Wallet
Operated by third party custodial service
Responsible for recovery if a member loses control or access of their client wallet
Incentivized by network to offer guardian service to custody partial keys on behalf of the user
Transactions
Signing transactions are also simple, the user signs a transaction with their client wallet keys and asks the Network Cosigner to the cosign and confirm the transaction.
Recovery
** **If a user loses access to their client wallet, they will generate or connect a new wallet.
After it’s generated, the user sends a request to their Guardian to call the replaceOwner
function in order to swap the old client wallet address with a newly generated client wallet. Afterwards, the guardian asks the Cosigner to confirm the replaceOwner
transaction.
Last updated