Skip to main content

Binder Travis CI codecov Read the Docs PyPI

MPyC MPyC logo Multiparty Computation in Python

MPyC supports secure m-party computation tolerating a dishonest minority of up to t passively corrupt parties, where m ≥ 1 and 0 ≤ t < m/2. The underlying cryptographic protocols are based on threshold secret sharing over finite fields (using Shamir's threshold scheme and optionally pseudorandom secret sharing).

The details of the secure computation protocols are mostly transparent due to the use of sophisticated operator overloading combined with asynchronous evaluation of the associated protocols.

Documentation

Read the Docs for Sphinx-based documentation, including an overview of the demos.
GitHub Pages for pydoc-based documentation.

See demos for Python programs and Jupyter notebooks with lots of example code. Click the "launch binder" badge above to view the entire repository and try out the Jupyter notebooks from the demos directory in the cloud, without any install.

The MPyC homepage has some more info and background.

Installation

Pure Python, no dependencies. Python 3.10+ (following SPEC 0 -- Minimum Supported Dependencies).

Run pip install . in the root directory (containing file pyproject.toml).
Or, run pip install -e ., if you want to edit the MPyC source files.

Use pip install numpy to enable support for secure NumPy arrays in MPyC, along with vectorized implementations.

Use pip install gmpy2 to run MPyC with the package gmpy2 for considerably better performance.

Use pip install uvloop (or pip install winloop on Windows) to replace Python's default asyncio event loop in MPyC for generally improved performance.

Some Tips

  • Try run-all.sh or run-all.bat in the demos directory to have a quick look at all pure Python demos. Demos bnnmnist.py and cnnmnist.py require NumPy, demo kmsurvival.py requires pandas, Matplotlib, and lifelines, and demo ridgeregression.py (and therefore demo multilateration.py) even require Scikit-learn.
    Try np-run-all.sh or np-run-all.bat in the demos directory to run all Python demos employing MPyC's secure arrays. Major speedups are achieved due to the reduced overhead of secure arrays and vectorized processing throughout the protocols.

  • To use the Jupyter notebooks demos\*.ipynb, you need to have Jupyter installed, e.g., using pip install jupyter. An interesting feature of Jupyter is the support of top-level await. For example, instead of mpc.run(mpc.start()) you can simply use await mpc.start() anywhere in a notebook cell, even outside a coroutine.
    For Python, you also get top-level await by running python -m asyncio to launch a natively async REPL. By running python -m mpyc instead you even get this REPL with the MPyC runtime preloaded!

  • Directory demos\.config contains configuration info used to run MPyC with multiple parties. The file gen.bat shows how to generate fresh key material for SSL. To generate SSL key material of your own, first run pip install cryptography.

Copyright © 2018-2026 Berry Schoenmakers

Metadata

Release files for mpyc 0.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mpyc 0.11
File Size Uploaded
mpyc-0.11.tar.gz 152.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mpyc 0.11
File Interpreter ABI Platform
mpyc-0.11-py3-none-any.whl Python 3 none any Details

Total release size: 282.4 kB

Release files / mpyc-0.11.tar.gz

Download URL mpyc-0.11.tar.gz
Size 152.3 kB
Tags Source
SHA-256 checksum
How to use checksums
7ddab524d0202a20a30c5459e248be722962f475077453c2cbc65dc6a2eed49c
BLAKE2b-256 checksum
How to use checksums
b152ac798134d1cb26024be2f6000c9af27749ebed7b7245e86e15e1275ec89d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release files / mpyc-0.11-py3-none-any.whl

Download URL mpyc-0.11-py3-none-any.whl
Size 130.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
059ffa3396089ebb77beb43ea2f8040f2a20f3fc7ff6d3c839df3b3f3c28d38e
BLAKE2b-256 checksum
How to use checksums
ed7320bb0cb69fdaf1f0b3e8f73f41b3ab3c0897ca2c4c565761231128912ea8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release history Release notifications | RSS feed

This release

0.11 This release

2 release files

0.10

2 release files

0.9

2 release files

0.8

2 release files

0.7

2 release files

0.6

2 release files

0.5

2 release files

0.4

2 release files

0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page