MPC Mode
What is MPC Mode?
MPC Mode is a method for generating Web Proofs using multi-party computation. Using MPC Mode, a client can demonstrate that:
- Data was received from a specific server
- The client did not tamper with the contents of the data
Pluto provides multiple execution modes for generating Web Proofs, to maximize user optionality. MPC Mode is one of the three execution modes Pluto offers, alongside Origo Mode and TEE Mode. Pluto’s MPC Mode is powered by TLS Notary.
MPC Mode at a high level
MPC Mode operates with three main parties - the client, the server, and a notary. The protocol aims to achieve the following properties:
- Authenticity: Demonstrate that the TLS transcript is not a forgery by the client
- Provenance: Authenticate the identity of the server via certificate chain verification
- Privacy: Allow the client to prove data provenance without sacrificing the privacy of their data or credentials
- Non-Proprietary: Avoid enshrining a single service provider as an intermediary
MPC Mode uses a ‘man-in-the-middle’ approach to attest to the contents of the TLS connection. The diagram below gives a high-level overview of the information flow between parties.
How is MPC Mode different from Origo Mode?
While Origo also proves data provenance, it uses a proxy-based approach rather than multi-party computation. Origo provides constant communication complexity, making it more efficient for larger proofs.
TLSNotary, which powers Pluto’s MPC Mode, has been developed and refined since 2014, while Origo is a more recent development that focuses on optimizing for proof size and performance.
How is MPC Mode different from TEE Mode?
TEE Mode relies on hardware-backed security guarantees and runs the entire proxy within an isolated environment. In contrast, MPC Mode uses multi-party computation to achieve its security properties without requiring trust in hardware manufacturers.
While MPC may have higher computational overhead compared to TEE Mode, it provides strong security guarantees through cryptographic techniques rather than hardware isolation.
How does Pluto use TLSNotary?
Pluto’s Web Proofs SDK implements TLSNotary to achieve MPC Mode. With multiple execution modes for creating Web Proofs, developers can choose which mode to use based on their specific requirements around trust models, performance needs, and payload sizes.
For more detailed information on the inner workings of Pluto’s TLSNotary implementation, please refer to our MPC Mode blog post.