The implementation of mpc in enigma

hello, I am curious about the implementation of mpc in enigma, and would you show me which part of the source code is about mpc?

looking forward to your reply :slight_smile:

Hi @stan_yi,

The current implementation of Enigma uses the hardware-based TEE (Trusted Execution Environment) to run the secret contract tasks in an enclave. Tthe MPC implementation will be coming at some point in the future, as I’ve seen mentioned, but I’ll verify that and let you know if there’s some info on that.

The Enigma Protocol reference documentation is here:

It’s the Enigma Core component contains the code that runs inside the enclave:

Enigma Core

The code of this repository, as its name would imply, lies at the core of the Enigma Protocol. Written in Rust, it includes the code that runs both the inside (trusted) of the enclave and the outside (untrusted), and is responsible for interfacing with the rest of the Enigma Network. This repository also includes the Principal Node that runs inside a trusted enclave, and manages the keys to encrypt the state for all contracts in each epoch. It responds to legitimate requests from all other enclaves in the Enigma network for the encryption keys assigned to any such nodes.

Both the enclaves and the principal node come packaged with support for ‘simulation mode’. This mode allows for dApp developers to test secret contracts and interact with the libraries in a non-live environment without Intel SGX enabled hardware, thus allowing for easier cross-platform and legacy support. Please note that once the Enigma network has been deployed on testnet and mainnet, only enclaves running in hardware mode (on hosts with SGX enabled) will be able to join the Enigma network.

Here’s the repo:

I hope that helps!


Hello @stan_yi,

I suggest you read Guy Zyskind’s comment on my question. Goes in a similar direction. Question to MPC and how we can catch up?

Enjoy your week!