Secure Multi-party Computation (SMC)

SUNFISH framework’s SMC service consists of two components, SMC Proxy and computation node, both providing their own API. In each case, both the request and response body are JSON-encoded

Version: 0.1

Contact information:
Riivo Talviste

SMC Node Service

SMC Node Service provides the interface to run privacy-preserving programs (i.e., SecreC programs) on SMC nodes. Each SMC node provides this service independently, the client must invoke this service in parallel at each SMC node.

POST /startProcess

  • Description: Start the SecreC secure computation process on computation nodes.

Parameters

Name Position Description Type
data body

Responses

200 - Successful response

Name Description Type
process_id integer
vars Values published by the SecreC program. object
server Server number integer

POST /requestProcess

  • Description: Initiate a new process request at computation nodes.

Parameters

Name Position Description Type
data body

Responses

200 - Successful response

Name Description Type
process_id integer
relay_data Contains signed relay data from the computation node. This data is relayed to the other computation nodes by the next request.
server Server number integer

POST /relayedProcessShare

  • Description: Relay signed data obtained by `requestProcess` to other computation nodes.

Parameters

Name Position Description Type
data body

Responses

200 - Successful response

SMC Proxy Service

SMC Proxy Service is a client-side helper service for secret-sharing user input for the secure multi-party computation and reconstructing the results for further processing in the client application.

POST /secretShare

  • Description: Secret share input data

Parameters

Name Position Description Type
data body

Responses

200 - Successful response

POST /reconstruct

  • Description: Reconstruct data from shares

Parameters

Name Position Description Type
data body

Responses

200 - Successful response