Contributing

While Polytune was developed by us at the SINE Foundation, we would love to see how you end up using Polytune and are happy to accept pull requests. Polytune is distributed under the MIT license and hosted on GitHub:

Github

Wondering where to start? The Polytune MPC Engine implements a complex protocol [WRK17] with many steps. The different steps and their modules are as follows:

  1. ot.rs implements a maliciously secure correlated OT receiver and sender based on (a modified version of) the KOS OT implementation of swanky.
  2. fpre.rs implements the preprocessing phase with an additional party, the trusted dealer, who distributes the correlated randomness used in the MPC protocol. Note that this requires a different trust assumption and should only be used with caution.
  3. faand.rs implements the preprocessing phase of the [WRK17] protocol in a distributed manner. This means that the parties interactively generate random authenticated triples in a maliciously secure protocol in faand::faand, which is then used in the MPC protocol. For transforming random authenticated triples to concrete authenticated triples, Beaver's method is implemented in faand::beaver_aand.
  4. protocol.rs implements the MPC protocol. Its online phase is implemented using the garbling method implemented in garble.rs.

You can also reach us at polytune@sine.foundation.