Skip to main content

About MPC technology

About 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. Allowing for secure collaboration on sensitive data without compromising privacy, this technology forms the backbone of MPC wallets.

About MPC wallets

MPC wallets leverage the power of MPC to distribute the 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.

As the MPC wallet splits the private key into multiple shares and distributes it among different parties, it becomes really difficult for anyone to gain unauthorized access to the private key or the cryptocurrency assets. Plus, the wallet requires multiple approvals from different parties before a transaction is executed.

Here's how MPC technology is used to securely sign transactions:

  1. A private key is split into two shares—call them share A and share B. This is done using a secret sharing scheme that ensures that the secret can only be reconstructed if a certain number of shares are combined.
  2. Each share is distributed to the parties in the MPC protocol—share A belongs to the user while share B is stored on the MPC server. The shares are never united on one machine.
  3. For each private key, there's only one pair of active shares at a time.
  4. To sign a transaction, the parties combine their shares into one effective private key. It also includes the message, like how much money one wants to send.
  5. After the transaction is signed, it is broadcast to be added to the blockchain.

How are MPC wallets created?

Creating MPC wallets with the MPC Solution is a step-by-step process that involves several rounds of communication between your backend and the Sky Mavis API. This process happens asynchronously, which means that it takes place over multiple interactions rather than a single continuous operation.

  1. Your game gets the user's OAuth 2.0 access token from the OAuth 2.0 provider (the Sky Mavis Account service).
  2. To initiate the creation of an MPC wallet, the game calls the MPC key generation method with the user's access token. This call starts the MPC key generation process.
  3. As a result of the key generation process, the user receives a private key shard used for participating in the transaction signing process.
  4. To protect the private key shard after completing the key generation process, the game requests the user to set up a recovery password.
  5. The game immediately encrypts the user's private key shard by calling the key encryption method with the user's access token and recovery password.
  6. To ensure protection for the user, the game offers to back up their encrypted private key shard to a secure storage system. This way, the user can recover their account later using the recovery password.

Difference between MPC and multisig wallets

Multi-signature (multisig) and MPC wallets are both types of crypto wallets that offer enhanced security by requiring multiple signatures to approve a transaction. However, they differ in their underlying technology and implementation.

Multisig wallets use multiple private keys to sign a single transaction. This means that each party involved in the transaction must provide their private key in order 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.

MPC wallets use a different approach to security. Instead of using multiple private keys, MPC wallets split a single private key into multiple shares. These shares are then distributed to different parties, and no single party has access to the entire private key. This means that even if one party is compromised, the funds are still safe.

See also

Get started with integrating MPC

Was this helpful?
Happy React is loading...