SODA actively contributes to below MPC frameworks. More information is available in SODA report D4.2 “Proof-of-concept for results of tasks 1.2 and 2.2: implementations of key MPC technologies” and D4.4 “Proof-of-concept for results of tasks 1.3/2.3: implementations of key MPC technologies“.
FRESCO is a Java framework for efficient secure computation aiming at making the development of prototype applications based on secure computation easy. As part of this work package we have made substantial improvements and expansions to the FRESCO framework.
FRESCO is available at GitHub at https://github.com/aicis/fresco, and the documentation can be found at Read the Docs at https://fresco.readthedocs.io/en/latest/. The public channel where we receive questions, bug reports and suggestions on how to improve FRESCO can be found at https://gitter.im/FRESCO-MPC/Lobby.
MPyC is a Python framework for secure multiparty computation. MPyC targets usability and ease of use balanced with efficiency. These properties make it well-suited for education and rapid prototyping of MPC applications.
MPyC is available on GitHub at https://github.com/lschoe/mpyc. It also includes documentation. MPyC is also available as a package in the Python Package Index (PyPI).
Various machine learning algorithms implemented in FRESCO and MPyC can be found at https://github.com/aicis/fresco-ml (evaluation of neural networks, federated learning, decision trees, SVM evaluation, logistic regression) and https://github.com/lschoe/mpyc (ridge regression, binarized neural network) respectively. MPyC also includes the demo on Kaplan-Meier survival analysis.
More algorithms include logistic regression with differential privacy on FRESCO at https://github.com/philips-software/fresco-logistic-regression-2 with an improved version available at https://github.com/jonas-lj/fresco-logistic-regression-2 and random forest on MPyC at https://github.com/Charterhouse/random_forest .
PySNARK is a Python-based system for zk-SNARK (zero-knowledge succinct non-interactive argument of knowledge) based verifiable computations and smart contracts. PySNARK makes it possible to program verifiable computations in Python. This solves the problem that it is quite hard to specify verifiable computations. PySNARK automatically creates a proof.
PySNARK is available from https://github.com/Charterhouse/pysnark.