Social Login

XRGB Wallet uses MPC-TSS to provide a safe and private key-free experience.

1. Social LoginπŸ€œπŸ€›

XRGB wallet provides a one-click social login solution for web2 & web3 users. XRGB MPC uses MPC-TSS algorithm to provide a safe and private key-free experience.

2. Recovery StrategyπŸ€œπŸ€›

In a typical 2 out of 3 (2/3) setup, the user is provided with three factors: Social Login Factor, Device Factor, and Backup Factor.

Social Login Factor is managed and divided across XRGB Network and can be accessed through an OAuth login provider owned by the user, like their Google account.

Device Factor is stored on the user's device. The method of storage is specific to the device and system. For instance, on mobile devices, the factor could be stored in device storage that's secured with biometrics.

Backup Factor serves as a recovery share. It's an extra factor that the user can keep on a separate device, download, or base on user input with sufficient entropy. This could include a password, security questions, or a hardware device, among other options.

This ensures that your key is always available and never stored in a single place.

3. MPC-TSSπŸ€œπŸ€›

3.1. IntroductionπŸ‘ŠπŸ‘Š

The Threshold Signature Scheme (TSS) is a cryptographic primitive for distributed key generation and signing. With the MPC (Multi-Party Computation) TSS architecture, it is never reconstructed. Instead, these partial keys are stored across different locations, and your device is used to make partial signatures for your message/ transaction. These are finally returned to the front end where using TSS (Threshold Signature Scheme), these signatures are combined to make a final signature. You can use this finally signed message/transaction to make a transaction on the blockchain.

The advantage is that the private key is not a single point of failure anymore because each party holds just one part of it. When signing transactions, we run a distributed signature generation between two parties. Only Party-1 (the user side) can start the signing process. Again, we've moved from local computation (single point of failure) to an interactive one.

3.2. TSS vs. MultgisigπŸ‘ŠπŸ‘Š

TSS is using cryptography off-chain, while multisig occurs on-chain. The main point of difference is that multisig is blockchain-specific and needs to be reimplemented for every blockchain, and in some cases, is not supported at all. Conversely, TSS relies on pure cryptography, so support is always possible.

3.3.TSS vs. Shamir Secret Sharing SchemeπŸ‘ŠπŸ‘Š

The Shamir Secret Sharing Scheme (SSSS) provides a way to store the private key in a distributed manner such that while the private key is at rest, it is stored in multiple locations. There are two differences between SSSS and TSS:

  • Key Generation: in SSSS, there is a single party called β€œthe dealer” that is in charge of generating the private key secret shares. It means that at the time of Key Generation, the private key is generated at a single location and then distributed by the dealer to different locations. In TSS, there is no dealer, as its role is distributed such that the full private key is never at a single location.

  • Signing: in SSSS, the parties must reconstruct the full private key in order to sign, which results in a single point of failure each time a signature is needed. In TSS, the signing is done in a distributed way without ever reconstructing the private key.

As we can see, in TSS, the private key (which represents the security of the system) is never at a single location throughout its entire lifetime.

Last updated