MPC
What is MPC — Multi Party Computation
MPC is a field of cryptography allowing a computation to be performed by multiple parties, without any party sharing secret information. A common example of MPC is calculating the average salary of a group of employees, without any employee revealing their salary to any other party.
MPC is based on rounds of communication between the parties for the computation to be performed. Although technically generic MPC to perform any computation is possible, it is generally not efficient, and special MPC protocols are created for specific use cases.
TSS - Threshold Signature Scheme
The fundamental authentication method in blockchains relies on public key cryptography, specifically a private/public key pair. The private key grants full control over the blockchain address associated with the corresponding public key, enabling cryptographic signatures. Among these, ECDSA is the most widely used signature algorithm in blockchain systems.
However, the private key's single point of failure has been mitigated through Multi-Party Computation (MPC) techniques, particularly with Threshold Signature Schemes (TSS) and Threshold ECDSA protocols.
Before the advent of 2PC-MPC protocols, most MPC schemes followed one of two models:
- Two-party protocol – Two parties collaborate to generate an ECDSA signature instead of relying on a single private key.
- t-of-n threshold protocol – A signature can be generated only when a threshold
t of n
participants agree, ensuring redundancy and reducing risk.
DKG - Distributed Key Generation
TSS protocols generate signatures that are verifiable against a public key, just like a private key. For a public key to exist for a group of parties, without any of them knowing the full private key, the parties are required to complete a process called DKG, or Distributed Key Generation.
In Distributed Key Generation (DKG), a public key is created through a ceremony involving secret shares, which can be used to generate signatures according to the protocol's rules (e.g., three out of five shares).
In the context of dWallets and 2PC-MPC, the DKG process constitutes the creation of a dWallet. It involves generating both a user share, and a network share, with the latter encrypted by a network decryption key used as part of the 2PC-MPC protocol.