Skip to content

SCALE MAMBA

Marcella Hastings edited this page Nov 5, 2020 · 4 revisions

What Is It?

SCALE-MAMBA is a framework for true multi-party computation. It is secure in a malicious model (that is, the computation will abort with a malicious adversary) and it supersedes the SPDZ language. It uses an arithmetic model of computations (ie over a large finite field) but the protocol itself uses a hybrid approach (diverging far from the original circuit models).

MAMBA is the front end. It compiles a Python-ish language to a bytecode representation. The bytecodes are fully specified in the documentation (see below). SCALE executes the secure protocol on bytecodes. It uses three distinct types of pre-processing data to execute the secure protocol.

New evaluation criteria

Threshold: SCALE-MAMBA can represent data with multiple types of threshold sharing, including Shamir sharing, replicated secret sharing, or via a Monotone Span Programme (MSP), which I think is represented using a linear secret sharing scheme. See the Documentation, section 3.3.2.

Usability

This framework has extremely extended documentation in their repository (download it and make docs). It's extremely in-depth and covers a lot of ground. Worth several reads, plus re-reading any time you have a question.

Installation comments:

  • MPIR and OpenSSL libraries need to be downloaded and compiled from source. Default versions on your OS won't work (or at least, it didn't for me).
  • We needed custom yum settings to install one of the required packages (epel-release).
  • Mini certificate authority was somewhat of a pain to set up. See install.sh for our successful version. We generate 4 players by default, but S/M supports arbitrarily many.

We tested this framework in a relatively limited setting -- isolated, single-execution unit tests -- and were relatively slow, complex, and resource-intensive (on our systems, tests required ~8GB RAM to run). However, it supports a great deal of customization in protocol settings and use cases, and has been used successfully as a component of larger secure systems e.g. the Jana project from Galois. For more discussion on this topic, please query the SCALE-MAMBA discussion list.

The framework supports both fixed and floating point numbers, but we found even for small example programs, floating point requires significantly more rounds of communication (complexity is explained in the documentation).

The framework is in active development. Our work is compatible with Version 1.3, but the latest versions may contain security updates along with other improvements.

Links

Clone this wiki locally