About keyless wallets
What is MPC?
Multi-party computation (MPC) is a cryptographic protocol that enables multiple parties to compute a function together without revealing their individual inputs to each other. This technology allows for secure collaboration on sensitive data without compromising privacy and forms the backbone of keyless wallets.
What are keyless wallets?
Keyless wallets leverage the power of MPC to distribute the cryptographic keys needed to access your cryptocurrency funds across multiple devices or participants. These participants work together to sign transactions, ensuring that no single entity possesses all the necessary information to access your wallet.
How are keyless wallets created?
Creating an keyless wallet involves several rounds of communication between your backend and the Sky Mavis API. This process happens asynchronously, meaning it takes place over multiple interactions rather than a single continuous operation:
- Getting the user's access token: you can do this by integrating with Sky Mavis Account or Ronin Waypoint.
- Collecting a passphrase from the user: this passphrase is a secret used to encrypt the private key shard.
- Generating a recovery kit: this kit used to recover the wallet in case the user loses their passphrase.
- Using the user's access token and passphrase to create a keyless wallet. This involves:
- Generating a private key in a distributed manner, split between the client and server:
- Client-side: the user's device generates a private key shard (shard A). This shard is encrypted with the user's passphrase and stored securely on the user's device.
- Server-side: the Sky Mavis server generates a private key shard (shard B). This shard is stored securely on the Sky Mavis server.
- Aggregating the two private key shards to form the user's public key: this key is the user's keyless wallet used for transactions.
- Retrieving the wallet's public address to use for transactions.
- Signing a transaction: to sign a transaction, the parties collaborate using shards A and B without ever combining them into a single private key. The transaction is signed and then broadcast to be added to the blockchain.
How are keyless wallets different from multisig wallets?
Multi-signature (multisig) and keyless wallets both offer enhanced security by requiring multiple signatures to approve a transaction, but they differ in their underlying technology and implementation.
- Multisig wallets: use multiple private keys to sign a single transaction. Each party involved in the transaction must provide their private key for the transaction to be approved. This makes it more difficult for any single party to steal the funds, as they would need to compromise multiple private keys.
- Keyless wallets: use a single private key split into two shards. These shards are distributed to different parties, and no single party has access to the entire private key. Even if one party is compromised, the funds are still safe because the private key is never fully assembled in one place.