LogoLogo
SupportGithubSign InGet Access
  • Introduction
  • GETTING STARTED
    • SDK Quick Start
    • API Quick Start
  • Guides
    • Web
      • Create a wallet
      • Send tokens
      • Sign a transaction
      • Simulate a transaction
      • Back up a wallet
      • Recover a wallet
      • Cross-device sessions
      • Manage wallet lifecycle states
      • Web authentication methods
      • Perform swaps
      • Add custom signature hooks
      • MPC progress callbacks
      • Portal API methods
      • Configure a custom subdomain
      • Eject a wallet
      • Using the EIP-1193 Provider
      • Legacy documentation
        • Back up a wallet
          • Backup Options
        • Recover a wallet
    • iOS
      • Create a wallet
      • Send tokens
      • Sign a transaction
      • Simulate a transaction
      • Back up a wallet
      • Recover a wallet
      • Cross-device sessions
      • Manage wallet lifecycle states
      • Connect with WalletConnect
      • Build a WebView
      • Perform swaps
      • Add custom signature hooks
      • MPC progress callbacks
      • Portal API methods
      • Manage ERC20 tokens
      • Eject a wallet
      • Legacy documentation
        • Back up a wallet
          • Backup Options
          • Passkey + Enclave Storage
        • Recover a wallet
      • Troubleshooting Tips
      • Feature Flags
    • Android
      • Create a wallet
      • Send tokens
      • Sign a transaction
      • Simulate a transaction
      • Back up a wallet
      • Recover a wallet
      • Cross-device sessions
      • Manage wallet lifecycle states
      • Connect with WalletConnect
      • Build a WebView
      • Perform swaps
      • Add custom signature hooks
      • MPC progress callbacks
      • Portal API methods
      • Eject a wallet
      • Legacy documentation
        • Back up a wallet
          • Backup Options
        • Recover a wallet
    • React Native
      • Create a wallet
      • Send tokens
      • Sign a transaction
      • Simulate a transaction
      • Back up a wallet
      • Recover a wallet
      • Cross-device sessions
      • Manage wallet lifecycle states
      • Connect with WalletConnect
      • Build a WebView
      • Perform swaps
      • Add custom signature hooks
      • MPC progress callbacks
      • Portal API methods
      • Eject a wallet
      • Legacy documentation
        • Back up a wallet
          • Backup Options
        • Recover a wallet
    • Enclave MPC API
      • Create a client
      • Create a wallet
      • Send tokens
      • Sign Ethereum transactions
      • Sign Solana transactions
      • Sign Tron transactions
      • Sign Stellar Transaction
      • Concurrent Transactions
      • Back up a wallet
      • Eject a wallet
  • Reference
    • iOS
      • createWallet
      • backupWallet
      • recoverWallet
      • ejectPrivateKeys
      • registerBackupMethod
      • setGDriveConfiguration
      • setPasskeyConfiguration
      • setPasskeyAuthenticationAnchor
      • setPassword
      • availableRecoveryMethods
      • doesWalletExist
      • isWalletBackedUp
      • isWalletOnDevice
      • isWalletRecoverable
      • getBalances
      • getAssets
      • getNftAssets
      • getTransactions
      • sendSol
      • evaluateTransaction
      • buildEip155Transaction
      • buildSolanaTransaction
      • getWalletCapabilities
    • Android
      • Reference Documentation
    • React Native
      • @portal-hq/core
      • Storage adapters
        • Cloud storage
          • @portal-hq/gdrive-storage
          • @portal-hq/icloud-storage
        • Mobile storage
          • @portal-hq/keychain
          • @portal-hq/mobile-key-values
    • Enclave MPC API
      • V1 endpoints
    • Client API
      • V3 endpoints
      • V1 endpoints
    • Custodian API
      • V3 endpoints
      • V1 endpoints
    • Swaps API
      • V3 endpoints
      • V1 endpoints
  • Resources
    • Flutter
      • iOS
      • Android
    • Error codes
      • Overview
      • MPC errors
      • Network errors
      • General errors
      • Encryption errors
      • Portal Connect errors
    • Portal's MPC architecture
    • Authentication and API Keys
    • Self-Managed Backups
    • Alert Webhooks
    • Wallet lifecycle
    • Backup options
      • Password/PIN
      • GDrive
      • iCloud
      • Passkey + Enclave
    • WalletConnect metadata
    • Advanced security scanning
    • Account abstraction
    • Security firewall
    • Eject
    • Security
    • Blockchain support
    • Chain ID formatting
    • Testnet faucets
    • Going to Production
    • Rate Limits
    • Multi-backup migration guide
    • Multi-wallet migration guides
      • Migrating from Android SDK v3.x.x to v4.x.x
      • Migrating from iOS SDK v3.0.x to v3.2.x
  • Support
    • Changelog
      • Android
      • iOS
      • React Native
      • Web
      • Past Releases
        • 2024 Releases
        • 2023 Releases
    • Celo Hackathon Hub
    • Glossary
