Repolode
data61

data61/MP-SPDZ

A C++ framework for benchmarking and running many secure multi-party computation protocols under different security models.

Stars
1,195
Forks
371
Open issues
9
Last commit
9 days ago

What is it?

MP-SPDZ is a framework for secure multi-party computation (MPC), where several parties jointly compute a function over their private inputs without revealing those inputs to each other. Its main purpose is to run the same computation under many different protocols so their performance can be compared. The protocols span dishonest-majority and honest-majority settings, and security models from semi-honest (passive) to malicious (active) corruption.

Programs are written in a high-level Python-like language and compiled into bytecode, which a virtual machine then executes over the network. The implementation covers arithmetic circuits modulo a prime or a power of two, binary circuits, and Yao's garbled circuits. Its compiler focuses on minimizing communication rounds for secret-sharing protocols. Users can run computations locally, across multiple machines over SSH, or in Docker.

The project ships with example programs, including a tutorial, and documentation on Read the Docs. Its README notes that it has not undergone a security review, so it is intended for research and benchmarking rather than production use.

Key features

  • 01Supports many MPC protocols across malicious, semi-honest, honest-majority and dishonest-majority security models.
  • 02Compiles high-level Python-like programs into bytecode for a virtual machine.
  • 03Covers arithmetic circuits modulo a prime or 2^k, binary circuits, and Yao's garbled circuits.
  • 04Runs computations locally, across remote hosts over SSH, or in Docker.
  • 05Includes a tutorial and example MPC programs.

Use cases

  • Benchmarking and comparing the performance of different MPC protocols on the same computation.
  • Academic research on secure computation protocols and their trade-offs.
  • Prototyping privacy-preserving computations among several non-colluding parties.

Quick start

  1. 1

    Build the Docker image for the mascot-party.x binary

    docker build --tag mpspdz:mascot-party --build-arg machine=mascot-party.x .
  2. 2

    Run the tutorial program with two parties and malicious security

    docker run --rm -it mpspdz:mascot-party ./Scripts/compile-run.py mascot tutorial

Things to know

  • The README states the software has not undergone a security review, so it should not be used as-is for production secrets.
  • The project's license is not clearly detected from the metadata, so check the repository license before reuse.
  • Building from source needs a working C++ toolchain and several libraries; Windows users are pointed to a VirtualBox workaround.

Topics

FAQ

What is MP-SPDZ?
A C++ framework for benchmarking and running many secure multi-party computation protocols under different security models. MP-SPDZ is a framework for secure multi-party computation (MPC), where several parties jointly compute a function over their private inputs without revealing those inputs to each other. Its main purpose is to run the same computation under many different protocols so their performance can be compared. The protocols span dishonest-majority and honest-majority settings, and security models from semi-honest (passive) to malicious (active) corruption.
Is MP-SPDZ free to use? What license does it have?
MP-SPDZ is open source under the Other license. Check the license terms before using it in commercial products.
Is MP-SPDZ still maintained?
Actively maintained. The last commit to MP-SPDZ was on Oct 16, 2026.
What can I use MP-SPDZ for?
Benchmarking and comparing the performance of different MPC protocols on the same computation. Academic research on secure computation protocols and their trade-offs. Prototyping privacy-preserving computations among several non-colluding parties.
How do I install MP-SPDZ?
Build the Docker image for the mascot-party.x binary: docker build --tag mpspdz:mascot-party --build-arg machine=mascot-party.x . Run the tutorial program with two parties and malicious security: docker run --rm -it mpspdz:mascot-party ./Scripts/compile-run.py mascot tutorial
Where can I get MP-SPDZ?
The source code and installation instructions are on GitHub: https://github.com/data61/MP-SPDZ

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects