Skip to content

sine-fdn/polytune

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Polytune MPC Engine

Secure Multi-Party Computation (MPC) allows two or more parties to interactively perform a computation on their private inputs, without revealing any additional information about their inputs to each other, other than what the result of the computation reveals.

Our aim at SINE is to make advanced technology, such as MPC, available to as many companies as possible. We are especially keen to apply MPC for the exchange of sustainability data.

Polytune, our MPC engine, aims at fulfilling our vision by providing an easy to use framework to apply this technology wherever there is a need to share data privately, without a third-party trustee.

Polytune implements the multi-party [WRK17b] protocol and will include optimizations from [YWZ20]. This protocol achieves the highest level of security an MPC protocol can achieve, i.e., it is secure against malicious adversaries that can control up to all-but-one of the parties. This means that even if all but one of the parties are corrupt and together try to obtain information about the honest party's input while actively deviating from the protocol, they are unable to do so, i.e., the input of the honest party remains private.

Note

Our MPC engine is being actively developed, so expect breaking changes.

Polytune is directly compatible with Garble, our programming language that allows us to describe computations on a high level and translate them to a Boolean circuit format that is required by the [WRK17b] MPC protocol.

You can see examples for the usage with examples described in Garble, e.g., benches/.join.garble.rs or in examples/sql-integration/.example.garble.rs.

Benchmarks

You can benchmark Polytune with a join example that allows for joining two databases with n_records records each by running

cargo bench join

To run the join benchmark once and produce a flamegraph:

sudo CARGO_PROFILE_BENCH_DEBUG=true cargo flamegraph --bench join

To run the join benchmark multiple times, benchmark it, then produce a flamegraph:

sudo CARGO_PROFILE_BENCH_DEBUG=true cargo flamegraph --bench join -- --bench

To run all the benchmarks you can run:

cargo bench

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages