Tandem - A Multi-Party Computation Engine written in Rust

61 points sinefoundation

https://github.com/sine-fdn/tandem

Hi all, Today, we released Tandem, a Rust-based cryptographic engine for executing programs using Secure Multi-Party Computation (MPC), which allows 2 parties to compute a function without revealing their private inputs. The classic example from cryptography is Yao's Millionaires’ Problem, where two millionaires compute who is richer without revealing their wealth to each other.

MPC has in the past been mostly confined to academia, but thanks to some recent papers has finally become fast enough for practical applications. Internally, Tandem uses Garbled Circuits, encrypted circuits consisting of boolean gates. While there have been other implementations based on these ideas, Tandem tries to provide a much better user experience than previous attempts. For example, the Tandem repo includes a server, a command line client and client libs for wasm and native architectures. To make it easier to run practical applications, programs can be written in Garble, a custom Rust-like programming language that compiles to Garbled Circuits.

SINE is a non-profit foundation that focuses on promoting data collaboration through the use of encryption. At SINE, we want to make MPC available to anyone. Hence, Tandem is fully open source! Feel free to check the code and if you want to see Tandem in action, try our playground and Encryptle (an MPC version of New York Times’s Wordle). We would love to hear your thoughts about Tandem, so feel free to reach out!