Powered by GitBook
On this page

Was this helpful?

  1. Support

Glossary

A breakdown of all the relevant concepts and terms as it pertains to Portal

Term
Definition
How this relates to Portal

Multi-Party Computation (MPC)

A field of computing that aims to solve problems when computing a result amongst multiple computers (parties). A subset of MPC centers around performing cryptographic functions across multiple parties, where each has a single key share instead of one party having a single private key.

Portal is an MPC wallet company that provides Wallets-as-a-Service to our customers.

Distributed Key Generation (DKG)

The MPC process that creates key shares on separate devices.

Portal uses DKG to power the Generate function.

2:2 (Two-for-Two) Key Configuration

This describes the MPC key configuration that Portal uses. It means that we create 2 key shares during DKG and require both of the 2 key shares to perform a signature or reshare. Specifically, it means there are 2 total keys and the threshold is 2.

Portal uses MPC in a 2:2 key configuration where an end user holds one key and Portal holds the other.

Reshare

The MPC process that generates a new set of valid key shares, from previous key shares. The new key shares are still able to sign for the existing public key.

Portal uses reshare to power the Backup function.

Share Mismatch

In a 2:2 key configuration, two linked keys are needed to perform a sign or reshare. If the two parties present keys that are not linked (i.e. from different DKGs or different reshare runs) than an MPC operation will fail because the key shares are mismatched (not the correctly linked shares).

Portal will throw errors indicating a Share Mismatch if an MPC operation has incorrect key shares. This can often occur if the client is using the wrong key share during the Backup function. (if the signing key is presented to Backup it will be mismatched with the Backup share presented on the server side)

Elliptic Curve Digital Signature Algorithm (ECDSA)

ECDSA for short is the process of generating a key using a mathematical equation for an elliptic curve, y^2 = x^3 + ax + b.The equation generates a value on the curve which is multiplied by another value to create a new point on the curve. These points on the curve represent the public and private keys needed to authenticate a user

Portal uses ECDSA to create public and private keys for a client to then sign transactions on chain. Portal first goes through the MPC process to match and validate that the client and Portal key shares are linked and uses those 2 key shares to generate a public and private key needed to sign transaction onto chain.

Threshold

An added MPC condition that forces a specified number of key shares to be accessible to validate the authenticity and proceed with the signing.

Portal uses a threshold of 2 when signing, meaning that both the portal key share and the client key share are required for signing.

Key Share

A portion of the complete cryptographic key. MPC creates multiple key shares, depending on the key configuration chosen when. The aggregate of all key shares is the intended key needed for signing, anything less will be incomplete

Portal generates 2 key shares from our SDK’s that are then saved on the Client as well as with Portal.

PreviousCelo Hackathon Hub

Last updated 11 months ago

Was this helpful?