# secure Multi-Party Computation (sMPC) in Enigma?

In Enigma whitepaper (>> Link to the Enigma paper <<), in section 5.1 "Overview of secure multi-party computation", page 4, explains how to divide a secret s into multiple shares, using polynomial q(x).

Then, in equation 2, explains how to calculate each coefficient ai in polynomial q(x) as follows:

a0 = s, ai ~ U(0, p - 1)

But it is not clear what do U , p and the sign ~ mean? (apparently, n is number of parties, but how about p?) And what is functionality of U(0, p - 1) ? In other words, what is an output of U(0, p - 1)? where, it seems that for the all i , ai has the same output since U(0, p - 1) does not depend on the i value.

This is a very import part of the paper, as the secret "shares" are then calculated using ai.

Note 1: sMPC (secure Multi Party Computation) approach aims to make it possible for every nodes in the Enigma network to do computations jointly on a secret s, where s is divided into multiple smaller parties, called shares, and distributed between the nodes. So, according to the above equation and polynomial q(x), the shares will be calculated. To do this, we need to calculate all of ai in equation 2, page 4.

Note 2: Enigma protocol is a second-layer, off-chain network that aims to solve the two problems for blockchains: scalability and privacy. Enigma is a peer-to-peer network, enabling different parties to jointly store and run computations on data while keeping the data completely private. An external blockchain is utilized as the controller of the network, manages access control and identities, and serves as a tamper-proof log of events. (Enigma website: https://www.media.mit.edu/projects/enigma/overview/) (Enigma blog: https://blog.enigma.co/)